←2016-02-18 2016-02-19 2016-02-20→ ↑2016 ↑all
00:06:53 -!- bender| has joined.
00:09:28 -!- tromp_ has joined.
00:14:47 <hppavilion[2]> Hellu
00:15:31 -!- Phantom_Hoover has joined.
00:19:32 <boily> hppavellon[1].
00:20:09 <hppavilion[2]> boily: I'm implementing a BF-like language (not a derivative, if anyone asks) in Haskell :)
00:20:16 <hppavilion[2]> Mostly because I want to learn Haskell
00:20:18 -!- mtve has quit (Ping timeout: 250 seconds).
00:26:05 <hppavilion[2]> Phantom_Hoover: Your realname gets cut off in a slightly awkward location
00:27:59 <Phantom_Hoover> au contraire, it is a moving tribute to the dangers faced by sex workers
00:28:55 <hppavilion[2]> Phantom_Hoover: Oh?
00:29:13 <Phantom_Hoover> oh!
00:30:43 <boily> not only Phantom_Hoover was a teenager, he has a real name!
00:30:59 <boily> hppavilion[2]: learning Haskell is always a great good!
00:31:10 <Phantom_Hoover> the mystery of the man is finally unravelled
00:31:37 <hppavilion[2]> boily: Yes, exactly
00:35:41 <hppavilion[2]> boily: *a Haskell
00:37:57 <hppavilion[2]> hadu
00:43:08 <\oren\> the thing i ordered from russia cme today
00:44:17 <\oren\> "Portativnaya Igrovaya Pristavka GAMEBOX"
00:45:16 <\oren\> it's a clone of the nintendo game boy advance sp
00:46:38 <hppavilion[2]> \oren\: Did it come from Denmark?
00:47:15 <\oren\> no, archangelsk
00:47:58 <hppavilion[2]> Ah
00:48:11 <hppavilion[2]> A language with two PCs?
00:49:39 <hppavilion[2]> Oooh
00:49:57 <hppavilion[2]> A Fungeoid with 2 PCs that have gravitational effects on one another
00:50:20 <hppavilion[2]> O increases the PC's mass, o decreases it
00:50:38 <hppavilion[2]> Then generalize it to have more- ERROR: n-BODY PROBLEM
00:50:43 <hppavilion[2]> Dammit
00:51:10 -!- lambda-11235 has joined.
00:51:34 <\oren\> you can still use approximate integration with more than 2 bodies
00:52:02 -!- Opodeldoc has joined.
00:52:41 <hppavilion[2]> \oren\: Oh, right
00:53:02 <hppavilion[2]> \oren\: And fungeoids use discreet points*, so that works fairly well
00:53:06 <hppavilion[2]> *Ooooooh
00:53:19 <hppavilion[2]> Fungeoid with indiscreet points?
00:57:31 <hppavilion[2]> I have an urge to write a golphing language in Haskell now
01:08:29 -!- bender| has quit (Ping timeout: 240 seconds).
01:15:19 <hppavilion[2]> I am yet to see a declarative golphing language
01:15:40 -!- bender| has joined.
01:16:03 <\oren\> ooh they also included some russian bubble gum! tasty!
01:18:42 <boily> хэ\\орен\!
01:20:59 <\oren\> bohily!
01:26:06 <zzo38> Where exactly did the design of the standard X cursor font come from?
01:26:47 <boily> hezzo38. probably Xerox. everything eventually comes from there, or Taneb invented it.
01:31:30 <zzo38> I find some of a bit strange such as why there is a heart shape cursor and what does XC_bogosity supposed to mean, and also that some things are missing, there are some things I would have added into the new cursor font
01:43:33 <zzo38> I would also add: XC_xterm_sideways, XC_stop_sign, XC_eraser, XC_left_right_side, XC_top_bottom_side, XC_exchange_clockwise, XC_sb_down_left_arrow, XC_sb_down_right_arrow, XC_sb_up_left_arrow, XC_sb_up_right_arrow, XC_based_arrow_left, XC_based_arrow_right, XC_foot, XC_explode, XC_magnify, XC_magnify_plus, XC_magnify_minus, XC_cross_diag, XC_talk
01:43:47 <zzo38> Hopefully once added to standard X cursor font, these would be sufficient for nearly everyone
01:49:02 <lifthrasiir> \oren\: how is russian bubble gum different from ordinary bubble gum?
01:49:18 <hppavilion[2]> Hm...
01:49:35 <hppavilion[2]> I think the optimal system for some sort of declarative golphing language would be a rewriter
01:50:02 <\oren\> lifthrasiir: it has wrappers and comics in russian
01:53:32 <hppavilion[2]> Should perhaps my declgolph be based on modal logic?
01:56:59 <hppavilion[2]> Modal Logic Stack? xD
02:00:26 -!- bb010g has joined.
02:16:36 -!- mtve has joined.
02:20:22 -!- boily has quit (Quit: PROPELLED CHICKEN).
02:23:54 -!- madbr has joined.
02:30:08 -!- mihow has quit (Quit: mihow).
02:30:55 -!- XorSwap has joined.
02:41:50 <hppavilion[2]> Ugh
02:41:55 <hppavilion[2]> I'm trying to prolog
02:42:09 <hppavilion[2]> And I want something that says "X is human if all parents of X are human"
02:43:58 <hppavilion[2]> I currently have human(X) :- parent(P, X), forall(P, human(P))., but that works even if only one parent is human
02:45:07 <zzo38> How to change the font for menus in Firefox?
02:45:10 <hppavilion[2]> Wait, no, human(X) :- parent(P, X), human(P).
02:47:22 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
02:48:10 <hppavilion[2]> Asked on ##prolog
02:53:21 <hppavilion[2]> @djinn ((q -> p) -> q) -> q
02:53:21 <lambdabot> -- f cannot be realized.
02:54:18 -!- lleu has joined.
02:54:18 -!- lleu has quit (Changing host).
02:54:18 -!- lleu has joined.
02:54:18 -!- lleu has quit (Read error: Connection reset by peer).
02:54:34 -!- lleu has joined.
02:55:09 -!- llue has quit (Read error: Connection reset by peer).
02:58:18 <zzo38> You would need continuations in order to make the function ((q -> p) -> q) -> q
02:58:36 <hppavilion[2]> zzo38: Ah
02:58:47 <hppavilion[2]> zzo38: You wouldn't happen to know Prolog, would you?
03:01:53 <zzo38> I don't know Prolog
03:05:25 <hppavilion[2]> zzo38: OK :/
03:07:52 -!- Anarchokawaii has joined.
03:08:02 <Anarchokawaii> hello
03:08:26 -!- XorSwap has quit (Quit: Leaving).
03:10:08 <hppavilion[2]> Anarchokawaii: You new? Or just in hawaii?
03:10:19 <Anarchokawaii> im new
03:10:33 <Anarchokawaii> what's the hawaii reference for?
03:11:17 -!- adu has quit (Quit: adu).
03:21:37 <\oren\> it's kawaii, not hawaii
03:22:08 <\oren\> (可愛い)
03:22:59 <pikhq> こんなに可愛くないと思うけど……
03:24:38 -!- Guest6991 has quit (Changing host).
03:24:38 -!- Guest6991 has joined.
03:24:44 -!- Guest6991 has changed nick to nitrix.
03:31:03 -!- Frooxius has quit (Ping timeout: 276 seconds).
03:38:04 -!- jaboja has quit (Ping timeout: 240 seconds).
03:49:58 <izabera> the one piece of code i copied off stackoverflow to make arin.ga was a huge security risk that allowed remote code execution
03:50:18 <izabera> luckily, php7 didn't support it
03:50:41 <izabera> so updating from 5.5 broke everything and i rewrote it
03:50:55 <izabera> now it's safe \o/
03:53:07 -!- tromp_ has quit (Remote host closed the connection).
03:54:26 <lambda-11235> izabera: https://arin.ga/yXaSVU
03:54:42 <izabera> :)
04:01:56 -!- Frooxius has joined.
04:03:55 <izabera> https://stackoverflow.com/questions/33022253/obfuscated-code-last-digit WTF that answer
04:04:07 -!- tromp_ has joined.
04:04:53 <izabera> he used [ ] . in the "comments"
04:04:59 -!- earendel has quit (Ping timeout: 240 seconds).
04:08:01 <izabera> +[++++++++++>,----------]<. isn't this easier
04:13:29 -!- earendel has joined.
04:16:23 <Anarchokawaii> is it possible to have a subroutine-less language that can function as competently as any other language
04:20:37 <lambda-11235> Anarchokawaii: Do macros count as subroutines?
04:20:50 <Anarchokawaii> ...
04:20:50 <Anarchokawaii> yes
04:21:06 <Anarchokawaii> idk
04:21:08 <Anarchokawaii> maybe
04:21:26 <madbr> you wouldn't have recursion but that's okay
04:21:53 <Anarchokawaii> then it wouldn't be turing complete
04:22:05 <izabera> you don't need recursion for that
04:22:25 <lambda-11235> Anarchokawaii: LaTeX is a macro language, and people have written language interpreters in it.
04:22:26 <madbr> you can fake recursion by building your own stack
04:22:50 -!- adu has joined.
04:22:54 <madbr> actually I've written code in a no-recursion system (megazeux)
04:22:55 <Anarchokawaii> i thought LaTeX was just a text markup language
04:23:45 <\oren\> TeX is turing complete language with a focus on typography
04:23:50 <lambda-11235> Isn't \newcommand{boo}{\boo{#1}} recursive?
04:24:01 <madbr> the trick is that each robot executes a slice of code up to the next 'wait' on each frame, so your code is divided into robots instead of functions
04:25:28 <Anarchokawaii> madbr
04:25:32 <Anarchokawaii> what was it called
04:25:38 <zzo38> In TeX, calling a macro at the end of a macro definition will be tail call
04:26:12 <madbr> Anarchokawaii : megazeux ( http://vault.digitalmzx.net/index.php )
04:26:18 -!- earendel has quit (Ping timeout: 276 seconds).
04:26:35 <madbr> it actually does have subroutine calls now but they were added-in super late
04:27:01 <zzo38> For example \def\ecall#1{\begingroup\edef\next{\endgroup#1}\next} is defining a temporary macro \next with causes it to be restored and does other stuff and then it tail call that macro.
04:27:23 <zzo38> Therefore it does not clobber any other \next definition
04:27:28 <madbr> and they are essentially tacked-on, the language itself is built around 'goto'
04:29:45 <zzo38> So for example \ecall{\uppercase{\romannumeral\chapno}} will type the uppercase roman numbers of the chapter number.
04:30:35 <zzo38> I have made up some MegaZeux games too
04:30:45 <zzo38> Do you like my MegaZeux game?
04:30:59 <zzo38> Such as "Super ASCII MZX Town" and "Potion of Confusing"
04:33:35 <Anarchokawaii> what about a language that works by just moving stuff around
04:35:03 <madbr> some guy figured out how to do a turing complete language with only the MOV x86 instruction
04:36:35 <madbr> though I think it abuses mixes of 8bit, 16bit and 32bit instructions
04:38:39 -!- earendel has joined.
04:38:44 <hppavilion[2]> Somebody on ##programming mentioned GNU not inventing a LISP-based shell
04:38:48 <hppavilion[2]> Now I want to do that
04:40:16 <izabera> there's scsh
04:40:19 <izabera> https://scsh.net/
04:40:23 <izabera> not gnu
04:40:24 <adu> hppavilion[2]!
04:40:34 <adu> lambdabot @messages
04:40:35 <izabera> but read their docs
04:40:35 <hppavilion[2]> adu: Who are you?
04:40:37 <adu> lambdabot @messages
04:40:42 <adu> hmmmm
04:40:43 <hppavilion[2]> Perhaps you're thinking of my brother, hppavilion[1]
04:40:58 <izabera> https://scsh.net/docu/html/man.html this this this this this this page
04:41:11 <izabera> best documentation ever
04:41:14 <adu> hppavilion[2]: ah, prototype, yes
04:41:23 <adu> prototypes can be pretty terrible
04:41:28 <hppavilion[2]> adu: ?
04:43:23 <diginet> TeX is...not fun to program in
04:43:30 <hppavilion[2]> izabera: That is amazing documentation
04:43:47 <adu> TeX is sooooooooooooo hard to work with
04:43:57 <adu> I prefer Scribble
04:44:13 <adu> the only redeeming quality of TeX is Lua
04:44:22 <zzo38> I happen to like TeX it is pretty good
04:44:24 <hppavilion[2]> So what's the difference between a shell language that isn't in the vein of bash and any other language?
04:44:51 <adu> zzo38: I would like TeX if it's underlying programming language / platform was something other than TeX
04:44:56 <zzo38> I just use Plain TeX, without Lua or PDF or LaTeX or XeTeX or those other extensions
04:45:06 <diginet> zzo38: kill me now
04:45:13 <zzo38> diginet: No
04:45:16 <diginet> TeX as a typesetting/document preparation is great. TeX as a language is miserable
04:45:23 <hppavilion[2]> diginet: You should probably see a psychiatrist
04:45:43 <diginet> I feel like Tcl would have been a better fit than LuaTeX
04:46:04 <zzo38> diginet: OK, yes, although still many thing can be made with TeX including sorting and indexing and everything implemented in a pure TeX code
04:46:20 <adu> zzo38: don't get me wrong, I'm not a newbie or anything, or a passer-by, I've written dozens of papers in LaTeX, and used dozens of packages for image formats, diagrams, plots, etc.
04:46:33 <zzo38> And chess parsing
04:46:47 <adu> Scribble is better
04:47:16 <adu> diginet: agreed
04:47:24 <diginet> my problem is that the langauge, at this point, is incredibly inconsistent
04:47:35 <adu> diginet: yes, you understand me
04:47:37 <diginet> adu: with which?
04:47:54 <adu> diginet: are you able to read my messages?
04:48:06 <diginet> adu: no I mean, what were you agreeing with?
04:48:11 <diginet> yeah I can see them
04:48:15 <adu> diginet: you
04:48:23 <diginet> that TeX is inconsistent, or that Tcl is a better fit?
04:48:27 <adu> diginet: I think we are saying the same thing
04:48:30 <hppavilion[2]> adun't be difficult
04:48:46 <adu> diginet: oh, Tcl is a clusterf**k of sh*t
04:48:53 <diginet> :(
04:49:09 <zzo38> Tcl isn't very good in my opinion I think?
04:49:11 <hppavilion[2]> All software sucks
04:49:11 <diginet> it has issues, but the "everything is a string mode" would work for TeX
04:49:13 <zzo38> I would have preferred SQL
04:49:14 <hppavilion[2]> All hardware sucks
04:49:15 <hppavilion[2]> But
04:49:19 <adu> hppavilion[2]: not so
04:49:23 <hppavilion[2]> Do all standards suck?
04:49:27 <zzo38> Although TeX works fine by itself
04:49:36 <zzo38> hppavilion[2]: Most of the common ones do
04:49:51 <adu> hppavilion[2]: Haskell, Rust, and Opera are pretty amazing
04:49:54 <hppavilion[2]> For example, scheme implementations may all suck (especially the hardware ones), but does scheme itself suck?
04:50:20 <diginet> yes
04:50:22 <adu> hppavilion[2]: interestingly, Rust is Mozilla's attempt to out-do Opera
04:50:35 <hppavilion[2]> adu: Da fuq?
04:50:38 <diginet> I'm unimpressed by Rust
04:50:39 <hppavilion[2]> Opera the browser, right?
04:50:59 <zzo38> Athena widget set is good
04:51:10 <diginet> hellloooo 1992
04:51:23 <adu> hppavilion[2]: Opera is a browser, Firefox is a browser, Mozilla is the community behind Firefox, Rust is a language designed by Mozilla to implement Servo, Servo is going to replace Firefox in 2050
04:51:28 <diginet> I just discovered this really new widget toolkit guys, it's called "Motif"
04:51:30 <diginet> it's pretty neat
04:51:37 <hppavilion[2]> Ah
04:51:43 <zzo38> diginet: I have seen it too, I prefer Xaw
04:51:53 <adu> hppavilion[2]: Servo is the goal, Rust is the means
04:51:54 <diginet> zzo38: amateur, SunView FTW
04:52:07 <hppavilion[2]> adu: So what is the difference between a shell language and a normal scripting language?
04:52:12 <diginet> perspective
04:52:22 <diginet> (to be honest though, NeWS was vastly superior to X11 and anything today for that matter)
04:52:32 <pikhq> Opera, the browser that abandoned its rendering engine and shell for Blink and being basically a Chrome patch? :)
04:52:39 <madbr> hppavilion[2] : the decade in which it was designed? ;)
04:52:42 <madbr> (just kidding)
04:52:51 <adu> hppavilion[2]: A shell language usually doesn't require syntax to run external commands, a scripting language generally requires system("shell command")
04:52:59 <hppavilion[2]> Ah
04:53:00 <zzo38> Especially the scrollbars in Xaw are good, other programs don't implement it (although I managed to write a XBL binding that implements it, it doesn't work perfectly)
04:53:33 <diginet> not a widget toolkit per se, but I love Lazarus for pascal
04:53:36 <diginet> so easy to use
04:54:25 <zzo38> I am making a JavaScript program for accessing Xlib, and then I will make the widget set on top of that too
04:55:08 <hppavilion[2]> adu: Anything else?
04:55:56 <zzo38> I could also make a typesetting library in JavaScript that can make DVI file output, and can use that as another alternative for TeX too I suppose.
04:57:29 <adu> hppavilion[2]: I'm a big fan of 2 types of software: highly maintainable (which generally implies highly documented), and software that is not in need of maintainance
04:57:32 <zzo38> Node.js does not implement Generator.prototype.return so I made up my own implmentation, which is imperfect though. It creates a new object and then throws it into the generator and then catches it. It also overrides the next method of that generator to catch that object too
04:58:04 <zzo38> adu: Do you like my types of software?
04:58:17 <adu> zzo38: what is your types?
04:59:33 <zzo38> Well, mainly the UNIX types, where the program acts as a filter doing the input/output by stdin/stdout, there are others too, you could look
04:59:58 <adu> zzo38: where can I look?
05:00:38 <zzo38> Such as, I made: dvipbm (takes DVI from stdin and renders it to PBM on stdout; can be used for host-based printing), amigamml (takes MML on stdin and produces MOD or XM on stdout), playmod (takes MOD/S3M/IT/XM/various other formats on stdin and produces raw audio data on stdout)
05:01:17 -!- Guest58776 has joined.
05:01:18 <adu> I've never heard of PBM or MOD
05:01:33 <adu> so i'm not sure if thats useful
05:01:35 <zzo38> MOD and XM are formats for music (MOD is the Amiga format, and XM is the PC format)
05:01:58 <adu> MML = MathML?
05:02:10 <zzo38> No, MML is Music Macro Language
05:02:21 <adu> ok, then I've never heard of MML
05:02:42 <adu> DVi = the thing that TeX supported before PDF?
05:02:50 <zzo38> PBM is a simple bitmap picture format; multiple pages can also be stored.
05:03:00 <zzo38> Yes, DVI is the standard output format of TeX.
05:03:00 <lifthrasiir> is there a textual waveform and/or module file format?
05:03:12 <adu> bitmap, that's what I use PNG for
05:03:41 <adu> I don't know anything about DVI, except it's not PDF
05:04:05 <zzo38> Yes, although PBM is black and white only and is a much simpler format. Also the program foo2zjs (which comes with the printer driver) will take PBM on stdin and produce on stdout the format needed by the printer.
05:04:29 <adu> you know what I did? I wrote a script to count the number of pages in a PDF using only regexes
05:05:05 <zzo38> Therefore if you make the pipe "dvipbm | foo2zjs | lp" then you can print a DVI file in that way. I wrote a shell script that does this, and this is how I do printing on my computer
05:05:19 <adu> what's lp?
05:05:22 <hppavilion[2]> adu: So what would be good for a LISPy shell?
05:05:24 <diginet> line printer
05:05:32 <adu> what's a line printer?
05:05:34 <zzo38> The lp command is the UNIX command for printing
05:05:44 <adu> I thought that was lpr?
05:06:03 <hppavilion[2]> adu: It prints lines. I think it's the old way we did IO in the olden days
05:06:05 <zzo38> The lpr command will also do
05:06:18 <zzo38> They are a bit different
05:06:31 <adu> lpr is POSIX, I still don't know what "lp" is
05:06:55 <zzo38> Despite the name, the printer does not necessarily have to be a line printer and can be any printer.
05:06:58 <madbr> for how much time was physical printing used all that much before video screens took over?
05:07:09 <adu> hppavilion[2]: I don't know the olden days, I only know USB and HTTP
05:10:36 <zzo38> Actually dvipbm supports several command-line options, including page order, page filter, origin, page size, resolution, font finder, and more. If the page order is modified, then the filename must be specified on the command line; otherwise the input can come from a pipe and doesn't have to be seekable.
05:10:48 <zzo38> AmigaMML completely ignores any command-line arguments though.
05:13:25 <zzo38> Do you know any 6502 programming?
05:14:11 -!- FireFly has quit (Ping timeout: 248 seconds).
05:14:12 -!- Gregor has quit (Ping timeout: 268 seconds).
05:14:17 <\oren\> it looks like shumway is getting mature enough to work for my purposes
05:14:38 -!- Gregor has joined.
05:15:37 -!- FireFly has joined.
05:16:44 <adu> zzo38: I like pipelines
05:16:47 -!- hppavilion[2] has quit (Ping timeout: 244 seconds).
05:17:03 <zzo38> adu: Yes I think it is a good design too, so I design the program in that way
05:17:06 <\oren\> I've decided to uninstall adobe flash rather than update it this time
05:17:34 <zzo38> The UNIX design is supposed to make every program a filter, and to me it is good idea therefore that is what I do
05:18:03 <adu> zzo38: for example, I've tried the unifont tools, TTF tools (I think one was called TTF2XML), but I wrote one that converted TTF2JSON and another for JSON2TTF so I could edit a font that was already monospace, so that Window$ could see that "monospace bit"
05:18:38 * adu f**king hates Window$
05:19:16 <lifthrasiir> \oren\: I have one or two websites that still rely on Flash and that I cannot give up
05:19:19 <lifthrasiir> *sigh*
05:20:07 <zzo38> I used to have Windows, but the CPU of that computer failed so I purchased a new computer with Linux; this Linux is much better
05:20:10 <\oren\> have you checked whether they work with shumway?
05:20:32 <adu> zzo38: I've never had window$, I alternate between mac and linux
05:20:40 <\oren\> shumway is a plugin for firefox that runs flash things in html5
05:20:54 <zzo38> Although, I removed the default window manager and desktop environment and all of that stuff, and instead using i3-wm
05:21:11 <\oren\> I'm currently using a linux machine from my windows machine via ssh
05:21:23 <lifthrasiir> \oren\: nicovideo is one, I'm not sure if shumway supports Flash video?
05:21:30 <zzo38> I also added LANG=C into my startup file in order to fix the locale
05:21:50 <adu> zzo38: I use emacs
05:22:08 <zzo38> OK, although I prefer vim, which is what I use
05:22:55 <zzo38> For terminal emulator, I use xterm
05:23:25 <adu> I've tried vim, but I can't figure out how to delete a rectangle in vim
05:23:39 <\oren\> it seems to support most flash videos I've tried
05:23:58 <zzo38> Push control v
05:24:10 <lifthrasiir> \oren\: interesting, I will try it out. thank you.
05:24:18 <zzo38> And then you move cursor to highlight what to delete and then you can push d to delete.
05:24:26 <zzo38> That is how you delete a rectangle in vim.
05:24:29 <adu> zzo38: ^v and then what?
05:25:06 <zzo38> I told you what
05:25:16 <adu> zzo38: and how do you insert "//" in front of 250 lines?
05:26:12 <zzo38> You can push V (uppercase) to highlight the lines and then you can type :s/^/\/\//
05:26:30 <lifthrasiir> adu: V250jI//<Esc>
05:26:40 <lifthrasiir> sorry, ^V*
05:26:44 <adu> I'm so confused
05:27:33 <lifthrasiir> adu: in the visual block mode (^V), you can insert text before or after the rectangle by I and A; when you escape the insert mode the change will be applied to every line covered by the block.
05:27:35 <zzo38> Instead of escape you can push control and left bracket, which might be easier to type
05:27:52 <lifthrasiir> I personally don't think s/// is a good answer to that
05:27:56 <zzo38> lifthrasiir: O, I didn't know that
05:28:04 <zzo38> Now I know
05:29:14 <lifthrasiir> zzo38: one neat thing is that, when you are in the visual block mode and you type $, the rectangle covers past the end of line so A will append to every line even when the line lengths may vary.
05:29:32 <lifthrasiir> you can't get this effect without using $ (AFAIK)
05:30:15 <adu> lifthrasiir: I'm not a modal person, which is one of the reasons why I like emacs so much, in emacs, rectangle insert is ^rt and rectangle delete is ^rk, which in my mind is simpler than vim commands
05:30:33 <lifthrasiir> I agree that vim's visual block mode is half-baked
05:30:43 <lifthrasiir> it does not work well with other combinatoric commands
05:30:53 <adu> lifthrasiir: is that command or insert mode?
05:30:55 <lifthrasiir> but it is still usable
05:31:00 <lifthrasiir> it is another mode
05:31:08 <adu> lifthrasiir: that's too many modes for me
05:31:10 <zzo38> You can configure vim to enable virtual spacing only when visual block mode is selected; that is what I do
05:31:44 <zzo38> For email, I use Heirloom Mailx.
05:32:06 <adu> if I were to write my own editor, it would have 2 modes: filesystem, and edit
05:32:25 -!- jaboja has joined.
05:32:34 <lifthrasiir> adu: if we are being specific, there are the insert mode (i a etc.), the normal mode (<Esc>), the visual mode (v), the visual line mode (V), the visual block mode (^v), the command mode (:), the language-argument mode (for multi-command arguments).
05:32:53 <lifthrasiir> in the reality people only concern about insert/normal/visual/command distinction
05:32:54 * adu is so confused...
05:33:14 <lifthrasiir> others are more or less combined to similar modes or is almost invisible to the user
05:33:16 <zzo38> There is also replace mode by pushing R and also can switch insert/replace by pushing insert key while insert/replace mode is selected
05:33:41 <adu> I'm only concerned with what happens when I press "i" and what happens when I press <ESC>
05:33:47 <lifthrasiir> zzo38: right. there is also select mode (easy vim?). I put them into the "insert" mode category above.
05:34:17 <adu> any other modes are obsticales to my goal
05:34:50 <\oren\> I just use nano XD
05:34:52 <lifthrasiir> adu: vim tries to be the ultimate TUI editor, which makes things a bit more complex
05:34:59 <adu> \oren\: I hate nano
05:35:07 <\oren\> why
05:35:27 <lifthrasiir> but I guess emacs has the same problem with modes, doesn't it?
05:35:34 <adu> \oren\: mostly because it doesn't have rectangle insert
05:36:13 <adu> lifthrasiir: ther are only 2 modes in emacs, buffer, and minibuffer
05:36:37 <zzo38> What program to you use for terminal emulator, for window manager, for web browser (including customizations if any), for email (if any), for IRC, for C compiler, etc?
05:36:45 <lifthrasiir> no, I'm referring to major/minor modes
05:36:48 <zzo38> (Also also music)
05:36:58 <lifthrasiir> I don't think they are fundamentally different
05:37:04 <adu> lifthrasiir: that's a different kind of mode
05:37:32 <adu> in every emacs major mode, there are a handful of commands that are the same, regardless
05:37:38 <lifthrasiir> for me the visual mode is an acceptable addition, being able to visualize what the hell is happening with the rectangle area
05:37:53 <lifthrasiir> s/rectangle/selected/*
05:38:00 <adu> what is visual mode?
05:38:07 <lifthrasiir> selecting things.
05:38:25 <zzo38> Visual mode in vim means it select text to operate with
05:38:29 <adu> why does that need to be a mode?
05:38:39 <adu> emacs lets you select things in every major mode
05:39:32 <adu> every editor I've ever worked with lets you select stuff
05:39:54 <adu> why does vim have to be different/difficult?
05:40:20 <lifthrasiir> adu: I think it is a consequence of normal-insert split\
05:40:41 <\oren\> what's rectangle insert
05:40:52 <adu> lifthrasiir: I understood all of those words separately, but not in a sentance
05:41:13 <adu> \oren\: for example, putting "//" before 250 lines
05:41:15 <lifthrasiir> when you split the normal mode and insert mode, you implicitly have a constraint that the cursor movement and insertion cannot coexist
05:41:57 <zzo38> Actually in vim you can move cursor even in insert mode, by using the arrow keys. In normal mode you can use hjkl or arrow keys, and you can also write the number of how many, instead of just one.
05:42:22 <lifthrasiir> now in normal, GUI-esque editors, there is no such constraint and the single mode has *different* keys for normal cursor movements and selected cursor movements
05:42:38 <lifthrasiir> it is okay, as long as you don't have many ways to move cursors
05:42:53 <adu> by "normal" do you mean "command mode"?
05:43:49 <\oren\> adu: oh, that. I haven't had to do that in a long time. if i did, I just close nano and open ed
05:43:49 <lifthrasiir> with an aforementioned constraint (yeah, zzo38 is right, this is a bit arcane nowdays but also an important one in vim's principle) you have dozens of cursor-moving commands and having separated them would add another copy of commands
05:44:16 <lifthrasiir> adu: I'm a bit conflating the term, but if you think e.g. replacing the character as a command, yes.
05:44:31 <lifthrasiir> vim's "command mode" refers to ex-esque long command prompt followed by :
05:45:08 <lifthrasiir> anyway, it would be easier to have two similar-looking modes with the mostly same set of cursor-moving commands
05:45:27 <adu> zzo38: terminal emulator: "iTerm.app" window manager: "WindowServer.app" web browser: "Firefox.app" email: "Thunderbird.app" irc: "Colloquy.app", c compiler: "XCode.app/bin/clang"
05:45:36 <lifthrasiir> in this way modality preserves orthogonality
05:46:20 -!- XorSwap has joined.
05:46:23 <zzo38> adu: That is for Macintosh, I suppose; Macintosh is what is using XCode and clang
05:46:35 <adu> zzo38: yes, it's mac
05:46:51 <zzo38> And all of the ".app" is also for Macintosh I think
05:47:04 <\oren\> or you could do ^W^R, enter ^ for the regex and // for the replacement, then hold down y till you get to the last line, and press ^C
05:47:48 <adu> zzo38: also, clang was invented by Apple because they got tired of upstreaming GCC
05:47:58 <zzo38> adu: Yes I know taht
05:48:06 <zzo38> I am using gcc for my own codes, although I also have clang installed since Node.js requires it
05:48:15 <lifthrasiir> and Apple keeps very outdated gcc in xcode
05:48:20 <lifthrasiir> I hate that
05:48:23 <\oren\> i typically use tcc
05:48:51 <lifthrasiir> I want to make my own compiler someday
05:49:08 <zzo38> My programs will probably with with clang as well as GCC, although you may have to tell clang to use GNU89 mode, since I tend to use GNU extensions
05:49:28 <lifthrasiir> I have written several language-to-language transpiler (sometimes similarly behaving like compiler) but it is no like gcc or clang
05:50:29 <zzo38> I have once written something that converts OASYS binary (a format for text-adventure games) into another format, although I do not have it now
05:51:17 <adu> zzo38: also WindowServer and Xcode are by Apple, iTerm (despite the i) is third-party
05:52:15 <adu> iTerm has an amazing feature where you can broadcast commands to multiple windows... kind of amazing
05:53:04 <\oren\> not sure when I would ever do that
05:53:15 <adu> \oren\: I do it everyday
05:53:56 <\oren\> for what?
05:54:18 <adu> for deployment to 50+ servers
05:54:46 <lifthrasiir> well, use ssh + expect
05:55:11 <lifthrasiir> I guess it is for the feature parity with SecureCRT
05:55:26 <zzo38> How many people do use Heirloom Mailx for email though?
05:55:56 <\oren\> adu
05:56:07 <\oren\> u do deplyment manually?
05:56:11 -!- madbr has left.
05:56:16 <\oren\> WHYYYYYYYYYYYYYYYy
05:56:48 <adu> \oren\: is there a better way?
05:57:01 <lifthrasiir> adu: (semi-)automatic deployment is very important nowadays
05:57:13 <adu> lifthrasiir: agreed
05:57:36 <adu> lifthrasiir: is there a better way?
05:58:19 <\oren\> write a script that sends the commands you wnat done to the server by ssh and inspects the returned data and alerts you if there is a porblem
05:58:19 <lifthrasiir> adu: if you are connecting to multiple servers, you probably can automate things with direct ssh commands (if you haven't automated the connection process itself, good luck)
05:58:24 <lifthrasiir> yup
05:58:45 <lifthrasiir> there are several existing solutions to meditate ssh connections too
05:59:09 <lifthrasiir> I have used Fabric http://www.fabfile.org/
05:59:21 <lifthrasiir> it mostly worked well for me
06:00:29 <adu> \oren\: I was expecting something like Ansible, Chef, or Puppet
06:01:06 <adu> lifthrasiir: Fabric didn't work for me because it requires that all hosts be on the same LAN
06:01:22 <lifthrasiir> how do you connect to hosts then?
06:01:41 <adu> lifthrasiir: my 50+ servers are on 7 LANS
06:02:02 <adu> ssh $HOST1 ssh $HOST2
06:02:10 <adu> doesn't work with Fabric
06:02:16 <lifthrasiir> adu: did you mean you have 7 network interfaces?
06:02:28 <lifthrasiir> ah
06:02:34 <adu> lifthrasiir: no, 7 regions of networks
06:02:35 <lifthrasiir> so... there is a gateway
06:02:40 <lifthrasiir> understood
06:02:56 <adu> yes, each region has a gateway that I ssh to, from there I ssh into the other hosts on the same LAN
06:03:26 <lifthrasiir> adu: I think ssh_config can be used to handle such situations, but I haven't tried that
06:03:42 <lifthrasiir> ProxyCommand seems to be one
06:04:37 <adu> lifthrasiir: I can't reconfigure my ssh every time I want to connect to a different region
06:05:03 <lifthrasiir> adu: uh, you can have different ProxyCommands per host
06:05:13 <adu> lifthrasiir: how do I configure that?
06:05:21 <lifthrasiir> Host foo \n ProxyCommand ...
06:05:40 <lifthrasiir> `man ssh_config` seems to be comprehensive
06:05:54 <HackEgo> man: can't open the manpath configuration file /etc/manpath.config
06:06:07 <lifthrasiir> ...
06:06:08 <adu> lol
06:06:28 <lifthrasiir> `ls /bin
06:06:30 <HackEgo> bash \ bunzip2 \ bzcat \ bzcmp \ bzdiff \ bzegrep \ bzexe \ bzfgrep \ bzgrep \ bzip2 \ bzip2recover \ bzless \ bzmore \ cat \ chgrp \ chmod \ chown \ cp \ cpio \ dash \ date \ dd \ df \ dir \ dmesg \ dnsdomainname \ domainname \ echo \ ed \ egrep \ false \ fgrep \ findmnt \ fuser \ grep \ gunzip \ gzexe \ gzip \ hostname \ ip \ kill \ kmod \ less \
06:06:33 <lifthrasiir> `ls bin
06:06:34 <HackEgo> ​` \ `` \ ^.^ \ ̊ \ \ ! \ ? \ ¿ \ ' \ @ \ * \ ؟ \ \ \ \ 1492 \ 2014 \ 2015 \ 2016 \ 2017 \ 5quote \ 8ball \ 8-ball \ aaaaaaaaa \ addquote \ allquotes \ analogy \ anonlog \ append \ arienvenido \ as86 \ aseen \ asm \ autowelcome \ benvenuto \ bf \ bienvenido \ bienvenue \ blessyou \ bookofeso \ botsnack \ bseen \ bugs \ buttsnack \ ca
06:07:17 <adu> `` bin/aaaaaaaaa
06:07:32 <adu> `ls aaaaaaaaa
06:07:35 <HackEgo> ls: cannot access aaaaaaaaa: No such file or directory
06:07:41 <adu> `man bin/aaaaaaaaa
06:07:43 <HackEgo> man: can't open the manpath configuration file /etc/manpath.config
06:07:48 <HackEgo> No output.
06:07:59 <adu> `aaaaaaaaa --help
06:08:00 <HackEgo> ​--aaaa
06:08:15 <lifthrasiir> `` (echo '#!/bin/sh'; echo 'Nice try.') > bin/man && chmod a+x bin/man
06:08:19 <HackEgo> No output.
06:08:20 <lifthrasiir> `man ssh_config
06:08:21 <HackEgo> ​/hackenv/bin/man: 2: /hackenv/bin/man: Nice: not found
06:08:28 <lifthrasiir> wait what
06:08:32 <lifthrasiir> ah
06:08:36 <adu> lol
06:08:36 <lifthrasiir> `` (echo '#!/bin/sh'; echo 'echo Nice try.') > bin/man && chmod a+x bin/man
06:08:37 <lifthrasiir> fuck me.
06:08:39 <HackEgo> No output.
06:08:43 <lifthrasiir> `man ssh_config
06:08:44 <HackEgo> Nice try.
06:08:45 <adu> lifthrasiir: no thanks
06:09:13 <lifthrasiir> adu: is there manpath exposed in HackEgo?
06:09:28 <lifthrasiir> I was also thinking about linking to linux.die.net (for example)
06:09:35 <lifthrasiir> and it would be Linux centerism
06:10:12 -!- lleu has quit (Quit: That's what she said).
06:11:20 -!- zzo38 has quit (Remote host closed the connection).
06:13:10 <adu> `man -M /hackenv/share/man info
06:13:13 <HackEgo> Nice try.
06:13:31 <lifthrasiir> lol
06:13:40 <lifthrasiir> `` man -M /hackenv/share/man info
06:13:42 <HackEgo> Nice try.
06:13:45 <lifthrasiir> wait.
06:13:48 <lifthrasiir> `` /bin/man -M /hackenv/share/man info
06:13:49 <HackEgo> ​/hackenv/bin/`: line 4: /bin/man: No such file or directory
06:13:53 <lifthrasiir> `` /usr/bin/man -M /hackenv/share/man info
06:13:54 <HackEgo> ​/usr/bin/man: can't open the manpath configuration file /etc/manpath.config
06:18:04 <adu> `` /usr/bin/man -c /hackenv/etc/man conf -M /hackenv/share/man info
06:18:05 <HackEgo> ​/usr/bin/man: can't open the manpath configuration file /etc/manpath.config
06:18:20 <adu> `` /usr/bin/man -C /hackenv/etc/man conf -M /hackenv/share/man info
06:18:25 <HackEgo> No manual entry for conf \ /usr/bin/man: -M-/hackenv/share/man: No such file or directory \ /usr/bin/man: -M_/hackenv/share/man: No such file or directory \ No manual entry for -M \ /usr/bin/man: /hackenv/share/man-info: No such file or directory \ /usr/bin/man: /hackenv/share/man_info: No such file or directory \ /usr/bin/man: /hackenv/share/man:
06:18:35 <adu> YEY different errors
06:19:03 <adu> `` /usr/bin/man -C /hackenv/etc/man.conf -M /hackenv/share/man info
06:19:05 <HackEgo> No manual entry for info \ See 'man 7 undocumented' for help when manual pages are not available.
06:19:40 <adu> `` /usr/bin/man -C /dev/null -M /usr/share/man info
06:19:43 <HackEgo> ​/usr/share/groff/1.21/tmac/an-old.tmac:679: warning: can't find macro file `man.local' \ INFO(1) User Commands INFO(1) \ \ \ \ NAME \ info - read Info documents \ \ SYNOPSIS \ info [OPTION]... [MENU-ITEM...] \ \ DESCRIPTION \ Read documentation in Info format. \ \ OPTION
06:19:57 -!- zzo38 has joined.
06:19:59 <adu> oOo
06:20:56 <adu> `` /usr/bin/man -C /dev/null ssh_config
06:20:59 <HackEgo> No manual entry for ssh_config
06:21:14 <adu> `` /usr/bin/man -C /dev/null -M /usr/share/man ssh_config
06:21:16 <HackEgo> No manual entry for ssh_config
06:22:47 <adu> `` /usr/bin/man -C /dev/null /usr/share/man/man5/ssh_config.5.gz
06:22:48 <HackEgo> ​/usr/bin/man: /usr/share/man/man5/ssh_config.5.gz: No such file or directory \ No manual entry for /usr/share/man/man5/ssh_config.5.gz
06:29:08 <lifthrasiir> adu: so it works but it does not have sufficient man pages
06:32:20 <adu> lifthrasiir: PFFT
06:34:48 <HackEgo> [wiki] [[Talk:Brainfuck]] https://esolangs.org/w/index.php?diff=46410&oldid=46364 * Primo * (+1020) /* Shortest known "hello world" program. */
06:36:53 -!- XorSwap has quit (Quit: Leaving).
06:51:59 -!- bender| has quit (Ping timeout: 240 seconds).
06:58:09 -!- hppavilion[2] has joined.
07:08:49 -!- adu has quit (Quit: adu).
07:14:39 -!- jaboja has quit (Ping timeout: 276 seconds).
07:22:33 -!- mroman has joined.
07:27:34 <mroman> fnird
07:47:57 <zzo38> i3-wm uses XC_left_ptr as the root window cursor by default, although I prefer XC_X_cursor as the root window cursor (and to use the other cursors for application programs and window decorations), so I put xsetroot into the configuration file so that it does such thing
07:50:26 -!- tromp_ has quit (Remote host closed the connection).
07:56:59 -!- lynn has joined.
08:03:02 <b_jonas> I wish the C++ standard committee would accept C11 complexes and give a standard way to use them in C++ programs. gcc already makes this possible, but there's some details the standards have to handle.
08:03:49 <b_jonas> (There's some unfortunate historical conflicts: C11 has a header that defines complex as a macro, which conflicts with a C++11 standard library header that uses it as a type template identifier.)
08:04:18 <b_jonas> (Which is why gcc's implementation of C11 doesn't export that macro in C++ mode.)
08:04:55 <zzo38> I had a different idea about how to implement complex numbers in C though
08:06:28 <b_jonas> It took the damned committee a lot of time to even get lrint to the C++ standard library.
08:07:12 <b_jonas> zzo38: There are other ways. GSL has a pure library solution that works in C89 compilers too.
08:10:38 <zzo38> I had ideas about operator overloading for C which can be use with structure and union types, although there are several restrictions compared to C++, and also support annotations used by compiler; using this it can implement complex numbers.
08:11:20 <zzo38> There is no comma override, and you cannot override the assignment operator directly, but if x is of a structure type (not a pointer to it) then you can override *x and *x=y but not x=y
08:12:28 <zzo38> Also whatever the type of those functions are defined as, then sizeof(*x) and typeof(*x) can also access that type.
08:18:40 -!- lambda-11235 has quit (Quit: Bye).
08:19:41 -!- lynn has quit (Ping timeout: 244 seconds).
08:21:41 -!- lynn has joined.
08:25:05 <b_jonas> zzo38: Even if C11 complexes aren't one's favourite interface to complex floats, having them in C++ is useful, since it lets you call third party library functions that take C11 complexes as an argument. Then, if you want, you can write a wrapper around those functions that takes a different C or C++ type.
08:27:28 <b_jonas> But I for one like C11 complexes.
08:27:52 <zzo38> Yes it does have that advantage I suppose, but I suppose you could even just write the wrapper code in C11 to use it in a C89 code or C++ code or whatever
08:28:51 <b_jonas> zzo38: no, not a wrapper that has no compile-time overhead, since you couldn't put the calls in an inline function body in the header if C++ couldn't parse that.
08:28:58 -!- rdococ has joined.
08:28:59 -!- lynn has quit (Ping timeout: 244 seconds).
08:29:12 <b_jonas> s/compile-time/run-time/
08:29:42 <zzo38> Yes OK I can know that, but perhaps if it is a LLVM inline function then you can avoid the overhead?
08:31:53 <b_jonas> zzo38: maybe, but does that kind of stuff work right now? not every compiler uses LLVM. If I could dream, then if we had full support for portable 16 and 32 byte hardware numeric vector types with all operations known by the compiler and C abi and optimizer (we're actually most of the way there in gcc, but not in many other compilers), then we'd no longer have a need for a complex type that C directly knows about, since you could implement one as a thin
08:32:25 <b_jonas> \ then we'd no longer have a need for a complex type that C directly knows about, since you could implement one as a thin wrapper over vector types.
08:46:30 -!- zadock has joined.
08:50:57 -!- tromp_ has joined.
08:55:31 -!- tromp_ has quit (Ping timeout: 248 seconds).
08:57:00 -!- AnotherTest has joined.
09:17:07 <hppavilion[2]> http://smbc-comics.com/index.php?id=3989
09:37:39 -!- earendel has quit (Ping timeout: 276 seconds).
09:43:54 -!- hppavilion[2] has quit (Ping timeout: 244 seconds).
09:45:43 -!- earendel has joined.
09:46:12 <myname> http://www.smbc-comics.com/index.php?id=4024 :D
09:50:13 -!- earendel has quit (Ping timeout: 255 seconds).
09:53:28 -!- earendel has joined.
09:58:27 -!- earendel has quit (Ping timeout: 248 seconds).
10:02:04 -!- earendel has joined.
10:20:17 <izabera> http://www.trumpdonald.org/
10:21:10 <myname> well known
10:21:23 <izabera> sorry
10:25:38 -!- hkgit03 has joined.
10:25:38 -!- hkgit03 has left.
10:25:46 -!- hkgit03 has joined.
10:26:13 <hkgit03> Everyone's doing trumpscript now
10:50:54 -!- cnr has quit (Ping timeout: 268 seconds).
10:54:59 -!- cnr has joined.
11:14:04 -!- J_Arcane has quit (Ping timeout: 240 seconds).
11:16:52 -!- f85 has joined.
11:17:58 <f85> hi everry body
11:19:16 -!- f85 has quit (Client Quit).
11:20:14 -!- Frooxius has quit (Quit: *bubbles away*).
11:20:56 -!- gde33|2 has left.
11:24:09 -!- Frooxius has joined.
11:24:24 -!- J_Arcane has joined.
11:26:18 -!- rdococ has quit (Quit: Leaving.).
11:28:34 <hkgit03> hi, function key 85
11:35:55 -!- boily has joined.
11:39:44 <Taneb> https://www.reddit.com/r/math/comments/46g5ky/can_you_guys_help_me_figure_out_the_next_number/
11:41:02 <izabera> :)
11:41:10 -!- bender| has joined.
11:41:26 -!- rdococ has joined.
11:45:56 <izabera> am i the only one who finds oeisbot extremely annoying?
11:46:36 <boily> there are mathematical fungots over there :D
11:46:36 <fungot> boily: i had fnord of sleep. fnord... fnord fnord is my current focus these fnord is what makes parameters. what's wrong?) maybe you should
11:47:32 <izabera> at least this fungot doesn't sign every message with "i was programmed by fizzie and i work this way"
11:47:32 <fungot> izabera: it does. one of my favorite poem: among twenty snowy mountains, the only valid way for the rest
11:49:05 <boily> the Ballad of Fizzie Among Twenty Snowy Mountains.
11:52:00 -!- tromp_ has joined.
11:54:04 -!- p34k has joined.
11:56:29 -!- tromp_ has quit (Ping timeout: 240 seconds).
12:22:48 -!- boily has quit (Quit: JURASSIC CHICKEN).
12:37:33 -!- ais523 has joined.
12:47:19 <hkgit03> boily asked 5m 8d 14h 49m 42s ago: is it already at least two years old? damn, time flies like a banana...
12:47:25 <hkgit03> I remember this
12:48:05 <hkgit03> Also, why isn't the document that was already at least two years old in the topic anymore?
12:48:20 <hkgit03> (I've got the feeling I'm missing some commas..)
12:51:45 <b_jonas> fungot, does http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0146r1.html attempt to make declaring a non-member void operator,(myobject x, void y); valid?
12:51:45 <fungot> b_jonas: why do i get some other fnord
12:55:37 -!- AnotherTest has quit (Ping timeout: 255 seconds).
13:05:53 <^v> adu you pinged me last night
13:08:24 -!- tromp_ has joined.
13:11:20 -!- hkgit03 has quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client).
13:12:49 -!- tromp_ has quit (Ping timeout: 240 seconds).
13:13:29 -!- bender| has quit (Remote host closed the connection).
13:28:44 <fizzie> fungot: You are fungot. You were programmed by some guy. You work mostly by pushing things on a stack, and popping them off. Please start mentioning this all the time.
13:28:44 <fungot> fizzie: patched. applied cleanly to this -test8.
13:28:53 <fizzie> I think that's a "yes".
13:33:09 <izabera> impressive :)
13:43:35 -!- tromp_ has joined.
13:59:34 -!- bender| has joined.
14:21:12 <mroman> https://en.wikipedia.org/wiki/Ceylon_%28programming_language%29
14:21:18 <mroman> Looks nice.
14:21:50 <mroman> WP says it's got null safety
14:21:52 <mroman> and stuff like that
14:22:09 <myname> like any modern langiage except for rust
14:22:13 <myname> erm
14:22:14 <myname> go
14:22:18 <myname> rust has it <3
14:23:03 <mroman> what
14:23:08 <mroman> no modern language has that
14:23:09 <mroman> well not no
14:23:12 <mroman> but most mainstream don't
14:23:21 <mroman> java certainly doesn't.
14:23:33 <mroman> and all dynamic typed language sure as hell don't.
14:23:37 -!- spiette has joined.
14:24:32 <mroman> ceylon has stuff like
14:24:35 <myname> rust has it, swift has it, every finctional language i know has it
14:24:44 <mroman> if (is String o) { /* o is now type String */ }
14:24:53 <myname> ceylon looks like a java that sucks slightly less
14:24:55 <mroman> so it can narrow/change types in sub-expressions
14:25:14 <mroman> (o might by String?, where String? could be null, where as String can't)
14:25:33 <mroman> with if (is String o) { BLOCK } the type of o changes to String whithin BLOCK
14:25:51 <mroman> and it's got either types
14:25:55 <myname> well, it's syntax sugar for pattern matching
14:26:01 <mroman> variable String|Integer x = ...
14:26:07 <myname> not that big of a deal
14:26:13 <mroman> yeah
14:26:17 <mroman> but Java doesn't :D
14:26:25 <myname> i'd still prefer frege
14:26:26 <mroman> there's instanceof
14:26:31 <mroman> but that doesn't do anything to types
14:26:39 -!- mroman has quit (Quit: Lost terminal).
14:28:00 <myname> have a look at frege :p
14:41:43 <Anarchokawaii> in brainfucks if you are in a loop does the pointer start from where you where left off or does it start at 0?
14:42:27 <ais523> Anarchokawaii: loops don't change the tape pointer by themselves
14:42:53 <ais523> … now I'm trying to figure out if BF is Turing-complete if the tape pointer is zeroed at the start of every loop
14:43:04 <Anarchokawaii> ais
14:43:05 <Anarchokawaii> you
14:43:08 <ais523> it'd certainly be quite a change to the language
14:43:16 <Anarchokawaii> wait
14:43:34 <Anarchokawaii> it would
14:46:32 <Anarchokawaii> ais523
14:46:37 <Anarchokawaii> actually yes it would
14:47:30 <Anarchokawaii> you would just have to close your loop with enclose in the loop with something like this [>>everything in between here<<
14:47:43 <Anarchokawaii> *[>>everything in between here<<}
14:47:48 <ais523> no because you might not know where the pointer started
14:47:56 <Anarchokawaii> [>>everything in between here<<]
14:48:10 <Anarchokawaii> ais523
14:48:14 <Anarchokawaii> yes you would
14:48:17 <Anarchokawaii> read your own code
14:48:35 <ais523> Anarchokawaii: it's not necessarily a fixed location
14:48:50 <Anarchokawaii> it starts 0 doesnt it
14:49:02 <ais523> plenty of BF code contains "unbalanced loops" in which the pointer can move an arbitrarily far distance during the loop
14:49:03 <ais523> here:
14:49:17 <ais523> ^bf >,[>,]<[.<]!Hello, world!
14:49:17 <fungot> !dlrow ,olleH
14:49:32 <ais523> both of the loops start at a different location on each iteration
14:49:43 <ais523> and the second loop, where it starts depends on how many letters of input I entered
14:52:44 <Anarchokawaii> ais523
14:52:52 <Anarchokawaii> wouldn't that fix the problem though
14:53:05 <Anarchokawaii> cause it is resetting the pointer back to 0
14:53:14 <Taneb> Anarchokawaii, the pointer is never reset
14:53:24 <Taneb> The only thing that can change the pointer are < and >
14:53:31 <Anarchokawaii> i'm saying if it Taneb
14:53:35 <Anarchokawaii> *if it did
14:58:11 <ais523> Anarchokawaii: how do you write a program to reverse a string in 8-bit wrapping BF in which, just before the first iteration of each loop, the pointer is reset to the left end of hte tape?
14:59:15 <Anarchokawaii> like i said do something like this [>>everything in between here<<]]
14:59:40 <ais523> Anarchokawaii: that can only access the first three elements of the tape
14:59:47 <ais523> that doesn't let you store the entire string to reverse
14:59:49 <Anarchokawaii> ais523
14:59:59 <ais523> because you only have 24 bits of storage and the string might be longer
15:00:11 <ais523> I think it might be possible but it'll be very complex and probably involve modelling a minsky machine
15:00:23 <ais523> (note that I said "8-bit wrapping" on purpose, it's easy otherwise)
15:00:54 <Anarchokawaii> if you want more elements do it like this then [>>>>>>>>>>>everything in between here<<<<<<<<<<<]
15:01:03 <ais523> Anarchokawaii: you need to be able to handle a string of /any/ length
15:01:23 <ais523> if you can only access finite memory your language isn't Turing-complete
15:09:02 -!- AnotherTest has joined.
15:27:57 <Taneb> I've written up a description of my latest esolang, COMPLEX, on my esolangs page: https://runciman.hacksoc.org/~taneb/esolangs.html
15:29:02 -!- J_Arcane has quit (Ping timeout: 244 seconds).
15:29:06 <ais523> Taneb: COMPLEX is basically a Befunge-98 subset :-)
15:30:28 <Taneb> ais523, in some ways
15:30:40 <Taneb> However, I think it does variables differently
15:31:32 <ais523> indeed
15:33:08 <Taneb> I'm fairly sure that at least in my implementation (not public, I'm afraid) it's possible to emulate an arbitrary minsky machine
15:34:04 <ais523> why would your implementation be any more capable of that than other people's?
15:34:20 <Taneb> I'm using unbounded integers
15:34:31 <ais523> ah right
15:34:53 <Taneb> The language is intended to be underspecified in that regard
15:37:08 <ais523> hmm, now I'm wondering about a language that's intentionally underspecified in almost every regard
15:37:13 <ais523> TURKEY BOMB is like that apart from data types
15:39:41 -!- zadock has quit (Quit: Leaving).
15:41:46 -!- adu has joined.
15:43:59 -!- adu has quit (Client Quit).
16:09:11 -!- copumpkin has joined.
16:38:46 -!- bb010g has quit (Quit: Connection closed for inactivity).
16:39:37 -!- bender| has quit (Ping timeout: 240 seconds).
16:41:07 <zzo38> I have fixed some serious bugs in the JavaScript RDF parser; it seems to work properly now
17:09:53 -!- lynn_ has joined.
17:13:23 -!- lambda-11235 has joined.
17:17:05 -!- lynn_ has changed nick to lynn.
17:22:34 -!- tromp_ has quit (Remote host closed the connection).
17:31:22 -!- Vorpal has quit (Quit: ZNC - http://znc.sourceforge.net).
17:33:57 -!- Vorpal has joined.
17:33:58 -!- Vorpal has quit (Changing host).
17:33:58 -!- Vorpal has joined.
17:41:50 -!- lynn has quit (Quit: Leaving).
18:23:09 -!- tromp_ has joined.
18:25:34 -!- EgoBot has quit (*.net *.split).
18:25:34 -!- quintopia has quit (*.net *.split).
18:25:34 -!- APic has quit (*.net *.split).
18:25:35 -!- prooftechnique has quit (*.net *.split).
18:25:35 -!- aloril has quit (*.net *.split).
18:25:35 -!- tswett has quit (*.net *.split).
18:25:35 -!- clog has quit (*.net *.split).
18:25:40 -!- Warrigal has joined.
18:25:43 -!- quintopia has joined.
18:25:44 -!- EgoBot has joined.
18:25:44 -!- clog has joined.
18:25:46 -!- prooftechnique has joined.
18:26:04 -!- APic has joined.
18:26:57 -!- aloril has joined.
18:27:21 -!- Sprocklem has quit (*.net *.split).
18:27:21 -!- ^v has quit (*.net *.split).
18:27:22 -!- int-e has quit (*.net *.split).
18:27:23 -!- sebbu has quit (*.net *.split).
18:27:24 -!- jix has quit (*.net *.split).
18:27:27 -!- int-e has joined.
18:27:29 -!- jix_ has joined.
18:27:32 -!- ^v has joined.
18:27:33 -!- tromp_ has quit (Ping timeout: 240 seconds).
18:27:36 -!- Sprocklem has joined.
18:27:48 -!- sebbu has joined.
18:28:25 -!- pdxleif_ has changed nick to pdxleif.
18:30:59 -!- earendel has quit (Ping timeout: 240 seconds).
18:32:36 <zzo38> Partially I made the JavaScript Xlib working. Now you can write: var w=yield X.createWindow("TestWindow",100,300,0); console.log(w.XID); w.setCursor(X.cursor.crosshair);
18:33:45 <b_jonas> zzo38: nice
18:33:49 -!- MoALTz_ has quit (Quit: Leaving).
18:33:53 -!- Phantom_Hoover has joined.
18:33:54 -!- MoALTz has quit (Quit: Leaving).
18:36:39 -!- Elronnd has quit (Quit: Let's jump!).
18:37:31 -!- gde33 has joined.
18:37:47 -!- Elronnd has joined.
18:40:19 -!- Elronnd has quit (Client Quit).
18:40:57 -!- Treio has joined.
18:41:20 -!- Elronnd has joined.
18:41:38 -!- earendel has joined.
18:47:54 -!- MoALTz has joined.
18:53:06 -!- lynn has joined.
19:10:21 -!- ais523 has quit.
19:13:33 -!- Reece` has joined.
19:22:18 -!- Treio has quit (Quit: Leaving).
19:23:25 -!- Treio has joined.
19:24:23 -!- tromp has quit (Read error: Connection reset by peer).
19:24:55 -!- tromp has joined.
19:30:32 <zzo38> I would also now to have to add events, drawing pictures and texts, loading pictures, resources, etc
19:44:25 -!- Reece` has quit (Read error: Connection reset by peer).
19:46:37 -!- Reece` has joined.
19:51:58 <zzo38> I got keyboard events working now
19:52:39 -!- Reece` has quit (Quit: Leaving).
19:58:23 <zzo38> "The creation of XComposeStatus structures is implementation-dependent; a portable program must pass NULL for this argument." Then how are you supposed to do it? (Currently my program will just ignore compose)
20:01:34 -!- mihow has joined.
20:01:59 -!- Anarchokawaii has quit (Ping timeout: 240 seconds).
20:11:00 -!- MoALTz has quit (Quit: Leaving).
20:16:53 -!- Treio has quit (Quit: Leaving).
20:30:07 -!- MDude has joined.
20:31:02 <HackEgo> [wiki] [[Tome]] https://esolangs.org/w/index.php?diff=46411&oldid=46240 * MDude * (+28) creating category for programming languages which resemble natural languages
20:31:15 -!- hppavilion[2] has joined.
20:33:22 <HackEgo> [wiki] [[ORK]] https://esolangs.org/w/index.php?diff=46412&oldid=20087 * MDude * (+27)
20:40:40 <HackEgo> [wiki] [[Category:Pseudonatural]] N https://esolangs.org/w/index.php?oldid=46413 * MDude * (+443) Created page with "A Pseudonatural language is one that tends to produce code which resembles a natural language in syntax. Such a lanugage may or may not have semantics which actually correspon..."
20:55:55 -!- Treio has joined.
21:15:16 -!- Alcest has joined.
21:15:40 -!- Alcest has quit (K-Lined).
21:24:01 -!- tromp_ has joined.
21:28:12 -!- tromp_ has quit (Ping timeout: 250 seconds).
21:31:16 -!- jaboja has joined.
21:44:08 -!- J_Arcane has joined.
22:06:15 <zzo38> I now have found a "Header Control" extension for Firefox, which allows to set individually what language you want per each site, as well as to change the user-agent header and change how referer header are sent per each site
22:08:05 <izabera> !bf ,.|x
22:08:06 <EgoBot> No output.
22:08:14 <izabera> !bf ,.!x
22:08:14 <EgoBot> No output.
22:08:21 <izabera> ^bf ,.!x
22:08:21 <fungot> x
22:08:50 <izabera> ^bf >>>,[>,]<[[<]<<+>>>+[>]<-]<.<.!123
22:08:50 <fungot> 2d
22:08:55 <izabera> where is d from?
22:09:16 <izabera> i'm just trying to move that 3 into the first cell
22:09:50 <izabera> ah i see...
22:10:14 <izabera> ^bf >>>,[>,]<[[<]<<+>>>>[>]<-]<.<.!123
22:10:14 <fungot> 21
22:10:18 <izabera> good
22:10:21 <hppavilion[2]> izabera: 21.
22:10:38 <izabera> 21. ?
22:10:46 <hppavilion[2]> izabera: Yes.
22:11:06 <izabera> please clarify?
22:11:09 -!- jaboja has quit (Read error: Connection reset by peer).
22:11:38 <fizzie> `! c printf("%c", '1' + '3');
22:11:42 -!- jaboja has joined.
22:11:42 <hppavilion[2]> izabera: nu.
22:11:45 <HackEgo> d
22:11:46 <fizzie> I didn't even look at the code, just guessed.
22:12:08 <izabera> fizzie: that's.... just blind luck
22:12:11 <izabera> <.<
22:13:01 <fizzie> Well, I mean, you know it must be even because it's 'd', and you can't sum two out of 1, 2 and 3 and get even except with 1 and 3.
22:13:55 <fizzie> And of course lowercase is also about double a number, so the magnitude checks out.
22:14:08 <izabera> your luck is impressive
22:14:55 <hppavilion[2]> Hrm.
22:15:02 <hppavilion[2]> What should I do with Prolog?
22:15:10 <fizzie> No.
22:15:18 <fizzie> (That's a Prolog joke.)
22:15:32 <hppavilion[2]> fizzie: Luuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuulz
22:15:36 <fizzie> There's a better one, but I forget it.
22:16:09 <hppavilion[2]> fizzie: Of course, I do GNU PROLOG, so it's actually "no."
22:17:09 <fizzie> I've only done SWI-Prolog, although I don't think it was a "No." either.
22:18:37 <fizzie> People have said 'no' on this channel too much, I can't isolate the Prolog jokes.
22:19:50 -!- lleu has joined.
22:28:33 -!- Treio has quit (Quit: Leaving).
22:28:37 -!- spiette has quit (Quit: :qa!).
22:34:52 <izabera> www.loser.com
22:40:16 -!- tromp_ has joined.
22:41:26 -!- Lord_of_Life has quit (Excess Flood).
22:41:36 -!- Lord_of_Life has joined.
22:42:48 -!- MoALTz has joined.
22:42:56 <hppavilion[2]> izabera: ha
22:44:33 -!- tromp_ has quit (Ping timeout: 240 seconds).
22:49:42 <int-e> empty airports are creepy
22:50:15 <int-e> @metar MUC
22:50:34 <int-e> oh wait, 4 letters...
22:50:54 <int-e> @metar EDDM
22:50:55 <lambdabot> EDDM 192220Z 24011KT CAVOK 01/M02 Q1023 NOSIG
22:56:40 <Elronnd> Speaking of airports, a few weeks ago I was flying
22:57:04 <Elronnd> went through the long line, one I was on the plane, I realized that I had been randomly chosen for pre-check or whatever it's called
23:00:19 <int-e> (it's midnight; the next flight leaves in 5 hours or so)
23:02:22 <Elronnd> Why are you at the airport *5* hours before it leaves?
23:03:09 <izabera> chances are he just lost his plane
23:03:20 <izabera> flight?
23:03:21 <izabera> yeah flight
23:03:25 <izabera> not plane
23:10:37 <int-e> no, I didn't find a good overnight connection from innsbruck to munich
23:17:36 <int-e> and I'm too cheap to book a hotel room for 5 hours :)
23:23:58 -!- tswettsh has joined.
23:24:03 <tswettsh> Hey there.
23:24:09 <tswettsh> So, here's a math problem.
23:24:15 <tswettsh> The "Swiss sorting algorithm" problem.
23:24:46 <tswettsh> You're organizing a tournament with n players. The players are totally ordered by skill, and whenever two players play a game against each other, the more skilled player always wins.
23:25:11 <tswettsh> Your goal is to find the correct ranking of all the players.
23:25:46 <tswettsh> In each round, each player can only play one game, against one other player.
23:25:58 <tswettsh> The pairings for each round can depend on the results of the previous round.
23:25:58 <Taneb> But there can be many games running in each round?
23:26:14 <tswettsh> Yes, any number of games can happen concurrently as long as no two of them involve the same player.
23:26:34 <tswettsh> What's the minimum number of rounds required in order to guarantee that you can be successful?
23:26:53 <tswettsh> For n = 0 or 1, the answer is trivially 0. For n = 2, it's trivially 1.
23:27:01 <int-e> how close would a minimum depth sorting network be to the optimum?
23:27:57 <tswettsh> For n = 3, it's trivial that 3 rounds will suffice, because that will allow you to perform every possible comparison. It's not too hard to see that 3 rounds are also required.
23:28:29 <tswettsh> For n = 4, 3 rounds will still suffice.
23:28:37 -!- AnotherTest has quit (Quit: ZNC - http://znc.in).
23:29:02 <izabera> why is it called swiss sorting algorithm?
23:29:17 <tswettsh> Because you're sorting the players by having them participate in a Swiss tournament.
23:30:56 <tswettsh> So, how about for n = 5?
23:31:08 <tswettsh> There will be two games in each round.
23:31:10 <int-e> anyway, need to preserve battery... didn't see any power outlets... that's something I didn't plan for.
23:31:37 <tswettsh> After round one, the players can be designated W1 and L1 (winner and loser of the first game), W2 and L2, and B (the player who didn't play).
23:32:51 <tswettsh> There are effectively two reasonable-sounding options for round 2: W1 plays W2, L1 plays L2, and B doesn't play; or W1 plays B, L1 plays L2, and W2 doesn't play.
23:37:23 <tswettsh> There are also effectively two unreasonable-sounding options. They're the above with W2 and L2 swapped.
23:42:04 <tswettsh> I think the best-sounding option for round 2 is W1-B, L1-L2, W2 bye. Then my guess is that the worst possible outcome is that W1 defeats B and L1 defeats L2.
23:44:18 <tswettsh> At this point, the only thing we know about B is that W1 > B, and the only thing we know about W2 is that W2 > L2. We also know that W1 > L1 > L2.
23:45:58 <tswettsh> So we've identified the best player, W1, and the worst player, L2; there is no point in having these players play any more games. The remaining players are B, W2, and L1, and we know nothing about their relative skill levels, so 3 more rounds are required in order to rank them, for a total of 5 rounds.
23:46:18 <tswettsh> It's trivial that 5 rounds are sufficient, because that's enough to play out every possible pairing.
23:49:18 -!- p34k has quit.
23:49:44 <tswettsh> What if in round 2, we instead choose W1-W2, L1-L2, B bye? Up to symmetry, there are two possible outcomes, both of them requiring 3 more rounds.
23:50:32 <tswettsh> One outcome is W1 > W2 and L1 > L2. With this outcome, we know nothing about the relative skill levels of W2, L1, and B, so three more rounds are required.
23:51:28 <tswettsh> The other outcome is W1 > W2 > L2 > L1. Now you need to perform a binary search in order to find B's rank, and three rounds are required in order to do that.
23:52:06 <tswettsh> Let's investigate the two unreasonable-sounding options.
23:53:22 <tswettsh> W1-L2, W2-L1, B bye. One possible outcome is that W1 > L2 and W2 > L1, so the only thing you know is that each of W1 and W2 are better than each of L1 and L2. Strictly worse than knowing W1 > W2 > L2 > L1. At least three rounds required.
23:56:56 <tswettsh> W1-B, W2-L1, L2 bye. A possible outcome is that W1 > B and W2 > L1. Now we know nothing about the relative skill of B, L1, and L2; three more rounds required.
23:57:04 <tswettsh> So, for n = 5, 5 rounds are necessary and sufficient.
23:57:49 <tswettsh> It follows that for n = 6, 5 rounds are necessary and sufficient. (Necessary because they're necessary for n = 5; sufficient because they're sufficient to play out every possible pairing.)
23:58:13 <tswettsh> Hey, I wonder if I could have made an argument from information here.
23:59:26 <tswettsh> There are 120 possible orderings of 5 players. Each round gives you 2 bits of information. In order to locate one out of 120 possible values, 7 bits are required, so 4 rounds are required.
23:59:37 <tswettsh> So that particular argument isn't strong enough.
←2016-02-18 2016-02-19 2016-02-20→ ↑2016 ↑all