←2017-07-21 2017-07-22 2017-07-23→ ↑2017 ↑all
00:11:39 -!- tswett has joined.
00:17:55 -!- sleffy has joined.
00:23:36 -!- ais523 has quit (Ping timeout: 260 seconds).
00:23:47 -!- ais523 has joined.
01:18:28 -!- augur has joined.
01:19:47 -!- oerjan has joined.
01:21:09 -!- augur has quit (Remote host closed the connection).
01:21:23 -!- augur has joined.
01:26:41 -!- sleffy has quit (Ping timeout: 248 seconds).
01:38:55 <oerjan> `cat bin/rot13_stdin
01:38:56 <HackEgo> ​#!/usr/bin/env python \ \ import re, sys, unicodedata as U \ def tr(c): \ m = re.match(r'(.*\bLATIN\b.*\bLETTER )([A-Z])\b(.*)', U.name(c, '')) \ if m: \ p, q, r = m.groups() \ n = ord(q) - ord('A') \ try: \ return U.lookup(p + chr(ord('A') + (n + 13) % 26) + r) \ except KeyError: \
01:39:04 <oerjan> `cat bin/rot13
01:39:05 <HackEgo> print_args_or_input "$@" | rot13_stdin
01:39:05 -!- tromp has joined.
01:39:23 <oerjan> ic
01:39:39 <oerjan> `` ls bin/*input
01:39:39 <HackEgo> bin/print_args_or_input \ bin/shebang_args_or_input
01:40:12 <oerjan> `` grep -l -r shebang_a
01:40:20 <oerjan> `` grep -l -r shebang_a bin
01:40:21 <HackEgo> bin/h \ bin/rainwords \ bin/rainbow.old \ bin/zalgo
01:40:35 <oerjan> `cat bin/rainwords
01:40:35 <HackEgo> ​#!/hackenv/bin/shebang_args_or_input python \ import random; w=[l.split() for l in open("/dev/stdin").read().split("\n")]; r=[4,7,8,9,2,6,13]; print "\n".join((lambda s: " ".join(chr(3) + "%02d"%r[(i+s)%len(r)] + l[i] for i in range(len(l))))(random.randrange(0, len(r))) for l in w)
01:40:43 <HackEgo> No output.
01:41:22 <oerjan> `` mv bin/rot13{_stdin,}
01:41:24 <HackEgo> No output.
01:41:44 <oerjan> `sled bin/rot13//1c#!/hackenv/bin/shebang_args_or_input python
01:41:45 <HackEgo> bin/rot13//#!/hackenv/bin/shebang_args_or_input python \ \ import re, sys, unicodedata as U \ def tr(c): \ m = re.match(r'(.*\bLATIN\b.*\bLETTER )([A-Z])\b(.*)', U.name(c, '')) \ if m: \ p, q, r = m.groups() \ n = ord(q) - ord('A') \ try: \ return U.lookup(p + chr(ord('A') + (n + 13) % 26) + r) \
01:42:05 <oerjan> `rot13 Ørjan testing...
01:42:06 <HackEgo> ​Ƀewna grfgvat...
01:42:36 <oerjan> `` echo sheesh 1 rot13
01:42:37 <HackEgo> sheesh 1 rot13
01:42:43 <oerjan> `` echo sheesh | rot13
01:42:43 <HackEgo> furrfu
01:43:26 <oerjan> Jafet: ^
01:43:27 -!- tromp has quit (Ping timeout: 240 seconds).
01:44:09 <oerjan> `? print_args_or_input
01:44:10 <HackEgo> print_args_or_input? ¯\(°​_o)/¯
01:45:45 <oerjan> `learn print_args_or_input Is a utility command that makes it easy to create a shell script that can be used either as a pipe or directly as a HackEgo command. Use as print_args_or_input "$@" | yourShellCode . See also shebang_args_or_input.
01:45:47 <HackEgo> Learned 'print_args_or_input': print_args_or_input Is a utility command that makes it easy to create a shell script that can be used either as a pipe or directly as a HackEgo command. Use as print_args_or_input "$@" | yourShellCode . See also shebang_args_or_input.
01:46:28 <oerjan> `slwd print_args_or_input//s,Is,is,
01:46:30 <HackEgo> print_args_or_input//print_args_or_input is a utility command that makes it easy to create a shell script that can be used either as a pipe or directly as a HackEgo command. Use as print_args_or_input "$@" | yourShellCode . See also shebang_args_or_input.
01:47:15 <shachaf> oerjan: Do you think mkx should be adjusted to allow for newlines?
01:49:14 <oerjan> `slwd print_args_or_input//s, , ,
01:49:16 <HackEgo> print_args_or_input//print_args_or_input is a utility command that makes it easy to create a shell script that can be used either as a pipe or directly as a HackEgo command. Use as print_args_or_input "$@" | yourShellCode . See also shebang_args_or_input.
01:51:39 <oerjan> `learn shebang_args_or_input is similar to print_args_or_input, but for other scripting languages like perl or python. E.g. if you have a python script that pipes stdin, replace the usual shebang line by #!/hackenv/bin/shebang_args_or_input python .
01:51:50 <HackEgo> Learned 'shebang_args_or_input': shebang_args_or_input is similar to print_args_or_input, but for other scripting languages like perl or python. E.g. if you have a python script that pipes stdin, replace the usual shebang line by #!/hackenv/bin/shebang_args_or_input python .
01:53:43 <shachaf> "python ."? but the current directory isn't a python program tdnh
01:53:56 <oerjan> *sigh*
01:54:49 <oerjan> `learn shebang_args_or_input is similar to print_args_or_input, but for other scripting languages like perl or python. E.g. if you have a python script that pipes stdin, replace the usual shebang line by "#!/hackenv/bin/shebang_args_or_input python".
01:54:51 <HackEgo> Relearned 'shebang_args_or_input': shebang_args_or_input is similar to print_args_or_input, but for other scripting languages like perl or python. E.g. if you have a python script that pipes stdin, replace the usual shebang line by "#!/hackenv/bin/shebang_args_or_input python".
01:56:06 <oerjan> `slwd print_args_or_input//s,Use as ,&",;s,Code ,Code",
01:56:07 <HackEgo> print_args_or_input//print_args_or_input is a utility command that makes it easy to create a shell script that can be used either as a pipe or directly as a HackEgo command. Use as "print_args_or_input "$@" | yourShellCode". See also shebang_args_or_input.
01:56:12 <oerjan> oops
01:56:12 -!- doesthiswork has joined.
01:56:18 <oerjan> `revert
01:56:19 <HackEgo> Done.
01:56:25 <doesthiswork> much better
01:56:31 <oerjan> `slwd print_args_or_input//s,Use as ,&',;s,Code ,Code',
01:56:33 <HackEgo> print_args_or_input//print_args_or_input is a utility command that makes it easy to create a shell script that can be used either as a pipe or directly as a HackEgo command. Use as 'print_args_or_input "$@" | yourShellCode'. See also shebang_args_or_input.
01:58:51 -!- deep-book-gk_ has joined.
01:59:31 -!- deep-book-gk_ has left.
02:05:31 -!- idris-bot has quit (Quit: Terminated).
02:06:02 -!- Melvar has quit (Quit: thunderstorm).
02:11:24 -!- tromp has joined.
02:11:33 -!- augur has quit (Remote host closed the connection).
02:15:35 -!- tromp has quit (Ping timeout: 240 seconds).
02:28:48 <oerjan> `rot13 Ä
02:28:49 <HackEgo>
02:30:13 <shachaf> `rot13 ø
02:30:14 <HackEgo> ​ƀ
02:30:21 <shachaf> `rot13 Ø
02:30:22 <HackEgo> ​Ƀ
02:30:31 <shachaf> `url bin/rot13
02:30:32 <HackEgo> https://hackego.esolangs.org/fshg/index.cgi/file/tip/bin/rot13
02:30:46 <oerjan> `rot13 ƀ
02:30:47 <HackEgo> ​ø
02:30:51 <shachaf> Jafet: tdh
02:33:33 <\oren\> `rot13 αβγδεζηθικλμνξοπρςστυφχψωϊϋόύώ
02:33:34 <HackEgo> ​αβγδεζηθικλμνξοπρςστυφχψωϊϋόύώ
02:33:38 <\oren\> bah
02:45:44 <doesthiswork> that's not rotated at all
02:46:37 <alercah> `rot12 αβγδεζηθικλμνξοπρςστυφχψωϊϋόύώ
02:46:37 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: rot12: not found
02:52:48 <oerjan> Jafet said something about it rotating the "LATIN" letters
02:53:42 -!- sebbu has quit (Read error: Connection reset by peer).
02:54:00 <oerjan> by decomposing iiuc, so it won't do anything to something that doesn't contain a latin letter part.
02:54:11 -!- sebbu has joined.
03:05:31 -!- tromp has joined.
03:09:06 -!- ais523 has quit (Remote host closed the connection).
03:10:15 -!- ais523 has joined.
03:10:17 -!- tromp has quit (Ping timeout: 268 seconds).
03:14:17 -!- ais523 has quit (Remote host closed the connection).
03:15:26 -!- ais523 has joined.
03:17:16 <ais523> `rot13 Ŀ
03:17:17 <HackEgo> Traceback (most recent call last): \ File "/hackenv/bin/rot13", line 28, in <module> \ sys.stdout.write(tr2(c).encode('utf8')) \ File "/hackenv/bin/rot13", line 20, in tr2 \ cs = [unichr(int(x, 16)) for x in U.decomposition(c).split()] \ ValueError: invalid literal for int() with base 16: '<compat>'
03:18:07 <ais523> huh, that's one of the over-dotted letters that does rot13 correctly, into Ẏ
03:22:12 <ais523> I was planning to try one which doesn't have a composed equivalent, next
03:22:24 <ais523> because you don't have a full alphabet of dotted letters (just most of one)
03:23:33 <quintopia> are you going to fix it?
03:24:17 <oerjan> `unidecode Ŀ
03:24:18 <HackEgo> ​[U+013F LATIN CAPITAL LETTER L WITH MIDDLE DOT]
03:25:06 <oerjan> is that letter newly added or something
03:25:35 <oerjan> (because the python library is outdated)
03:26:11 <oerjan> hm wait it cannot be because that response is also from python iirc
03:27:07 <oerjan> `` ls share/un*
03:27:08 <HackEgo> share/unic.txt \ share/units.dat
03:27:13 <oerjan> `` ls share/Un*
03:27:13 <HackEgo> share/UnicodeData.txt
03:27:57 <oerjan> `` mv share/UnicodeData.txt u; unidecode Ŀ; mv u share/UnicodeData.txt
03:27:58 <HackEgo> ​[U+013F LATIN CAPITAL LETTER L WITH MIDDLE DOT]
03:30:05 <doesthiswork> `rot13 Ẏ
03:30:05 <HackEgo>
03:31:21 <doesthiswork> so there is not middle dot Y
03:31:57 <doesthiswork> all this non-orthagonality is frustrating
03:33:55 -!- `^_^v has joined.
03:39:08 -!- `^_^v has quit (Quit: This computer has gone to sleep).
03:47:19 <doesthiswork> like dïäërës̈ïs̈
03:59:42 -!- tromp has joined.
04:04:20 -!- tromp has quit (Ping timeout: 260 seconds).
04:05:18 -!- augur has joined.
04:10:46 -!- augur has quit (Remote host closed the connection).
04:18:59 <\oren\> `unidecode Ẏ
04:18:59 <HackEgo> ​[U+1E8E LATIN CAPITAL LETTER Y WITH DOT ABOVE]
04:19:10 <\oren\> that's a dot above, not a middle dot
04:31:07 -!- augur has joined.
04:37:03 -!- augur has quit (Remote host closed the connection).
04:37:57 <doesthiswork> `rot13 Ỵ
04:37:58 <HackEgo> ​Ḷ
04:38:17 <Jafet> `` python -c $'import unicodedata as U\nprint U.decomposition(u"\\u013f")'
04:38:18 <HackEgo> ​<compat> 004C 00B7
04:38:55 <Jafet> ØKÄẎ
04:39:29 <oerjan> `rot13 Ø
04:39:29 <HackEgo> ​Ƀ
04:39:36 <oerjan> `unidecode Ø
04:39:37 <HackEgo> ​[U+00D8 LATIN CAPITAL LETTER O WITH STROKE]
04:39:54 <doesthiswork> better go to the docter's
04:39:58 <oerjan> `` python -c $'import unicodedata as U\nprint U.decomposition(u"\\u00d8")'
04:39:59 <HackEgo> No output.
04:40:12 <oerjan> hum?
04:40:36 <doesthiswork> a stroke is very bad for your health
04:40:53 <oerjan> `` python -c $'import unicodedata as U\nprint U.decomposition(u"\\u00d8")'
04:40:54 <HackEgo> No output.
04:41:35 <Jafet> what's up doctørjan
04:41:43 <oerjan> why doesn't that decompose
04:42:05 <oerjan> `unidecode Ƀ
04:42:05 <HackEgo> ​[U+0243 LATIN CAPITAL LETTER B WITH STROKE]
04:42:11 <oerjan> `rot13 Ƀ
04:42:11 <HackEgo> ​Ø
04:42:24 <Jafet> the STROKE OVERLAY isn't diagonal
04:42:27 <oerjan> `` python -c $'import unicodedata as U\nprint U.decomposition(u"\\u0243")'
04:42:27 <HackEgo> No output.
04:42:37 <doesthiswork> it doesn't even show up in my font
04:43:29 <oerjan> i guess it must use a different method to rot13 that then
04:43:44 <HackEgo> [wiki] [[User:Qwertyu63]] https://esolangs.org/w/index.php?diff=52496&oldid=52488 * Qwertyu63 * (+545)
04:44:06 <Jafet> `unidecode ø̷o
04:44:07 <HackEgo> ​[U+00F8 LATIN SMALL LETTER O WITH STROKE] [U+0337 COMBINING SHORT SOLIDUS OVERLAY] [U+006F LATIN SMALL LETTER O]
04:44:19 <Jafet> why doesn't it decompose to that
04:47:48 <Jafet> `unidecode ƀ̵b̷b
04:47:48 <HackEgo> ​[U+0180 LATIN SMALL LETTER B WITH STROKE] [U+0335 COMBINING SHORT STROKE OVERLAY] [U+0062 LATIN SMALL LETTER B] [U+0337 COMBINING SHORT SOLIDUS OVERLAY] [U+0062 LATIN SMALL LETTER B]
04:54:00 -!- tromp has joined.
04:58:27 -!- tromp has quit (Ping timeout: 240 seconds).
05:03:38 <HackEgo> [wiki] [[User:Qwertyu63]] https://esolangs.org/w/index.php?diff=52497&oldid=52496 * Qwertyu63 * (+500)
05:06:42 <HackEgo> [wiki] [[The Great Spell]] N https://esolangs.org/w/index.php?oldid=52498 * Qwertyu63 * (+6642) Created page with "The Great Spell is an esolang in which you must create a powerful magic spell to create the effect you desire. To do this, you can create smaller spells with simpler effects t..."
05:07:24 <oerjan> Jafet: combiners go after the base letter hth
05:07:36 <oerjan> (although there are fonts that do this wrong)
05:07:49 <HackEgo> [wiki] [[The Great Spell]] https://esolangs.org/w/index.php?diff=52499&oldid=52498 * Qwertyu63 * (-366)
05:08:23 <HackEgo> [wiki] [[The Great Spell]] https://esolangs.org/w/index.php?diff=52500&oldid=52499 * Qwertyu63 * (-7)
05:10:01 -!- doesthiswork has quit (Quit: Leaving.).
05:10:31 -!- doesthiswork has joined.
05:13:11 <\oren\> doesthiswork: you need a better font
05:13:39 <\oren\> speaking of which, I should work more on my font
05:16:52 -!- oerjan has quit (Quit: Nite).
05:41:55 -!- doesthiswork has quit (Quit: Leaving.).
05:48:10 -!- tromp has joined.
05:52:27 -!- tromp has quit (Ping timeout: 240 seconds).
05:59:07 <zzo38> Do you know the working of Italian compass directions? It seems somewhat more logical than the modern method. Instead of "N by E", you have something more like "N by NE" ("Quarto di Tramontana verso Greco", where "Tramontana" is north and "Greco" is northeast)
06:08:30 -!- Bowserinator has quit (Ping timeout: 268 seconds).
06:16:36 <Jafet> tramontana verso maestro
06:20:03 <Jafet> hmph, it was actually titled “intrigo internazionale”
06:32:58 -!- augur has joined.
06:41:21 -!- ais523 has quit (Ping timeout: 248 seconds).
06:42:18 -!- tromp has joined.
06:47:12 -!- tromp has quit (Ping timeout: 260 seconds).
07:01:12 -!- augur has quit (Remote host closed the connection).
07:05:22 -!- augur has joined.
07:18:02 -!- tromp has joined.
07:39:23 -!- augur has quit (Remote host closed the connection).
08:03:25 -!- augur has joined.
08:07:56 -!- augur has quit (Ping timeout: 260 seconds).
08:26:47 -!- sdhand has quit (Excess Flood).
08:26:56 -!- sdhand has joined.
08:27:20 -!- sdhand has changed nick to Guest19007.
08:58:44 -!- AnotherTest has joined.
09:24:23 -!- Melvar has joined.
09:27:52 -!- Guest19007 has changed nick to sdhand.
09:28:02 -!- sdhand has quit (Changing host).
09:28:02 -!- sdhand has joined.
09:55:36 -!- xkapastel has quit (Quit: Connection closed for inactivity).
10:04:43 -!- imode has quit (Ping timeout: 255 seconds).
10:08:40 -!- idris-bot has joined.
11:01:49 -!- LKoen has joined.
11:48:23 -!- `^_^v has joined.
11:49:46 -!- `^_^v has quit (Client Quit).
11:58:35 -!- Slereah has joined.
12:00:27 -!- Slereah__ has quit (Ping timeout: 260 seconds).
13:04:38 -!- erkin has joined.
13:40:26 -!- boily has joined.
13:49:19 -!- `^_^v has joined.
13:58:35 <HackEgo> [wiki] [[Special:Log/newusers]] create * Enedil * New user account
14:00:29 -!- doesthiswork has joined.
14:07:57 <HackEgo> [wiki] [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=52501&oldid=52492 * Enedil * (+140) Introducing myself
14:08:26 <HackEgo> [wiki] [[Systemf]] N https://esolangs.org/w/index.php?oldid=52502 * Enedil * (+1483) Crafted the article
14:11:29 <boily> `w
14:11:31 <HackEgo> mroman//mroman is a leading artist in password security (SFW). He also likes black madness. He can design password hashes that are worse than the identity function. He invented the identity function. He's also an artist in unconventional warfare.
14:13:51 <int-e> @google "lossy encryption"
14:13:52 <lambdabot> https://eprint.iacr.org/2009/088.pdf
14:23:30 -!- `^_^v has quit (Quit: This computer has gone to sleep).
15:02:47 -!- doesthiswork has quit (Quit: Leaving.).
15:07:57 -!- doesthiswork has joined.
15:33:45 -!- ais523 has joined.
15:44:37 <zzo38> I had idea designing an alternative card loading format for MIX that can work regardless of byte size, by specifying on the card which fields the number is going to be loaded into.
15:46:23 <zzo38> It only has to be valid characters punched into the card and does not have to resemble the format defined in the book at all, and the special case for the final transfer card also is not necessary you can just have a normal card that overwrites part of the loading routine.
16:02:21 -!- boily has quit (Ping timeout: 268 seconds).
16:02:50 -!- boily has joined.
16:18:38 -!- ais523 has quit.
16:49:30 -!- PinealGlandOptic has quit (Quit: leaving).
16:55:11 -!- ais523 has joined.
17:01:40 -!- Slereah__ has joined.
17:02:57 -!- Slereah has quit (Ping timeout: 240 seconds).
17:05:29 -!- Slereah has joined.
17:06:05 -!- Slereah__ has quit (Ping timeout: 240 seconds).
17:07:53 -!- xkapastel has joined.
17:16:39 -!- boily has quit (Quit: MOWING CHICKEN).
17:17:29 -!- `^_^v has joined.
17:18:08 -!- Vorpal has quit (Ping timeout: 260 seconds).
17:25:04 -!- Vorpal has joined.
17:25:04 -!- Vorpal has quit (Changing host).
17:25:04 -!- Vorpal has joined.
17:26:22 -!- `^_^v has quit (Quit: This computer has gone to sleep).
17:27:46 <HackEgo> [wiki] [[BitP]] https://esolangs.org/w/index.php?diff=52503&oldid=52474 * Hydrogenn * (-233)
17:30:46 -!- ais523 has quit (Remote host closed the connection).
17:31:56 -!- ais523 has joined.
17:33:04 -!- ais523 has quit (Remote host closed the connection).
17:42:39 -!- erkin has quit (Quit: Ouch! Got SIGABRT, dying...).
18:11:57 -!- erkin has joined.
18:31:01 -!- imode has joined.
19:01:10 -!- mroman has joined.
19:01:23 <mroman> are brainfuck algorithms for division/multiplication balanced?
19:04:39 <int-e> balanced meaning the < and > even out between [ and corresponding ]?
19:05:37 <mroman> yep
19:05:49 <mroman> [>+>+<<-]
19:05:53 <mroman> I think this is a copy loop
19:05:54 <int-e> If so, it depends on the algorithm; for multiplication, the natural implementation is balanced; for division, I expect that most implementations are unbalanced because a balanced check for 0 is cumbersome.
19:06:09 <mroman> it copies tape[0] to tape[1] and tape[2] while destroying tape[0]
19:07:27 <int-e> [>[>+>+<<-]>[<+>-]<<-] is a multiplication, *a b 0 0 --> *0 b (ab) 0, where * indicates the current pointer.
19:07:35 <int-e> uhm.
19:07:51 <int-e> *a b 0 0 --> *0 b 0 (ab)
19:08:13 <mroman> so it can be compiled as c1 = c0; c2 = c0; c0 = 0
19:08:26 <mroman> (c0 is tape[0] basically)
19:09:43 <mroman> copy without destruction would require another temporary cell.
19:09:52 <mroman> or can you actually copy a cell without killing it?
19:10:04 <int-e> some division code: [->-[>+>]>[+[-<+>]>>>+<]<<<<] *a b 0 0 0 0 [with b>1] --> *0 ? r 0 0 d ... the ? is actually b - r, I think.
19:10:34 <int-e> Well, every loop ends with one cell equal to 0.
19:11:24 <int-e> I don't have any balanced division code, I think. It's possible, but what would be the point... it'll be slower and larger.
19:13:16 <int-e> and of course, most interesting brainfuck code is unbalanced anyway, because that's the only way to access an arbitrary number of cells.
19:17:01 -!- Bowserinator has joined.
19:17:24 -!- Bowserinator has changed nick to Guest35713.
19:42:25 <shachaf> `quote solidity
19:42:26 <HackEgo> 240) <treederwright> enjoy being locked in your matrix of solidity
19:42:38 <shachaf> treederwright was truly a prophet
19:42:52 <shachaf> who could've guessed that in 2017 there'd be an esolang called solidity?
19:43:03 <imode> he sounds fun.
19:43:46 -!- int-e has set topic: infernal maggots | http://esolangs.org/ | logs: http://codu.org/logs/_esoteric/ http://tunes.org/~nef/logs/esoteric/?C=M;O=D | https://www.dropbox.com/s/fyhqyvy3i8oh25m/wisdom.pdf | For bot testing, use #esoteric-blah.
19:47:16 -!- Slereah__ has joined.
19:49:34 -!- Slereah has quit (Ping timeout: 276 seconds).
19:51:28 -!- wob_jonas has joined.
19:51:36 <wob_jonas> "<zzo38> I had idea designing an alternative card loading format for MIX that can work regardless of byte size, by specifying on the card which fields the number is going to be loaded into." =>
19:54:06 <wob_jonas> I don't really see the point of that, since you can just use MIXAL to represent program or data regardless of byte size. Note that the CON pseudo-instruction allows you to write any value to a word split into any fields.
19:54:56 <wob_jonas> And the point of separating assembling and loading is to allow for a very small loader program, thus leading more free memory to the actual program loaded, which is important since MIX machines have few memory. Adding more complicated features to the loader format would defeat that.
19:56:17 <wob_jonas> The object format specified by TAOCP 1 is actually tailored so that it's specifically easy to load directly by a program on the same MIX machine, as opposed to just loaded by an emulator on a larger machine.
19:58:24 <wob_jonas> One addition one may want to add is a slightly modified object format for paper tape, for machines with no punch card reader attached, which isn't specified in vol 1, but would presumably be an exercise in volume 5, were it not so that MIX is obsolete so all editions of that volume will use MMIX instead.
19:58:55 -!- Slereah has joined.
19:59:42 <zzo38> It doesn't say much about paper tape, it seems?
20:01:16 -!- Slereah__ has quit (Ping timeout: 276 seconds).
20:10:40 <wob_jonas> zzo38: yes. there very few remarks about paper tape, including one about the assembly format, but they're not specific enough for me to reconstruct how paper tape is actually used:
20:11:17 <wob_jonas> in particular, I can't even tell what sort of paper tape it's even supposed to use, that is, the 5-bit Baudot-code based tape with shift codes, or the 7-bit ASCII-based paper tape, or anything else.
20:11:44 <APic> Tape ♥
20:12:01 <wob_jonas> Or how line boundaries are handled.
20:13:10 <wob_jonas> The punch card is more obvious, for the book makes it clear that these are 80 column punch cards, and that probably means 80 column 12 row Hollerith punch cards, on which people usually encode data in the traditional punch card encoding that resembles EBCDIC,
20:14:21 <wob_jonas> and indeed the MIX character set seems to be suitable for easy conversion to and from the punch card encoding on a decimal MIX machine, eg. there's a hole between I and J, just like how EBCDIC variants are suitable for conversion to and from punch card encoding variants on 8-bit binary machines.
20:14:47 <wob_jonas> The only reason the MIX character set isn't EBCDIC-based is that EBCDIC requires bytes that are at least 8 bit sized.
20:15:16 <wob_jonas> Also, punch cards are normally used as one fixed-size record/line per card, so the line ending is clear, but paper tape isn't used that way.
20:16:43 <APic> The Knuths pwn.
20:18:26 -!- Slereah__ has joined.
20:18:44 -!- Slereah has quit (Ping timeout: 260 seconds).
20:21:09 <imode> https://ptpb.pw/Zezw so I've been working on something weird. I've been working on encoding nested lists using binary.
20:21:25 <imode> in an attempt to build a sort of "binary lisp". or something.
20:22:47 <imode> the idea works like a turning tarpit with 2 instructions. increment a counter, or decrement a counter. '|' is 'execute' and '*' is 'switch operation'.
20:23:27 <imode> you decode stuff by examining when you switch operations, when you decrement, etc.
20:25:40 <imode> https://ptpb.pw/bAGJ a more detailed readout... all I'm doing here is encoding the text by converting it into a binary string and replacing the 1's with '|*|' and the 0's with '*', stuffing a '*' in between them to indicate a delimiter as well.
20:26:09 -!- augur has joined.
20:27:22 <imode> the <!>s indicate when you switch operations. you can decode a string by starting at whatever indentation level you want, waiting until an operation switch, reading the current indentation level, subtracting it from your base, subtracting one, shift it into a byte, skip the next operation switch, read the current indentation level... etc.
20:27:38 <imode> you could also trivially encode unary in whatever way you wanted.
20:28:14 <imode> in the bracket notation, '*' is really '{}'.
20:28:17 -!- wob_jonas has quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client).
20:43:17 -!- sebbu2 has joined.
20:43:31 <Jafet> oh, the wonderful world of succinct rank/select balanced parentheses data structures
20:46:37 <shachaf> Jafet: whoa whoa whoa, succinct rank/select balanced parentheses data structures?
20:46:54 -!- sebbu has quit (Ping timeout: 255 seconds).
20:47:12 <shachaf> Oh, the thing imode is doing.
20:53:53 <HackEgo> [wiki] [[User:Qwertyu63]] https://esolangs.org/w/index.php?diff=52504&oldid=52497 * Qwertyu63 * (-6649) Replaced content with "Languages I've written:<br /> * Writer and implementer of [[Stack Up]]. * Writer of [[Set]]; article and interpreter by Matheus Avellar. * Writer of [[Emoji-gramming]]. *..."
21:02:17 <imode> Jafet: wot.
21:04:29 <HackEgo> [wiki] [[The Great Spell]] https://esolangs.org/w/index.php?diff=52505&oldid=52500 * Qwertyu63 * (+539)
21:04:44 <imode> so I see there are several papers underlying this.
21:05:05 <APic> Ok
21:05:07 <imode> rank/select based?
21:06:28 <imode> oh wow.
21:07:15 <imode> I think one of the interesting bits of my encoding (pun intended) is that it encodes the empty list as a *, rather than waste two bits for {}.
21:07:33 <Jafet> what does the empty string encode?
21:07:57 <imode> ""? nothing.
21:08:41 <imode> "*" encodes "{}". "***" encodes "{}{}", as the middle "*" acts as a 'delimiter'.
21:08:54 <imode> |***| encodes {{}{}}
21:09:21 <imode> ||*|*|*|| encodes {{{}}{{}}}.
21:10:13 <HackEgo> [wiki] [[The Great Spell]] https://esolangs.org/w/index.php?diff=52506&oldid=52505 * Qwertyu63 * (-442)
21:11:14 <imode> https://ptpb.pw/4Ica/python here's my scratch python file.
21:14:27 <imode> https://ptpb.pw/HgXh/python here's a better one that actually generates the output you saw earlier.
21:14:42 -!- hppavilion[1] has joined.
21:15:13 <imode> there's also a 'gather' function that generates all the integers in a certain range, converts them to binary, tests whether the form is valid, tests whether the equivalent naive encoding is valid, and displays some relevant stats.
21:15:35 <imode> was running it for 0 - 2^32 last night. I have a 74M file with every possible form.
21:16:04 <imode> the stats afterward is that my encoding produced 70,715,339 valid forms, while the same binary string encoding '{' and '
21:16:13 <imode> *and '}' produced 13,402,696
21:17:18 <imode> the naive encoding is also always shorter because I'm actually encoding ('{', '*', '}').
21:21:27 <imode> with some special cues you could get that binary encoding down to, well, an actual binary encoding.
21:22:50 <int-e> hmm. {}{} is not valid, right?
21:22:57 <imode> **? it's valid.
21:23:16 <imode> {}{} reduces to **, which is valid.
21:23:41 <int-e> you said ***
21:23:49 <imode> oh! right. my bad.
21:24:08 <int-e> mm.
21:24:09 <imode> {}{} reduces to ***, because that middle '*' acts as a delimiter.
21:24:47 <imode> the first '*' switches the op to decrement, the second to increment, and the third to decrement. you always have to end up at zero by the end.
21:25:57 <imode> although.. hm. if it consists of nothing but state transitions, "**" is a valid form, so you could encode {}{} as "**".
21:27:47 <imode> from here, "**" reduces to "{}", which makes sense because my 'translate' function looks for state transitions. there's nothing to turn the state back to increment, so it just ignores the last '*'.
21:29:17 <HackEgo> [wiki] [[The Great Spell]] https://esolangs.org/w/index.php?diff=52507&oldid=52506 * Qwertyu63 * (+96)
21:31:34 -!- mroman has quit (Quit: Page closed).
21:35:30 <zzo38> Now I made the program to convert a number in degrees into the compass direction (such as "N", "NbE", "NNE", "NEbN", etc), with four, eight, sixteen, or thirty-two points, and you can also alter the abbreviation for "by". You can also convert the angle into quadrant bearing, octant bearing, degrees/arcminutes/arcseconds, astrological signs, sidereal hours, and geographical longitude/latitude.
21:38:56 <zzo38> I don't know if some of the important kind of format may be missing
21:42:21 <int-e> NNEN would be a logical version of NbE :-P
21:43:15 <zzo38> Yes, or "NbNE" a bit similar to the Italian method.
21:48:57 -!- Warrigal_ has joined.
21:52:40 -!- ais523 has joined.
22:02:26 -!- Phantom_Hoover has joined.
22:08:21 <HackEgo> [wiki] [[Emoji-gramming]] https://esolangs.org/w/index.php?diff=52508&oldid=51962 * Qwertyu63 * (-206)
22:19:10 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
22:19:38 -!- Phantom_Hoover has joined.
22:30:12 -!- ais523 has quit (Remote host closed the connection).
22:31:22 -!- ais523 has joined.
22:53:24 * rdococ needs inspiration
22:59:35 <zzo38> The inspiration of what?
23:00:12 <rdococ> idk. esolangs. and other esothings.
23:02:39 <int-e> . o O ( good job on that OCR... for example, "window" became "aiindoai" )
23:07:43 <int-e> http://int-e.eu/~bf3/tmp/ocr.png :-)
23:10:01 <zzo38> Then you will have to reprogram the OCR for that style of fonts I suppose
23:10:51 <int-e> I didn't do the OCR, I guess whatever gog uses to scan game manuals does that automatically.
23:11:02 <int-e> `? aiindoai
23:11:03 <HackEgo> aiindoai? ¯\(°​_o)/¯
23:11:41 <int-e> . o O ( tempting, but shachaf will complain because it's not wisdomy enough: `learn An aiindoai is a badly OCR'd window. )
23:12:33 <zzo38> Can you retype it yourself and then tell them to use your version?
23:12:52 <int-e> Maybe but why would I do that.
23:13:42 <int-e> I'm really just talking about this because "aiindoai" struck me as cute.
23:14:23 <zzo38> OK
23:16:16 -!- AnotherTest has quit (Ping timeout: 276 seconds).
23:16:27 -!- ais523 has quit (Remote host closed the connection).
23:17:11 <shachaf> int-e: Why would shachaf complain?
23:17:37 -!- ais523 has joined.
23:17:44 <int-e> because shachaf always complains
23:18:30 <shachaf> `? shachaf
23:18:31 <HackEgo> Queen Shachaf of the Dawn sprø som selleri and cosplays Nepeta Leijon on weekends. He hates bell peppers with a passion. He doesn't know when to stop asking questions.
23:31:19 <imode> Jafet: thank you for the term succinct datastructure. I have never seen it before and now I have some research to do. :)
23:33:20 -!- PinealGlandOptic has joined.
23:33:23 <imode> never knew that this was a thing. talk about rediscovery.
23:36:35 -!- Warrigal_ has changed nick to tswett_.
23:50:53 -!- LKoen has quit (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”).
23:53:04 -!- propumpkin has changed nick to contrapumpkin.
23:58:56 -!- Phantom__Hoover has joined.
←2017-07-21 2017-07-22 2017-07-23→ ↑2017 ↑all