00:00:51 <shachaf> DES was probably less pathetic in the 1970s.
00:01:37 <kmc> i don't know why MIT can't switch now
00:01:38 <Sgeo> kmc, Debian keys produced with that bug, would trying all possible keys be considered brute-force?
00:02:21 <kmc> probably they have some legacy system that only does DES but i don't know what or how important it is
00:02:42 <kmc> i think SIPB should force the issue by buying a DES cracker; they have too much money anyway
00:02:53 <kmc> Sgeo: not for the purposes of my statement
00:02:57 <kmc> the screwup there is Debian's patch
00:03:27 <shachaf> Does a device that brute-forces DES in a day really cost $10,000?
00:04:02 <zzo38> cheater__: Yesterday? But the full moon has not yet occurred.
00:07:40 <zzo38> It isn't quite full.
00:09:22 <kmc> shachaf: it's hard to find prices, but some places say $10k
00:09:30 <kmc> i believe it anyway
00:09:35 -!- itidus22 has joined.
00:12:13 <shachaf> I mean that I would've expected it to be less.
00:12:20 <shachaf> But I don't have much of a reference point.
00:12:34 <shachaf> (Other than "$250,000 in 1999, apparently".)
00:12:52 <zzo38> If you have a horoscope, you can see when the full moon is. There should be a line (called an aspect) between the sun and moon. If this line passes through the center of the chart, then it is full moon. The moon and sun move counterclockwise relative to the signs; the moon moves much faster. So depending on which side the aspect line misses the center, you can see the before/after full moon.
00:13:01 -!- itidus20 has quit (Ping timeout: 276 seconds).
00:13:11 <kmc> EFF's thingy used custom chips
00:14:11 <cheater__> zzo38: is there a bare eye way to discern a full and not-quite-full moon?
00:14:40 <zzo38> cheater__: I don't know if the difference is enough to see by a bare eye; you might need a telescope.
00:25:38 -!- itidus22 has quit (Ping timeout: 240 seconds).
00:28:55 -!- itidus21 has joined.
00:29:23 -!- MoALTz has joined.
00:31:45 <ion> phantom_hoover: URL, please.
00:31:54 <ion> Oh, he left.
00:35:29 <zzo38> You could use the UNIX "phase of moon" program if you have it, to tell you phase of moon. You could also use a program such as Astrolog to tell you the phase of moon and many more things (if you can understand what everything means). Most calendars also have phase of moon but those only indicate the date and not the time of day, so it may not be precise enough.
00:36:28 <zzo38> (Note: Astrolog has the ability to print calendars, but you cannot plot any other data on these calendars; only the month, days of week, and day numbers are being displayed!)
00:52:12 -!- nortti has quit (Ping timeout: 272 seconds).
00:55:49 -!- Patashu has quit (Ping timeout: 248 seconds).
00:57:52 -!- pikhq_ has joined.
01:01:24 -!- pikhq has quit (Ping timeout: 245 seconds).
01:18:05 -!- Patashu has joined.
01:27:56 -!- jfischoff has joined.
01:32:30 -!- PatashuXantheres has joined.
01:35:20 -!- Patashu has quit (Ping timeout: 255 seconds).
02:05:11 <zzo38> What is the bird for (\f g x -> f (g x) (g x))?
02:07:54 <itidus21> Rooster is only going to make some of us hungry.
02:14:31 <zzo38> I made it so that Warbler is a type for endomorphisms of any category and Starling is a type for endomorphisms of a Kleisli category of a monad on any category.
02:14:58 -!- calamari has joined.
02:21:15 -!- PatashuXantheres has quit (Ping timeout: 255 seconds).
02:23:16 <itidus21> `log [e]xtend every extra extreme
02:23:52 <itidus21> `log [e]xtend every extra extreme
02:24:07 <HackEgo> 2012-04-26.txt:01:24:11: <itidus20> and finally, there is a game named Extend Every Extra, and as google told me another one named Extend Every Extra Extreme. And another game named Kingdom Hearts 3D subtitled Dream Drop Distance
02:27:42 -!- Patashu has joined.
02:48:57 <zzo38> Do you agree that the whole house system is stupid?
03:01:48 -!- jfischoff has quit (Quit: jfischoff).
03:23:29 <ion> s/house //, yeah
03:24:25 -!- jfischoff has joined.
03:54:36 -!- azaq23 has quit (Quit: Leaving.).
04:06:10 -!- Taneb has joined.
04:13:31 <Taneb> The time is not a time I like
04:13:57 <Taneb> Because it's inbetween 3 and 6 AM
04:14:40 <zzo38> What house is the sun at?
04:15:11 <Taneb> I don't actually know what that means
04:15:22 <zzo38> No, I mean the houses on a horoscope; they only go up to 12.
04:15:50 <Taneb> Well, I have no idea
04:16:21 <zzo38> (Houses numbered 1 to 6 are below the horizon; numbered 7 to 12 are above the horizon. The sun is at the cusp of the 10th house at solar noon.)
04:17:02 <Taneb> It looks like twilight at the moment?
04:17:13 <Taneb> But it's been twilight for a while
04:21:53 <zzo38> On my computer I can compute those things with a few different house systems. In my location, sun is in 6th house.
04:22:25 <zzo38> For twilight, maybe the sun is in first house?
04:25:02 <Taneb> If I give you my co-ordinates, will that help?
04:25:51 <Taneb> 54.9695 N, 2.0842 W
04:26:36 <zzo38> That is close enough
04:26:56 <zzo38> Yes the sun is in first house in that location
04:26:56 <Taneb> The approximation is in accuracy, not precision
04:27:23 <zzo38> It is still close enough for most purposes.
04:28:22 <Taneb> Could I have just said "55N, 2W"?
04:28:59 <zzo38> Taneb: The program I have expects two decimal places, and the coordinates of a city in a map should be close enough.
04:38:40 -!- jfischoff has quit (Quit: jfischoff).
04:38:58 <itidus21> i was pondering yesterday that it would be interesting to me to have a number that was either: integer a + 0, or integer a + 0 > b > 1 .. written like 3 or 3.f where f stood for fraction
04:40:09 <itidus21> since i will get told off no matter which incorrect notation i use, i tried my best
04:41:05 <itidus21> so, normally i might have 4 numbers: 2, 5.3, 7, 3.11 but i would now have them as: 2, 5.f, 7, 3.f
04:41:36 <itidus21> or probably even leaving the decimal off altogether
04:42:26 <zzo38> Some house systems are Placidus, Campanus, and Regiomontanus.
04:43:11 <zzo38> (There is also Whole, but Whole house system is very stupid so don't use it.)
04:52:28 -!- jfischoff has joined.
05:34:18 -!- jfischoff has quit (Quit: jfischoff).
05:34:24 <ion> This week’s electronics lectures have a promising start: http://imm.io/oobP
05:50:49 <quintopia> zzo38: have you ever played stratego?
05:58:13 <pikhq_> So. There's a way to stick 364 bytes in a Twitter message.
05:58:24 <pikhq_> Easy. Encode base 2^21-1.
05:59:04 <pikhq_> Twitter's message limit is in codepoints, not bytes.
05:59:18 <kmc> https://blogs.oracle.com/ksplice/entry/the_1st_international_longest_tweet
06:00:45 <pikhq_> Oh, dear, you can use UTF-8 that doesn't map to code points.
06:01:22 <Taneb> I would have thought it would be characters, not codepoints
06:01:37 <pikhq_> Taneb: It's not. If it's characters East Asia is screwed.
06:01:46 <kmc> because they would perform normalization server-side?
06:01:54 <kmc> that's plausible but not what I would expect
06:02:16 <zzo38> quintopia: I have played some similar things.
06:02:48 <kmc> how many copies of U+FDFA 'ARABIC LIGATURE SALLALLAHOU ALAYHE WASALLAM' can you tweet :)
06:03:11 <kmc> that one probably doesn't normalize out to basic letters
06:03:19 <kmc> under whatever twitter would use
06:03:29 <pikhq_> So, the upper bound is... 538 bytes?
06:03:37 <kmc> but there are some situations where single codepoints will expand dramatically
06:04:52 <quintopia> pikhq_: is there a way to print a message longer than usual so that it will display correctly on the twitter site?
06:05:13 <pikhq_> lb((2^31-1)^139)/8 that is.
06:06:20 <zzo38> quintopia: I have once played a chess variant known as kriegspiel.
06:06:33 <quintopia> zzo38: how hard was it? did you win?
06:06:56 <pikhq_> Of course, if their UTF-8 parsing is still more naive you might be able to get more in.
06:07:15 <pikhq_> Maybe they let you use an unbound number of continuation bytes? :)
06:08:11 <zzo38> But I also know about Luzhanqi (which is a Chinese kind of Stratego game)
06:13:55 -!- asiekierka has joined.
06:18:34 <pikhq_> "Assembling service pack", says Windows.
06:18:47 <pikhq_> I like to think they write it in assembly and distribute the source code.
06:39:34 -!- TeruFSX has quit (Ping timeout: 244 seconds).
06:40:03 -!- jfischoff has joined.
06:45:34 <itidus21> zzo38: i think one of the biggest problems in game design is that sometimes people think there are rules to follow they can rely on, and other times people think there are no rules
06:47:49 <itidus21> i'll have a second shot at saying that: game designers are subject to the following wiki cut and paste:
06:47:53 <itidus21> "At a group or community level, the conventional levels of significance or salience are slowly embedded in the sign systems and culture, and they cannot arbitrarily be changed."
06:50:31 <itidus21> Like I still don't understand why platform games are fun, but due to convention it is difficult to think about 2d games in other ways.
06:53:29 <pikhq_> 5 fucking hours, and Windows is installed.
06:53:40 <pikhq_> And I still don't have a C compiler!
06:55:17 -!- Slereah_ has quit (Ping timeout: 248 seconds).
06:55:52 -!- Slereah has joined.
07:01:34 <zzo38> itidus21: The rules of game design are whatever you design the rules to be. And then, if you don't like it, adjust it until it is better.
07:02:11 <zzo38> pikhq_: Yes, that is the problem of Windows; it lacks many important programs as standard.
07:02:53 <pikhq_> zzo38: Not the only one.
07:03:06 <pikhq_> Probably not even the most significant problem.
07:03:20 <zzo38> pikhq_: Yes; there are many other problems too.
07:03:22 <pikhq_> Probably the most significant problem is how stupifyingly hard it is to dev for.
07:03:58 <kmc> yeah, even though free tools exist, a lot of them don't work as well as MSVC
07:04:02 <kmc> like for anything OpenGL
07:04:16 <kmc> if you're just doing basic stuff though, Dev-C++ is a pretty easy way to get mingw set up
07:04:20 <kmc> and an okay IDE
07:04:27 <pikhq_> kmc: And MSVC itself doesn't work tolerably for C.
07:04:34 <kmc> nb: all my information about windows dev is 5+ years out of date
07:04:36 <kmc> pikhq_: oh?
07:04:44 <pikhq_> kmc: They last touched it in the 90s.
07:04:57 <kmc> true, they don't even implement all of C99
07:04:57 <pikhq_> Besides which, unless you're going to use a higher-level language, you're stuck with the Win32 API.
07:05:11 <pikhq_> Which is evidence in favor of the nonexistence of God.
07:05:25 <pikhq_> They don't even implement C90 perfectly.
07:05:39 <kmc> from what i recall, Win32 API is pretty bad, but POSIX is no picnic either
07:05:42 <pikhq_> Though admittedly, that's just because of a couple weird edge cases.
07:06:18 <pikhq_> POSIX is rough. Win32 is designed by monkeys on typewriters.
07:06:34 <kmc> i hear the Windows kernel interface is pretty nice, if undocumented
07:06:47 <zzo38> itidus21: In addition, I do not completely understand that wiki cut and paste.
07:06:47 <Taneb> Win32 contains the letter s a few dozen times, and some monkey piss?
07:06:58 <kmc> because unlike Linux they break compatibility whenever they like
07:07:15 <kmc> Linux has a *lot* of syscalls which are special cases of other syscalls
07:07:50 <pikhq_> int CALLBACK WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
07:08:09 <kmc> what does CALLBACK do?
07:08:10 <pikhq_> How do you make the *entry point itself* seem horrible?
07:08:24 <kmc> that's not so horrible
07:08:30 <pikhq_> kmc: It's one of the calling convention specifiers.
07:08:36 <kmc> which one, though
07:09:50 -!- jfischoff has quit (Quit: jfischoff).
07:10:23 -!- asiekierka has quit (Read error: Connection reset by peer).
07:10:49 -!- asiekierka has joined.
07:11:00 <pikhq_> Dammit this is impossibly hard to find.
07:11:24 -!- Patashu has quit (Ping timeout: 245 seconds).
07:12:20 <Taneb> It's odd that one of C's main criticisms has became standard in many programming languages
07:13:28 <kmc> that's not one of C's main criticisms
07:13:51 <pikhq_> Worse still, just by not using those *stupid* typedefs it could look nicer: int WinMain(void *h_instance, void *h_previnstance, char *cmdline, int cmd_show)
07:14:49 <pikhq_> Shame that junk's there because Win16.
07:15:20 <Taneb> kmc, it's the criticism of C that I hear most often
07:15:45 <pikhq_> Where it would've been more like int WinMain(void __long * h_instance, void __long *h_previnstance, char __long *cmdline int cmd_show)
07:16:57 <pikhq_> Also, some moron liked his Hungarian.
07:21:43 <kmc> Taneb: that's because people are idiots and can't look past trivial syntactic matters to the things which actually make a language good or bad
07:22:22 <kmc> also it's easy to have an opinion about syntax, and there's no objective right/wrong answer
07:22:33 <pikhq_> Except we can all agree Malbolge is bad.
07:22:48 <pikhq_> Anything less than Malbolge, though? Yeaaah.
07:23:13 <kmc> if you voice an opinion about semantics or types or implementation or security, someone can actually refute your claim with objective fact
07:23:49 <zzo38> kmc: In some cases it might depend what kind of opinion they are, too?
07:23:57 <zzo38> (Like, I mean, more specific than what you said)
07:23:59 <kmc> though the opposite extreme is dumb as well
07:24:21 <kmc> programming language design is largely a user interface problem, and syntax *is* important
07:25:10 <pikhq_> Just easy to bikeshed on.
07:25:21 <pikhq_> Though, any UI problem is.
07:26:27 -!- Slereah has quit (Remote host closed the connection).
07:29:31 -!- Slereah has joined.
07:29:41 <kmc> i think the spelling of = and == is probably below the level that makes a big difference even from a UI / UX perspective
07:30:11 <kmc> stuff like having consistent syntax, uncluttered syntax, that's a big deal
07:30:26 <kmc> = and == are conventional enough by now that I don't really care
07:30:42 <kmc> = versus <- causes loads of confusion in Haskell, but it's not like there's an existing convention to appeal to
07:30:55 <monqy> =/== bugs can be a big deal when you can use = in expressions like in C
07:31:11 <pikhq_> /= in Haskell is a bit weirder.
07:31:34 <kmc> monqy: true, but it's easy enough for a compiler to warn about those
07:31:38 <zzo38> kmc: How does = versus <- cause confusion in Haskell?
07:32:04 <kmc> zzo38: they're both sort of like assignment in traditional imperative languages, but neither is actually that
07:32:19 <kmc> the confusion is not actually syntactic
07:32:47 <kmc> the confusion is that beginners don't have the concept of "let binding" and "monadic sequencing"
07:32:55 <kmc> but it's phrased as "what's the difference between = and <-"
07:32:57 <itidus21> does it ever really help to overload operators when bugs will be caused by the differences?
07:33:05 <pikhq_> Just that the syntax happens to look like the syntax for completely different semantics.
07:33:18 <pikhq_> Though in-and-of-itself = and <- are quite reasonable choices.
07:33:21 <zzo38> kmc: The problem is solved by not using do-notation and list-comprehensions?
07:33:28 <kmc> zzo38: maybe
07:33:37 <zzo38> But = just means to specify the definition of something
07:33:39 <kmc> you still have to explain how = in let/where is not an assignment
07:33:55 <kmc> also in practice people will see tons of code that uses "do" and list comprehensions
07:34:00 <kmc> you can't just ignore them
07:34:09 <itidus21> in general, does not knowing what any piece of a program does always lead to bugs :D
07:34:11 <kmc> itidus21: i recommend writing code without bugs instead
07:34:33 <pikhq_> I recommend writing in /bin/cat.
07:34:47 <kmc> that language has a simple quine
07:34:56 <itidus21> or, in other words, does writing code with side effects always result in bugs?
07:35:23 <zzo38> kmc: Sure, a lot of codes will use them; but you do not have to use them even if another code does.
07:35:43 <kmc> zzo38: but you have to understand them if you want to read existing haskell code
07:35:43 <itidus21> crackers never seem to run out of exploits
07:35:48 <kmc> including any of the popular books
07:35:55 <kmc> and that's really essential if you want to learn the language
07:36:02 <pikhq_> (unless the null file happens to be a valid executable on your system)
07:36:22 <kmc> a "cracker" is someone who breaks into computers, not to be confused with a "hacker", which is someone who cares a lot about what Paul Graham and ESR write
07:37:20 <zzo38> kmc: Yes, that is right; you should understand the features of existing programs.
07:37:42 <itidus21> but do hackers call vulnerabilities in programs "exploits", and write code which makes use of said "exploits"?
07:38:44 <zzo38> itidus21: I suppose it might sometimes be the case; but features of the program might not necessarily be security vulnerabilities
07:38:46 <itidus21> by which i mean, a bug which only matters when someone intentionally invokes it
07:39:51 <itidus21> i imagine that you wouldn't get many bugs in pure functional code
07:40:02 <kmc> itidus21: you'd fit right in in #haskell
07:40:12 <kmc> you should go there and ask them "does writing code with side effects always result in bugs?"
07:40:13 <zzo38> I don't really know if such things really are bugs which only matters when someone intentionally invokes it
07:41:14 <itidus21> verily, one might say the maintenance part of the software development lifecycle is due to side-effects
07:41:58 <pikhq_> Clearly there are no bugs in the software that is never ran.
07:42:16 <cheater__> itidus21: basically, if your program typechecks, it's fairly certain to be doing what it's supposed to do
07:42:26 * pikhq_ for i in /bin/* /usr/bin/*;do ln -sf /dev/null $i;done
07:42:50 <zzo38> Knuth once said "Beware of bugs in the following program; I have only proven it correct, not tried it"
07:42:58 <cheater__> especially functions of type [Char] -> [Char].
07:43:14 <pikhq_> Yeah! What could that possibly do?
07:43:37 <itidus21> well theres a malware side-effect
07:43:45 <pikhq_> Clearly it can't be anything *but* a perfectly correct C-to-Brainfuck compiler.
07:43:49 <cheater__> itidus21: the bonzy buddy theorem, yes.
07:43:58 <zzo38> pikhq_: Well, it is certainly wrong
07:44:09 <itidus21> somewhere between [Char] and [Char]
07:44:56 <zzo38> itidus21: That is why they have Safe Haskell
07:45:20 <zzo38> So that you cannot install a rootkit somewhere between [Char] and [Char]
07:45:23 <cheater__> what if someone calls unsafeExecuteBonziBuddyExe
07:45:38 <itidus21> in c (which is basically all i know) char stuff(char a) { install_rootkit(); return a; } >:-)
07:45:51 <cheater__> unsafeExecuteBonziBuddyExe :: () -> ()
07:46:05 -!- monqy has left.
07:46:22 <pikhq_> stuff = unsafePerformIO install_rootkit `seq` id
07:46:23 <shachaf> There's no channel like #esoteric.
07:47:19 <Taneb> Jamie Oliver and Steven Gerrard have joined forces.
07:47:23 <Taneb> This cannot bode well.
07:47:29 <zzo38> itidus21: Yes, you can od that, but even in C, you could have the operating system deal with what you are doing such as having things to sandbox the program or to trace system calls or whatever
07:47:56 <kmc> who are these people
07:48:35 <cheater__> Celebrity chef Jamie Oliver and England footballer Steven Gerrard are calling on the government to fight obesity through cookery teaching in ...
07:48:58 <cheater__> google is a search engine which you access with the URL http://www.google.com
07:49:12 <itidus21> worse c code might be .. char add(char a, char b) {unsigned int c,d,e; c=(unsigned int)a; b=(unsigned int)d; e=c+d; a=(char)e; return a; }
07:49:21 <zzo38> kmc: What would you think, my opinion that such features of Haskell such as do-notation and so on should be macros rather than built-in; what would you think?
07:49:44 <kmc> zzo38: i would like that
07:49:53 <kmc> i'd like to have a macro system powerful enough to do these things
07:49:57 <pikhq_> itidus21: Why, that's isomorphic to the Haskell code "foo = unsafeLaunchTheMissiles"!
07:49:58 <kmc> as long as it's not also terrible
07:50:25 <pikhq_> I'm stupid: all variables actually do get initialised there.
07:50:28 <cheater__> i was at a job interview last wednesday, and they gave me fizzbuzz, i solved it by concatenating strings, and outputting it in the end. it was argued that use of a variable to hold the final output string was obfuscation and the code became unmanageable.
07:50:36 <kmc> int main() { printf((char*) 0xGOATSE); }
07:50:45 <zzo38> kmc: Myself too, it is why I wanted to make up the working group for new "Ibtlfmm" programming language, to make these and other features; perhaps we can help
07:50:52 <kmc> what's it stand for?
07:50:54 <pikhq_> shachaf: Oh, blah, sure enough.
07:50:55 <cheater__> kmc: are you able to solve the fizzbuzz problem
07:50:58 <itidus21> pikhq_: ya.. the main problem with it is the function being named add
07:51:06 <zzo38> kmc: I would think that is not a valid C code, it won't compile, isn't it?
07:51:07 <pikhq_> shachaf: Why, that *is* identical to unsafeLaunchTheMissiles.
07:51:13 <cheater__> kmc: it is a very prominent problem in computer science
07:51:39 <kmc> cheater__: you should have given them a solution which uses each of the GoF Design Patterns
07:51:42 <pikhq_> cheater__: If by "computer science" you mean "interviews that seek to eliminate people with truly gross incompetence".
07:51:57 <kmc> if they don't get the joke, walk out immediately
07:52:10 <kmc> if they do get the joke, cockslap them for being smug elitists and walk out
07:52:13 <cheater__> kmc: actually on friday i was considering if you could make a language where Singleton and MVC are the only two basic data structures, and there are some simple operations between them
07:52:18 <cheater__> and if it would be touring-complete
07:52:48 <zzo38> cheater__: Put something on esolang wiki if you have ideas about that
07:53:07 <pikhq_> cheater__: I hope you don't want to work at that place that gave you fizzbuzz.
07:53:18 <kmc> kmc = kmc↑↑↑G
07:53:44 <itidus21> kmc: i started to get a hint of it when i learned that the best assembly language programmers basically know all the side effects of all the instructions
07:53:48 <pikhq_> I mean, really, giving a shit about it beyond "is this person less qualified than the average janitor?"?
07:53:50 <cheater__> no they wanted to pay much below the standard rate
07:53:54 <kmc> asking fizzbuzz does not necessarily indicate that they're idiots
07:54:02 <kmc> but it does indicate that they're casting something of a wide net
07:54:06 <shachaf> kmc: Computable functions are passé.
07:54:20 <itidus21> at which point, i don't really see why assembly language is so valuable
07:54:35 <cheater__> which means you end up being a roast chicken in june and august
07:54:46 <pikhq_> kmc: Fizzbuzz only really tells me that they happen to have idiots coming in asking for jobs.
07:54:52 <kmc> kmc = fix (\i → Σ(i))
07:55:02 <kmc> ok i should have wrote fix Σ
07:55:03 <cheater__> i don't particularly look forward to sitting in a room with four sweating computer programmers
07:55:05 <zzo38> itidus21: But assembly language can be good for program for only a specific computer; for other programs you shouldn't use assembly language
07:55:06 <pikhq_> Well, except they then gave a damn about how it's implemented.
07:55:10 <kmc> haha cheater__
07:55:17 <shachaf> kmc: Too mch time away from #haskell!
07:55:23 <kmc> pikhq_: i think everyone offering a job has some idiots coming in
07:55:26 <kmc> busy beaver function
07:55:27 <kmc> is the one i meant
07:55:31 -!- Slereah has quit (Remote host closed the connection).
07:55:32 <itidus21> perhaps assembly language programs should be specified in terms of the intended side-effects
07:55:44 <itidus21> like .. "i want to swap this flag"
07:55:47 <pikhq_> And fizzbuzz is quite handy for finding those idiots.
07:55:54 -!- Slereah has joined.
07:55:55 <kmc> i'm not sure they're idiots exactly
07:55:59 <cheater__> they also gave me some other thing
07:56:02 <kmc> they're people trying to scam their way into a job they aren't qualified for
07:56:07 <cheater__> a thousand word text to sort by frequency
07:56:10 <kmc> they might be perfectly intelligent
07:56:13 -!- Slereah has quit (Read error: Connection reset by peer).
07:56:28 <kmc> i imagine a lot of the people caught by fizzbuzz are smarter than average people with useless liberal arts degrees who can't pay rent anymore
07:56:34 -!- Slereah has joined.
07:56:38 <pikhq_> Damned shame programming ability *isn't* identical to intelligence. :P
07:56:52 <cheater__> i did this in the simplest way possible and the guy gave me shit that i didn't use some sort of hashing algorithm to keep count during a single iteration
07:56:53 <kmc> pikhq_: what do you mean? my ability to write PHP code proves I'm a world-class olympic rockstar genius
07:57:07 <pikhq_> And, given some of the code I've seen, at best only weakly correlated. :/
07:57:10 <kmc> you know you learn a lot about the company in an interview
07:57:17 <kmc> maybe more than they learn about you
07:57:21 <cheater__> and then i told him that it still wouldn't have been perfect and started describing to him the ultimate way of doing it char by char
07:57:31 <itidus21> basically each assembly language instruction seems to be a set of register manipulations not implied by the mnemonic in question
07:57:38 <kmc> shachaf: my eyes, i can see forevenr
07:57:53 <Taneb> If you get asked to do a fizzbuzz program at an interview, do they tell you which one's fizz and which one's buzz?
07:58:11 <cheater__> actually they did "hip" and "hop" on mine
07:58:21 <shachaf> What if they're *both* fizz, man?
07:58:33 <Taneb> Then it would be called fizzfizz
07:58:45 <Taneb> And you'd have to do it in Befunge
07:58:47 <kmc> arguably you get more information because the company interviews more people than the number of places you interview at
07:59:03 <kmc> and so their interview performance is more of a well-worn expression of their identity
07:59:15 <cheater__> i have definitely learned more about them than they about me
07:59:23 <cheater__> it was some privately-owned startup
07:59:42 <cheater__> owned by some aging guy who put his family's savings into it
07:59:59 <kmc> i'm kind of hoping that next time I need to get a job, I can just be like "look at all this stuff i made [url]" and skip the fizzbuzz stuff
08:00:01 <cheater__> ended up buying a lot of stylish furniture for the office
08:00:14 <zzo38> If you program assembly languages codes you should learn the effect of the instructions.
08:00:14 <cheater__> kmc: for bonus points, make the url fizzbuzz
08:00:32 <kmc> i'll be sure to put up a gratuitous implementation of fizzbuzz too
08:00:35 <itidus21> zzo38: but... i don't like the fact that theres no shortcuts
08:00:52 <kmc> like a version in AVR assembly which uses self-modifying code
08:01:14 <itidus21> why can't side-effects be friendly ...
08:01:58 -!- Phantom_Hoover has joined.
08:02:25 <kmc> no, a board made with wire wrapped 7400 series DIP quad NAND gates
08:03:03 <cheater__> dip is for pussies, you want to do bga with a toaster
08:03:03 <kmc> i kind of want to build a relay computer
08:03:09 <kmc> i wonder if i can get cheap relays somewhere
08:03:14 <shachaf> kmc: Have you ever been asked actual fizzbuzz-style interview questions?
08:03:25 <shachaf> I think that's mostly a myth.
08:03:31 <kmc> i don't think so
08:03:40 <cheater__> kmc applies for jobs much finer than i
08:04:04 <kmc> the closest i got was "implement fib(n) recursively, then iteratively, and write the time complexity of each"
08:04:16 <kmc> the first part of which is fizzbuzz level
08:05:32 <kmc> at the finance company we had a written programming test which everyone got as the first thing in the day
08:05:38 <kmc> and this was the first question
08:06:16 <cheater__> was it the idea of a Big Swinging Dick
08:06:17 <shachaf> "write this recursively" seems like a strange thing to say, as opposed to "write this".
08:06:32 <kmc> cheater__: Liar's Poker?
08:07:03 <kmc> yeah after i accepted the job, they sent me a copy of that book
08:07:18 <shachaf> "efficiently" is a reasonable constraint, I guess, but "do this recursively and iteratively" seems dangerously close to a game of "guess what I'm thinking".
08:07:20 <cheater__> did they stick "training manual" on the front cover
08:07:52 <kmc> i think the best small companies try to hire through personal connections
08:08:03 <cheater__> no they hire through python.org/jobs
08:08:06 <kmc> so they know everyone coming in can at least pass fizzbuzz
08:08:10 <kmc> this doesn't scale so well
08:08:19 <cheater__> if you think so then you've never relied on friends for doing a job
08:08:39 <kmc> like you hope each person you get expands your network a bit
08:08:58 <kmc> everyone at ksplice has pretty much the same friends and so this didn't really work
08:09:06 <cheater__> they do, but the people working for you are for a reason not the people hiring newcomers
08:09:12 <cheater__> it's because they don't know how to
08:09:15 <kmc> they hired like the entire MIT computing club as interns
08:09:24 <shachaf> It's just a shortcut anyway.
08:09:27 <cheater__> so this guy they'll rave about, he's just as likely to be good as he is to be weak
08:09:47 <shachaf> You don't get more information from it than you would from asking some write-code-which-also-happens-to-be-interesting question, you just get it faster.
08:09:59 <kmc> shachaf: that's true
08:10:08 <cheater__> yeah it works in places with very strong compsci communities
08:10:09 <cheater__> with the usual run of the mill digital carpenters
08:10:39 <kmc> shachaf: actually we moved to an online programming test which they could take before even the phone screen
08:11:09 <kmc> which theoretically saved a lot of time by going asynchronous
08:11:22 <cheater__> in a place where people see computer programming as just a job, they'll be less likely to form connections based on the quality of someone's understanding
08:11:28 <cheater__> the pecking order is decided by other things
08:11:36 <kmc> you can easily cheat on an online test, but it only wastes their time and ours
08:11:53 <cheater__> in a place like a good university everyone will be looking up to the best h5x4rz
08:12:15 <shachaf> kmc: If your plan is to cheat your way through the whole thing somehow, you'll probably start with the online test.
08:12:19 <pikhq_> "Joy of joys" now I'm getting junk SMS
08:12:22 <kmc> hsex is like sex but better because it's in haskell
08:12:28 <kmc> shachaf: true
08:12:39 <pikhq_> Worse, it's phishing junk SMS.
08:12:50 <pikhq_> From shady-ass companies apparently in Panama
08:13:01 <Taneb> pikhq_, at least you can pretend to have friends!
08:13:03 <shachaf> pikhq_: WAL-MART CUSTOMER: U have won a free $100 gift card!
08:13:18 <pikhq_> shachaf: BESTBUY, actually.
08:13:54 <pikhq_> And another one saying "we are giving away free overstock iPad 2's"
08:14:03 <cheater__> it was nice chatting with you all, pikhq_ shachaf and itidus21 and kmc and Taneb and zzo38
08:14:15 <kmc> nice chatting with you cheater__
08:14:24 <cheater__> we should definitely arrange a repeat
08:14:31 <kmc> you know where to find me :)
08:14:58 <kmc> shachaf: Mid-Cambridge, obviously
08:15:29 <shachaf> Nice place, Mid-Cambridge.
08:16:46 <kmc> you could work for Ksploracle
08:16:52 <kmc> or ITAoogle
08:17:06 <shachaf> I thought big companies were evil.
08:17:19 <kmc> or Akamanotboughtbygooglejustyet
08:17:33 <zzo38> Did the company interview ever ask you questions, such as, how much garlic do you put in your tomato sauce?
08:17:46 -!- lexande has joined.
08:18:05 <zzo38> And, how many different colors of socks do you own?
08:18:46 <itidus21> all my socks are gray/grey and need to be washed
08:19:14 <shachaf> zzo38: How much garlic do you put in your tomato sauce?
08:19:45 <kmc> shachaf: did I tell you about my idea for a disruptive mobile social local web application platform?
08:19:49 <kmc> it's called SockSwap
08:20:11 <shachaf> kmc: Did you figure out a way to make a non-reverse-engineerable lock yet?
08:20:13 <kmc> you know, everyone has different sorts of socks, sometimes an odd number of one kind
08:20:31 <kmc> so you photograph your sock drawer using our iPhone™ app
08:20:45 <kmc> and it maches you with other people in your area who also have one of that kind of sock
08:21:03 <kmc> which provides a platform for social engagement (coffee, fucking, founding of web startups)
08:21:09 <shachaf> kmc: I saw a Vietnamese soup place called iPho.
08:21:12 <Taneb> All my socks are white with dark blue/black on the heels, toes, and with bands at the top
08:21:15 <shachaf> Except the 'o' was an almost-Apple-logo.
08:21:15 <kmc> shachaf: really?
08:21:29 -!- calamari has quit (Quit: Leaving).
08:21:39 <pikhq_> Is it weird that I find it satisfying to report shit like that to the FCC?
08:22:06 <shachaf> Downtown Mountain View has a frozen yogurt shop called "yoogl".
08:22:08 <kmc> not, like USPTO?
08:22:23 <shachaf> It used to have Google-colored-and-fonted letters.
08:22:28 <shachaf> They changed that at one point, though.
08:22:38 <pikhq_> kmc: Junk text messages and cell phone telemarketing.
08:22:48 <shachaf> pikhq_: Can you report mine too?
08:22:50 <kmc> http://s3-media1.ak.yelpcdn.com/bphoto/gVdl2TZJWcDEJj2yvLjAgw/l.jpg
08:22:56 <kmc> pikhq_: oh, I thought you meant iPho
08:23:12 <shachaf> kmc: Yep, that was the logo.
08:23:20 <pikhq_> Complete violation of FCC regulations, and companies that do it and get caught (i.e. reported) get fined obscene amounts.
08:23:22 <kmc> so what other restaurants can be named this way
08:25:25 <zzo38> kmc: How well do you know category theory and other mathematical things?
08:25:36 <kmc> Facebok choy
08:25:39 <kmc> that's pretty weak
08:27:01 <kmc> Kiwikipedia
08:28:03 <kmc> instagram crackers
08:34:13 <zzo38> If I make company, it is private so that nobody can purchase it and then mix it up too much
08:54:06 <zzo38> Do you know how to write a file for Internet Quiz Engine? (The documentation says that certain commands can only be used in certain areas, but this isn't precisely correct. Any command can be used in any area, although they won't necessarily do what you expect.)
08:55:39 -!- Phantom_Hoover has quit (Remote host closed the connection).
08:59:42 <zzo38> For example, the ? = ; commands are actually all equivalent, except that ? accepts an optional skip condition based on the answer to the previous question, and neither ? nor = will be skipped in a false conditional.
09:10:11 -!- zzo38 has quit (Remote host closed the connection).
09:10:34 -!- quintopia has quit (Ping timeout: 276 seconds).
09:24:15 -!- Patashu has joined.
09:35:59 -!- impomatic has joined.
09:36:47 -!- quintopia has joined.
09:42:27 <kmc> why / how?
09:44:01 <Taneb> Because I'm tired I don't feel like eating, and because I'm hungry I can't sleep
09:48:42 <kmc> that blows
10:00:50 -!- Taneb has quit (Quit: Leaving).
10:06:49 -!- cheater_ has joined.
10:10:22 -!- cheater__ has quit (Ping timeout: 276 seconds).
10:12:25 -!- MoALTz has quit (Quit: brb).
10:18:42 -!- MoALTz has joined.
10:36:29 -!- MoALTz_ has joined.
10:39:45 -!- MoALTz has quit (Ping timeout: 260 seconds).
10:57:16 -!- impomatic has quit (Quit: impomatic).
11:31:19 -!- impomatic has joined.
11:42:18 -!- azaq23 has joined.
11:48:00 -!- impomatic has quit (Ping timeout: 260 seconds).
12:04:44 -!- pikhq_ has quit (Ping timeout: 245 seconds).
12:04:47 -!- pikhq has joined.
12:35:18 -!- ais523 has joined.
12:37:12 <kmc> hm, do C++ compilers have a special rule to treat "main" as extern "C"?
12:38:37 <Deewiant> Or to emit a separate main function which calls the C++ main, or whatever.
12:39:02 <Lumpio-> "main" isn't the actual entry point
12:39:15 <olsner> a c++ program starts with c++ main, exactly how that happens is unspecified magic afaik
12:39:25 <kmc> i guess the C++ runtime library could arrange to call a C++ name-mangled main
12:39:28 <Lumpio-> The entry point does initialization and teardown before calling your name()
12:39:32 <kmc> but that's not how g++ does it apparently
12:39:38 <Lumpio-> er, teardown comes after obviously
12:39:56 <Lumpio-> IIRC gcc likes to generate the entry point as _start or something
12:40:06 <Deewiant> That stuff could be added to your main() instead of being in a separate entry point.
12:40:08 <kmc> well gcc doesn't generate _start
12:40:12 <kmc> it's part of the C runtime library
12:41:00 <ais523> kmc: main isn't allowed to be recursive in C++, partly because of this sort of thing
12:41:02 <kmc> C runtime library and/or libc
12:41:06 <kmc> ais523: interesting
12:43:12 <kmc> if main were the entry point, returning from main would not work
12:43:14 <kmc> at least on Linux
12:44:34 <ais523> stack starts out with a 0 on it, and there's an exit instruction at memory location 0, with .com files
12:45:29 <Deewiant> Compilers could emit the appropriate exit code in place of returns from main.
12:45:45 <ais523> Deewiant: another reason to make it not recursive
12:45:47 <kmc> Deewiant: but then you wouldn't be able to call main from elsewhere
12:45:54 <kmc> which is allowed in C?
12:46:00 <ais523> kmc: it is, but not in C++
12:46:01 <kmc> i'm not sure if it's allowed actually
12:46:10 <kmc> i haven't seen it done except in IOCCC entries
12:46:22 <kmc> but i'm sure there is "legitimate" code somewhere that does it
12:46:29 <kmc> probably to re-enter the options parser
12:47:02 <ais523> nah, it'd be really bad style, you should just use a wrapper function for that
12:47:02 <kmc> there is C++ code at google which is like void Foo::reset() { this->~Foo(); new (this) Foo; }
12:47:05 <kmc> so anything's possible
12:47:23 <kmc> ais523: sure, it's really bad style, but I'm sure someone has done it and thought themselves quite clever for it
12:47:42 <ais523> kmc: well, that code is just a bizarre way to call the destructor then constructor, isn't it?
12:48:28 <kmc> i'm no C++ language lawyer but I'm pretty sure it's allowed (maybe not if reset is virtual)
12:48:38 <kmc> however it's bizarre
12:48:49 <kmc> uses a couple of C++ features that many professional C++ programmers don't know about
12:49:01 <ais523> kmc: if reset is virtual and the destructor is not virtual, you'd be asking for trouble
12:49:26 <ais523> and I can only see one rarely known feature there (placement new)
12:49:32 <ais523> what's the other one? calling a destructor manually?
12:49:46 <kmc> i guess even if you aren't aware this can be done, the syntax is what you expect
12:49:48 <ais523> it's just a function, I don't see why you /couldn't/ do that
12:50:05 <ais523> although it's nontrivial to parse, there are larger issues in C++ parsing
12:50:15 <ais523> (did you know that C++ 11 allows you to use >> to close two < brackets?)
12:50:38 <kmc> did you know that there are valid C++03 programs which are still valid under this rule but behave differently?
12:50:40 <Kray> 154702 kmc there is C++ code at google which is like void Foo::reset() { this->~Foo(); new (this) Foo; }
12:50:46 <Kray> no, don't fucking use that
12:51:04 <ais523> kmc: no, that's hilarious; what does it use to hide the > > from the C++11 version?
12:51:34 <kmc> there's an example in http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1757.html
12:51:40 <kmc> std::cout << (Y<X< 1>>::c >::c>::c) << '\n';
12:52:02 <ais523> also, hmm, the syntax for placement new is really weird, you'd think this->Foo() would be more natural
12:52:17 <kmc> that's kind of weird too
12:52:19 <ais523> because placement new is not the opposite of any sort of delete, it just calls the constructor with an arbitrary pointer
12:52:22 <ais523> perhaps it'd need a cast
12:52:39 <kmc> you're calling a method on something that isn't yet a valid pointer to an object of that type
12:52:46 <kmc> also, you can overload operator new with any argument type you like
12:52:47 <olsner> I wonder if c++ allows mysterious invisible dependencies on this that make destroying this illegal even if you don't use this in the source before reconstructing
12:52:58 <ais523> kmc: if it's not a virtual method, there's clearly no intrinsic problem with that at all
12:53:28 <ais523> if you have a nonvirtual method foo and a variable obj of type Obj, obj->foo(x,y) compiles to Obj::foo(obj,x,y)
12:53:36 <ais523> there's no difference between this and any of the other arguments
12:53:45 <kmc> Pool pool; new (pool) Foo;
12:53:55 <kmc> makes a lot more sense syntactiaclyl than pool->Foo();
12:54:14 <olsner> let's say if your compiler copies all code from the class into constructed objects, and clears out the code when destroying an object
12:54:15 <kmc> ais523: that's an implementation detail, in a sense
12:54:30 <ais523> kmc: right, but it may be one that's implied by the language
12:54:33 <kmc> i agree that usually you can call ((Foo*) 0)->bar() if bar is a non-virtual method
12:54:53 <ais523> like the stack in C (auto variables in C have stack-like semantics, so even if you're not storing them on a stack, you have to store them on something that works like a stack)
12:55:06 <kmc> or you know ((Foo*) malloc(sizeof(Foo)))->bar()
12:55:10 <ais523> does the standard require this to be non-null in a cal?
12:55:21 <kmc> but I don't think that's a reasonable syntax for placement new
12:55:27 <kmc> because it violates expectations
12:55:31 <kmc> but it would be hardly the first C++ feature to do so
12:55:44 <kmc> ais523: don't know
12:55:47 <ais523> kmc: well, to me placement new violates expressions, because I expect new, in some sense, to be the opposite of delete
12:55:53 <ais523> and placement new isn't the opposite of anything
12:55:58 <ais523> *violates expectations
12:56:08 <kmc> you can overload operator delete as well
12:56:22 <ais523> and operator new, can't you?
12:56:24 <kmc> if you're implementing a memory pool, you would do both
12:56:46 <kmc> except nobody knows about this feature or can be bothered to use it
12:56:48 <ais523> only a memory pool for a specific class
12:56:58 <ais523> that's probably not the most common application
12:56:58 <kmc> ais523: no, the overload returns a void*
12:57:14 <ais523> oh, I see, you could overload it outside a class
12:57:22 <kmc> http://www.parashift.com/c++-faq-lite/new/memory-pools.html
12:57:42 <ais523> even overloading it within a class makes sense when you're taking an allocator as an argument to the constructor, I guess
12:57:58 <ais523> I've seen an STL that does that (not sure if it was /the/ STL or some third-party one)
12:59:23 <kmc> also some calling conventions pass "this" in a special way
12:59:41 <kmc> the default calling convention in Visual C++ in fact
13:00:31 <kmc> on x86, 'this' is passed in ECX and all other arguments are on the stack
13:00:48 <kmc> i don't know if there's a rationale or if someone at microsoft was just hitting the crackpipe particularly hard that day
13:02:11 <ais523> normally if passing arguments in registers, you have to come up with some complicated rule for deciding what goes where in all possible circumstances
13:02:17 <ais523> "this always goes in ECX" is a pretty simple rule
13:02:22 <kmc> ais523: by "/the/ STL" you mean SGI's reference implementation?
13:02:45 <ais523> kmc: I was referring to APIs, so I mean the API specified by the standard
13:03:07 <ais523> whether or not constructors can take allocators as argument is definitely an API issue
13:03:11 <kmc> STL containers usually take an optional template argument specifying the allocator to use
13:07:35 <kmc> maybe the idea in thiscall is that methods frequently invoke other methods on the same object
13:07:44 <kmc> often without doing much additional work
13:11:58 <kmc> ais523: is there any reason you couldn't store C function activation records in a garbage-collected heap?
13:12:27 <ais523> kmc: no, but it would have to have stack semantics, for determining what copy of the variable to look at
13:12:58 <ais523> there's nothing forcing it to /be/ a stack, it just has to /act like/ a stack
13:13:07 <ais523> which means that it's usable as a stack
13:13:48 <kmc> many things are
13:14:22 <kmc> for determining what copy of the variable to look at, you just have a register that points to the current activation frame
13:14:32 <kmc> and you can CPS transform so that you never need to restore old values of that register
13:14:42 <kmc> doing this for C is probably unreasonable, but is possible
13:15:13 <kmc> i agree this is usable as a stack
13:15:25 <kmc> so is a heap-allocated linked list, or a heap-allocated church-encoded linked list :)
13:18:15 <ais523> I entirely agree that a heap-allocated church-encoded linked list could be used for C auto variables
13:18:22 <ais523> but I would /still/ say that it's a stack
13:18:31 <ais523> it's not a stack implemented in terms of an array, but it's still a stack
13:21:49 <kmc> the other day I saw a bird that looks like a duck and quacks like a duck but isn't a duck
13:23:06 <kmc> i think it was a loon
13:23:49 <itidus21> if you take 2 arbitrary measurements of thing X, and they match type Y, then thing X must be type Y
13:24:21 <olsner> kmc: but how did you know it was not a duck, if it did everything like a duck?
13:24:36 <kmc> because someone who knows more about birds than I told me so
13:24:50 <olsner> you should have asked for more proof
13:24:58 <kmc> it quacks like a duck but not *exactly* like a duck
13:25:05 <kmc> the duck is in the details
13:25:54 <kmc> BBC: 'A "supermoon", bigger and brighter than usual, is seen in the night sky as it comes closer to the Earth'
13:26:08 <kmc> this is a really alarming headline if you assume that scientists have no idea why it happened
13:26:45 <kmc> itidus21: over 9000 feet
13:26:45 <itidus21> as if i wasn't already alarmed by things
13:28:29 <kmc> itidus21++
13:29:08 <kmc> there is no dark side of the moon really
13:29:08 <quintopia> someone remind me the workaround for the /top tab-completion bug in irssi
13:29:12 <kmc> matter of fact it's all dark
13:30:43 <itidus21> in a conspiracy theory lab, in a suburb far far away
13:31:01 <itidus21> plans are made about what the reptiles have dubbed the supermoon
13:31:47 -!- Vorpal has joined.
13:46:16 -!- ais523 has quit.
13:56:45 -!- nortti has joined.
13:57:20 <nortti> Fuck yeah! Got sasl to work after disabling DH-BLOWFISH
14:03:51 <HackEgo> /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: pastefirtunes: not found
14:04:04 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.14206
14:05:22 <quintopia> i clicked the link and i didnt get any tunes :/
14:05:51 <nortti> quintopia: paste fortunes
14:07:00 <nortti> quintopia: so it takes paste and gives you tunes?
14:09:31 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.20091
14:12:06 -!- TeruFSX has joined.
14:14:19 -!- Patashu has quit (Ping timeout: 245 seconds).
14:16:02 <nortti> quintopia: what kind of daemon is thatd?
14:19:06 -!- atehwa has quit (Remote host closed the connection).
14:21:18 <nortti> I'll give rep+ to the first one to decipher what this piece of python code does (lambda x: (lambda s,(x,y): ([(x[0],y[0])]+s(s,(x[1:],y[1:]))) if len(y)>0 else [])((lambda s,(x,y): ([(x[0],y[0])]+s(s,(x[1:],y[1:]))) if len(y)>0 else []),(x,x[1:])))
14:23:04 <lambdabot> [(1,2),(2,3),(3,4),(4,5),(5,6),(6,7),(7,8),(8,9),(9,10)]
14:23:17 <lambdabot> quicksilver says: zip`ap`tail - the Aztec god of consecutive numbers
14:23:27 <lambdabot> Plugin `dummy' failed with: Prelude.read: no parse
14:24:04 -!- impomatic has joined.
14:25:50 <nortti> Deewiant: is zip`ap`tail builtin in haskell?
14:25:57 <lambdabot> forall a b. [a] -> [b] -> [(a, b)]
14:25:59 <lambdabot> forall (m :: * -> *) a b. (Monad m) => m (a -> b) -> m a -> m b
14:26:35 <Deewiant> The only "builtin" part of that is the syntax, zip`ap`tail means ap zip tail
14:27:33 <Deewiant> (Which means ap(zip,tail) or rather (ap(zip))(tail) in a language with C-style function call syntax.)
14:29:04 <Deewiant> ?ty ap :: (c -> a -> b) -> (c -> a) -> (c -> b) -- the relevant Monad instance expanded
14:29:05 <lambdabot> forall c a b. (c -> a -> b) -> (c -> a) -> c -> b
14:41:44 -!- AnotherTest has joined.
15:12:46 -!- Lumpio- has quit (Read error: Operation timed out).
15:13:36 <nortti> itidus21: what about my karma
15:36:34 -!- Lumpio- has joined.
15:36:47 -!- elliott has joined.
15:37:06 <elliott> 17:56:37: <AnotherTest> what language would you propose as an alternative?
15:37:06 <elliott> 17:56:44: <ais523> to C++? C
15:37:06 <elliott> 17:57:13: <ais523> well, it really depends on what you're using it for
15:37:07 <elliott> 17:57:14: <AnotherTest> Not really an alternative.
15:37:09 <elliott> 17:57:31: <AnotherTest> since C doesn't even check types
15:37:11 <elliott> 17:57:43: <AnotherTest> and also, it doesn't allow for user defined types
15:38:04 <AnotherTest> I meant user-defined types that have member functions
15:38:25 <nortti> AnotherTest: why is your nick AnotherTest
15:38:43 <elliott> there are minor differences in terms of const, and C++ has a safer version of casting
15:39:01 <AnotherTest> elliott: let's first clarify which version of C we are talking about
15:39:09 <elliott> C89, C99, doesn't matter one bit
15:39:17 <elliott> basically applies to K&R too, if anyone still used it
15:39:19 <Deewiant> elliott: Around a year ago you were going to hack some pty-related stuff into tup, but I'm not getting coloured output from clang, what's up!
15:39:33 <AnotherTest> well, define a type in C that has a member function?
15:39:47 <elliott> struct type_in_c { void (*member_function)(int); };
15:39:49 <Deewiant> elliott: https://groups.google.com/group/tup-users/msg/b303970d79ed6edc
15:40:05 <elliott> Deewiant: Stupid archiving.
15:40:08 <nortti> AnotherTest: I used nick nörtti in ohjelmointiputka.net but when I tried using it on ircnet when I wanted to join #ohjelmointiputka my own irc client crashed
15:40:18 <elliott> Deewiant: I didn't do it, ask tup-users if anything's happened. :p
15:40:30 <nortti> so I used nortti and it just stuck
15:40:42 <elliott> Deewiant: ISTR *something* happening along those lines.
15:41:34 -!- ais523 has joined.
15:41:41 <elliott> ais523: wat: http://esolangs.org/w/index.php?title=BAM128&curid=3491&diff=32356&oldid=30896
15:42:05 <Deewiant> elliott: I can't be bothered to ask, I'm just putting 'CC = clang -fcolor-diagnostics' in my Tupfile
15:42:22 <elliott> Deewiant: Yeah, I think that might have been the solution. Or maybe I'm thinking of ninja.
15:42:35 <ais523> elliott: looks like a test edit, more than anything else
15:42:41 <ais523> or someone who doesn't understand English and thinks they do
15:42:59 <elliott> I was going to revert it with a meaningful edit summary, but I suppose that works too :p
15:43:13 <elliott> I'm pretty sure it's someone trying to fix the grammar, except they're not any good at it
15:43:15 <Deewiant> elliott: It happened in ninja, at least (its bug report is the top Google result I've run into a couple of times now when wondering whether tup does it)
15:43:28 <AnotherTest> elliott: I just noticed the edition, found I a little weird
15:43:46 <elliott> Deewiant: I dunno. I'd stick with tup.
15:43:52 <elliott> Deewiant: With ninja, you need to write a script to generate your build script.
15:44:03 <elliott> Usually in Python, since they have an outputting library for it.
15:44:21 <elliott> It's kind of yucky. Good for things like Chrome where you need MAXIMUM SPEED and the build rules don't change often, since that's what it was designed for.
15:44:23 <Deewiant> elliott: I asked you because you're the "DO THE ARROWS GO UPWARDS" guy when it comes to build systems
15:44:32 <elliott> Deewiant: ninja's arrows do go upwards, though, yes.
15:44:43 <elliott> And ninja supports multiple output files, which is what got me interested in it in the first place (for Haskell).
15:45:20 <elliott> Deewiant: I'd just stick with tup though. Especially since variants are coming.
15:45:30 <AnotherTest> What's the most minimal programming language existing?
15:45:40 <AnotherTest> (as in minimal typing to do a certain task)
15:45:58 <elliott> AnotherTest: That is not really a meaningful question.
15:46:25 <nortti> wtf? MIT Scheme says (eval '(+ 1 1)) is invalid
15:46:36 <elliott> You need to pass an environment too.
15:46:46 <ais523> elliott: if I find a website that puts an <em> in an URL and later omits a _ from the same URL, what should I assume? broken parser for a Markdown-like language?
15:46:54 <ais523> (the <em> was replacing a _)
15:47:04 <nortti> elliott: repl.it didn't require that
15:47:09 <elliott> nortti: Then repl.it is broken.
15:47:17 <Deewiant> elliott: That reminds me: re. variants, the thread on them currently ends with Mike asking for your thoughts.
15:47:18 <elliott> Or, rather, has some implementation-specific extension.
15:47:31 <elliott> Deewiant: Yes, I have that email set as unread so I can reply to it.
15:47:39 <elliott> AnotherTest: Because "a given task" is pretty vague.
15:47:45 <Deewiant> elliott: Alright, just checking.
15:47:57 <elliott> (I wrote that before your parenthical; I interpreted "minimal" very differently beforehand, which kinda proved my point :P)
15:48:06 <elliott> Deewiant: I guess I'll do it now, since you've prodded me.
15:48:18 <elliott> I also need to reply to Conor McBride :(
15:49:20 <Deewiant> If you'd e-mail less, you'd have to reply less.
15:49:41 <AnotherTest> which language allows the shortest implementation for an algorithm that solves the traveling-salesmen problem using a brute-fore approach without it being a built-in feature?
15:50:00 <elliott> Deewiant: Anyway, that's not strictly true.
15:50:15 <elliott> AnotherTest: Define "built-in feature"... I could split the algorithm into two parts and give those one instruction each.
15:50:49 <Deewiant> He probably means "existing language".
15:50:49 <AnotherTest> existing language anyway, I doubt any language has such a feature so just drop that last part
15:51:14 <elliott> Deewiant: That question is still probably impossible to answer, since you don't know what the shortest program for the task in any given language is.
15:51:28 <elliott> AnotherTest: It is not possible to answer.
15:51:40 <elliott> AnotherTest: Very well, you answer it then.
15:51:56 <elliott> I see you're still suffering from Dunning-Kruger.
15:51:57 <AnotherTest> I ask the question; it is thus only logical that I do not know the answer
15:52:18 <Deewiant> Of course it's possible, just prove a minimum length in each language and then enumerate all programs up to that length.
15:52:31 <Deewiant> (Okay, maybe the proof isn't so easy.)
15:52:46 <AnotherTest> let's not start about the physics guy who wasn't a physics guy again
15:52:47 <elliott> Deewiant: FSVO enumerate that involves a human-written proof at each step.
15:53:00 <AnotherTest> because it's still clear that you suffer autism
15:53:27 <Deewiant> elliott: Not at each step, only for each language.
15:54:09 <ais523> AnotherTest: please don't insult people like that
15:54:27 <elliott> (If you really did try, you'd apologise afterwards.)
15:54:44 <AnotherTest> Well, no, because you sort of insulted me to
15:54:55 <AnotherTest> you seem to make a habit of that every time I visit
15:55:04 <elliott> You've only been here twice.
15:55:23 -!- jfischoff has joined.
15:56:05 <ais523> "The judge and attorneys have to question the child to determine the communication skills of the child and also question to determine if the child understands the difference between true and false, and will tell the truth."
15:56:17 <ais523> why don't they do that with /adults/?
15:56:32 <AnotherTest> Because the judge and attorneys are adults.
15:57:34 <ais523> that's about witnesses
15:57:47 <ais523> I guess they get them to swear oaths, but I'm not sure everyone has respect for oaths
15:57:53 -!- ais523 has quit.
15:58:10 -!- ais523 has joined.
15:58:15 -!- ais523 has quit (Changing host).
15:58:15 -!- ais523 has joined.
15:58:20 <elliott> Bye ais523. Hi ais523. Bye ais523. Hi ais523.
15:58:25 <ais523> OK, Unity has increased Konversation's capacity for bizarre typos quite a bit
15:58:41 <ais523> both in opportunities, and bizarreness
15:59:08 <ais523> that was alt-nothing r, rather than alt-t r
15:59:23 <ais523> I actually rather like unity, but some of the keybindings are unfortunate
15:59:35 <ais523> hmm, I wonder if I can change them?
15:59:50 <AnotherTest> It's possible to pick a custom keyboard layout I think
15:59:59 <nortti> I dislike unity. All the bloat and inteface is horrible
16:00:19 <AnotherTest> I agree with nortti, my computer can't handle it properly
16:00:43 <ais523> now I have super-space rather than just super, and alt-super-space rather than just alt
16:00:52 <ais523> should have done that earlier
16:01:00 -!- impomatic has quit (Ping timeout: 255 seconds).
16:01:15 <nortti> AnotherTest: do you know my computer's specs?
16:01:19 <ais523> nortti: unity, bloated? that doesn't fit my view of it
16:01:25 <ais523> it seems more primitive than bloated
16:01:44 <ais523> although I consider bloat a statement about features rather than load
16:01:53 <ais523> if it's putting too much load on a system, that's simply a bug
16:01:57 <AnotherTest> ais523: really, with the menu that constantly flops in and out?
16:02:07 <nortti> AnotherTest: Thinkpad T20 with 700MHz Pentium III and 64MB of RAM
16:02:57 <ais523> AnotherTest: that's no longer the default optoin
16:03:03 <ais523> I just have it up constantly
16:03:11 <AnotherTest> well at least they made a good choice there
16:03:15 <nortti> ais523: define too much load. Using that logic almost all new software is filled with bugs :p
16:03:28 <nortti> (on my system at least)
16:03:39 -!- jfischoff has quit (Quit: jfischoff).
16:04:13 <AnotherTest> nortti: I'm on an Intel Pentium 4 CPU 2.53GHz with 1002.4MiB RAM
16:04:36 <ais523> nortti: substantially more than would be reasonably expected for what the software actually does
16:05:20 <elliott> ais523: That doesn't work if you have unreasonable expectations.
16:05:23 <nortti> AnotherTest: try lubuntu
16:05:43 <AnotherTest> nortti: I might, also, xubuntu; is that notable?
16:05:54 <ais523> AnotherTest: only 1G? although that should be easily enough for almost anything, sadly programs rarely assume that any more
16:05:58 <nortti> AnotherTest: almost as slow as ubuntu
16:06:04 <ais523> also, 1002.4 is not 1024, that's an interesting decision…
16:06:30 <ais523> AnotherTest: no, 1 GiB = 1024 MiB
16:06:34 <elliott> Gio, if you want to be pedantic.
16:06:59 <ais523> even one megabel is enough sound intensity to destroy the Earth
16:07:12 <ais523> probably even one kilobel, come to think of it
16:07:17 <elliott> ais523: It's not really "sadly". There's no point devoting time and effort to minimising memory footprint if everybody has more. With that kind of argument, everyone should code like we're using Altair 8800s.
16:07:36 <Deewiant> (Where "o" is an abbreviation for "octet" I think I invented and almost nobody will understand, so be careful about where you use it.)
16:07:39 <ais523> elliott: well, programs still take a noticeable amount of time to load and execute
16:07:47 <ais523> Deewiant: I've seen it elsewhere
16:07:56 <elliott> Deewiant: It's useful for pedantry and also arguing with pedants!
16:08:06 <elliott> ais523: That's mostly unrelated to RAM.
16:08:09 <Deewiant> elliott: Sure, but not for much else. :-)
16:08:11 <elliott> ais523: Disk is a huge factor in that.
16:08:29 <elliott> If you get an SSD you'll notice everything go noticeably faster; if you run from a RAMdisk, even faster.
16:08:33 <ais523> hmm, I wonder how long it takes to fill a 1GiB array with consecutive integers?
16:08:53 <elliott> ais523: Faster if you use SSE ;)
16:08:59 <ais523> can't check, only have 927MB free
16:09:02 <elliott> He's the filling-big-arrays-unreasonably-fast guy.
16:09:08 <nortti> elliott: well even I assume that my system has at least 2MB of RAM and I try to minimize memory footprint
16:09:16 <Deewiant> ais523: elliott picked it up from my web site and may have spread it around, at least.
16:09:22 <ais523> Vorpal: do you know how long it takes to fill a 1GiB array with consecutive integers?
16:09:26 <elliott> Deewiant: But I have seen it elsewhere too, I think.
16:09:42 <Deewiant> elliott: Well, you've used it here at least a couple of times, which kinda counts.
16:09:52 <elliott> #esoteric is the terminology propagation centre of the world.
16:10:41 <elliott> Depends on your definition of "up-to-date".
16:10:43 <ais523> elliott: a quick websearch implies that both "Mio" and "mebioctet" are in Christian Biere's signature
16:10:56 <elliott> cpressey doesn't like it and recommends something else instead.
16:11:23 <nortti> AnotherTest: I'd say so
16:11:30 <elliott> ais523: Who's Christian Biere?
16:11:39 <ais523> elliott: I have no idea
16:11:39 <elliott> <ais523> someone who has both "Mio" and "mebioctet" in their signature
16:11:40 <nortti> AnotherTest: At least from what I have heard
16:11:48 <elliott> AnotherTest: You misspelled 2012-05-06.
16:11:51 <ais523> I did try finding out, but apparently they're just some random person
16:12:18 <nortti> actually it is 6.5.2012
16:12:26 <AnotherTest> I don't think the English language prescribes a correct notation for dates
16:12:49 <elliott> ISO does! I think they need a militia to enforce their standards.
16:13:35 <AnotherTest> ah ISO, they'd better bother with Javascript
16:14:03 <nortti> elliott: is ISO standard yyyy-mm-dd?
16:14:19 <elliott> Yes. (It's more involved than that, but yes.)
16:14:35 <elliott> Actually it's not quite perfect, since the full yyyy-mm-ddThh:mm:ss format is ugly because of the T.
16:14:36 <ais523> yyyy-mm-ddThh:mm:ss then a letter for the timezone, typically Z for UTC
16:14:43 <elliott> ais523: It's more involved than that.
16:15:01 <AnotherTest> because it's assuming the culture of everyone has the Christian religion
16:15:10 <elliott> What is discrimination, exactly?
16:15:16 <ais523> AnotherTest: people mostly use the Gregorian date system whether Christian or not
16:15:38 <ais523> wow, ddate isn't in the coreutils package any more
16:15:47 <ais523> or even in the repositories, under that name at least
16:15:52 <elliott> (Hey, those are both words.)
16:16:16 <olsner> AnotherTest: rolling with a t in front of it
16:16:18 <Deewiant> ais523: Can you find a reference older than 2009-07-05?
16:16:20 <ais523> or in the repositories under any name
16:16:34 <ais523> AnotherTest: the gerund form of "roll"
16:16:39 <elliott> AnotherTest: http://en.wikipedia.org/wiki/I_know_it_when_I_see_it
16:16:52 <ais523> alternatively, present participle of "roll"
16:17:20 <ais523> AnotherTest: http://en.wiktionary.org/wiki/roll#Verb
16:17:36 <AnotherTest> ais523: thanks, that's what I call some definiton
16:17:42 <ais523> although I didn't realize it had 27 different meanings
16:17:54 <elliott> 27. (transitive) This word needs a definition. Please help out and add a definition, then remove the text {{rfdef}}. [quotations ▼]
16:18:29 <ais523> AnotherTest: you probably have enough information to find out yourself
16:18:33 <ais523> perhaps you even know the answer already!
16:18:44 <AnotherTest> Yes, but how can that information be trusted?
16:19:04 <AnotherTest> suppose the defintion of defintion would be wrong?
16:19:24 <ais523> AnotherTest: eventually, sooner or later, you have to trust something or someone
16:19:27 <AnotherTest> Because then the definition of wrong would be wrong :(.
16:20:02 <ais523> elliott: if a dictionary did misdefine "wrong", that would indeed be ironic
16:20:03 <elliott> probably nothing is ironic, considering how much people say isn't
16:20:09 <ais523> assuming it was done by mistake
16:20:16 <elliott> ais523: yes, but if the definition of wrong is itself wrong, not as a mistake done by a dictionary, would that be ironic?
16:20:40 <ais523> elliott: I'm not even sure the concept of wrongness makes sense wrt definitions in natural languages
16:20:47 <AnotherTest> since then the definition of ironic would be wrong
16:21:00 <elliott> Well, I think this explains the Alanis Morissette song.
16:21:05 <ais523> in computer languages, it's possible to have an objectively wrong definition, though (such as one that's incompatible with the desired semantics)
16:21:19 <ais523> elliott: it's genuinely ironic that the song is meant to be about irony and yet doesn't know what irony is
16:21:28 <elliott> The *song* doesn't know what irony is?
16:21:35 <elliott> Well, I suppose it doesn't.
16:21:52 <AnotherTest> ais523: yes, but the semantics parser will still give an error
16:21:57 <ais523> err, that the existence of those lyrics of the song imply that their author doesn't know what irony is
16:22:07 <ais523> AnotherTest: you don't know what you're talking about
16:22:07 <AnotherTest> ais523: and the language does not consists of only a syntax parser
16:22:58 <ais523> you're using the lies-to-first-years definition of "semantics", rather than the mathematical definition
16:23:27 <ais523> elliott: by analogy with lies-to-children
16:23:30 <elliott> ais523: I know, it's amusing
16:23:51 <ais523> I actually saw that lie made a few months ago
16:24:08 <ais523> AnotherTest: do people seriously teach children compiler design?
16:24:36 <ais523> agreed, I think; now I'm wondering if I could have written a compiler before I turned 18
16:24:57 <ais523> I'd need to have thought of doing so, for one thing; I definitely could have learnt
16:25:03 <nortti> AnotherTest: if you are interested in compiler development I would recommend reading crenshaw's Let's build a compiler
16:25:03 <AnotherTest> I doubt you wouldn't be able to if if you could
16:25:21 <ais523> oh, of course I could, I read a book on compiler design before then
16:25:29 <ais523> and later cited it in my Masters' project
16:25:58 <ais523> hmm, fun YouTube regression: the Pause button no longer changes to a Replay icon when the video ends (but clicking on it replays the video anyway)
16:26:17 <AnotherTest> nortti: books, books, books! I'll first finish the books I'm currently reading; but thanks for the tip
16:26:47 <nortti> AnotherTest: atually Let's build a compiler is a article series
16:27:35 <nortti> ais523: It just occured to me that I haven't used youtube's own player to play youtube videos for a year
16:28:06 <ais523> nortti: do you download them, violating the TOS, then play them in some other player? Or use a streaming player?
16:28:38 * ais523 notes that streaming and downloading look identical from the server's point of view, and mostly from the client's too, so it's weird that the distinction is made
16:29:06 <nortti> ais523: youtube-dl (download) currently, mactubes/youview (streaming) on my iBook
16:30:12 <nortti> AnotherTest: it teaches how to build simple compiler on Pascal under SK*DOS compiling to m68k assembly
16:30:39 <ais523> AnotherTest: meh, it's just a simplified algol 68
16:30:47 <olsner> hmm, looks like the tailor of panama has the opening titles set in comic sans
16:30:59 <nortti> AnotherTest: I translated code to python even thought I don't really know pascal either
16:31:35 <AnotherTest> nortti: but I think you always make big mistakes if you don't really understand a language; you just don't notice it
16:32:26 <AnotherTest> I'm just going to read the dragon book, I think that should be as well as those articles?
16:33:04 <nortti> AnotherTest: pascal code used there is very easily readable without much pascal knowledge and I always sanity checked all my modifications and the seemed to work. Also I think that there is a forth version of Let's build a compiler
16:33:44 <nortti> AnotherTest: dragon book is bit harder to learn from because it covers more
16:34:57 <elliott> everyone knows that an intent to teach always translates to being easy to be taught by
16:35:35 -!- derdon has joined.
16:37:02 <AnotherTest> elliott: how can you be sure everyone does?
16:37:42 <ais523> AnotherTest: this sort of needless pedantry really doesn't add much to the conversation, save it for compilers
16:38:34 <nortti> (define everyone '(everyone who knows that an intent to teach always translates to being easy to be taught by))
16:38:49 <AnotherTest> ais523: again, I'm just fooling with elliott's urge to define things
16:39:02 <ais523> AnotherTest: yes, and it is not a useful thing to do
16:39:04 <elliott> s/ooling/rolling/. Wait...
16:39:21 <ais523> conversations go much faster if you're not throwing in pointless trolling every few lines
16:39:37 <ais523> AnotherTest: is this some sort of Internet version of Tourette's?
16:39:45 <ais523> or is it that you actually /can/ help it
16:39:47 <ais523> and just don't want to?
16:39:47 <elliott> people who can't help but troll should avoid IRC
16:40:18 <AnotherTest> ais523: I can't help to because elliott insulted me more than once
16:40:41 <ais523> AnotherTest: this is a pretty bad explanation
16:40:47 <AnotherTest> and because I'm trying to make him stop with the definition thing
16:40:53 <ais523> do you know what a "mutual recrimination cycle" is?
16:41:11 <elliott> I did "the definition thing" once to try and help you find an answer to your extremely vague question.
16:41:16 <ais523> it's when one person does something to annoy someone else, and they respond in kind (or worse), and the first person responds in kind (or worse)
16:41:19 <ais523> and it gets out of hand
16:41:42 <ais523> if you're going to respond to someone annoying you, try to do so in a less bad way than the original, not a similar or worse way
16:41:53 <ais523> not only does it prevent it getting out of hand, it also lets you take the moral high ground and go around being smug
16:43:25 <AnotherTest> but tbh, elliott, you did it more than once; but let's not continue the viscous circle
16:43:44 <elliott> I assure you, the circle will be as solid as they come.
16:45:14 <ais523> elliott: solidity is a state of maximum viscosity
16:45:46 <ais523> AnotherTest: kareha on esoteric.voxelperfect.net was disabled because nobody used it, and I have no idea what's happened to esoteric.sange.fi
16:45:56 <elliott> Graue shut the forum down when I took over the wiki since it got tons of spam and nobody used it.
16:45:57 <ais523> but alt.lang.intercal still exists, even though nobody posts there
16:45:58 <elliott> But I have an archive at http://esolangs.org/forum/.
16:46:45 <AnotherTest> doesn't sound like an esoteric programming language :p
16:46:45 <elliott> "Nice.. but the idea is difficult to understand. Life is much more hard to live than you can imagine.."
16:51:39 <nortti> Gun Holsters That Shoot You in the Leg, A Flammable Fire Extinguisher, Hand Sanitizer That Adds Bacteria to Your Skin, The Laundry Detergent That Shreds Clothes, The Flashlight That Can Stop Your Heart
16:52:48 <elliott> This is still the best spam thread from the forum: http://esolangs.org/forum/kareha.pl/1302671493/l50
16:53:04 <nortti> elliott: http://www.cracked.com/article_19805_the-5-most-baffling-product-recalls-all-time.html
16:53:28 -!- calamari has joined.
16:55:29 <AnotherTest> (and I'll try to be specific elliott, but I might fail)
16:56:44 <AnotherTest> the type-system works "top-down"; with that I mean that you evaluate an expression to a given type (rather than to an unknown type and then check it with the given type)
16:56:48 <Deewiant> You don't have to press enter before finishing your sentence, you know.
16:57:20 <elliott> Deewiant: Hey, I do it. :p
16:57:26 <elliott> (Admittedly I type really fast.)
16:57:37 <AnotherTest> anyway so Real r = 5 + 5; would be Real r = Real(5) + Real(5);
16:57:46 <elliott> AnotherTest: Haskell does that with typeclass overloading.
16:57:47 <nortti> I only do it accidentaly
16:57:54 <elliott> Assuming I understand what you mean.
16:58:06 <AnotherTest> rather than Real r = Int(5) + Int(5); (assuming 5 is an integer literal)
16:58:13 <elliott> (5 + 5 :: Real) is really (fromInteger (5 :: Integer) + fromInteger (5 :: Integer) :: Real) under the hood.
16:58:27 <elliott> And you can make overloaded values whose result depends on the type you use them as.
16:58:41 <AnotherTest> but I meant, that, does a language exists where that isn't the case?
16:58:56 <elliott> Well, I interpret that as "top-down" by your definition.
16:59:06 <elliott> (Note that the "typeclass overloading" is not related to OOP classes, and is something OOP can't do.)
16:59:33 <elliott> Many languages separate evaluation from type-checking, anyway.
16:59:38 <AnotherTest> and is there a language where the whole type system is done like this?
17:00:04 <AnotherTest> Because I actually find that this isn't that bad
17:01:15 <elliott> I'm still not sure what the top-down approach constitutes. How does type-checking differ for such a language?
17:01:25 <ais523> AnotherTest: Perl's type system works like that
17:01:31 <ais523> although it only has two types, list and scalar
17:01:57 <ais523> instead of the type of an expression being based on the expression, it's based entirely on the context
17:02:04 <AnotherTest> elliott: it differs fundamentally, the idea is sort of the reverse of the normal one
17:02:11 <elliott> 17:58 <elliott> (5 + 5 :: Real) is really (fromInteger (5 :: Integer) + fromInteger (5 :: Integer) :: Real) under the hood.
17:02:16 <ais523> and quite a lot of things behave differently in list and scalar context
17:02:16 <elliott> I mean that the former is what you actually type.
17:02:19 <AnotherTest> ais523: really? I need to look into perl more
17:02:24 <elliott> myTest :: String ==> "abc"
17:02:31 <elliott> (Where (a :: b) means "a with type b".)
17:02:38 <elliott> Which sounds like what you're looking for.
17:02:50 <ais523> elliott: is ==> the actual syntax for that?
17:02:58 <elliott> ais523: that's metasyntax for evaluation
17:05:25 <elliott> AnotherTest: Anyway, the key thing that makes that work is the ability to overload only on return value.
17:05:38 <elliott> Erm, that's badly-phrased, but whatever.
17:19:23 -!- elliott has quit (Read error: Connection reset by peer).
17:21:12 -!- elliott has joined.
17:29:52 <AnotherTest> elliott: overloading based on return type, indeed, that was partially why I was was interested in this approach
17:30:32 <elliott> Haskell uses that quite extensively
17:30:32 <AnotherTest> besides that, it would also solve the typical C++ string literal problem where std::string a = "A" + "B"; is illegal
17:32:06 <AnotherTest> I think(and might be totally wrong) that maybe types should be separated from their literals
17:32:46 <Deewiant> Haskell does that for numeric literals, and with an extension for string literals as well.
17:33:11 <AnotherTest> but I'm scared by people saying that it's horrible
17:33:31 <AnotherTest> but I guess there are always people who say that something's horrible
17:34:02 <elliott> Are the people saying it's horrible C++ programmers? :P
17:34:03 <Deewiant> "There are only two kinds of languages: the ones people complain about and the ones nobody uses." -- Bjarne Stroustrup
17:34:18 <Deewiant> (Bonus: he's a C++ programmer. Well, the C++ programmer.)
17:34:28 <AnotherTest> knew that one, it's in The C++ Programming language
17:35:41 <elliott> AnotherTest: http://www.learnyouahaskell.com/ is the best Haskell book, FWIW. (Avoid Real World Haskell, it's outdated and goes too fast.) If you don't like LYAH, get a copy of http://www.cs.nott.ac.uk/~gmh/book.html; I haven't read it, but have received glowing recommendations for it.
17:36:05 <Deewiant> How is RWH outdated where LYAH isn't?
17:36:19 <nortti> what haskell implementation should I use?
17:36:37 <elliott> The others are either really outdated or not really prime-time-ready.
17:36:37 <Deewiant> For most practical purposes, there is no other Haskell implementation.
17:36:55 <elliott> UHC is useful for some specialised purposes (compiling to JavaScript), jhc is of interest but not really practical yet.
17:37:02 <elliott> More or less everything else is dead.
17:37:24 <elliott> Deewiant: Also it recommends ByteString for text, because a certain one of the authors hadn't written Text yet ;)
17:37:44 <elliott> Both LYAH and RWH have the mtl 1 vs. mtl 2 problem, but that's just changing the capitalisation of one letter to fix, so...
17:37:46 <Deewiant> Well, ByteString still has its uses.
17:37:52 <elliott> Deewiant: No, it was for Unicode (IIRC) text.
17:38:03 <nortti> oh for the love of the $DEITY! Do I have to compile a compiler with this machine?
17:38:09 <elliott> nortti: You can't, GHC depends on GHC.
17:38:16 <elliott> The Linux binary is good, and can be installed to any prefix.
17:38:34 <elliott> Just use it, GHC takes about 2 hours to compile on a fast machine even if you had an existing binary lying around.
17:39:14 <nortti> elliott: good. Usually it is source compile when package is not on slitaz's repo
17:39:35 <elliott> nortti: Note: Install 7.0.4, not 7.4.1.
17:39:49 <elliott> Not every package builds with 7.4.1 yet and the Platform uses 7.0.4.
17:39:55 -!- jfischoff has joined.
17:40:09 <elliott> (After you have GHC installed, you'll probably want to install the source package from http://hackage.haskell.org/platform/linux.html.)
17:42:38 -!- jfischoff has left.
17:45:39 <AnotherTest> I suppose lamda knowledge is useful in Haskell?
17:46:10 <elliott> Depends what you mean by lambda :P
17:46:25 <elliott> Haskell corresponds to an extended version of a certain lambda calculus (not /the/ lambda calculus), but you don't need any background in it to start reading LYAH.
17:46:34 <elliott> Nah, I knew that, it's just that there's a bunch of them.
17:46:41 <elliott> (Sure, Haskell uses anonymous functions, but even C++ has those nowadays.)
17:46:59 <AnotherTest> yes, but I meant more /the/ lambda calculus
17:47:14 <AnotherTest> because I don't really consider closures to be the whole lambda calculus
17:47:35 <AnotherTest> no, short-sighted is a better word I think
17:47:42 <elliott> Well, that's all the lambda calculus is, really; closures plus application.
17:47:49 <nortti> what other lambda calculi there are than /the/ lambda calculus?
17:48:00 <elliott> nortti: /The/ lambda calculus usually means the untyped lambda calculus.
17:48:25 <elliott> There's various typed lambda calculi, including the simply typed lambda calculus, members of the lambda cube (http://en.wikipedia.org/wiki/Lambda_cube), etc.
17:48:37 <nortti> elliott: ah. Doesn't haskell implement untyped lambda calculus?
17:48:55 <AnotherTest> elliott: read about that in the introduction I read
17:49:10 <elliott> Haskell is Hindley-Milner plus typeclasses.
17:49:24 <elliott> (Okay, s/Hindley-Milner/the lambda calculus which Hindley-Milner checks and infers typs for/.)
17:49:25 -!- nortti has quit (Quit: leaving).
17:50:27 <Deewiant> (And s/Hindley/Damas/g just to be different.)
17:53:23 <elliott> Deewiant: Have you played brogue? Is quaff-iding potions a good idea in brogue? (I picked you because you're the last person to talk and also Finnish.)
17:53:44 <elliott> Damn. What about the second question?
17:54:02 <ais523> elliott: I've seen a Let's Play of brogue that says that most items can be use-IDed safely with appropriate precautions
17:54:05 <ais523> like not doing it in combat, etc
17:54:05 <Deewiant> Based on experience in other roguelikes I'd guess "no".
17:54:20 <ais523> I'm not entirely sure if this implies that some can't be
17:54:25 <elliott> Deewiant: You should play brogue, it's really pretty.
17:54:29 <ais523> but the person in the game quaff-IDed a potion of descent
17:54:34 <ais523> which was inconvenient but not really fatal
17:54:52 <Deewiant> Or "no, unless you're powerful enough that you know you can't easily be instantly killed".
17:55:13 <Deewiant> "pretty" isn't a good reason to play a roguelike.
17:55:30 <ion> Exactly what does the potion of descent do? Teleport you to lower levels?
17:55:33 <elliott> Deewiant: No, I mean, *really* pretty: http://ompldr.org/vZG1ueg
17:56:54 <ais523> ion: takes out the ground beneath anyone who drinks it (or just destroys the ground directly if it breaks on it)
17:57:07 <ais523> which causes the drinker, or anyone you throw it at, to fall to the level below
17:57:07 <elliott> ais523: THANKS FOR THE ADVICE http://ompldr.org/vZG45Mg
17:57:12 <elliott> At least the fire, too, is really pretty.
17:57:38 <ais523> elliott: well you didn't die, did you?
17:58:04 <ais523> and you're only two squares from walking out of the fire
17:58:10 <elliott> ais523: No, the fire was *on* me.
17:58:16 <ais523> but to be fair, that was worth it just for "Your monkey catches fire!"
17:58:17 <elliott> i.e. it followed me around.
17:58:27 <elliott> Well, I'm almost dead, but I'm not on fire any more, and I'm still levitating.
17:59:04 <elliott> Cool, I'm hovering over a pool of my own blood.
17:59:38 <AnotherTest> why o why jQuery, does thou not do as I say?(or I'm just doing it wrong :()
18:01:59 <ais523> AnotherTest: jQuery? that second boss is hard as hell
18:03:03 <AnotherTest> jQuery, the (over-)popular JavaScript library(assuming you're asking about what it is)
18:05:36 -!- zzo38 has joined.
18:16:45 -!- nikolos has joined.
18:16:45 <zzo38> In my opinion you cannot really understand monad and other things from LYAH, and there are other things too like that; I find reading Haskell 2010 report also helps understanding syntax and so on a bit better but even that won't help completely; you have to learn it by yourself
18:17:08 <HackEgo> nikolos: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page
18:17:24 <HackEgo> nikolos: This channel is about programming -- for the other kind of esoterica, try #esoteric on irc.dal.net.
18:17:50 <ais523> elliott: was that a guess?
18:18:55 <zzo38> Yes bots are slow so try harder
18:19:24 -!- nikolos has quit (Client Quit).
18:22:09 <zzo38> I have fortune file too. I have added two of the pasted ones
18:31:30 -!- Phantom_Hoover has joined.
18:31:53 <zzo38> Just a few seconds ago I have corrected Internet Quiz Engine so that a ? block may contain multiple ! conditions without damaging the answer numbers.
18:32:41 <zzo38> (It will now pay attention to skipped : instructions when numbering the answers so that when skipping a question that has already been answered, it knows which one it is.)
18:34:24 -!- nortti has joined.
18:42:53 -!- monqy has joined.
18:50:54 <nortti> http://farm1.staticflickr.com/31/103658637_bc9b5c88fa_z.jpg lol :D Do some people really think like that?
18:51:02 -!- Ngevd has joined.
18:51:50 <Ngevd> I'm feeling a lot better now
18:52:19 -!- Phantom_Hoover has quit (Ping timeout: 276 seconds).
18:53:12 <monqy> elliott: did you hear: i forked crawl. bad idea. now i won't be able to get any work done :'(
18:53:22 <elliott> monqy: i didn't hear when did this happen
18:53:24 -!- Phantom_Hoover has joined.
18:53:32 <elliott> and what's it called and what's changed so far
18:53:44 <elliott> that's way worse than qrawl
18:53:53 <monqy> it's what gitorious called it
18:53:57 <monqy> i just went with the flow
18:54:18 <elliott> btw, convince ais523 that nethack's id game is boring
18:54:18 <monqy> i havent comited anything im just playing around by myself right now :'(
18:54:37 <monqy> oh right i created it because i wanted to see what crawl would be like without randomization in combat and then i made all levels 24x24
18:54:54 <monqy> next up I'm removing healing over time, removing food, removing identification
18:55:11 <ais523> elliott: it probably needs full spoiling to be interesting, probably item ID techniques should be spoiled
18:55:17 <monqy> 24x24 is a bit too big for nolos
18:55:36 <elliott> monqy: why not just make levels the size of the default viewport
18:55:41 <elliott> maybe that's a bit too small
18:55:45 <monqy> that's what i did originally but yeah
18:55:52 <monqy> levels ended up having like no features
18:55:55 <elliott> you could make levels bigger to compensate but
18:55:58 <monqy> i could have mucked with levelgen but ehhh
18:56:01 <elliott> *make there be more levels to compensate
18:56:12 <monqy> oh right also next up i'm removing upstairs
18:56:21 <elliott> i don't like games without upstairs
18:56:37 <monqy> and scaling ood rate up
18:56:49 <elliott> monqy: why remove upstairs, out of curiosity?
18:57:14 <ais523> elliott: because optimal stashing play in Crawl is really boring
18:57:22 <monqy> i don't like stairdancing or stashing or anything like that that, which upstairs allow
18:57:25 <ais523> that is one reasonable fix for that, I've actually suggested it to Crawl's devteam
18:57:30 <elliott> ais523: I'm asking for his opinion so I can suggest alternative solutions
18:57:39 <monqy> and with healing over time removed you can't go upstairs to heal
18:57:40 <elliott> that don't remove upstairs, because I like upstairs
18:57:57 <elliott> monqy: with stashing, you could just make some common monsters pick up items they can't use
18:58:10 -!- Phantom_Hoover has quit (Ping timeout: 276 seconds).
18:58:11 <elliott> hmm, I guess levels don't run when you're not on them
18:58:25 <monqy> there's code to destroy off-level items
18:58:32 <ais523> elliott: the other solution to stashing is to have a bag of holding that takes a lot of time to access so you can't do it in combat
18:58:42 <elliott> monqy: for stairdancing, I have a decent idea for fixing that, but you sound like you've already made up your mind, so
18:58:47 <ais523> but Crawl's devteam is vetoing containers with contents in the name of keeping the game simple (!)
18:59:11 <elliott> i agree w/ adding a bag of holding
18:59:12 <Ngevd> How hard could it be to write a roguelike?
18:59:26 <elliott> they avoid many of the typical gamedev issues
18:59:32 <elliott> balancing a roguelike, OTOH...
18:59:38 <elliott> monqy: (but if you're not then I'll tell you)
18:59:41 <Ngevd> How hard could it be to write a roguelike for someone with minimal video game programming experience?
19:00:01 <elliott> monqy: if a monster is trying to fight you (i.e. not wandering), and you go upstairs, then it'll "follow you"
19:00:03 <monqy> it'd be simpler for me to leave staircases than remove them, and when i make my very own roguelike i just won't have them
19:00:08 <calamari> Ngevd: this is a guide to writing roguelikes, did you already see it?
19:00:12 <elliott> read: after N turns (how long it'd take for it to get to the upstairs), it appears on the downstairs
19:00:18 <Ngevd> calamari, no I did not
19:00:28 <elliott> monqy: (then do the same for compansions and you can also remove the radius thing)
19:00:47 <elliott> the fact that things one away from you teleport up the stairs with you
19:01:18 <zzo38> Does your game have PC/NPC unification (if applicable)? Does it have multiple stairs? Macros? Discouragement of wasting time (including fighting a lot of the same kind of creature)?
19:01:21 <calamari> Ngevd: http://roguebasin.roguelikedevelopment.org/index.php/How_to_Write_a_Roguelike_in_15_Steps
19:01:35 <elliott> monqy: maybe i should look at crawl's code
19:02:06 <elliott> monqy: it's not fun i'm looking for it's revenge
19:02:09 <monqy> why do you like upstairs, out of curiosity?
19:02:28 <elliott> one "realism" i.e. i just don't like the idea of staircases disappearing once you go down them
19:02:38 <elliott> two, for things like entrances to branches
19:02:47 <monqy> (1) no issue, they'll all be escape hatches
19:02:50 <zzo38> What if they are *not* staircases, but instead are holes in the ground?
19:02:59 <elliott> monqy: that's just silly instead
19:03:10 <elliott> monqy: three, I think it's OK to go back for loot that you skipped (as distinct from stashing)
19:03:25 <monqy> if you want the loot, pick it up!!!
19:03:36 <elliott> but it's heavy and I can't use it yet!
19:04:05 <zzo38> elliott: Then that is your fault for stealing things that you cannot carry. Perhaps find a similar thing later on
19:04:24 <elliott> (btw, are you going to remove food entirely, or just hunger? the latter seems better because ghouls and the like)
19:04:29 <elliott> (or are you removing ghouls too)
19:04:36 -!- Phantom_Hoover has joined.
19:05:00 <monqy> removing food entirely, modifying mummys and ghouls and vampres to make them mean something again
19:06:15 <nortti> lol :D my bookmarkfile is larger than my text editor binary
19:06:53 <zzo38> Do you know the answers to my questions?
19:07:44 <Deewiant> firefox's places.sqlite (which stores bookmarks and history, I believe) is about 25 times the size of my text editor binary
19:07:45 <monqy> "there will be a solution"
19:08:06 <Phantom_Hoover> I have had it up to here with this motherfucking GNOME on this motherfucking laptop.
19:08:15 <elliott> anyway uugh i really don't like removing upstairs but "your game"
19:08:27 <monqy> traveling between branches is ugh anyway
19:08:34 <monqy> interlevel travel is
19:08:47 <elliott> monqy: conversely, why do you want to remove stairs with the tweaks I suggested?
19:08:52 <nortti> Deewiant: I am using a flat file
19:09:30 <monqy> i don't like your antistashing tweak
19:09:35 <nortti> and I have used this file for about a month
19:09:43 <calamari> Phantom_Hoover: I was using Kde 3.5/Trinity.. when I got my new laptop, I tried a ton of DEs.. finally came back to Trinity, it's my favorite
19:09:51 <elliott> monqy: ais523's is probably better
19:10:29 <nortti> calamari: has there bern much change from kde 3.5?
19:10:55 <monqy> the bag of holding?
19:11:07 <calamari> nortti: it's definitely stuck in the past.. but that's me, I guess
19:11:15 <nortti> calamari: how much memory does it use
19:11:38 <calamari> I'm not actually sure how to determine that
19:11:44 <nortti> calamari: I used to use twm
19:11:58 <nortti> + so age is not anissue
19:12:10 <monqy> i'm not really fold of those either but maybe there are solutions??
19:12:15 <nortti> calamari: use top command
19:12:32 <elliott> monqy: how about limiting the amount of weight a tile can support?
19:12:49 <elliott> so if you try and put too much on one tile, it just turns into a shaft or whatever
19:12:52 <monqy> how would that prevent stashing
19:12:52 <calamari> nortti: right, but there are diffrent numbers, and I was never sure which one was real
19:12:57 <elliott> monqy: it'd make it really tedious
19:13:03 <monqy> "just what i wanted"
19:13:07 -!- Phantom_Hoover has quit (Ping timeout: 276 seconds).
19:13:10 <elliott> monqy: that discourages it, doesn't it?
19:13:27 <monqy> making something more tedious doesn't stop it from being optimal
19:13:42 <monqy> i want to remove the "optimal but tedious" aspect
19:13:50 <calamari> nortti: I'll add up a few of there and see what I get
19:13:52 <elliott> nobody plays optimally; if you make the optimal stuff annoying enough, people won't bother
19:14:13 <monqy> i don't like that philosophy
19:14:23 <elliott> I like removing upstairs less
19:15:05 <elliott> monqy: how about just making dropping an item destroy it :)
19:15:20 <elliott> it's better than removing upstairs!!
19:15:33 <monqy> you'd leave items on previous levels and come back to them
19:15:44 <calamari> nortti: I'm assuming you'll want to run the standard stuff like package update notifications
19:15:51 <elliott> monqy: items would get destroyed when you go >
19:16:15 <monqy> elliott: and you prefer that over removing upstairs?
19:17:28 <Ngevd> I think my roguelike will go up rather than down
19:17:40 <nortti> calamari: my computer is IBM ThinkPad T20 with 700MHz Pentium III and 64MB of RAM
19:17:42 <elliott> monqy: anyway idkkkk you should at least leave removing upstairs for last so i can come up with adequate solutions to your objections in the meantime :p
19:18:28 -!- Phantom_Hoover has joined.
19:18:32 <elliott> you should termcast what you have so far sometime or something
19:18:41 <calamari> nortti: it looks like around 150mb
19:19:14 <nortti> calamari: ugh. I'll just stick with openbox then
19:19:20 <calamari> nortti: laptops are cheap, why not upgrade?
19:19:56 <nortti> calamari: I try to use my computers as long as I can
19:19:57 <Ngevd> It will be called "Business Barbarian"
19:20:19 <calamari> nortti: 64mb ram is pretty limiting tho, even besides the gui
19:21:15 <nortti> calamari: links2, hv3 and netsurf
19:21:24 <calamari> I have a machine around that speed and iceweasel was not too fun
19:23:07 <elliott> monqy: what are you going to do about vaults
19:23:37 <monqy> a lot of them work but most of them get vetoed
19:23:53 <nortti> calamari: my main browser is links2 in graphical mode and most of the programs I use are already terminal aplications. If I could only get framebuffer to work with my computer I would not autostart X
19:23:57 <monqy> i'm pretty fine with this for monqys-crawl. it's not an entirely serious project
19:24:09 <monqy> saving that for last i guess
19:24:20 <elliott> are you getting rid of imps :(
19:24:59 <elliott> (that :( means "i hope so")
19:25:02 <nortti> calamari: links2, netsurf and mplayer can be run on framebuffer
19:25:05 <monqy> most monsters aren't very annoying right now
19:25:33 <monqy> i'll probably have to make some adjustments because everything dies really really quickly like in one hit
19:25:59 <monqy> made most if not all things do max damage
19:26:15 <elliott> maybe they should do average damage instead
19:26:22 <elliott> (i'm not sure removing randomness in combat is A Gr8 Idea)
19:28:15 <monqy> not really a serious project
19:28:58 -!- Ngevd has quit (Quit: Goodbye).
19:29:15 <calamari> nortti: I haven't used netsurf, but yeah I've done that with links2 and mplayer
19:29:36 <elliott> monqy: you should remove the non-xom gods (im giving good advice)
19:30:48 <nortti> calamari: netsurf is a browser originaly for risc os that is a bitch to get to compild because of its dependecies
19:33:23 <elliott> monqy: are you going to tweak starting stats/inv, btw, if you're increasing ood spawns?
19:34:53 <monqy> by ood increase i might actually mean not generating monsters before your current depth because they're just not worth having
19:35:02 <monqy> and by not generating them i might mean replacing them with oods
19:35:08 <monqy> i don't know, myself!
19:35:15 <elliott> i don't know myself either
19:35:47 <elliott> monqy: why is crawl like 400k lines of code :(
19:36:36 <monqy> it's not particularly pleasant either
19:36:45 <elliott> i don't even know where the monster definitions are
19:37:52 <zzo38> You could also make some things to be options which can be selected before the game starts
19:39:28 -!- asiekierka has quit (Read error: Connection reset by peer).
19:40:10 <elliott> I don't think the Crawl people understand OOP
19:41:39 -!- AnotherTest has left.
19:42:12 <Phantom_Hoover> oh thank god i was only reminded who he was right after he left
19:42:45 -!- atehwa has joined.
19:44:05 <nortti> Phantom_Hoover: who he is?
19:44:44 <Phantom_Hoover> He came in going on about how general relativity is clearly bullshit.
19:44:55 <Phantom_Hoover> When challenged on this, he claimed to be an expert on it.
19:44:56 <elliott> that wasn't quite how it went
19:45:13 <Phantom_Hoover> Well roughly that, he was criticising it based on claimed expertise.
19:45:21 <elliott> see http://codu.org/logs/log/_esoteric/2011-12-20#133853AnotherTest onwards
19:45:26 <nortti> what!? challeged general relativity?
19:45:43 <Phantom_Hoover> yes we convicted him under uk anti-free speech legislation
19:46:13 <elliott> 13:36:50: <elliott> "Time is a part of the measuring system used to sequence events, to compare the durations of events and the intervals between them, and to quantify rates of change such as the motions of objects.[1] The temporal position of events with respect to the transitory present is continually changing; events happen, then are located further and further in the past. Time has been a major subject of religion, philosophy, and
19:46:13 <elliott> science, but defining it in a n
19:46:13 <elliott> 13:36:51: <elliott> on-controversial manner applicable to all fields of study has consistently eluded the greatest scholars. A simple definition states that "time is what clocks measure"."
19:46:14 <elliott> 13:36:56: <elliott> -- Wikipedia, attempting to define "time".
19:46:16 <elliott> 13:37:10: <elliott> Did you know that events happen, and then are located further and further in the past?
19:48:39 -!- atehwa has quit (Quit: testaan startup-skripti').
19:48:41 <elliott> Oh no, now I'm reading that log again.
19:48:41 -!- TeruFSX2 has joined.
19:48:50 -!- atehwa has joined.
19:49:15 <zzo38> The correct way to define time is according to its effects on physics.
19:49:36 <calamari> nortti: fwiw I run openbox on that laptop :)
19:50:47 <calamari> I tried openbox/lxde on my new one but it jus tcouldn't handle multiple unmatched screens properly
19:51:49 -!- TeruFSX has quit (Ping timeout: 248 seconds).
19:53:29 <nortti> calamari: have you ever used wwm? it is quite nice window manager
19:53:56 <elliott> 14:17:16: <AnotherTest> < means something, in fact
19:53:56 <elliott> 14:17:22: <elliott> < implies =/=.
19:53:56 <elliott> 14:17:25: <AnotherTest> No
19:54:49 <zzo38> Do you think this is the correct way to define time, or do you have other opinion?
19:54:51 <elliott> 14:21:27: <AnotherTest> I'm even doubting whether you understand what a momentum is, Phatum
19:54:55 <elliott> Phantom_Hoover: You're Phatum_Hoover now.
19:55:02 -!- Phantom_Hoover has changed nick to Phatum_Hooveer.
19:55:04 -!- Phatum_Hooveer has changed nick to Phatum_Hoover.
20:03:34 -!- orionx has joined.
20:03:49 <HackEgo> orionx: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page
20:03:53 <HackEgo> orionx: This channel is about programming -- for the other kind of esoterica, try #esoteric on irc.dal.net.
20:04:40 -!- orionx has left.
20:05:25 <olsner> maybe we should put the programming note directly in the welcome message
20:05:55 <elliott> `learn Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
20:07:18 <zzo38> It seems difficult (or maybe completely impossible) making the category for a partial ordering in Haskell. (As far as I can tell, the laws of a partial ordering are the same as the laws of a thin category.)
20:16:10 -!- MoALTz__ has joined.
20:18:24 -!- MoALTz_ has quit (Ping timeout: 260 seconds).
20:18:25 <elliott> monqy: this is a great sprint game im watching
20:18:28 <elliott> mephitic clouding everything
20:19:16 <monqy> scummos? I'm assuming it's not n7
20:19:24 <zzo38> Phatum_Hoover: Probably it includes all of LaTeX which is very large, as well as fonts and drivers and so on; I do not know if it is possible to tell it to omit LaTeX. Also, do you have PCL printer?
20:19:41 <elliott> ok they're not mephitic clouding the elephant slug
20:19:42 <zzo38> If you do not have a PCL printer, you won't need the programs "dvipcl", "dvilj", and their variants, either.
20:19:56 <Phatum_Hoover> Jesus christ why is texlive so huge zzo need not reply
20:20:27 <zzo38> O, you are asking Jesus Christ. Well, he isn't here right now.
20:21:04 <monqy> when will he be back
20:21:04 <elliott> sprint seems to involve a lot of running away
20:21:15 <elliott> or maybe this guy is just bad at it
20:21:34 <monqy> he's kiting the elephant slug, but maybe that's his only option
20:21:38 <monqy> and that's only the first sprint
20:21:42 <monqy> there's no running
20:22:12 <elliott> aren't you meant to kill sonja last
20:22:15 <elliott> the level's named after her
20:22:30 <qfr> Freenode Sonja?
20:22:59 <qfr> Oh, I thought you meant the freenode Sonja, I guess not
20:23:03 <qfr> Frequents many channels
20:23:11 <elliott> what a reasonable thing to believe
20:23:27 <zzo38> Phatum_Hoover: Perhaps you can remove the files that you don't want, after install? When I installed MiKTeX, it included many files I did not want but there is an option to remove them so that is what I did.
20:25:23 <monqy> sprint difficulty depends greatly on which sprint, combo, and if you know how to do it
20:25:36 <monqy> by its fixed nature, it's much more spoily than normal crawl
20:26:25 <elliott> i have a feeling it isn't very suited to pure melee characters
20:26:28 <elliott> at least unless you have a ton of hp
20:26:36 <monqy> no it's perfectly fine on them
20:31:35 <elliott> wow sprints are popular today
20:44:31 <elliott> monqy: anyway i guess removing upstairs isn't such a bad idea except for the messing up branches thing
20:44:36 <elliott> (also how are you going to do the orb run)
20:45:04 <monqy> the mcrawl approach is just not have orb run
20:45:14 <elliott> you just win once you pick up the orb or w/e?
20:45:21 <elliott> i guess you could do the rogue thing
20:45:22 <monqy> top priority momentarily is make it segfault less
20:45:30 <elliott> change downstairs into upstairs once you get the orb
20:45:45 <elliott> have an upstairs next to the orb
20:45:50 <monqy> orb run is pretty dull but maybe in monqys-crawl it would be more interesting
20:46:20 <elliott> im working on the assumption that anything dull would be made more interesting
20:46:33 <elliott> (ps it would be less dull with the things-follow-you-upstairs change!!!)
20:46:48 <monqy> things-follow-you-downstairs
20:47:03 <elliott> right, that should be added even if upstairs are removed
20:47:18 <elliott> otherwise you can just skip any level with anything dangerous on it and since you can't go upstairs anyway you don't really lose much
20:48:38 -!- Ngevd has joined.
20:48:43 <elliott> ps remove goliath beetles, nerf worms
20:48:57 <Ngevd> My roguelike is going well
20:48:59 <monqy> worms were nerft by the max damage dealie
20:49:10 <monqy> most things were, really. except for the things that were megabuft
20:49:18 <monqy> "needs rebalancing"
20:49:19 -!- Phatum_Hoover has quit (Ping timeout: 276 seconds).
20:49:23 <elliott> monqy: yeah but that seems to have nerfed everything to a terrible degree so
20:49:25 <monqy> "that can come after making it not segfault"
20:49:28 <elliott> my balancing suggestions are assuming you fix that
20:49:46 <elliott> the problem with removing randomness from combat is that
20:49:58 <elliott> you can basically predetermine whether you'll live or die before doing anything
20:50:05 <elliott> which removes all possibility of taking a risk or whatever
20:51:07 <Ngevd> Change of plan, bye
20:51:08 -!- Ngevd has quit (Client Quit).
20:51:52 <monqy> "we'll just have to wait for monqy's actual roguelike"
20:52:30 <elliott> didn't you realise it's impossible to make a crawl variant AND another game
20:53:45 <elliott> anyway i'm still suggest even if it's totally non-serious
21:01:57 <nortti> http://www.terminally-incoherent.com/blog/2009/07/21/on-optimization/
21:05:04 -!- Phatum_Hoover has joined.
21:10:07 -!- Phatum_Hoover has quit (Ping timeout: 276 seconds).
21:16:09 -!- MoALTz__ has quit (Ping timeout: 260 seconds).
21:31:17 <zzo38> I am trying to think of how to make WizardCard to know which headings are more specific than others
21:32:17 -!- Phantom_Hoover has joined.
21:32:19 <zzo38> For example, the heading macro/xyz(0) is more specific than macro/xyz(#1)
21:32:54 <zzo38> Since the first heading only matches exactly xyz(0) but the second one matches xyz with anything else too
21:33:16 <Phantom_Hoover> How hard it is to configure wifi connections on Linux.
21:33:33 <Phantom_Hoover> I *still* have no idea whatsoever how to do it except with the GNOME applet.
21:33:48 <zzo38> Phantom_Hoover: Did you read the man page?
21:34:22 <Phantom_Hoover> I cannot find documentation without having the slightest idea which tool I'm even looking at.
21:34:29 <zzo38> I don't know what that man page will be called; you can try man -k to search
21:40:32 <zzo38> Can you help me with the algorithm of most specific headings? It is not only as simple as the examples I have given; there are other possibilities too.
21:42:13 <elliott> zzo38: how about defining a union-of-two-headings function?
21:42:37 <elliott> then x `isMoreSpecificThan` y = x == mappend x y
21:43:04 <zzo38> Well, OK, but can you give an example of what you mean?
21:43:21 <elliott> err, I'm not sure what you mean, that *was* the example :)
21:43:34 <elliott> mappend x y would be a heading that matches whenever x or y matches
21:43:42 <nortti> @ask Gregor what is wrong with bsd userland
21:44:08 <zzo38> Thanks that looks like it will work
21:44:18 -!- Vorpal has quit (Ping timeout: 272 seconds).
21:44:24 <monqy> elliott: wouldn't you need the specificity order to form a lattice then
21:44:38 <elliott> monqy: yep, I was making assumptions about zzo38's situation
21:44:51 <monqy> zzo38: does it form a lattice
21:45:12 <zzo38> monqy: Can you explain what a lattice is, then?
21:46:49 <zzo38> The headings are of type [Token] and, other than the exact match tokens, the other ones are T_Para (matches anything), and T_List and T_Call (both of which can contain other tokens)
21:47:24 <monqy> latice, basically: partial order with operations to take the greatest upper lower and least upper bound of any two elements
21:47:26 <zzo38> It seems that sometimes two headings cannot be combined in this way
21:47:52 <monqy> i guess you could just get away with a semilattice though
21:48:07 <zzo38> monqy: What is a "greatest upper lower"?
21:48:09 <monqy> semilattices only need one of those operations
21:48:17 <monqy> i meant greatest lower bound
21:48:21 <monqy> not greatest upper lower
21:48:27 <zzo38> OK, that is what I thought you might have meant
21:48:29 <elliott> its ok greatest upper lower was greatest
21:49:40 <monqy> zzo38: one of them is called "meet" and the other is "join" and I can never remember which is which, but mappend in elliott's example is one of them, depending on which way you order your stuff
21:50:49 <elliott> fwiw, there's http://hackage.haskell.org/package/lattices
21:51:21 <elliott> which is probably better than Monoid for you since it ensures commutativity and so on
21:52:07 <zzo38> But "join" is already used in Haskell for the monadic operation. But are "meet" and "join" dual like in a dual category (treating the partial ordering as a category)?
21:52:29 <elliott> you can import the module qualified (as L, say)
21:53:30 <zzo38> But, still, some headings may not be able to combine in this way
21:54:02 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.20890
21:54:39 <zzo38> Unless you meant something that may match *more* than only the two original headings.
21:56:55 <zzo38> Perhaps you can clarify?
21:58:19 <zzo38> coppro: Can you elaborate on that?
21:58:29 <coppro> I forgot the / on an irssi command
21:58:50 <Phantom_Hoover> OK I think I actually have Henry back to being tolerable!!
22:00:03 -!- Phantom_Hoover has quit (Remote host closed the connection).
22:00:10 <zzo38> coppro: Do you know somethings about answering my question though? Maybe not?
22:00:50 <zzo38> elliott: For example, the headings macro/x(0) and macro/x(1) are both matched by macro/x(#1) but then it matches many other things too
22:04:13 <zzo38> nortti: I have a fortunes file too. Do you have?
22:04:39 <nortti> zzo38: yes but it is very small
22:05:38 <zzo38> (Also, if the part before the slash differs, the headings won't combine at all, but that is not relevant since the ordering of specificness is not important if the headings are of a different kind)
22:06:21 -!- pikhq has quit (Read error: Operation timed out).
22:06:38 -!- pikhq has joined.
22:07:04 <nortti> c2bf project status: c2bf-cpp now supports #define, c2bf-libc has now been split to multiple files (stdio.c,string.c)
22:08:39 -!- elliott has quit (Remote host closed the connection).
22:10:54 <nortti> todo: implement strings
22:12:47 -!- zzo38 has quit (Quit: TODO: QUIT).
22:13:44 -!- elliott has joined.
22:14:20 <elliott> 21:54:39: <zzo38> Unless you meant something that may match *more* than only the two original headings.
22:15:35 <elliott> monqy: does it still segfault :'(
22:15:54 <monqy> i havne't worked on it since last night
22:16:16 <elliott> home work: make crawl variant
22:18:12 <nortti> Aural myiasis (the technical term for "being earfucked by worms")
22:46:18 <lambdabot> Gregor: You have 1 new message. '/msg lambdabot @messages' to read it.
22:46:26 <lambdabot> nortti asked 1h 2m 44s ago: what is wrong with bsd userland
22:46:34 <Gregor> nortti: I was TROLLING
22:50:31 -!- Phantom_Hoover has joined.
23:09:26 -!- Phantom_Hoover has quit (Remote host closed the connection).
23:28:10 <elliott> monqy: alsobtw, are you removing identification entirely or just making things identify on pickup?
23:30:39 <monqy> plans to remove id entirely
23:30:55 <monqy> picking things up to identify them then dropping them when they aren't good found "lots of fun"
23:32:07 <elliott> monqy: yeah it's kind of boring; it's interesting in some respects but maybe not enough to keep it
23:32:14 <elliott> not in the context of Crawl at least
23:33:09 <elliott> i was thinking My Roguelike(tm) might have some minor forms of identification but they'd be very limited and race-based
23:33:35 <elliott> e.g. a stupid race wouldn't be able to identify scrolls before using them (because they can't read) until they upped int
23:33:48 <elliott> but the solution would be: don't use scrolls
23:33:49 <monqy> the only form of identification i've considered for my roguelike so far is that spell-identification thing i talked about
23:34:14 -!- olsner has quit (Ping timeout: 252 seconds).
23:34:22 <monqy> well, "spell" "identification"
23:34:50 <elliott> maybe i shouldn't speak of anything resembling an identification game in anything even resembling a positive light while i'm trying to convince ais523 that nethack's id game is really awful
23:35:03 -!- olsner has joined.
23:35:13 -!- nortti has quit (Quit: nortti).
23:52:00 <elliott> my monkey is apparently not smart enough to not kill pit bloats
23:53:59 -!- Patashu has joined.