←2011-08-05 2011-08-06 2011-08-07→ ↑2011 ↑all
00:00:04 <Anvilgames> call your company ' OR ''='
00:00:19 <nooga> Phantom_Hoover: really stupid, interactive webapp
00:00:26 <oerjan> ...no one would bat an eyelid if they found that word in old norse
00:00:32 <nooga> Y combinator is taken
00:00:43 <Vorpal> <oerjan> ånkh mørpørk <-- lol
00:00:49 <Phantom_Hoover> nooga, Z combinator.
00:01:20 <Phantom_Hoover> nooga, alternately, omega combinator.
00:01:56 <Vorpal> Phantom_Hoover, why remove and readd that quote above?
00:01:58 <nooga> oerjan: btw. did You know that my grandfather was norwegian and probably my surname is from kaspersen or something like that? :D
00:02:10 <oerjan> no.
00:02:17 <Phantom_Hoover> Vorpal, I thought it was better without the last line.
00:02:24 <nooga> i found out recently
00:02:24 <Vorpal> ah
00:02:29 <nooga> and this is weird
00:02:37 <Phantom_Hoover> Vorpal, the lack of explanation makes it madder.
00:02:50 -!- variable has quit (Read error: Connection reset by peer).
00:02:53 <Vorpal> Phantom_Hoover, so what metals interest you?
00:02:57 <Vorpal> scandium?
00:03:10 <oerjan> if you say so, Mr. Kaszperzsky
00:03:14 <Phantom_Hoover> Vorpal, the relevant one was rhenium.
00:03:18 <Vorpal> ah
00:03:33 -!- zzo38 has set topic: Don't enjoy unlocking the matrix of liquidity, please. | wget -s 42 redpill | http://codu.org/logs/_esoteric/.
00:03:35 <nooga> oerjan: it's Gasperowicz pronouced like Kasperoveetch
00:03:45 <nooga> but germans and WW II
00:03:50 <oerjan> ah
00:04:06 -!- cheater has quit (Ping timeout: 255 seconds).
00:04:24 -!- Patashu has joined.
00:04:31 -!- cheater has joined.
00:04:37 <nooga> huh
00:04:42 <Vorpal> Phantom_Hoover, did you know that yttrium, terbium, erbium and ytterbium are all named after the same place?
00:04:52 <nooga> it colud be Gasperowicz IT Consulting
00:04:59 <nooga> but it sucks
00:04:59 -!- variable has joined.
00:05:11 <nooga> I need a name for my firm NAO!~
00:05:25 <oerjan> Gasprom. i'm sure no one could complain about that.
00:05:30 <nooga> hahaha
00:05:36 <nooga> i hate you
00:05:48 <nooga> not really
00:05:50 <pikhq> Meh, too Russian.
00:05:56 <pikhq> Go with Zyklon.
00:06:05 <oerjan> pikhq: thatsthejoke.jpg
00:06:21 <pikhq> oerjan: Yes.
00:06:43 -!- Anvilgames has quit (Quit: Anvilgames).
00:07:08 <oerjan> IT consulking
00:07:41 -!- Lymee has set topic: Don't enjoy unlocking the matrix of liquidity, please. | wget -s 42 redpill | man mouth | http://codu.org/logs/_esoteric/.
00:07:45 <oerjan> gasperating
00:08:05 <nooga> oerjaning
00:08:37 <oerjan> the world according to gasperowicz
00:09:41 <nooga> in our law there's this thing that the formal name of your firm should consist of the name, surname and some word
00:09:51 <nooga> usually you would use only the word
00:09:58 <oerjan> hm
00:10:48 <nooga> SADOL realm Marcin Gasperowicz
00:10:52 <nooga> nagh\
00:14:27 -!- micahjohnston has quit (Ping timeout: 255 seconds).
00:17:08 <zzo38> Have you read the stuff in this channel recently about the new kind of program language I have the idea?
00:19:00 <nooga> no
00:19:10 <Phantom_Hoover> zzo38, you are a native English speaker, right?
00:19:30 <zzo38> Phantom_Hoover: I am a native Canadian speaker.
00:19:40 <Phantom_Hoover> zzo38, Canadian English, I presume?
00:19:47 <zzo38> Yes.
00:19:54 <Phantom_Hoover> Right...
00:20:39 <nooga> c'est la super plus
00:20:45 -!- cheater has quit (Ping timeout: 255 seconds).
00:24:17 -!- micahjohnston has joined.
00:27:33 <Phantom_Hoover> Mica H. Johnston.
00:27:47 <Phantom_Hoover> Daughter of ardent mineralogists.
00:30:10 <nooga> Kate Winiarski, dental c'est la super plus
00:30:15 <nooga> ghhh
00:30:33 <nooga> Kate Winiarski, dental prosthetist
00:30:39 <nooga> stupid irssi
00:31:43 <Phantom_Hoover> They fight crime.
00:32:33 <zzo38> About the new kind or program language I was mentioning, it is near the UNIX timestamp 1312539427.
00:32:51 <nooga> zzo38: just paste the log
00:33:10 <Phantom_Hoover> zzo38, you might want to check your client; I think you might've accidentally connected a Markov bot to it.
00:33:38 <zzo38> Phantom_Hoover: I do not even have a Markov bot program (although maybe I am wrong I don't know what a Markov bot is, even)
00:33:52 <zzo38> nooga: OK I will just repeat what I typed before
00:34:05 <zzo38> I have idea I wanted to make up some programming language that can do a few things including implement rules of Magic: the Gathering cards. I have a few ideas about it, including:
00:34:13 <zzo38> * First class functions and first class rules
00:34:20 <zzo38> * Basic types: boolean, integer, static strings (usable only for comparison and that C codes can use directly)
00:34:26 <zzo38> * Other types: enumeration, tagged union, structure, function
00:34:35 <zzo38> * Function types are allowed to include themself or types including themself
00:34:44 <zzo38> * Procedural rulebooks
00:34:48 <zzo38> * Rulebooks specifying reading/writing properties of an object
00:34:53 <zzo38> * Pure functions
00:34:57 <zzo38> * External access to/from C codes and other program
00:35:06 <zzo38> Can you understand now?
00:35:12 <nooga> erm
00:35:14 <nooga> no
00:35:46 <nooga> i'm not completely sober
00:36:14 <zzo38> I expect probably not completely understand, since it is not even complete. It is why I would like some help and other people idea about it too
00:39:51 <Phantom_Hoover> nooga, that's... not the reason.
00:39:58 <itidus20> i cant say i wanna be sober
00:40:18 <itidus20> but i cant say i wanna be drunk... cos its a hell of a habit
00:40:46 <nooga> usually I don't drink too much
00:41:07 <nooga> but now I'm quite blown
00:41:14 <nooga> because of that contract
00:41:52 <Lymee> fungot: who is nooga?
00:41:52 <fungot> Lymee: for a while it was frustrating. still no sign, perhaps? a phone or it will 8e the most powerful adversary you have ever had a physical card for the stack or queue. items can be removed, the queen is a vain. yes, the sun." -mark twain
00:42:03 <Lymee> ^style youtube
00:42:03 <fungot> Selected style: youtube (Some YouTube comments)
00:42:04 <Lymee> fungot: who is nooga?
00:42:05 <fungot> Lymee: fucking hilarious.
00:42:10 <Lymee> ...
00:42:14 <nooga> wtf
00:42:19 <nooga> wtf
00:42:41 <nooga> fungot: who is Lymee?
00:42:41 <fungot> nooga: she is. do i do think the that the plane alone. you have.
00:42:50 <nooga> fungot: who is oerjan?
00:42:51 <fungot> nooga: hes hot! i can't find one in the game and check out latino review on the japanese reissue of risk. and ' whatever'?
00:43:02 <nooga> fungot: who is elliott?
00:43:02 <fungot> nooga: fuck all about how the fuck? the only conclusion that can do this in blender...
00:43:13 <nooga> fungot: who is jsdbfab?
00:43:13 <fungot> nooga: wow!!!! its not that cool.
00:43:28 <Lymee> fungot, who is god?
00:43:28 <fungot> Lymee: he's so good as the trees. in simple terms when the toga is initiated, but cool.
00:43:45 <nooga> ihf}Ihedz[bife
00:44:06 <Phantom_Hoover> fungot, well, god clearly is an accomplished treesmith, yes.
00:44:06 <fungot> Phantom_Hoover: o.o a snow mobile... looks awesome
00:45:00 <nooga> fungot: who is fungot?
00:45:01 <fungot> nooga: another thing are we? and you think
00:45:11 <nooga> aaaaaaargh
00:46:44 <pikhq> https://www.eff.org/deeplinks/2011/07/widespread-search-hijacking-in-the-us
00:48:05 <Phantom_Hoover> nooga, oh god what if fungot is the Orz.
00:48:05 <fungot> Phantom_Hoover: cdj2255, as a punk song, good commercials. lets do it? i think
00:53:45 <nooga> aaaaaaaaaaaaaaaaaaa
00:53:49 <nooga> no no no no no
00:54:05 <nooga> I will leave this place at once
00:54:22 <Phantom_Hoover> fungot, go back *outside*.
00:54:22 <fungot> Phantom_Hoover: that... for real lmao, wow im not joking, is a counter tenor. my guess, and, ironically, the hotel, what can i repeat to you tube. com/ watch?v=bxp8lwsarya more
00:54:50 <nooga> 0-o
00:55:02 <Phantom_Hoover> Video isn't available.
00:55:53 -!- lament has joined.
01:02:37 -!- nooga has quit (Quit: I AM FED UP WITH THIS CRUFT AAARGH).
01:03:58 -!- iconmaster has quit (Quit: Pardon me, but I have to go die in NetHack again.).
01:08:47 -!- CakeProphet has joined.
01:08:47 -!- CakeProphet has quit (Changing host).
01:08:47 -!- CakeProphet has joined.
01:13:50 <Phantom_Hoover> CakeProphet, do you have any prophecies of cake.
01:15:21 <oerjan> the cake is a lie
01:15:41 <Phantom_Hoover> fungot, do you?
01:15:41 <fungot> Phantom_Hoover: ahaha. hillary is flya than that. american public education for you."
01:15:53 <Phantom_Hoover> fungot, yes, yes she is.
01:15:53 <fungot> Phantom_Hoover: holy shitttt i can't wait. ( this is comedic gold, save your gold till this economy is still a punk song, but i love this
01:16:22 <Phantom_Hoover> fungot, what do I do with the gold once the economy is still a punk song?
01:17:03 <Phantom_Hoover> fungot, well?
01:17:10 <Phantom_Hoover> ^help
01:17:10 <fungot> ^<lang> <code>; ^def <command> <lang> <code>; ^show [command]; lang=bf/ul, code=text/str:N; ^str 0-9 get/set/add [text]; ^style [style]; ^bool
01:17:19 <Phantom_Hoover> ^style irc
01:17:19 <fungot> Selected style: irc (IRC logs of freenode/#esoteric, freenode/#scheme and ircnet/#douglasadams)
01:17:22 <Phantom_Hoover> fungot,
01:17:39 <Phantom_Hoover> Oh, wait, he's rate limited isn't he.
01:19:04 <Lymee> fungot, what do you think of Brainfuck?
01:19:05 <fungot> Lymee: haskell i dont like knowing my money is prolly majority paying for the name?
01:19:18 <Lymee> fungot, Write a Brainfuck cat program. Now.
01:19:19 <fungot> Lymee: as there is matthiases vibrating. good thinking there.... :d.) that would force a string or a regex, but for supporting general user macros you'd probably first need to do
01:27:51 -!- pumpkin has changed nick to copumpkin.
01:31:17 * Phantom_Hoover → sleep
01:31:27 -!- Phantom_Hoover has quit (Quit: Leaving).
01:39:56 <Lymee> fungot, please kill ell
01:39:56 <fungot> Lymee: really? are you volunteering??? 38o catchalogue disk and captchalogue the server cd.
01:40:08 <Lymee> >:c
01:44:49 <MDude> http://animuchan.net/django_php/ [I don't know enough about web development to know how bad an idea this is, but apparently it's pretty bad.]
01:45:18 <monqy> helpful faq, that
01:58:53 <zzo38> I found the instructions for Complex Hearts, a variant where the queen of spades is worth 13i and the ten of clubs multiplies your score of the hand by 2i, and the jack of diamonds is worth -10. Whoever first reaches an absolute value of 100 or more loses.
02:02:50 <Patashu> Wow, complex hearts
02:14:59 * tswett observes Gregor.
02:24:26 <zzo38> When were the Magic: the Gathering rules properly made precise in the comprehensive rules document, and who wrote it?
02:24:51 -!- Sgeo has quit (Read error: Connection reset by peer).
02:26:27 -!- Sgeo has joined.
02:31:24 <zzo38> O, and one more thing, to add to the list I typed about the programming language for that purpose:
02:32:08 <zzo38> * Rules and functions can look inside of rules and functions of the correct types and change things of the correct type inside of them (the oompiler can check types and constraints to make the compiled program more efficient by eliminating unnecessary checks)
02:39:26 <NihilistDandy> @tell Phantom_Hoover Do not underestimate the power of the Scepter of Recursion
02:39:26 <lambdabot> Consider it noted.
02:40:09 <Lymee> @tell Phantom_Hoover Also, hugs
02:40:09 <lambdabot> Consider it noted.
03:08:30 -!- MDude has changed nick to MSleep.
03:10:02 -!- evincar has joined.
04:05:55 <zzo38> Do you know answers of any of my questions?
04:08:17 <zzo38> And you should also type on https://devlabs.linuxassist.net/projects/texnicard This new programming language is somewhat related to TeXnicard although is a separate program, it is not part of TeXnicard. However I would include something in TeXnicard allowing you to make export files of this that you can convert natural language into this format.
04:24:43 -!- BeholdMyGlory has quit (Remote host closed the connection).
04:27:45 <zzo38> Other idea about this programming language:
04:28:00 <zzo38> * That you can have types that you can select zero or more.
04:28:04 <zzo38> I can make example
04:30:29 <zzo38> Suppose Haskell has a new hypothetical "multidata" command like "data" but you can select none of the types or many of the types somehow.
04:32:10 <zzo38> multidata CardTypes = Artifact ArtifactSub | Creature CreatureSub Integer Integer | Enchantment EnchantmentSub | Instant SpellSub | Sorcery SpellSub | Tribal CreatureSub | Land LandSub | Planeswalker PlaneswalkerSub Integer
04:32:45 <quintopia> *plainswalker
04:32:58 <zzo38> No.
04:33:03 <quintopia> planeswalkers are biplane acrobats
04:33:22 <quintopia> :P
04:33:48 <zzo38> Wikipedia.
04:34:11 <quintopia> yeahyeah
04:34:31 <quintopia> fucking wotc and their puns
04:42:06 <oerjan> next: the Planker monster
04:43:12 <oerjan> it lies down waiting where you least expect it
05:01:08 -!- oerjan has quit (Quit: Good night).
05:08:42 <zzo38> So, this new kind of programming language should have something like this hypothetical "multidata", I guess.
05:15:08 <zzo38> Although, I don't know if this example is correct. Can a "Tribal Creature" have two sets of creature subtypes? Does it matter?
05:16:05 -!- Sgeo_ has joined.
05:17:45 -!- Sgeo has quit (Ping timeout: 255 seconds).
05:18:02 -!- evincar has quit (Quit: leaving).
05:50:15 -!- zzo38 has quit (Remote host closed the connection).
06:16:29 <NihilistDandy> I just realized that VLC has a really detailed icon
06:17:41 <CakeProphet> motherfucking cone of justice.
06:18:29 <NihilistDandy> I like coming home from work because everytime I do I have some new highlight from PH telling me something awesome about the dwarf named after me
06:19:17 <lament> I like coming home from work because I come home from work
06:20:39 <NihilistDandy> Meh. The only difference between work and home is that I'm not on IRC at work
06:20:45 <NihilistDandy> Also all the food
06:20:49 <NihilistDandy> And the dog
06:20:55 <NihilistDandy> And beds
06:20:57 <NihilistDandy> And
06:20:58 <NihilistDandy> Shut up
06:29:01 <lament> i can't meditate at work :(
06:32:09 <NihilistDandy> lament: What kind of work do you do?
06:32:26 <lament> programming
06:33:21 <NihilistDandy> Tell them that if you can't meditate your code will lose serenity as its ego develops
06:35:34 -!- Nisstyre has quit (Ping timeout: 258 seconds).
06:45:01 -!- GreaseMonkey has quit (Quit: The Other Game).
06:47:42 -!- cheater has joined.
06:52:31 -!- lament has quit (Ping timeout: 246 seconds).
06:59:15 -!- micahjohnston has quit (Ping timeout: 240 seconds).
07:06:48 -!- Taneb has joined.
07:06:50 <Taneb> Hello!
07:08:51 -!- micahjohnston has joined.
07:10:18 <CakeProphet> Taneb: hey
07:10:30 <NihilistDandy> Hello
07:11:17 <Taneb> What is happening in the world of Esoteric Programming?
07:13:30 <CakeProphet> we don't know anymore. It became too esoteric and has now collapsed upon itself and vanished.
07:13:38 <CakeProphet> we're still trying to find it.
07:13:56 <Taneb> That sucks
07:14:18 <NihilistDandy> Taneb: Only metalanguages exist now
07:15:26 <monqy> i only feel comfortable with metacircularity
07:19:02 -!- NihilistDandy has quit (Read error: Connection reset by peer).
07:20:49 -!- NihilistDandy has joined.
07:28:43 <Taneb> The world wide web is 20 years old today
07:30:09 <NihilistDandy> Yet Google chose Lucille Ball
07:30:27 <CakeProphet> oh hey, I'm the same age as the web.
07:30:38 * CakeProphet turned 20 on July 26th
07:30:50 <NihilistDandy> Crap, I'm older than the Web
07:32:31 <Taneb> But not the Internet
07:32:35 <CakeProphet> I wonder what it will look like in another 20 years.
07:32:39 <CakeProphet> probably a huge clusterfuck.
07:32:48 <CakeProphet> of standards
07:33:01 <Taneb> Or a ghost-town
07:33:27 <Taneb> of standard
07:33:29 <Taneb> s
08:02:00 <Taneb> I am going to CREATE a NEW esoteric programming language!
08:03:50 <Taneb> Based on the travelling salesman problem
08:04:27 <NihilistDandy> "Based"?
08:04:37 <Taneb> Yes!
08:05:03 <Taneb> The program will be a series of co-ordinates
08:05:42 <Taneb> Which will then be translated into a series of scalars representing the difference between points
08:05:49 <Taneb> In the shortest rout
08:05:50 <Taneb> e
08:06:51 <Taneb> Then these scalars are interpreted as a Numberwang program Taneb variant)
08:07:06 <Taneb> Or maybe something else!
08:07:11 <Taneb> Yeah, something else!
08:07:15 <NihilistDandy> So it's actually just Numberwang with an inconvenient API
08:07:23 <Taneb> No, it's something else!
08:07:27 <Taneb> I changed my mind!
08:09:07 <Taneb> By pythagoras's theorem, the square of any possible scalar between two points with integer co-ordinates is an integer
08:09:23 <Taneb> I'm thoroughly misusing the word scalar, but never mind
08:10:10 <Patashu> So wait, how do you determine the ordering of your scalars
08:10:21 <Taneb> Shortest route
08:10:26 <Patashu> Yes but
08:10:31 <Patashu> Which segment comes first in the program
08:10:33 <Taneb> Starting from the most North-Westerly point
08:10:36 <Patashu> Ah ok
08:11:03 <CakeProphet> I'll scale your scalars, bitch.
08:14:45 <Taneb> Except there'll be an instruction to build a road between two nodes
08:14:48 -!- FireFly has joined.
08:14:58 <Taneb> Thus making them effectively closer
08:15:08 <CakeProphet> Taneb: you should probably name this instruction "pave"
08:15:11 <Taneb> However, only one road can be built between each node
08:15:17 <Patashu> self-rearranging travelling salesman problem which rewrites the program sounds interesting
08:15:30 <Patashu> how wonderfully malbolge
08:15:37 <Taneb> And after a certain amount of use the roaad is destroyed
08:15:57 <Patashu> hahah
08:16:04 <Patashu> civilization the programming language
08:16:05 <Taneb> Roads half the effective distance
08:16:09 <CakeProphet> The program space is a stateless society with no government transportation department.
08:16:10 <Patashu> or wait. oasis?
08:16:20 <Patashu> SMAC?
08:16:30 <Patashu> nah totally oasis
08:16:34 <Patashu> make that game into a programming language
08:18:39 <CakeProphet> I should make an RTS programming language.
08:19:03 <CakeProphet> different factions have different interpreters. At the start of the program you specify the matchup, up to 4v4 or 8 free-for-all
08:19:08 <CakeProphet> each competitor is a thread.
08:19:09 <Patashu> your program is being assaulted by barbarian hordes
08:19:21 <CakeProphet> you must construct additional pylons.
08:20:28 <NihilistDandy> Prepare the LOIC
08:21:09 <NihilistDandy> Also, C&C on the N64 was the best RTS ever
08:21:18 <Patashu> sandbag
08:21:19 <Patashu> sandbag
08:22:22 <NihilistDandy> http://www.youtube.com/watch?v=qpl5mOAXNl4
08:23:39 <Patashu> best song
08:23:54 * CakeProphet wants a 2048-bit computer
08:24:13 <CakeProphet> > 2^2048
08:24:13 <lambdabot> 323170060713110073007148766886699519604441026697154840321303454275246551388...
08:24:22 <CakeProphet> some would say this is an unreasonable address space.
08:24:27 <CakeProphet> but I would call it entirely sufficient.
08:24:32 <Patashu> > 2^2^2^2
08:24:33 <lambdabot> 65536
08:24:45 <NihilistDandy> CakeProphet: Not enough future proofing for your tastes?
08:24:59 <pikhq> Wow. Last week, someone placed a single trade betting, basically, $1 billion that the US's credit rating would be dropped or that the US would default.
08:25:02 <Patashu> hmm, does haskell have an operator for tetration?
08:25:04 <pikhq> 1. Billion. USD.
08:25:09 <NihilistDandy> I would call it perfectly reasonable, at a minimum
08:25:34 <NihilistDandy> @hoogle tetration
08:25:34 <lambdabot> No results found
08:25:38 <NihilistDandy> @hoogle tetra
08:25:38 <lambdabot> No results found
08:25:43 <Patashu> @hoogle supre
08:25:44 <lambdabot> No results found
08:25:45 <Patashu> @hoogle super
08:25:45 <lambdabot> No results found
08:25:57 <NihilistDandy> Write one!
08:25:59 <Patashu> @hoogle hyper
08:26:00 <lambdabot> No results found
08:26:36 <CakeProphet> > let tetra a b = foldr1 (**) (replicate b a) in tetra 2 4
08:26:37 <lambdabot> 65536.0
08:26:48 <NihilistDandy> Exactly
08:27:14 <CakeProphet> actually wouldn't foldl work fine?
08:27:16 <Taneb> bye
08:27:17 <Patashu> no
08:27:26 <pikhq> There's not many entities capable of throwing that freaking much liquid capital at something.
08:27:28 <CakeProphet> ah, yeah I guess not.
08:27:29 <Patashu> because taking the power isn't symmetrical
08:27:34 <Patashu> > (2^2)^2
08:27:35 <lambdabot> 16
08:27:39 <Patashu> > 2^(2^2)
08:27:39 <lambdabot> 16
08:27:41 <Patashu> oh
08:27:44 <Patashu> well it is in this case
08:27:56 <pikhq> (in order to place such a trade on the market, you must have that sitting in cash, ready to pay out.)
08:27:56 <Patashu> > 2^(2^(2^2))
08:27:57 <lambdabot> 65536
08:28:12 <Patashu> > ((2^2)^2)^2
08:28:13 <lambdabot> 256
08:28:15 <Patashu> there
08:28:24 <CakeProphet> hmmm okay.
08:28:26 <pikhq> That someone has made out like a bandit.
08:28:31 <Patashu> wikipedia says 65536 is correct
08:29:05 <Patashu> I want this operator so I can make thinly veiled sexual innuendo http://en.wikipedia.org/wiki/Pentation
08:29:08 <pikhq> Patashu: Yeah, that's 64k.
08:29:12 <Patashu> I'm going to pentate these numbers
08:29:13 <NihilistDandy> pikhq: Where do you go to make these bets, anyway?
08:29:52 <CakeProphet> > let tetra _ 0 = 1; tetra a b = foldr1 (**) (replicate b a) in map (`tetra` 2) [0..]
08:29:53 <lambdabot> [1.0,1.0,4.0,27.0,256.0,3125.0,46656.0,823543.0,1.6777216e7,3.87420489e8,1....
08:30:09 <pikhq> NihilistDandy: The stock market. It's a somewhat more complex market than just shares of companies — you're also able to sell various short trades on things, where you speculate on a negative outcome for some entity.
08:30:28 <pikhq> NihilistDandy: Other people buy that trade, so that if you were right they pay you, and otherwise you pay them.
08:30:33 <NihilistDandy> Betting on failure is my new business model~
08:30:50 <pikhq> I really wish I could go back in time a short sell some SCO stock.
08:31:06 <NihilistDandy> srsly
08:31:36 <pikhq> Selling stocks short is really nice because your profit is based entirely on how much the stock dropped. :)
08:31:43 -!- Taneb has quit (Ping timeout: 258 seconds).
08:32:47 <Patashu> who pays for shorts though?
08:32:54 <Patashu> if you bet on a stock going up, you get money by reselling it at the new price
08:32:59 <Patashu> where does the negative money become positive?
08:34:05 <pikhq> Well, the thing is, if you buy someone else's short and gain on it, you get the stock for the value it was at *when you bought the short*, but have the stock at its current value.
08:34:05 <CakeProphet> addition.
08:34:15 <pikhq> So, you got it for cheap.
08:34:39 <CakeProphet> or, more precisely, the negative money becomes positive when it increases above zero.
08:34:48 <CakeProphet> I assume this is what you were asking, truly. :P
08:35:08 <Patashu> hmm, wait...
08:35:15 <Patashu> is it where you sell a stock and agree to buy it back, or something?
08:35:39 <pikhq> Patashu: You agree to sell a stock to someone at a future date at a current cost.
08:36:05 <Patashu> ah ok
08:51:21 <Patashu> http://math.eretrandre.org/tetrationforum/showthread.php?tid=675 infinite operator plz
08:53:37 <NihilistDandy> Deltas are emprically inferior to lambdas
08:59:39 <Patashu> http://math.eretrandre.org/tetrationforum/showthread.php?tid=665 how about circles?
09:02:16 <NihilistDandy> I already have composition, how many circles do I really need in my life?
09:04:52 -!- Cheery has joined.
09:06:38 <pikhq> You need every circle.
09:09:15 <coppro> circles suck, get triangles
09:10:44 <NihilistDandy>  /_\
09:11:05 <coppro> ^
09:12:03 <NihilistDandy> ^
09:12:04 <NihilistDandy> /_\
09:14:10 <coppro> eww
09:15:18 <NihilistDandy> Mmm, recursion: http://www.smbc-comics.com/index.php?db=comics&id=2319#comic
09:24:29 <Cheery> http://cache.gawker.com/assets/images/comment/12/2011/08/579f406878ae68a95ee9ce8fc2f908b4/340x.jpeg
09:27:26 <quintopia> who is jmsnxn?
09:37:09 -!- monqy has quit (Quit: hello).
09:52:16 -!- derrik has joined.
09:57:39 -!- pikhq has quit (Ping timeout: 240 seconds).
09:57:58 -!- pikhq has joined.
10:02:50 -!- MigoMipo has joined.
10:41:48 <CakeProphet> fungot: colorless green ideas sleep furiously
10:41:48 <fungot> CakeProphet: and it is just a matter of fact, his cadre of fellow wizards
10:52:09 -!- Phantom_Hoover has joined.
10:57:19 <cheater> quintopia, this guy seems like he's up to fun things
11:11:52 -!- derrik has quit (Quit: left).
11:20:42 <Phantom_Hoover> fungot, what are the haps my friend.
11:20:42 <fungot> Phantom_Hoover: the other pair does as well give it a try? he is so lucky the gun. widebody's gotta settle his big ass down for a bit. your appetite for monochrome beauties. no lovely lady will be fit in the slot.
11:20:43 <lambdabot> Phantom_Hoover: You have 2 new messages. '/msg lambdabot @messages' to read them.
11:47:32 <Phantom_Hoover> @tell elliott Homestuck update oh god nothing makes sense any more
11:47:32 <lambdabot> Consider it noted.
11:53:16 -!- azaq23 has joined.
12:22:44 -!- Taneb has joined.
12:22:53 <Taneb> Hello!
12:25:41 <Taneb> brb
12:38:03 <Taneb> Is it a safe assumption that a travelling salesman will never cross his own path?
12:38:52 <fizzie> Sounds very unlikely, given a graph where it's not possible to visit all nodes without revisiting any.
12:39:35 <Taneb> I think that graph is not suitable for this need
12:40:14 <Taneb> On a complete graph, is my assumption true?
12:40:31 <Patashu> I think given crossed paths, it's always a correct optimization to uncross them
12:40:34 <Patashu> If you think about Pythagoras and so on
12:42:39 <Taneb> That works!
12:42:58 <fizzie> Well, assuming also Euclidean distances.
12:43:02 <Patashu> well yeah
12:43:11 <Patashu> ... there are non-euclidean traveling salesman problems? hmmm
12:43:37 <Taneb> Yes
12:44:37 <Taneb> But I just need euclidean
12:44:37 <Taneb> Thanks
12:44:43 <fizzie> In general I thik it's just a graph with arbitrary edge costs.
12:44:47 <Taneb> Although this may quickly become non-euclidean, it is initially euclidean
12:45:05 <fizzie> Horribly laggy 3G here.
12:47:51 <Taneb> I think I have just designed an NP-hard programming language
12:48:19 <Taneb> Self-modifying travelling salesman
12:48:20 <Taneb> Going to put it on the wiki now
12:49:18 <Taneb> Uploaded, terrible formatting
12:49:25 <Taneb> Going now
12:49:27 -!- Taneb has quit (Quit: using sirc version 2.211+ssfe).
13:00:21 -!- Taneb has joined.
13:01:05 <Taneb> http://esoteric.voxelperfect.net/wiki/User:Taneb/Salesman
13:08:22 -!- Taneb has quit (Remote host closed the connection).
13:11:12 <Patashu> I await the first hell world program for Salesman
13:20:42 <CakeProphet> > let mul a b = foldl (>>=) id (repeat (+)) in mul 4 5
13:20:43 <lambdabot> Overlapping instances for GHC.Show.Show (b -> b)
13:20:43 <lambdabot> arising from a use of `...
13:23:07 <CakeProphet> > let mul _ 0 = 0; mul _ 1 = 1; mul a b = foldl (>>=) id (replicate (b-1) (+)) a in mul 4 5
13:23:08 <lambdabot> 20
13:23:22 <CakeProphet> er...
13:23:29 <CakeProphet> > let mul _ 0 = 0; mul a 1 = a; mul a b = foldl (>>=) id (replicate (b-1) (+)) a in mul 4 5
13:23:30 <lambdabot> 20
13:23:34 <CakeProphet> there we go.
13:30:03 <CakeProphet> > let hyper z f _ 0 = z; hyper z f a 1 = a; hyper z f a b = foldl (>>=) id (replicate (b-1) f) a in mul = hyper 0 (+); exp = hyper 1 mul; tetra = hyper 1 exp; penta = hyper 1 tetra in (($3).join) <$> [(+),mul,exp,tetra,penta]
13:30:04 <lambdabot> <no location info>: parse error on input `='
13:30:58 <CakeProphet> > let hyper z f _ 0 = z; hyper z f a 1 = a; hyper z f a b = foldl (>>=) id (replicate (b-1) f) a; mul = hyper 0 (+); exp = hyper 1 mul; tetra = hyper 1 exp; penta = hyper 1 tetra in (($3).join) <$> [(+),mul,exp,tetra,penta]
13:31:00 <lambdabot> [6,9,27,19683,*Exception: stack overflow
13:32:40 <CakeProphet> @pl hyper z f a b = foldl (>>=) id (replicate (b-1) f) a
13:32:40 <lambdabot> hyper = const (flip . (foldl (>>=) id .) . flip (replicate . subtract 1))
13:33:18 <CakeProphet> @pl hyper f a b = foldl (>>=) id (replicate (b-1) f) a
13:33:19 <lambdabot> hyper = flip . (foldl (>>=) id .) . flip (replicate . subtract 1)
14:08:41 -!- Taneb has joined.
14:08:45 <Taneb> Hello!
14:10:27 <Taneb> Can I ask what people think of Salesman?
14:15:59 -!- derrik has joined.
14:16:16 <Taneb> Wow, amazing response
14:19:24 <Vorpal> Taneb, traveling ones? telephone ones?
14:23:01 <fizzie> Okay, here's a response: yes.
14:23:03 <Taneb> Travelling ones
14:23:15 <Taneb> What do people think of Salesman?
14:23:22 <Vorpal> Taneb, it is an interesting NP-complete problem
14:23:37 -!- nooga has joined.
14:24:09 <Taneb> The Esolang I made earlier today was what I was referring to
14:24:14 <Taneb> Based on the problem
14:24:20 <fizzie> Vorpal: I suppose he wanted an opinion on http://www.esolangs.org/wiki/User:Taneb/Salesman and not just the problem in general.
14:27:09 <Patashu> Can you prove it's turing complete?
14:28:14 <Taneb> No
14:28:19 <Taneb> I think it is, though
14:28:50 <Taneb> Its memory system is effectively a deque plus an unbounded two-dimensional array
14:29:02 <Taneb> Although the array is harder to use
14:30:03 <Taneb> Assuming the stack is unbounded and contains unbounded values, I believe it is turing complete
14:30:11 <Taneb> Also self-modifying
14:30:16 <Taneb> And NP-hard
14:30:52 <Taneb> And possibly non-deterministic
14:32:30 -!- derrik has quit (Quit: reconnect).
14:32:54 -!- derrik has joined.
14:40:09 -!- lament has joined.
14:48:58 <Taneb> So, any reviews?
14:52:00 -!- MSleep has changed nick to MDude.
14:52:25 -!- BeholdMyGlory has joined.
14:53:58 -!- Nisstyre has joined.
15:20:52 <Taneb> Anyone?
15:30:21 <MDude> Hm
15:32:06 <MDude> I'd have to play aroudn with and/or learn about solving the traveling salseman's problem to even know where to start trying to make anything in paticular in it.
15:32:46 <MDude> Although, I could just make a big diagonal line of nodes if I jsut wanted ot make a simple sequence.
15:33:10 <MDude> The shortest path would then of course be from one end to the other.
15:37:42 <Taneb> And then back to the beginning
15:38:54 <Patashu> I think more interesting would be golfing travelling salesman
15:38:55 <MDude> I think it's be pretty funny if the map for Taxi were used as a Salseman program.
15:39:01 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .).
15:40:29 <MDude> Though the Taxi map isn't purely topoligical, and thus has roads that aren't simply straight lines form one destination to another.
15:49:22 <Taneb> I'm bored, I'm going to make a Brainfuck to Zot translator
15:53:04 -!- derrik has quit (Quit: ChatZilla 0.9.87-rdmsoft [XULRunner 1.9.0.17/2009122204]).
15:53:37 -!- Taneb has quit (Ping timeout: 250 seconds).
15:56:47 <Sgeo_> Is Taxi TC?
15:58:04 <quintopia> probs
15:58:16 <quintopia> i remember it being p powerful
15:58:28 <MDude> It has at least one queu and one stack.
15:58:41 <MDude> I think two of at least one of them.
15:59:28 <MDude> Two queues.
16:00:42 <quintopia> of queues you only need one and a couple registers, yes?
16:01:56 <MDude> I don't know, though there is one register, and a shuffle tool that would act as a register if you only stored one value in it.
16:03:14 <MDude> Oh wait, two registers plus the randomiser.
16:03:30 <quintopia> sounds TC to me
16:05:34 -!- Taneb has joined.
16:05:47 <quintopia> so hows that bf to zot translator
16:05:59 <Taneb> Poorly
16:06:10 <quintopia> sounds good
16:06:14 <Taneb> I still don't really understand combinatory logic
16:08:56 -!- derrik has joined.
16:09:53 <CakeProphet> Taneb: you combine things, with combinators.
16:10:19 <Taneb> I tried, I really did
16:11:05 <CakeProphet> essentially a combinator is a higher-order function. An example of a simple combinator is function composition.
16:12:09 <Taneb> Generally, when I say combinatory logic, I mean SKI combinator calculus
16:12:27 <CakeProphet> oh, well, that's similar.
16:12:42 <Taneb> It's a subset
16:14:48 <CakeProphet> are you familiar with Haskell?
16:15:00 <Taneb> I'm aquainted
16:15:44 <CakeProphet> > f >>= g h
16:15:45 <lambdabot> Ambiguous type variable `a' in the constraints:
16:15:45 <lambdabot> `SimpleReflect.FromExpr ...
16:16:03 <CakeProphet> hmmm
16:16:09 <CakeProphet> @src (>>=) (-> e)
16:16:10 <lambdabot> Source not found. That's something I cannot allow to happen.
16:16:19 <CakeProphet> well essentially >>= for functions is S
16:16:21 <CakeProphet> const is K
16:16:22 <CakeProphet> id is I
16:16:34 <CakeProphet> er wait. I think ap is S actually.
16:16:50 <Deewiant> @src (->) (>>=)
16:16:50 <lambdabot> f >>= k = \ r -> k (f r) r
16:17:04 <CakeProphet> @src (->) ap
16:17:04 <lambdabot> Source not found. Do you think like you type?
16:17:11 <Deewiant> @src ap
16:17:11 <lambdabot> ap = liftM2 id
16:17:16 <Deewiant> @src liftM2
16:17:16 <lambdabot> liftM2 f m1 m2 = do { x1 <- m1; x2 <- m2; return (f x1 x2) }
16:17:42 <Deewiant> @undo \f m1 m2 -> do { x1 <- m1; x2 <- m2; return (f x1 x2) }
16:17:43 <lambdabot> \ f m1 m2 -> m1 >>= \ x1 -> m2 >>= \ x2 -> return (f x1 x2)
16:17:49 <Deewiant> @src (->) return
16:17:49 <lambdabot> return = const
16:17:51 <Deewiant> Figure it out!
16:18:22 <CakeProphet> if I recall ap a b c = a c (b c)
16:18:30 <CakeProphet> which is S.
16:18:53 <Deewiant> ?pl \a b c -> a c (b c)
16:18:53 <lambdabot> ap
16:19:46 <CakeProphet> :t ap id id
16:19:47 <lambdabot> Occurs check: cannot construct the infinite type: a = a -> b
16:19:47 <lambdabot> Probable cause: `id' is applied to too few arguments
16:19:47 <lambdabot> In the second argument of `ap', namely `id'
16:20:43 <Taneb> :t ap (id) (id)
16:20:44 <lambdabot> Occurs check: cannot construct the infinite type: a = a -> b
16:20:44 <lambdabot> Probable cause: `id' is applied to too few arguments
16:20:44 <lambdabot> In the second argument of `ap', namely `(id)'
16:21:16 <Taneb> Didn't think that would work
16:22:28 <CakeProphet> yeah I don't think it will directly translate without some extra steps.
16:23:13 <CakeProphet> :t const id
16:23:14 <lambdabot> forall a b. b -> a -> a
16:23:20 <CakeProphet> :t const
16:23:21 <lambdabot> forall a b. a -> b -> a
16:23:32 <CakeProphet> true and false.
16:24:03 <Taneb> Handy
16:24:32 -!- zzo38 has joined.
16:25:34 <CakeProphet> :t let t = const; f = const id; not = f t in not f
16:25:36 <lambdabot> forall b a. b -> a -> a
16:26:24 <CakeProphet> well no, that's false, I think. not f should have the same type as t.. I would think.
16:27:22 <CakeProphet> :t let t = const; f = const id; not = f t in f not
16:27:23 <lambdabot> forall a. a -> a
16:27:57 <CakeProphet> :t let t = const; f = const id; not = f t in t not
16:27:58 <lambdabot> forall a b. b -> a -> a
16:28:11 <CakeProphet> hmmm
16:30:37 <CakeProphet> :t let t = const; f = const id; not = f t in t t f
16:30:38 <lambdabot> forall a b. a -> b -> a
16:30:46 <CakeProphet> :t let t = const; f = const id; not = f t in t f f
16:30:47 <lambdabot> forall b a. b -> a -> a
16:31:01 <CakeProphet> f is a postfix AND, t is an infix OR.
16:31:56 <CakeProphet> so t t f is both true OR false as well as true AND true
16:32:46 <Taneb> Which are both true
16:33:41 <Taneb> Handy
16:34:13 <CakeProphet> yes, the main thing to understand is that everything is in terms of higher-order functions.
16:35:37 -!- pikhq has quit (Ping timeout: 246 seconds).
16:35:51 -!- pikhq has joined.
16:36:25 <CakeProphet> hmmm, this is the first time I've read about the B,C,K,W system.
16:36:51 <CakeProphet> b = (.); c = flip; k = const; w = join
16:36:58 <CakeProphet> sounds like a lot of point-free fun.
16:37:02 <zzo38> Now what are you trying to make with Haskell?
16:37:13 <quintopia> nothin
16:37:14 <CakeProphet> zzo38: boolean logic via SKI combinators.
16:37:57 <quintopia> just giving taneb a tour of ski combinators so they can make a bf to zot translator
16:38:20 <CakeProphet> :t let b = ap (const ap) const in b
16:38:21 <lambdabot> forall a b b1. (a -> b) -> (b1 -> a) -> b1 -> b
16:38:29 <CakeProphet> look familiar?
16:39:05 <CakeProphet> :t let b = ap (const ap) const in b (++"blah") reverse "hello"
16:39:06 <lambdabot> [Char]
16:39:08 <CakeProphet> > let b = ap (const ap) const in b (++"blah") reverse "hello"
16:39:10 <lambdabot> "ollehblah"
16:40:55 <CakeProphet> > let c = ap (ap (const (ap (const ap) const)) ap) (const const) in c (++) "hello" "blah"
16:40:57 <lambdabot> "blahhello"
16:41:25 <CakeProphet> interesting.
16:41:29 <zzo38> Does Haskell have types that you can select zero or more? Regardless of that, it would be useful feature of the other program language I was mentioning
16:41:37 <CakeProphet> I really have a hard time what the hell is going on there.
16:41:43 <zzo38> Is there?
16:41:50 <CakeProphet> zero or more of what?
16:42:17 <CakeProphet> zero or more of another type would be list. Or do you mean zero or more types?
16:42:30 <zzo38> Pretend you have a new command in Haskell "multidata" that you can write like that:
16:42:31 <zzo38> multidata CardTypes = Artifact ArtifactSub | Creature CreatureSub Integer Integer | Enchantment EnchantmentSub | Instant SpellSub | Sorcery SpellSub | Tribal CreatureSub | Land LandSub | Planeswalker PlaneswalkerSub Integer
16:43:08 <zzo38> So, now the value of "CardTypes" type can be none of these, or using both the Artifact and Creature constructors, etc
16:43:18 <CakeProphet> ah.
16:43:33 <CakeProphet> no. But that could be simulated with a list.
16:43:48 <zzo38> Yes I suppose you are correct.
16:43:59 <CakeProphet> but it won't give you typing for each constructor, if that's what you mean.
16:44:04 <CakeProphet> you could simulate that with a tuple and GADT.
16:44:13 <zzo38> OK.
16:44:26 <CakeProphet> so then each constructor has its own phantom type. (CardTypes Artiface, CardTypes, Creature)
16:44:29 <CakeProphet> er
16:44:40 <CakeProphet> (CardTypes Artifact, CardTypes Creature)
16:44:46 <CakeProphet> or whatever.
16:45:14 <CakeProphet> also a typeclass could be used in place of GADT.
16:45:20 <quintopia> CardTypes Artifact Creature
16:45:20 <CakeProphet> so many options.
16:45:39 <CakeProphet> ..unless there's specifically two type parameters that definitely wouldn't work.
16:45:41 <quintopia> dont forget the full power set must be available :P
16:46:05 <CakeProphet> the union of two different constructors was being represented by the tuple.
16:46:07 <zzo38> However, the thing I mentioned would be the kind of thing for a new programming language, with different features (although some of the Haskell stuff but not all, and some stuff that is not part of Haskell, as well as different uses of it)
16:46:49 <CakeProphet> I've always thought Haskell's type system could be extended to be more flexible, but then you run the risk of becoming undecidable.
16:47:28 <zzo38> So you can do something, such as, if it contains the "Creature" type then use the final Integer parameter, otherwise use 0, and so on, you make function like that.
16:47:57 <CakeProphet> well that can be accomplished with pattern matching.
16:48:18 <zzo38> And such things can be specified as rules which can have names and be overridden by procedural rulebooks and so on.
16:48:37 <CakeProphet> I was thinking in particular that a tuple could be made equivalent to a value with an anonymous type, but with known constructor type.
16:48:59 <CakeProphet> thus (Int,Int) could represent data Point a b = Point Int Int
16:49:10 <CakeProphet> or data Complex a b = Int :+ Int
16:49:41 <CakeProphet> and values constructed with Point and :+ are of type (Int, Int)
16:50:05 <CakeProphet> ...simultaneously. Two different flavors of type, essentially.
16:51:57 <zzo38> I wouldn't think so. Maybe same in LLVM, but I don't think they should be same in Haskell. However, it should have something allowing typing direct LLVM codes and if you do that, then you can treat them as the same type in the LLVM codes
16:55:55 -!- zzo38 has quit (Remote host closed the connection).
16:59:38 <Phantom_Hoover> What are the haps my friends also why was zzo going on about LLVM and Haskell.
17:00:55 <Phantom_Hoover> CakeProphet, isn't that what... oh, I forget, it's either type or typedef does.
17:01:08 <CakeProphet> dunno, but I made BCKW out of SKI in Haskell, with the help of Wikipedia. It was somewhat enlightening but also confusing.
17:01:30 <CakeProphet> Phantom_Hoover: type just creates a type synonym. Which isn't quite what I mean. I wasn't aware Haskell had a typedef keyword.... actually.
17:01:43 <Phantom_Hoover> It doesn't.
17:02:13 <Taneb> Zero in BCKW is C K
17:02:17 <Phantom_Hoover> It does have newtype, which was being confused in my head into typedef.
17:02:47 <Phantom_Hoover> Taneb, in SKI it's just K I, isn't it?
17:02:56 <Taneb> Yeah, I think so
17:03:00 <CakeProphet> I'm saying that each value would have a "nominal type" and a "constructor type". The nominal type is your typical Haskell type.
17:03:20 <CakeProphet> but the constructor type shows the types of the constructor's parameters.
17:03:44 <CakeProphet> and is written as a tuple. A tuple is thus a kind of anonymous constructor with nominal type a
17:04:38 <CakeProphet> (Int,Int) -> Int could accept a Complex, a Point, or a tuple, in this system.
17:04:57 <CakeProphet> anything that is constructed from two ints.
17:06:06 <CakeProphet> I was also thinking it would interesting to introduce sum types that don't require the use of Either.
17:06:23 <CakeProphet> (Int | Char) -> (Int | Char)
17:06:34 <CakeProphet> but I'm not quite sure if that's decidable.
17:06:54 <CakeProphet> or how useful it would be in practice.
17:07:22 <Phantom_Hoover> CakeProphet, still... not quite sure where the difference with type synonyms comes from.
17:08:17 <CakeProphet> the difference is that it goes deeper than synonyms. You could have a single nominal type with many different constructors, and each constructor would have a different constructor type.
17:08:55 <CakeProphet> (Int, Int) might accept some of those constructors but not others, even though they given the same type name.
17:09:20 -!- elliott has joined.
17:09:24 <Phantom_Hoover> I... nope, still not following.
17:09:30 <Phantom_Hoover> elliott, check messages now plx.
17:10:22 <elliott> Phantom_Hoover: /msg
17:10:22 <lambdabot> elliott: You have 7 new messages. '/msg lambdabot @messages' to read them.
17:10:30 <CakeProphet> data T = A | B Int | C Int Int
17:11:13 <CakeProphet> with this type system. The function () -> Int would accept values constructed by A
17:11:32 <CakeProphet> (Int, Int) -> Int would accept values constructed by C, but not B or A.
17:12:24 <CakeProphet> ....not sure about the single-parameter case. I think you would need to introduce 1-tuples... otherwise Int -> Int would just accept values constructed by B.
17:12:44 <CakeProphet> which might be fine actually;
17:14:42 <elliott> what
17:14:57 <CakeProphet> ...I don't understand what is difficult to understand about this.
17:15:21 <elliott> i've seen the few lines since I came in and the thing that's difficult to understand is that you're not actually making any sense
17:16:24 <elliott> 22:15:00: <fizzie> I vaguely recall a Sonic video where Sonic really doesn't get much screen-time, the camera's mostly trying to catch up.
17:16:24 <elliott> :d
17:16:25 <elliott> :d
17:16:26 <elliott> ...
17:16:27 <elliott> :D
17:16:30 <elliott> stupid capslock
17:16:55 <Phantom_Hoover> CakeProphet, a function A → B is well-typed for values of type A only, and for all values of A.
17:17:16 -!- MigoMipo has quit (Read error: Connection reset by peer).
17:17:48 -!- MigoMipo has joined.
17:18:09 <Phantom_Hoover> CakeProphet, I'm willing to bet that changing that is going to mess up an awful lot of the existing type system.
17:18:14 -!- Taneb has quit (Ping timeout: 252 seconds).
17:21:48 <CakeProphet> Phantom_Hoover: right but if you looked at the types as sets constructed from products and unions of other sets... then you could deduce that some types are subsets and supersets of other types.
17:23:51 <CakeProphet> and maybe. I don't know. I haven't considered all of the ramifications.
17:26:13 <elliott> "if you looked at the types as sets constructed from products and unions of other sets"
17:26:19 <elliott> you might want to learn type theory.
17:30:06 <CakeProphet> that's quite a bit of stuff to learn for what is essentially a quick thought experiment. Perhaps you could enlighten me on some specific points?
17:31:12 <elliott> it's not much to learn if what you are doing is proposing extensions to type systems
17:33:45 <elliott> CakeProphet: Anyway, you can't view all types as being constructed from products and unions, because recursive types exist.
17:35:17 <CakeProphet> how about a type-level let? :)
17:35:43 <CakeProphet> not sure what that would fix exactly.
17:35:52 <CakeProphet> but it would include recursive types.
17:36:07 <elliott> It would not.
17:36:19 <elliott> It would only do so if your let includes implicit fix, i.e. general recursion.
17:36:27 <CakeProphet> also, I'm not sure that I have to treat /every/ type as a product or union in order to treat /some/ types as equivalent or subsets of others.
17:36:34 <elliott> You can just introduce type-level fix, if you're okay with an inconsistent type system.
17:36:40 <elliott> (Haskell is OK with this, but no type theory is, for obvious reasons.)
17:38:15 <CakeProphet> though type inference would become problematic as types are no longer unambiguous in this kind of model.
17:39:32 <Phantom_Hoover> elliott, what does 'inconsistent' actually mean in the context of type systems?
17:39:44 <elliott> Phantom_Hoover: Curry-Howard.
17:39:47 <Phantom_Hoover> elliott, ah.
17:40:08 <elliott> Phantom_Hoover: Which is sort of the point of type theory.
17:40:14 <elliott> It's a foundational system, after all.
17:40:35 <Phantom_Hoover> (I'd guessed it was C-H, but I failed to see the relevance to day-to-day uses of type theory.)
17:41:08 <elliott> Phantom_Hoover: Well, uh, Agda and Coq are generally used to prove things.
17:41:12 <elliott> So that's quite relevant.
17:41:26 <Phantom_Hoover> elliott, sure, and that's why recursion is tightly controlled in both.
17:41:45 <elliott> Phantom_Hoover: It's not really "tightly controlled", but, um, that's not really the point.
17:41:48 <Phantom_Hoover> But when you're talking about extensions to the Haskell type system? Not so much.
17:41:54 <elliott> Phantom_Hoover: I was talking about type theory.
17:42:03 <elliott> Haskell's type system does not really count as an application of type theory.
17:42:08 <Phantom_Hoover> elliott, 'tightly controlled' as in you need to be careful where you use it.
17:42:22 <elliott> Obviously some things carry over, but the fact that it's completely inconsistent makes it a rather different beast in reality.
17:42:25 <Phantom_Hoover> elliott, then... why was anyone even talking about it, then.
17:42:31 <elliott> Because it's relevant wrt. sums and products.
17:42:45 <elliott> Consider Martin-Löf type theory (aka "Type Theory", annoyingly); http://en.wikipedia.org/wiki/Intuitionistic_type_theory#Connectives_of_Type_Theory.
17:43:34 <CakeProphet> I want a whatever type that's just all like "whatever"
17:43:35 <Phantom_Hoover> elliott, not what CakeProphet was talking about.
17:43:50 <Phantom_Hoover> CakeProphet, is this the Cake-Prophet type theory?
17:43:53 <elliott> Phantom_Hoover: It's constructing types out of sums and products, which is exactly what CakeProphet was talking about.
17:44:07 <Phantom_Hoover> (All type theory names need hyphens.)
17:44:42 <CakeProphet> ...I didn't mean constructing them exclusive by that. I meant that you could use sums and products to deduce equivalence/subset relationships in types. I suppose this would have to exclude recursive types.
17:45:36 <CakeProphet> so that, for example, the tuple type acted as a kind of anonymous type, that specifies values by their constructor parameters rather than by the type name that they're given.
17:46:48 <CakeProphet> the 2-tuple type being equivalent to some types (such as Complex), and subsets of others (I can't think of any good examples..)
17:47:43 <CakeProphet> data Something a b = A a | B b | C a b
17:47:51 <CakeProphet> bam, this bitch is a superset of (a,b)
17:48:42 <CakeProphet> fst (C 2 2) -- now magically valid in CakeProphet Haskell
17:48:51 <CakeProphet> fst (A 1) --motherfucking type error
17:50:10 <CakeProphet> I'm sure there's something horribly wrong with this, but oh well.
17:50:29 <CakeProphet> I'm going to sleep soon, anyways.
17:51:20 <Phantom_Hoover> CakeProphet, learn you some typeclasses.
17:52:05 <CakeProphet> done. they're somewhat annoying to use all the time. And the standard library doesn't use them everywhere to make generalizations like that standard.
17:52:20 <CakeProphet> they're entirely sufficient for the job though.
17:52:57 <Phantom_Hoover> The standard library is a pretty crappy thing
17:53:04 <Phantom_Hoover> As far as typeclasses go.
17:53:18 <Phantom_Hoover> Monads, for instance, don't have to be Functors.
17:54:08 <CakeProphet> well that's fine. It frees Monads from the oppressive malice of the overbearing Functor.
17:54:31 <CakeProphet> let all data be free!
17:55:09 <Phantom_Hoover> CakeProphet, learn you some category theory too.
17:55:19 <CakeProphet> oh I know about that.
17:55:44 <CakeProphet> I'm just saying... what if you don't /need/ the Functor instance, but do need the Monad one?
17:56:08 <CakeProphet> why should it be required to write more than necessary?
17:57:13 <CakeProphet> trivial code, but still.
17:57:21 <CakeProphet> POWER TO THE PROGRAMMER, MAN.
17:57:31 <CakeProphet> it's a radical new age, dude.
17:58:01 <CakeProphet> where Monads don't have to have a functor.
18:00:21 <Phantom_Hoover> CakeProphet, yes they do.
18:00:29 <Phantom_Hoover> Even if you don't define them as one, they still are.
18:00:43 <CakeProphet> ...shhhh.
18:00:49 <Phantom_Hoover> Or at least, you can make any monad into a functor.
18:01:04 <CakeProphet> but we can just omit that for the sake of laziness, can't we?
18:02:05 <CakeProphet> this is a brave new world we're living in. Where Num instances have to have Show instances for some reason.
18:03:25 -!- Taneb has joined.
18:03:27 <Taneb> Hello
18:03:30 <elliott> Num is the biggest joke.
18:04:49 <Taneb> ...I don't get it
18:05:05 <elliott> <CakeProphet> this is a brave new world we're living in. Where Num instances have to have Show instances for some reason.
18:05:17 <Taneb> Okay
18:05:20 <Phantom_Hoover> And where nats aren't numbers.
18:10:54 <elliott> They're numbers, just not Num...bers.
18:15:00 <Taneb> Well, my Brainfuck to Lambda Calculus translater, because that's easier, has had a slight problem
18:18:02 -!- myndzi has quit (Ping timeout: 240 seconds).
18:18:14 <MDude> What's it having a problem with?
18:20:05 <Taneb> It loops infinitely when it shouldn't
18:20:18 <Phantom_Hoover> `dc -e "16i2o5F3759DFp"
18:20:22 <HackEgo> No output.
18:20:29 <Phantom_Hoover> -_-
18:21:01 * Phantom_Hoover wonders why he always goes to dc for calculations despite never quite knowing how it works.
18:21:52 <MDude> How maybe bots like Lambdabot and HackEgo are even on here?
18:22:23 <Taneb> 4
18:22:33 <lament> 62
18:22:34 <Phantom_Hoover> MDude, lambdabot, HackEgo and EgoBot are the orthodox programming bots.
18:22:43 <Phantom_Hoover> fungot is a bit of an edge case.
18:22:43 <fungot> Phantom_Hoover: man. it is a good idea. leave me alone.
18:23:03 <Phantom_Hoover> fungot, OK.
18:23:03 <fungot> Phantom_Hoover: what, the last one. wait no, that just made you disappear" and stuff
18:23:19 <olsner> fungot: flrgl, bork
18:23:19 <fungot> olsner: that it makes a guest of it, much as the moon takes liberty. reason. justice. civility. edification. perfection. your hands,
18:23:31 <MDude> And I guess glogbot is the unorthodox one?
18:23:44 <MDude> It's a name that ends in bot.
18:24:13 -!- Taneb has changed nick to TanebBot.
18:24:33 <TanebBot> I'm going to get into trouble for this, aren't I?
18:24:38 <TanebBot> It's not even that funny.
18:24:40 -!- TanebBot has changed nick to Taneb.
18:24:54 <MDude> Please, you're the other kind of bot.
18:25:03 <MDude> That stealthily pretends not to be one.
18:25:58 <MDude> I'm wondering about different kind of logical tools and/or how to combine them.
18:26:20 -!- myndzi has joined.
18:26:28 <MDude> For instance, modal logic looks like it could be recursivly applied to itself to form a tree structure.
18:27:43 <MDude> I'm not sure if it makes sense to try applying modal logic to ternary logic.
18:27:55 <MDude> I don't know how mu relates to either of those.
18:28:56 <Taneb> Ternary with Mu is pretty easy
18:29:36 <elliott> <MDude> It's a name that ends in bot.
18:29:37 <elliott> as opposed to egobot
18:30:05 <lament> fungot: you seem to be the sanest person here.
18:30:06 <fungot> lament: the other pair does as well try it again. this prototyping had no idea. you'll mess with it later, somehow. this young man be??? now you've seen everything!
18:30:23 <MDude> I'd guess that maybe mu could be related to the contradictory state in modal logic, while ternary lgoc's unknown could relate to the lacking information state.
18:30:26 <lament> now i've seen everything.
18:31:08 <Taneb> No you haven't
18:31:50 <Taneb> I refuse to succumb to relitively common expressions!
18:31:54 <Taneb> Or the correct spelling of certain words!
18:32:00 <Phantom_Hoover> MDude, if you can define undefined, then you can prove anything in the corresponding logical system.
18:35:14 <Taneb> Does that work with circular definitions of undefined?
18:36:05 <MDude> Well, in ternary, unknown is jsut another state like true or false.
18:36:41 <Taneb> Not in all variants
18:36:46 <Taneb> eg. Balanced Ternary
18:36:57 <MDude> Well yeah, I did mean that.
18:37:40 <cheater> this fromage cathare was amazing.
18:38:14 <Phantom_Hoover> Taneb, that's the canonical way to define undefined.
18:38:22 <Phantom_Hoover> undefined :: a
18:38:26 <Phantom_Hoover> undefined = undefined
18:38:57 <Phantom_Hoover> And ternary doesn't really make sense as far as C-H goes.
18:39:07 <Phantom_Hoover> A type is either inhabited or it isn't.
18:39:22 <MDude> C-H?
18:40:08 <Phantom_Hoover> Curry-Howard isomorphism.
18:40:26 <Phantom_Hoover> The one that associates types and functions to logical statements.
18:41:55 -!- micahjohnston has quit (Ping timeout: 255 seconds).
18:42:32 <MDude> I see, I don't think I've read much about that.
18:42:54 <elliott> Phantom_Hoover: s/types and values/
18:42:59 <elliott> I'm pro at s///.
18:43:52 <Phantom_Hoover> elliott, you need functions in there as well, but I guess they count as values of types.
18:44:07 <Deewiant> /\/$/s/\/$/\/\//
18:44:41 <elliott> Phantom_Hoover: I...what?
18:44:42 <elliott> Functions are values.
18:46:43 <Phantom_Hoover> elliott, yes, they are.
18:51:12 -!- KingOfKarlsruhe has joined.
18:51:25 -!- Taneb has quit (Ping timeout: 246 seconds).
18:51:30 -!- micahjohnston has joined.
18:54:22 -!- ais523 has joined.
18:54:30 <elliott> hi ais523
18:54:40 <ais523> hi
18:55:04 <ais523> what does the -s option to wget do?
18:55:44 <elliott> ais523: prints the headers sent by HTTP servers
18:55:49 <ais523> ah, OK
18:55:52 <elliott> and responses set by FTP servers, apparently
18:55:56 <elliott> were you timing me against man(one)?
18:56:06 <ais523> elliott: no, I was trying to understand the topic
18:56:15 <ais523> and your answer just made me more confused
18:56:19 <cheater> no that's -S. there's no -s.
18:56:56 <elliott> blame less' / command.
18:57:26 <cheater> it's case-sensitive here. i blame your configuration.
18:57:48 <cheater> oh right, i forgot macs were cAsE InsEnsItIvE
18:59:24 <ais523> the way HFS does Unicode is pretty dubious, too
18:59:49 <ais523> (it actually tries to compare filenames using a Unicody comparison, but it do so by normalizing them on disk, which causes all sorts of interesting breakages)
18:59:50 <elliott> I don't use OS X.
19:00:00 <elliott> ais523: normalising filenames on disk is fairly reasonable in theory
19:00:09 <ais523> indeed
19:00:23 <ais523> but not when you have to interact with filesystems you might not own
19:00:27 <elliott> ais523: I mean, you don't want to be able to specify the exact same filename to a program but have it fail to load because the real file has a differently-normalised name
19:00:35 <ais523> yep
19:00:50 <elliott> especially since it might be hard to specify the true name, if, say, your terminal's output system normalises on output
19:00:55 <ais523> but I think I read something that argued that it was saner to do that in the open call, rather than on the disk itself
19:01:00 <elliott> or even your toolkit's "paste" function does
19:02:51 <cheater> elliott, so you have finally bought that usb cdrom?
19:03:03 <cheater> or firewire or whatever
19:03:41 <elliott> you really do never give up
19:03:54 <cheater> never gonna give you up
19:04:11 <ais523> I have a USB floppy disk drive
19:04:14 <cheater> i was just wondering if you finally succeeded getting that superdrive based linux installation going
19:04:19 <cheater> ais523, they're surprisingly useful
19:04:26 <cheater> even as "usb keys"
19:04:31 <cheater> there's always a floppy disk around
19:04:54 <ais523> most of the floppy disks I own are full of data, and many have bad sectors
19:10:36 -!- KingOfKarlsruhe has quit (Quit: ChatZilla 0.9.87 [Firefox 5.0/20110615151330]).
19:11:44 <Sgeo_> http://scienceblogs.com/pharyngula/2011/08/somebody_doesnt_understand_bas.php#comment-4721628 someone with my habit of making excuses for idiots?
19:14:03 <elliott> Sgeo_: Isn't that the old Pharyngula site?
19:14:07 <elliott> ISTR he moved.
19:15:12 <Phantom_Hoover> You mean as part of the general SB exodus?
19:15:19 <elliott> Yes.
19:19:37 <Sgeo_> There's an SB exodus?
19:19:47 <Sgeo_> And he still seems to be posting on there
19:20:18 <elliott> "More articles by PZ Myers can be found on Freethoughtblogs at the new Pharyngula!"
19:20:20 <Sgeo_> Or, well, I kind of have a backlog in my "Slow" feeds
19:20:22 <elliott> Those posts are just mirrored, it seems.
19:20:32 <elliott> From http://freethoughtblogs.com/pharyngula/.
19:20:37 <elliott> http://freethoughtblogs.com/pharyngula/2011/08/06/somebody-doesnt-understand-basic-genetics/
19:21:03 <elliott> And yes; IIRC the SB exodus was due to adverts.
19:21:10 <elliott> Or something like that; they did something shitty and everyone jumped ship.
19:30:16 -!- derrik has quit (Quit: left).
19:33:40 -!- CakeProphet has quit (Ping timeout: 276 seconds).
19:39:29 <NihilistDandy> As much as I enjoy the sort of obscure math jokes in the new season of Futurama, they seem a little wanky most of the time
19:39:47 -!- monqy has joined.
19:40:50 <NihilistDandy> s/a little/really/
19:44:12 <elliott> hello monqy
19:44:40 <monqy> hello
19:45:07 <elliott> welcome to the house
19:45:16 <monqy> house
19:45:22 <monqy> the house
19:49:17 -!- oerjan has joined.
19:49:44 -!- pikhq_ has joined.
19:50:13 -!- pikhq has quit (Ping timeout: 246 seconds).
19:53:38 <oerjan> ok, so i think i have found a way to implement fractran such a way as to get the usual halting condition for it. even though i _still_ don't know a way to calculate n%2 in a standalone way.
19:53:46 <oerjan> *in such
19:54:35 <oerjan> and in fact i suspect it is impossible.
19:54:56 <elliott> :(
19:55:43 <oerjan> essentially my problem was that i was trying to get information out of the loop for each fractran rule about whether it had triggered.
19:56:13 <oerjan> now _each_ fractran rule loop is perfectly capable of understanding an n%2 halting condition, though.
19:57:40 <oerjan> so the solution is to merge all the rule loops into one which does a gigantic case branch modulo the lcm of all the denominators.
19:57:45 -!- Taneb has joined.
19:57:57 <Taneb> 'Lo
19:58:00 <oerjan> hi
19:59:10 <oerjan> thus, the necessary information for halting the program no longer needs to leave that loop, and no separate main loop is needed.
20:00:12 -!- zzo38 has joined.
20:00:36 <zzo38> Can you make real numbers in Haskell if you have enough constructors for what you are making?
20:01:39 <pikhq_> zzo38: There exist uncomputable real numbers.
20:02:39 <oerjan> using this, and a bit of exponentiation and logarithm at the end, it should be possible to calculate any computable function of a single natural number in 3-cell brainfuck. but quite probably not without clobbering the original, even for n%2.
20:02:58 <zzo38> pikhq_: Yes I know that. But, you would have constructors for all the things you are making compute in your program. Not for uncomputable things
20:04:00 <zzo38> But pretend you have a hypothetical "oracle" function, now you could make up a consrtuctor for that and you can have uncomputable things. Of course it is impossible, which is why it is hypothetical.
20:04:52 <pikhq_> It'll still not get you the reals.
20:05:12 <zzo38> I know that.
20:05:14 <elliott> Haskell could have reals just fine.
20:05:20 <pikhq_> Perfectly possible to do the *computable* reals, though.
20:05:26 <elliott> You just couldn't get at most of them.
20:05:31 <elliott> But you could easily define a constant
20:05:33 <elliott> chaitin :: Real
20:06:13 <zzo38> But then you could not compute anything about it, many of the operations defined on Real number will fail when used with such constantss if they represent uncomputable numbers
20:07:50 <zzo38> I think you would just need constructors for the various ways of computing reals, such as trigonometric, exponent, logarithm, arithmetic, etc, and then the compare function, add function, floor, so on, must based on which constructor is being used
20:09:12 <zzo38> But I don't know for sure or for exactly
20:09:13 <oerjan> even _that_ may make the compare function uncomputable. there are easy constants that are unknown whether they are rational numbers...
20:09:39 <oerjan> for example e*pi, iirc
20:10:26 <oerjan> and it is conceivable that if it _is_ a particular rational number, you can never prove it
20:11:16 <oerjan> (whether this is possible for e*pi in particular, i don't know)
20:12:30 <zzo38> Maybe the program might not halt in some cases due to that...
20:13:02 <oerjan> quite likely.
20:17:12 <zzo38> But which things are possible?
20:19:54 <oerjan> you can compute continuous functions
20:20:21 <oerjan> so all those you mentioned except compare and floor
20:21:20 <oerjan> hm well, except logarithm of zero or division by it
20:21:41 <zzo38> But compare and floor can probably work in some cases; and in other cases it will not halt, I think.
20:21:58 <oerjan> yes.
20:25:37 <oerjan> <Patashu> I think given crossed paths, it's always a correct optimization to uncross them
20:25:49 <oerjan> but can you always do that without adding a new crossing?
20:26:41 <oerjan> also, this might disconnect the graph.
20:28:12 <oerjan> hm indeed uncross does shorten it, since a side of a triangle is always shorter than the sum of the other two
20:28:58 <oerjan> oh and since it _does_ shorten, you can keep doing it until it stops
20:29:16 <oerjan> at which point there will be no crossings left.
20:31:29 <oerjan> oh and at least one of the two possible uncrossings won't disconnect.
20:31:58 <oerjan> Q.E.D.
20:33:33 <oerjan> <CakeProphet> > let mul _ 0 = 0; mul a 1 = a; mul a b = foldl (>>=) id (replicate (b-1) (+)) a in mul 4 5
20:33:37 <oerjan> hm...
20:33:42 <Taneb> That's handy
20:37:45 <elliott> oerjan: did you just solve the wire crossing problem? ;D
20:38:05 <oerjan> one of them, perhaps
20:40:14 <Taneb> A problem involving the crossing of wires
20:40:49 <Taneb> Actually closer related to the travelling salesman problem
20:42:45 <Taneb> I think I've just either completely misunderstood or solved the wire crossing problem
20:43:27 <Taneb> I'm probably cheating
20:44:18 <Taneb> I'm cheating
20:46:23 <elliott> What was the cheat?
20:46:41 <Taneb> Unless...
20:46:47 <elliott> Gregor: Ping.
20:47:05 <Gregor> elliott: NO
20:47:06 <ais523> the wire crossing problem is rather underspecified
20:47:13 <elliott> Gregor: What.
20:47:17 <Gregor> Just no :P
20:47:22 <ais523> pretty much any correct solution could be declared as cheating
20:47:28 <elliott> Gregor: I was just asking if there were any non-xvkbd virtual keyboards that weren't utterly terrible :P
20:47:39 <Gregor> 'fraid not.
20:47:40 <elliott> xvkbd simply isn't working for me with this SDL app, y'see.
20:47:43 <ais523> one thing I'm wondering about is if two-dimensional Formula is TC
20:47:45 <elliott> So I can't actaully use it.
20:47:53 <ais523> but even if it were, it would probably still count as cheating
20:47:57 <Gregor> I've tried 'em all (as of some point :P )
20:47:59 <elliott> I guess that's likely inherent to SDL, isn't it
20:47:59 <oerjan> the wire crossing problem is either very vague, obviously possible, or specific to a particular wire language
20:48:09 <elliott> Gregor: How bad's kvkbd :-P
20:48:16 <ais523> elliott: ooh, sounds like a useful Secret Project feature
20:48:26 <elliott> ais523: I just mean on-screen keyboard
20:48:32 <ais523> elliott: I know
20:48:46 <elliott> ais523: Well this puts what I thought Secret Project was out of whack
20:48:49 <ais523> I mean, you could possibly use Secret Project to make xvkbd work with an SDL program
20:48:51 <elliott> It's an... interactive... repeatable test system?
20:48:54 <elliott> Oh
20:48:54 <Gregor> elliott: IIRC, my main problem with it was configuring its size/configuration/etc. I would try to change something and just end up with a nonsense keyboard.
20:49:06 <ais523> not that it's anything close to its intended use, but meh, I like unintended uses
20:49:14 <oerjan> ais523: i think the wire-crossing problem applies perfectly well to 3-colorings, iirc. (and is solvable.)
20:49:18 <elliott> Gregor: Well, sounds "good enough". But yeah, I'm pretty sure the problem is that SDL reads from the keyboard device directly or whatever.
20:49:32 <Gregor> Probably.
20:49:43 <ais523> in fact, probably virtual keyboard input would be more useful than real keyboard input
20:49:46 <Gregor> You may want to check the SDL docs for environment variables controlling how it reads the keyboard.
20:49:54 <ais523> elliott: it ioctls /dev/term to tell it to send scancodes rather than keys, then reads from that
20:50:01 <elliott> ais523: What, SDL?
20:50:04 <ais523> yes
20:50:05 <elliott> Tell me you're joking.
20:50:09 <ais523> I know this all too well
20:50:16 <elliott> I could believe it if /dev/term was a file that actually existed
20:50:22 <ais523> umm, /dev/tty
20:50:22 <elliott> SDL is so 90s, though.
20:50:32 <elliott> ais523: But... surely that only works in a terminal.
20:50:34 <ais523> oh, it tries /dev/vc/0 first
20:50:38 <ais523> but that isn't a real file
20:50:56 <ais523> elliott: well, I didn't have X loaded in my tests
20:50:57 <Taneb> I wasn't cheating, I was wrong
20:51:07 <ais523> so it may have tried something X-related first but failed
20:51:09 <elliott> ais523: >_<
20:51:12 <elliott> Obviously it will :P
20:51:35 <elliott> SDL_NO_RAWKBD
20:51:35 <elliott> For the libvga driver: If set, do not attempt to put the keyboard in raw mode.
20:51:35 <elliott> NOT HELPFUL
20:52:16 <ais523> (other side-effects of the Secret Project; I've been running programs on the control-alt-f1 VT a lot, and have been changing permissions on /dev more than is fully sane)
20:52:22 <ais523> also, seems permissions on /dev don't persist between reboots
20:52:38 <ais523> probably because it isn't backed by disk
20:52:47 <Taneb> I'm also annoyed at all these things that are going on and I know nothing about them
20:52:51 <ais523> perhaps I should create a regular file in it to see what happens
20:52:56 <Taneb> That at sign thing, the secret project...
20:53:06 <ais523> @ just takes a long time to explain
20:53:17 <ais523> the secret project wouldn't take massively long to explain, but I don't because it's secret
20:53:23 <Taneb> That doesn't really help
20:53:26 <elliott> Taneb: I could send you at.html.
20:53:31 <Taneb> Go for it
20:53:42 <ais523> I just give hints every now and then so that the channel keeps giving me advice when I need it
20:53:50 <Taneb> You want e-mail, elliott?
20:53:55 <elliott> Nah.
20:53:59 <elliott> I can /msg you a sprunge link to download it.
20:54:01 <ais523> it's harder in other channels, as I have to come up with plausible unrelated reasons to ask related questions, then imply them as heavily as I can without actually lying
20:54:04 <Taneb> Do it
20:54:08 <elliott> Somewhat bothered by the fact that my go-to introduction to my OS is a barely-edited forum post I wrote months ago.
20:55:49 -!- ooozanoodles has joined.
20:55:50 <ais523> Taneb: if you're curious about the Secret Project, though, you could ask other channel members what they think it is
20:55:59 -!- ooozanoodles has quit (Client Quit).
20:56:33 <Phantom_Hoover> ais523, that the one with programs that quit with the wrong PID?
20:56:42 <ais523> yes
20:56:59 <ais523> I'm vaguely considering rolling PIDs from the actual system round past 65535 if they start close to it, too
20:57:08 <ais523> but I rarely leave my computer running long enough for PIDs ever to get that high
20:57:16 <ais523> and besides, it just makes the implementation harder, rather than being necessary
21:02:05 <oerjan> ais523: well, say hi to skynet for me
21:02:30 <ais523> he isn't online right now
21:02:37 <ais523> (Skynet's a friend of mine from another channel)
21:02:40 <ais523> or I would have done
21:02:59 <oerjan> yes, a "friend" from the secret project
21:03:44 <ais523> no, secret project is alone
21:03:49 <ais523> you people know more about it than anyone else but me
21:04:05 <oerjan> or would, if we were paying attention
21:04:23 <ais523> no, even then
21:05:12 <monqy> I think I know something about some project but I don't know if I actually know this, or if it's about the right project
21:05:59 <ais523> monqy: spill it anyway, it'll bea musing
21:06:05 <Phantom_Hoover> monqy, ISTR it involves some insanish system-level hack.
21:06:29 <ais523> it's both Linux-specific and x86-specific, which is pretty insanely nonportable for me
21:06:49 <ais523> I might modify it to handle x86_64 at some point too, which will need lots of tweaking of constants but not much else
21:07:45 <monqy> the only thing I think I know is multiplayer co-op nethack being a project but I don't know if it actually is or if it's this project at all
21:07:53 -!- augur has changed nick to augur[hl2e1].
21:07:53 <Taneb> So, that's what @ is.
21:08:11 <Taneb> Well, sounds interesting.
21:08:17 <Taneb> I'd love to help!
21:08:53 <elliott> Excuse me but humans are in direct opposition to the @ philosophy.
21:09:00 <elliott> The first phase is everyone else dying.
21:09:12 <monqy> are subhumans in direct opposition to the @ philosophy
21:09:27 <elliott> No. You may live.
21:09:52 <Taneb> I don't legally qualify as human
21:10:45 <elliott> wat
21:10:48 <ais523> monqy: multiplayer co-op nethack isn't secret, it's just unfinished
21:10:54 <monqy> i see
21:10:58 <ais523> you can even get source code from me on request, although it won't actually work
21:11:04 <ais523> so there's not much point
21:11:22 <monqy> all I know about the secret project, then, is what you revealed today
21:11:56 <ais523> I didn't reveal much that wasn't common knowledge anyway, but managed to confuse elliott
21:11:59 <ais523> I'll count that as a win
21:13:04 <oerjan> <MDude> For instance, modal logic looks like it could be recursivly applied to itself to form a tree structure.
21:13:08 <elliott> ais523: you did?
21:13:10 <oerjan> kripke models, dude
21:13:10 <elliott> oh
21:13:11 <elliott> right
21:13:44 <oerjan> this channel has too many nicks starting with m.
21:14:22 <ais523> elliott: I think I just managed to confuse you again :)
21:14:30 <elliott> ais523: ;_;
21:14:43 <Taneb> oerjan: I get confused with the o's.
21:15:02 <elliott> oerjan, oklopol
21:15:03 <elliott> what's the difference
21:15:26 <oerjan> well, first of all there is no oklopol in the channel.
21:16:09 <monqy> whos olsner
21:16:16 <elliott> so you are not here either
21:16:22 <oerjan> monqy: some rutabaga
21:16:26 <oerjan> i mean, swede
21:17:47 <Taneb> btw elliott, your html was missing a few rather important tags
21:17:55 <Taneb> i.e. html, head, and body
21:18:06 <elliott> Taneb: lol
21:18:27 <elliott> Taneb: Please point me to the paragraph in http://www.whatwg.org/specs/web-apps/current-work/ that invalidates my page, thanks
21:18:44 <elliott> http://dev.w3.org/html5/spec/Overview.html is also acceptable
21:18:52 <elliott> as is http://www.w3.org/TR/html5/
21:20:19 <ais523> does it still have <?doctype html followed by some sequence of characters (possibly >)?
21:21:19 <tswett> Gee. How do you refer to inanimate objects with pronouns in Finnish?
21:21:32 <elliott> ais523: No, because that would invalidate it
21:21:44 <elliott> (My pedantic asshole mode has been enabled by someone taking fault with the HTML.)
21:22:00 <ais523> oh, hmm, HTML5 allows fragments to serve as the whole document (in only certain circumstances?)?
21:22:17 <elliott> ais523: Nope, you just think exclamation marks are exclamation marks
21:22:19 <elliott> Um...
21:22:21 <elliott> Are question marks.
21:22:29 <ais523> aha
21:22:38 <ais523> I haven't written any HTML for a while
21:22:52 <ais523> and my method for writing standards-compliant HTML is to write approximately what I think is right from memory, then run it through Tidy
21:22:55 <Taneb> elliott: found one!
21:23:03 <ais523> in fact, I don't even bother writing doctypes manually
21:23:04 <elliott> Taneb: Go on.
21:23:06 <Taneb> You used a title element outside of a head element!
21:23:17 <elliott> Taneb: No, I did not.
21:23:17 <zzo38> I also haven't written any HTML for a while, because I usually use other formats such as raw ASCII text, or TeX document
21:23:38 <elliott> Taneb: BTW, if you run it through the official W3C validator, you will see that it is perfectly valid.
21:23:40 <elliott> validator.nu agrees.
21:24:21 <Taneb> The SECOND LINE OF YOUR DOCUMENT!
21:24:43 <elliott> Taneb: Nope. You are wrong.
21:24:58 <Taneb> Then you have linked it to me weirdly
21:25:05 <elliott> Nope.
21:25:09 <elliott> You are just misreading the spec.
21:25:22 <elliott> Or rather, misinterpreting what my syntax means.
21:26:18 <oerjan> <html><body><head><ear>BZZZZZZZ</ear></head></body>
21:26:27 <oerjan> </html>
21:39:51 * tswett katson Gregor:n.
21:40:31 <Gregor> tswett: NOOOO
21:41:43 * tswett en katso Gregor:n.
21:42:01 <tswett> "En" means "not", so I'm doing what you asked.
21:42:46 <nooga> 9init
21:44:10 <pikhq_> tswett: HTML is much less complex than you think.
21:44:23 <pikhq_> Well, rather, HTML has much less mandatory complexity in HTML source than you think.
21:44:54 <nooga> html is so passe
21:45:09 <elliott> pikhq_: I don't think tswett thinks that.
21:45:17 <tswett> pikhq_: how do you know how complex I think HTML is?
21:45:17 <nooga> haml is the thing!
21:45:22 <elliott> But yeah, Taneb is wrong about my HTML being invalid.
21:45:27 <tswett> By my katsoation of Gregor:n?
21:45:30 <pikhq_> elliott: He thinks <head> needs to be explicitly named!
21:45:37 <zzo38> In addition to raw ASCII text, and TeX document, I also use gopher menu format.
21:45:49 <elliott> pikhq_: He does?
21:46:00 <tswett> Taneb: have you been impersonating me?
21:46:30 <pikhq_> ... Wrong tab complete.
21:46:49 -!- ais523 has quit (Remote host closed the connection).
21:47:01 <pikhq_> t<tab> completed to tswett, not Taneb.
21:49:07 <Phantom_Hoover> elliott, which HTML?
21:49:19 <Phantom_Hoover> That of "Files Suck"?
21:49:22 <elliott> No.
21:49:24 <elliott> That of at.html.
21:49:52 <Phantom_Hoover> What's at.html?
21:50:01 <elliott> Something you don't have. :p
21:51:24 <Taneb> The w3 HTML5 spec clearly says that the title element can only be used in a head element containin no other title elements
21:51:33 <elliott> Taneb: Indeed.
21:51:39 <elliott> Taneb: And I did not violate that constraint.
21:51:50 <Taneb> You have used a title element that is not in a head element
21:51:53 <elliott> No.
21:51:57 <elliott> That title element is within a head element.
21:52:14 <elliott> When both the widely-used validators disagree with you, you might want to consider that you're misinterpreting the spec :-P
21:52:53 <Gregor> Implicit head, bizziches!
21:53:20 <Taneb> ...I hate you.
21:53:31 <elliott> Taneb: What.
21:53:33 <pikhq_> Taneb: Can only be used in a head DOM element. The DOM element exists.
21:53:43 <pikhq_> And the title element gets put in there.
21:54:15 <Taneb> I am going to go away and cry now.
21:54:23 -!- Taneb has quit (Quit: using sirc version 2.211+ssfe).
21:54:29 <elliott> I...
21:54:31 <elliott> Is he being serious?
21:54:40 <oerjan> we might find out
21:54:44 <Gregor> Probably only about the "going away" part :P
21:54:56 <monqy> literally cryeing
21:55:11 <elliott> oerjan: now if he comes back under another nickname, I think we have to seriously consider the prospect that e might be fax, lying about eir location to avoid suspicion...
21:55:12 <elliott> :tinfoil:
21:55:55 <oerjan> elliott: i find it _very_ doubtful that fax would have been able to participate peacefully on the iwc forum for this long.
21:56:18 <elliott> oerjan: haha
21:56:29 <elliott> oerjan: well is there any programming discussion there :D
21:56:41 -!- Taneb has joined.
21:56:45 <Taneb> Sorry about that
21:56:46 <oerjan> well not much
21:56:56 <Taneb> I'm a little upset, now
21:57:00 <Taneb> But you are right.
21:57:02 <Taneb> I am wrong.
21:57:05 <oerjan> Taneb: hate the sin, not the sinner. in this case, hate html.
21:57:05 <Taneb> I accept that.
21:57:11 <elliott> I'm not arguing with you :-P
21:57:24 <elliott> But html, head and body can be inserted implicitly in HTML5.
21:57:29 <Taneb> I was arguing with you, that's what matters
21:57:45 <Taneb> And I have lost that argument, which may have only existed in my head
21:57:56 <Taneb> And...
21:57:58 <Taneb> And I
21:58:09 <Taneb> I'm sorry I said I hated you
21:58:17 <pikhq_> elliott: It lets you use HTML as a halfway-reasonable markup language.
21:58:19 <pikhq_> :)
21:58:22 <elliott> WELL I STILL HATE YOU
21:58:25 -!- augur[hl2e1] has changed nick to augur.
21:58:29 * elliott hopes Taneb's sarcasm parser is working.
21:58:29 <Taneb> And I'm sorry I left as soon as I was proven wrong.
21:59:11 <Taneb> It's working
22:00:27 <Taneb> I am going to continue to use html, head, and body tags in my html documents.
22:00:46 <elliott> PLEBEIAN
22:00:50 <nooga> HTML is painfully redundant
22:00:59 <monqy> I try to avoid htmle
22:01:08 <lament> htmlle
22:01:08 <nooga> use this instead -> http://haml-lang.com/
22:01:59 <elliott> nooga: How much are you being paid
22:02:09 <elliott> Second time you've mentioned Haml in the last half an hour or so :P
22:02:17 <nooga> haml haml haml haml
22:02:22 <nooga> haml haml haml haml
22:02:25 <nooga> use haml!
22:02:29 <lament> no.
22:02:30 <fizzie> Spaml.
22:02:37 <Phantom_Hoover> nooga, is this what omega combinator's job is?
22:02:42 <nooga> no
22:02:50 <Phantom_Hoover> Crappy web app... FP-oriented name...
22:02:53 <nooga> i just like haml
22:02:59 <elliott> Phantom_Hoover: What?
22:03:11 <oerjan> nooga: you don't have to haml it in
22:03:19 <Phantom_Hoover> elliott, weren't you there?
22:03:23 <elliott> Phantom_Hoover: No.
22:03:30 <Phantom_Hoover> nooga mentioned he got a contract for some crappy web app.
22:03:33 <nooga> Phantom_Hoover: the name is different
22:03:38 <elliott> Phantom_Hoover: When?
22:03:53 <Phantom_Hoover> Yesterday? Today?
22:03:59 <Phantom_Hoover> One of them.
22:04:01 <nooga> you don't even know what the web app is so how can you say it's crappy
22:04:02 <elliott> 23:49:53: <nooga> wtf
22:04:02 <elliott> 23:50:07: <nooga> who are you
22:04:02 <elliott> nooga finds out that people join when he isn't here.
22:04:32 <nooga> wait
22:04:34 <Phantom_Hoover> nooga, you said it was crappy.
22:04:34 <nooga> no
22:04:37 <nooga> yes
22:04:43 <nooga> I remember, excuse me
22:04:47 <nooga> it is crappy
22:05:03 <nooga> almost every webapp is crappy
22:05:08 <oerjan> <fizzie> Spaml. <-- perfect
22:06:05 <oerjan> the extremely verbose web scripting language with a hindley/milner type system.
22:06:56 <elliott> "Hindley/Milner" <-- be careful with that
22:07:18 <oerjan> why
22:08:32 <tswett> Well, you don't want to accidentally say "Hindley/Minler", or "Hildney/Milner".
22:09:13 <Taneb> Hilled the miner!
22:09:43 <elliott> oerjan: it reads as something you don't quite intend
22:10:03 <oerjan> wat
22:12:24 <Sgeo_> I love Quassel except for the bug that makes it nearly unbearable
22:12:42 <elliott> oerjan: JUST ACCEPT IT
22:13:04 <oerjan> Let the Function Map of Anything and Nil be Nil and Map of f and Cons of first and rest be Cons of (f of first) and Map of f and rest
22:13:32 <elliott> what
22:13:58 <oerjan> elliott: oh wait you wanted me to use a hyphen
22:14:08 <oerjan> O KAY
22:14:28 <oerjan> elliott: just a little sample of Spaml
22:14:56 <oerjan> a small Spaml Map sample
22:15:42 <elliott> oerjan: I didn't want you to use a / :P
22:16:37 -!- Taneb has quit (Ping timeout: 276 seconds).
22:16:38 <oerjan> ok i have registered the elliott/tswett objection
22:18:02 <Phantom_Hoover> Sgeo_, oh ffs stop going on about Quassel.
22:18:57 -!- Taneb has joined.
22:21:02 -!- nooga has quit (Ping timeout: 264 seconds).
22:22:03 <tswett> oerjan: I disapprove of your parentheses. They make it too unambiguous.
22:23:24 <oerjan> tswett: there's still a possible ambiguity left with the last "and"
22:24:31 <tswett> Yes, but there should be more ambiguity.
22:24:52 <oerjan> oh and the second last could be the start of a new match
22:25:08 -!- Cheery has quit (Quit: Lost terminal).
22:27:58 <oerjan> *Let the Function Map of Anything and Nil be Nil and the Map of f and the Cons of first and rest be the Cons of the f of first and the Map of f and rest
22:30:17 <oerjan> might need more articles
22:30:32 * tswett ponders an enthusiastic progamming language.
22:31:16 <Phantom_Hoover> tswett, it really enjoys evaluating things?
22:32:17 <Taneb> "Yeah! Printing 'Hello World!' I love that! Woo!"
22:33:05 <tswett> Definition! Function: Map! Situation! First Argument: Anything! Second Argument: Nil! Result: Nil! Situation! First Argument: f! Second Argument: Cons! Arguments to Cons! First Argument: first! Second Argument: rest! Result: Cons! Arguments to Cons! First Argument: Application! Function: f! Number of Arguments: one! Argument: first! Second Argument: Application! Function: Map! First Argument: f! Second Argument: rest!
22:33:38 -!- FireFly has quit (Quit: swatted to death).
22:39:08 -!- Sgeo_ has changed nick to Sgeo.
23:13:15 -!- MigoMipo has quit (Read error: Connection reset by peer).
23:22:50 -!- Taneb has quit (Ping timeout: 264 seconds).
23:37:36 -!- bsmntbombdood has quit (Quit: leaving).
←2011-08-05 2011-08-06 2011-08-07→ ↑2011 ↑all