←2009-09-16 2009-09-17 2009-09-18→ ↑2009 ↑all
00:00:02 <coppro> w00t!
00:00:16 <coppro> I finally figured out how to convince automake to do precompiled headers!
00:00:23 <coppro> It's hideous, but it works!
00:00:28 <zzo38> I know about GIMP, but I prefer ImageMagick.
00:03:30 <Gregor> coppro: Isn't it just like include_HEADERS=<your .gch files here> then .h.gch:\n\t<your GCC line here>
00:03:49 <coppro> Gregor: I wish
00:04:19 <coppro> Maybe they'll add it eventually
00:04:23 -!- Sgeo has joined.
00:05:46 <coppro> but for now, it's a nasty hack
00:06:18 <AnMaster> what is the point? for most realistic C header examples you don't save very much
00:06:40 <coppro> AnMaster: this is a C++ project; I think I just cut compile time in 3
00:06:43 <AnMaster> and it is a pain to maintain
00:06:54 <AnMaster> when stuff like #inludes in headers change
00:07:20 <Sgeo> I renamed the old file, and then Pidgin makes a new file.. it's corrupt
00:07:26 <coppro> nah, the precompiled header is always first
00:07:44 <coppro> as long as you remember that, things are good
00:08:04 -!- oklopol has quit (Read error: 148 (No route to host)).
00:08:51 <AnMaster> coppro, what if cflages changes? Or GCC version
00:09:06 <coppro> AnMaster: then it's recompiled as it normally would be
00:09:18 <AnMaster> well, that would be mostly an issue if the file was installed
00:09:29 <coppro> no, this is not for a library
00:09:41 <coppro> it would be an issue if it was installed
00:09:45 <coppro> but fortunately it's not :)
00:10:20 <AnMaster> right
00:10:23 <AnMaster> night ->
00:12:08 <coppro> there is only one flaw
00:12:32 <coppro> one of the dummy files is getting distributed because I can't but it in nodist_SOURCES or else it gets built after the rest of the project
00:12:45 <coppro> and the precompiled headers must always be first
00:27:58 <zzo38> Is there command-line programs to render text on images like I described?
00:31:47 -!- FireFly has quit ("Later").
00:34:34 <coppro> zzo38: to my limited knowledge, there is not
00:36:47 <zzo38> O, OK.
00:38:06 <zzo38> If we used the "mahjong operator" in a new esolang, like I described (the input set can consist of a tenpai hand with any number of sets of three tiles and up to one pair), are any calculations reasonably done with this?
00:38:17 <zzo38> The input and output would be unordered sets with duplicates OK
00:38:39 <zzo38> O, and add the concatenation operator too
00:39:19 <zzo38> Would it be sufficient for most uses?
00:41:43 <coppro> can you rexplain the operator?
00:44:08 <zzo38> The operator does: If you have a tenpai hand (where a complete hand must contain any number of sets of three tiles and up to one pair), then the output will be the list of possible tiles to complete this hand.
00:44:25 <zzo38> Example: [chun,chun,1man,3man] -> [2man]
00:44:28 -!- augur_ has joined.
00:44:50 <Sgeo> DAMMIT WINDOWS! I DO NOT WANT YOU TO KEEP TELLING ME ABOUT YOUR CORRUPTED FILES
00:45:17 <zzo38> And then also needs a command for jumping if the list is empty/non-empty
00:45:17 <oerjan> sweep corruption under the rug, i say
00:46:11 <Sgeo> oerjan, I just wish there was an ignore button
00:46:13 <coppro> zzo38: hmm... I think I need to know more of the context of the language to understand where it might be useful :)
00:46:19 <zzo38> If the number of elements in the input list is divisible by three, the output list would necessarily be empty.
00:48:09 <zzo38> coppro: Yes, I guess so. But I'm just wondering if you can think of ways to make it so that it would be sufficient and can do many calculation with: mahjong operator, concatenation operator, condition operator.
00:51:28 <zzo38> On Sunday, I played D&D. My character, and a monster, teleported into the exact center of a building, and there was a kitchen there, with a fire elemental cooking something. Now my question is, how would *you* act in this situation? (I have some idea but maybe you are different?)
00:55:13 <oerjan> "Hello, what's for dinner?"
00:55:37 * oerjan has played D&D exactly once in his life, though, ihrc
00:55:40 <zzo38> I happen to have Profession (Cooking) skill, so I decided to use that.
00:56:18 <zzo38> And, now I can know where the kitchen is, so I could now figure out the rest of the building relative to this one
00:59:39 <pikhq> zzo38: It'd depend upon the character I'm playing.
00:59:58 <zzo38> O, OK.
01:00:01 <pikhq> If I were playing, say, Thrug, my half-orc half-dragon barbarian, Thrug smash.
01:00:16 <zzo38> Like, you mean just smash everything?
01:00:30 <pikhq> (quite likely with the boulders he carries)
01:00:32 <zzo38> oerjan: O, only once? What version did you play? And do you plan to try again?
01:00:44 <pikhq> Yes.
01:01:41 <oerjan> i don't recall. it was at the local convention, and probably more than ten years ago
01:01:52 * oerjan does recall he played a paladin, though
01:02:47 <zzo38> OK, a paladin. Can you also describe other things you can remember, such as equipment, race, etc
01:03:08 * Sgeo would really prefer it if there was a non-web client for Wave
01:03:21 <zzo38> What's "Wave"?
01:03:36 <Sgeo> Google Wave
01:03:39 <oerjan> i think i was human
01:04:03 <zzo38> OK, human. And what equipment?
01:04:07 <zzo38> And did you have any spells?
01:04:50 <oerjan> i recall a bit of the _plot_ perhaps. the things you mention i consider far too boring to remember.
01:04:53 <zzo38> Sgeo: Maybe you can use the API to write a non-web client for Wave?
01:05:05 <zzo38> OK, what plot? If you can remember
01:05:11 * Sgeo isn't skilled enough to do that
01:05:19 <Sgeo> Although I guess I could make a poor attempt
01:05:30 <Sgeo> I'm not in any of the previews, though
01:05:58 <oerjan> lessee it was a dungeon crawl of sorts, to get an artifact of some kind for a prince or something (you can tell it's not very accurate)
01:06:01 <pikhq> oerjan: Eh, that's because D&D tends to make mechanics more complex than they need to be.
01:06:27 <pikhq> Unlike GURPS, which is only complex because it's got quite a few emergent properties.
01:06:42 <oerjan> i recall there were some statues coming alive and going after us once we got the artifact
01:06:47 <pikhq> (resulting from the design decision to make just about any idea possible to implement in it)
01:06:55 <oerjan> the artifact was in a room full of them
01:07:07 <zzo38> pikhq: Ya, well, I prefer Icosahedral RPG, but it isn't quite finished being written yet.
01:07:51 <zzo38> O, my character in D&D is, I prefer to not fight anyone if I can avoid it, and I have been pretty successful at it
01:07:53 <oerjan> also, only two of us survived i think, i was one of them. a couple died at the last minute because they panicked and jumped into a door to some kind of anti-dimension
01:09:22 <oerjan> and i survived essentially i think because i played rightful paladin and therefore didn't do anything fishy...
01:09:24 <zzo38> In a previous D&D game I played, there was also statues that were going to come alive, but we managed to prevent that, by all our characters also disguised as extra statues, I also found a stick next to someone who has used "Hold Person" (but a saving throw has been made after a few rounds), and it was a magic stick.
01:09:39 <zzo38> Everyone told me not to break it, but I still decided to break the magic stick. And that worked.
01:09:55 <pikhq> I played in a campaign where we accidentally started the industrial revolution.
01:09:58 <zzo38> All magic items and other magic effects in the vicinity were destroyed instantly.
01:10:07 <pikhq> And were well on the way to having a post-scarcity society.
01:10:12 <pikhq> Also maybe the singularity.
01:10:13 <zzo38> And that greatly helped.
01:10:48 <zzo38> So now you should learn these things too.
01:24:22 <zzo38> Why do you guys use the CTRL+A ACTION command too much, anyways?
01:26:03 -!- zzo38 has quit (Remote closed the connection).
01:27:38 * oerjan has no idea
01:30:32 * Asztal thinks oerjan just wanted to use "IHRC"
01:33:15 * oerjan claims that the ihrc only happened while the sentence was being written
01:35:12 * Gregor doesn't think we use ACTION too much at all.
01:35:14 -!- augur_ has quit (Read error: 104 (Connection reset by peer)).
01:35:59 * oerjan agrees with Gregor. also, he finds an R someone dropped.
01:36:14 * Gregor thought he burned that.
01:36:27 <oerjan> it looks a bit sooty
01:37:21 <Gregor> I managed to snag this nick, upping my coolness points 1 trillion X.
01:37:51 <oerjan> that's some return on investment
01:38:06 <Gregor> Especially since the investment is roughly 0.
01:38:31 <oerjan> OO
01:39:06 <Gregor> PSLA
01:40:14 <oerjan> puget sound limousine association? i would stay away from those guys if i were you
01:40:31 <Gregor> I was continuing your "OO" :P
01:40:48 <oerjan> ah
01:41:22 <oerjan> whoopsla
01:43:45 -!- augur has joined.
02:00:07 -!- Sgeo has quit (Read error: 104 (Connection reset by peer)).
02:00:28 -!- Sgeo has joined.
02:41:26 <Sgeo> ....wtf
02:41:27 <Sgeo> "whereas you rarely won't get any lies from them"
02:43:28 <oerjan> i didn't fail to misunderstand that. maybe.
02:44:26 <Sgeo> Maybe I should have quoted the full sentence
02:44:27 <Sgeo> "Something else you should know is that they are also very honest people whereas you rarely won't get any lies from them because of their honesty."
02:46:12 <oerjan> clearly.
03:21:30 -!- Sgeo has quit (Read error: 104 (Connection reset by peer)).
03:58:29 <coppro> who wants a laugh?
03:59:24 * oerjan makes sure not to drink anything
03:59:52 <coppro> okay, it's a guessing game now: why does my school still use IE 6?
04:00:29 <oerjan> lessee, they fired the only guy who knew how to upgrade things?
04:01:16 <coppro> wrong
04:01:38 <oerjan> they have a homebrew web-based system that requires it?
04:01:45 <coppro> nope!
04:02:07 <oerjan> their machines are so old they don't run anything newer?
04:02:30 <coppro> hmm... maybe, but not the reason!
04:02:44 <oerjan> they have a _commercial_ web-based system that requires it?
04:02:52 <coppro> nah
04:03:01 <coppro> I don't think they have any web-based system
04:03:05 * oerjan realizes some of those are not actually funny
04:03:16 <coppro> do you want to know the real reason?
04:03:46 <oerjan> ok then
04:03:49 <coppro> it's because of security concenrs, apparently
04:03:51 <coppro> *concenrs
04:03:54 <coppro> *concerns
04:04:04 * oerjan rolls eyes
04:04:09 <coppro> I'm Not Making This Up
04:04:13 <oerjan> (literally)
04:26:47 -!- coppro has changed nick to copprop.
04:26:50 -!- copprop has changed nick to copprp.
04:29:09 -!- copprp has changed nick to coppro.
04:56:36 -!- Gracenotes has quit (Remote closed the connection).
05:04:52 -!- Gracenotes has joined.
05:06:46 -!- Asztal has quit (Read error: 110 (Connection timed out)).
05:11:45 -!- coppro has quit (Remote closed the connection).
06:08:30 -!- oerjan has quit ("leaving").
06:13:33 -!- FireFly has joined.
06:22:09 -!- Pthing has quit (Remote closed the connection).
07:26:29 -!- Patashu has joined.
07:35:56 -!- FireFly has quit ("Later").
07:46:12 -!- kar8nga has joined.
07:49:30 -!- kwertii has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:43:24 -!- kwertii has quit ("bye").
08:45:35 -!- kar8nga has quit (Remote closed the connection).
10:05:26 -!- amca has joined.
11:58:20 -!- AnMaster_ has joined.
12:00:06 -!- AnMaster has quit (Nick collision from services.).
12:00:12 -!- AnMaster_ has changed nick to AnMaster.
12:33:47 -!- amca has quit ("Farewell").
12:40:28 -!- MizardX- has joined.
12:40:35 -!- MizardX has quit (Read error: 104 (Connection reset by peer)).
12:40:58 -!- MizardX- has changed nick to MizardX.
12:47:54 -!- ais523 has joined.
13:58:48 -!- nice has joined.
13:59:00 -!- nice has quit (Remote closed the connection).
13:59:51 -!- KingOfKarlsruhe has joined.
14:34:04 <ais523> someone who knows Russian, is http://www.esolangs.org/wiki/Talk:P-prime-prime spam or just a query in the wrong language?
15:08:55 -!- augur has quit (Read error: 110 (Connection timed out)).
15:27:10 -!- oerjan has joined.
15:32:46 <oerjan> ais523: the thing out of google translate looks awfully generic.
15:33:04 <ais523> like spam, or like a genuine query?
15:33:08 <ais523> and what was Oleg's response?
15:33:33 <oerjan> "English please. Do you like it here?"
15:35:51 <oerjan> also, wrong question, it looks like many of those things that are obvious bots but still try to _look_ like genuine queries, but reveal themselves because (1) they show up in a completely ridiculous page name (2) they contain nothing that indicates the poster knows what the wiki is about at all
15:36:09 <oerjan> it contains nothing resembling an ad, though
15:36:25 <oerjan> you may be confused by the fact this one has only (2)
15:37:11 <oerjan> "Beautifully turned out ... I do not know how the rest, but I like it. By the way, how to subscribe to my email box comes if someone has left a comment?"
15:37:25 <ais523> ok, that quite possibly /is/ spam
15:37:36 <ais523> I'd like an opinion from a native speaker, though
15:38:34 <oerjan> hm...
15:39:47 <ais523> wow, Google just bought reCAPTCHA
15:39:47 <oerjan> ais523: you _really_ need to learn to use google me thinks
15:39:55 * ais523 wonders if they'll open-source it
15:40:13 <oerjan> it shows up 4 exact matches to the post. i think that about settles it.
15:40:45 <oerjan> http://www.google.no/search?hl=no&q=%22%D0%9A%D1%80%D0%B0%D1%81%D0%B8%D0%B2%D0%BE+%D0%BF%D0%BE%D0%BB%D1%83%D1%87%D0%B8%D0%BB%D0%BE%D1%81%D1%8C...+%D0%9D%D0%B5+%D0%B7%D0%BD%D0%B0%D1%8E+%D0%BA%D0%B0%D0%BA+%D0%BE%D1%81%D1%82%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%BC%2C+%D0%BD%D0%BE+%D0%BC%D0%BD%D0%B5+%D0%BD%D1%80%D0%B0%D0%B2%D0%B8%D1%82%D1%81%D1%8F.+%D0%9A%D1%81%D1%82%D0%B0%D1%82%D0%B8%2C+%D0%BA%D0%B0%D0%BA+%D0%BF%D0%BE%D0%B4%D0%BF%D0%B8%D1%81%D0%B0%D1%82%D1%
15:41:01 <oerjan> O_o that was a long url
15:41:15 <ais523> hex-encoded UTF-8
15:41:17 -!- augur has joined.
15:41:19 <ais523> therefore, it's double-encoded
15:41:24 <ais523> which is what's making the length
15:41:33 <ais523> (well, URL-encoded, which is even worse than hex-encoded for length)
15:45:22 <Deewiant> http://www.youtube.com/watch?v=Nx7v815bYUw
15:59:36 -!- FireFly has joined.
16:13:18 -!- Pthing has joined.
16:26:03 -!- BeholdMyGlory has joined.
16:26:13 -!- Patashu has quit ("Patashu/SteampunkX - MSN = Patashu@hotmail.com , AIM = Patashu0 , YIM = Patashu2 .").
16:47:19 -!- oerjan has quit ("leaving").
16:48:53 -!- kar8nga has joined.
17:10:19 -!- KingOfKarlsruhe has quit (Read error: 104 (Connection reset by peer)).
17:14:55 -!- KingOfKarlsruhe has joined.
17:25:16 -!- KingOfKarlsruhe has quit ("Konversation terminated!").
17:55:29 -!- impomatic has joined.
17:55:32 <impomatic> Hi :-)
18:04:00 <ais523> hi
18:06:47 -!- Asztal has joined.
18:26:27 -!- adam_d has joined.
19:20:45 -!- kar8nga has quit (hubbard.freenode.net irc.freenode.net).
19:20:58 -!- kar8nga has joined.
19:23:17 <AnMaster> ais523, about that double encoding
19:23:31 <AnMaster> wouldn't it be even worse if it was UCS-4?
19:24:20 <ais523> probably
19:26:04 <AnMaster> utf-8 can iirc go up to 5 bytes, but I would be surprised if Russian letters required quite that much
19:26:53 <Deewiant> UTF-8 goes up to 4.
19:26:58 -!- kar8nga has quit (hubbard.freenode.net irc.freenode.net).
19:27:11 -!- kar8nga has joined.
19:27:20 -!- kar8nga has quit (Read error: 104 (Connection reset by peer)).
19:27:21 -!- k has joined.
19:27:22 <AnMaster> Deewiant, that can't work out, since then you can't represent the full unicode range
19:27:49 -!- k has changed nick to Guest72698.
19:27:54 -!- Guest72698 has changed nick to kar8nga.
19:27:58 <Deewiant> 4 bytes are perfectly sufficient to represent 0x10ffff.
19:28:04 <AnMaster> Deewiant, doesn't the priate area continue past that?
19:28:50 <Deewiant> Yes, but UTF-8 is restricted to the range 0-0x10ffff.
19:29:04 <ais523> 3 bytes are enough for 0x10ffff
19:29:20 <ais523> why isn't there a UCS-3?
19:29:40 <Deewiant> Because 3 isn't a nice number, I guess.
19:32:50 <AnMaster> ais523, that would be nice for 24-bit architectures I guess
19:32:54 <AnMaster> which are quite uncommon nowdays
20:23:36 -!- MizardX has quit ("reboot").
20:28:59 -!- MizardX has joined.
20:40:58 -!- KingOfKarlsruhe has joined.
20:42:50 <AnMaster> ais523, did you ever implement that packed 7-bit thing for convickt?
20:42:56 <ais523> no, I haven't
20:43:07 <ais523> I haven't done C-INTERCAL work for ages, been working on other things
20:43:24 <AnMaster> ais523, like Feather? XD
20:43:35 <ais523> AnMaster: I'm confused enough as it is
20:43:43 <AnMaster> ah
20:46:37 <AnMaster> ais523, so what then?
20:46:41 <impomatic> while (brillig()&&toves==slithy) {toves.location='wabe'; toves.gyre(); toves.gimble(); borogoves=mimsy; mome_raths.outgrabe();}
20:47:11 <ais523> AnMaster: TAEB and Enigma are the ones recently
20:48:42 <AnMaster> impomatic, -_-
20:49:03 <AnMaster> impomatic, what language is that supposed to be?
20:49:14 <ais523> it would be valid as C++ with appropriate definitions
20:49:20 <AnMaster> ais523, no
20:49:22 <AnMaster> it wouldn't
20:49:23 <ais523> also Java I think, because the syntax is the same in that case
20:49:32 <AnMaster> ais523, look at the string quotes
20:49:40 <ais523> AnMaster: yes, sort of, 'wabe' is a legal character constant in C++
20:49:45 <ais523> although compilers will disagree about what it means
20:50:00 <AnMaster> ais523, I can't think of a sensible meaning of it...
20:50:23 <AnMaster> and C++ compilers disagreeing? Nothing new
20:51:29 <AnMaster> ais523, apart from the 'wabe' it could be valid C. Assuming toves and mome_raths were structs with function pointers in them
20:51:31 <AnMaster> I think
20:51:48 <Deewiant> ais523: Is it actually legal? I thought it was just a GCC extension
20:51:48 <ais523> AnMaster: I'm not sure how the precedence works there
20:51:53 <AnMaster> ais523, hm ok
20:51:53 <ais523> and multiple-character constants are in the standard
20:51:57 <ais523> for both C and C++
20:52:06 <ais523> although it's implementation-defined what they mean
20:52:11 <AnMaster> heh
20:52:20 <Deewiant> Oh, I thought they were complete extensions
20:52:20 <impomatic> Anmaster: it's pseudo-JavaScript :-)
20:52:29 <ais523> oh, JS
20:52:33 <AnMaster> Deewiant, I guess it is intended to allow unicode or such?
20:52:34 <ais523> you're right, that works
20:52:36 -!- augur has quit (Read error: 131 (Connection reset by peer)).
20:52:45 <AnMaster> multi-byte thing
20:52:59 <Deewiant> AnMaster: It predates Unicode, I think. But yeah, probably for multibyte stuff.
20:53:03 * ais523 wonders if it's legal Perl
20:53:11 <ais523> it would mean something rather different from the JS if it were, though
20:53:19 <AnMaster> ais523, given the relevant Acme:: module I'm quite sure it is
20:53:22 <impomatic> I thought I'd try #poemsincode as a response to #songsincode
20:53:48 <ais523> AnMaster: oh, there's a JAPH module which reinterprets any code at all as a JAPH
20:53:50 <ais523> but that's cheating
20:55:35 <AnMaster> ais523, JAPH?
20:55:46 <ais523> a program that prints "Just another Perl hacker,"
20:55:49 <AnMaster> ah
20:55:51 <ais523> the comma at the end is apparently not a typo
20:56:07 <ais523> it's a common Perl contest to try to write the most obfuscated JAPH you can
20:56:12 <ais523> in the most ridiculous way you can
20:56:26 <AnMaster> ais523, I can imagine the java equivalent of those. XD
20:56:52 <AnMaster> ais523, since writing unreadable one-liners is idiomatic perl...
20:56:59 <ais523> AnMaster: no, I mean unreadable even for Perl
20:57:15 <AnMaster> the java equivalent should be complete with javadoc and so on
20:57:21 <AnMaster> ais523, I couldn't tell the difference
20:57:28 <ais523> some particularly respected JAPHs have have included things like multiple processes with IPC
20:57:36 <ais523> just to print a constant string
20:57:43 <AnMaster> ais523, they would have been rather long?
20:57:47 <AnMaster> ais523, link to these?
20:57:58 <Deewiant> print "Just another", ((0 and " Ruby ") or ("Pyt" + "hon" or " Perl ")), "hacker.\n",
20:58:01 <Deewiant> ""
20:58:10 <ais523> Deewiant: haha, that's brilliant
20:58:20 <AnMaster> ais523, how so?
20:58:30 <ais523> AnMaster: it's clearly designed to be a polyglot
20:58:37 <AnMaster> ais523, fails in modern python
20:58:41 <ais523> although, wouldn't the Python version be losing spaces around it?
20:58:41 <AnMaster> since print is now a function
20:58:52 <ais523> if you add parens, it works in Perl at least
20:58:55 <ais523> not sure about Ruby
21:00:07 <AnMaster> with python3.1 I think it is time to drop python 2.6 support for new apps. Probably not for libraries yet though
21:00:25 <AnMaster> and python 2.7 support should be dropped too
21:00:48 <AnMaster> ais523, if you add parens it will sometimes work in python 2.6 too
21:01:10 <AnMaster> 2.6>>> print "2 =",2
21:01:10 <AnMaster> 2 = 2
21:01:18 <AnMaster> same with parens in 3
21:01:19 <AnMaster> but
21:01:25 <AnMaster> with parens in 2.6:
21:01:28 <Deewiant> That's at least 3 years old, I think
21:01:30 <ais523> oh, Python adds spaces at commas?
21:01:34 <AnMaster> 2.6>>> print("2 =",2)
21:01:34 <AnMaster> ('2 =', 2)
21:01:45 <AnMaster> that is, a tuple
21:02:05 <AnMaster> for one element it works though
21:02:16 <Deewiant> All of ruby,perl,python on that file work for me
21:02:21 <AnMaster> because then it is interpreted not as a tuple but just () grouping
21:02:23 <Deewiant> Evidently Python 2.6.2.
21:02:36 <AnMaster> 2.6>>> print(2)
21:02:36 <AnMaster> 2
21:02:40 <AnMaster> Deewiant, try python 3.0 or later
21:03:24 <AnMaster> Deewiant, is it a two liner?
21:03:48 <AnMaster> 3.1>>> print "Just another", ((0 and " Ruby ") or ("Pyt" + "hon" or " Perl ")), "hacker.\n",
21:03:48 <AnMaster> File "<stdin>", line 1
21:03:48 <AnMaster> print "Just another", ((0 and " Ruby ") or ("Pyt" + "hon" or " Perl ")), "hacker.\n",
21:03:48 <AnMaster> ^
21:03:48 <AnMaster> SyntaxError: invalid syntax
21:04:18 <AnMaster> it works in python 2.6 though
21:04:51 <AnMaster> with parantheses it works in python3, but not python2
21:04:59 <AnMaster> 3.1:
21:05:01 <AnMaster> >>> print("Just another", ((0 and " Ruby ") or ("Pyt" + "hon" or " Perl ")), "hacker.\n",)
21:05:01 <AnMaster> Just another Python hacker.
21:05:04 <AnMaster> 2.6:
21:05:08 <AnMaster> >>> print("Just another", ((0 and " Ruby ") or ("Pyt" + "hon" or " Perl ")), "hacker.\n",)
21:05:08 <AnMaster> ('Just another', 'Python', 'hacker.\n')
21:05:34 <Deewiant> Yes, it's a two-liner.
21:05:37 <AnMaster> I don't know enough ruby or perl to work out how those would work
21:05:49 <AnMaster> Deewiant, the python one finishes already at the first line
21:06:33 <Deewiant> Hmm, that "" used to be necessary for something but evidently isn't any more
21:06:40 -!- KingOfKarlsruhe has left (?).
21:06:46 <AnMaster> Deewiant, nor enough python to work out what boolean expressions + strings do in python :P
21:07:28 <AnMaster> well casting to a bool it seems a string is true, so that makes sense
21:07:38 <Deewiant> Well, in all these languages or/and return their true result as the original result, not boolean true
21:07:49 <Deewiant> So "false && 'foo'" is 'foo'
21:07:49 <AnMaster> Deewiant, aha
21:07:53 <Deewiant> Er, ||
21:07:55 <Deewiant> Anyway
21:07:57 <AnMaster> that explains a lot
21:08:17 <AnMaster> Deewiant, is 0 true in ruby??
21:08:21 <Deewiant> Yes, it is
21:08:28 <AnMaster> Deewiant, and 1 is then false?
21:08:34 <Deewiant> No, that's also true :-P
21:08:37 <AnMaster> oh
21:08:42 <Deewiant> Only false and nil are false, everything else is true
21:08:54 <AnMaster> Deewiant, that seems a bit trusting
21:09:07 <Deewiant> How's that
21:09:23 <AnMaster> -_-
21:09:33 <AnMaster> Deewiant, that was what is technically known as a joke
21:09:44 <Deewiant> I still don't get it
21:09:45 <Deewiant> Oh well
21:09:48 <AnMaster> Deewiant, ah ok
21:10:18 <AnMaster> Deewiant, well, if it thinks almost everything it is told is true?
21:10:25 <AnMaster> doesn't that seems a bit trusting and naive
21:10:38 <Deewiant> Ah :-P
21:11:00 <Deewiant> To be fair, almost everything is true in most popular languages
21:11:11 <AnMaster> Deewiant, well python and perl makes 0 false it seems
21:11:21 <Deewiant> Yep.
21:12:02 <AnMaster> Deewiant, erlang likes to throw exceptions in those cases it seems
21:12:09 <AnMaster> 4> true and "foo".
21:12:09 <AnMaster> ** exception error: bad argument
21:12:09 <AnMaster> in operator and/2
21:12:09 <AnMaster> called as true and "foo"
21:12:20 <AnMaster> same for numeric values
21:12:27 <Deewiant> Yes, it's rather a feature of scripting-type languages.
21:12:40 <AnMaster> Deewiant, it is perfectly fine in C though
21:12:52 <AnMaster> you can do ! and so on for pointers and what not
21:13:14 <Deewiant> I meant that in C, true && "foo" won't give you "foo".
21:13:14 <AnMaster> it seems empty string in python is false too
21:13:50 <AnMaster> Deewiant, but it compiles and doesn't error out in any way
21:13:57 <AnMaster> afaik
21:14:06 <AnMaster> though, with string constant I'm not 100% sure
21:14:10 <Deewiant> Yes, it doesn't. Although compilers might warn.
21:14:21 <Deewiant> I'm quite sure.
21:14:34 <AnMaster> Deewiant, what truth value does a string has in C?
21:14:49 <Deewiant> It gets implicitly converted to a pointer, no?
21:14:53 <Deewiant> Which is then always true.
21:15:06 <AnMaster> Deewiant, um, does that apply to string literals?
21:15:12 <AnMaster> maybe it does, not sure
21:15:18 <Deewiant> It does.
21:15:32 <Deewiant> GCC apparently says nothing even with -Wall -W -pedantic.
21:15:53 <AnMaster> -W is a deprecated alias for -Wextra
21:16:07 <Deewiant> I am aware. It is also 5 characters shorter.
21:16:24 <AnMaster> good answer
21:19:24 <Deewiant> Anyway, the Perl bit is probably the only non-obvious thing
21:19:33 <AnMaster> Deewiant, oh?
21:19:40 <AnMaster> Deewiant, how does the perl one work?
21:19:47 <Deewiant> In Python, + concatenates; in Perl, it unsurprisingly adds two numbers :-P
21:20:01 <ais523> Deewiant: did you remember -ansi?
21:20:05 <Deewiant> Which leads to interpreting "Pyt" and "hon" as numbers
21:20:09 <AnMaster> Deewiant, what does it do for two numbers then?
21:20:13 <AnMaster> throws an exception?
21:20:21 <Deewiant> ais523: No, but it doesn't make a difference.
21:20:32 <ais523> yep, in Perl + casts its arguments to numeric
21:20:40 <ais523> and those strings each have a numeric value of 0
21:20:43 <Deewiant> Since "Pyt" and "hon" are nonnumeric, they both evaluate to 0
21:20:48 <AnMaster> ais523, how can they have that?
21:20:53 <Deewiant> I.e. since they're not "1" or something.
21:20:53 <AnMaster> Deewiant, ah
21:20:59 <ais523> AnMaster: well, what numeric value do you think they have?
21:21:12 <ais523> actually, the numeric and string sides of a value are independent, although it's quite hard to set one and not the other
21:21:14 <Deewiant> So then you get (0 + 0 or " Perl ") i.e. (0 or " Perl ") i.e. " Perl ".
21:21:15 <AnMaster> ais523, adding the ascii codes modulo 256 or something like that
21:21:35 <ais523> AnMaster: Perl wouldn't do something as silly as taht
21:21:40 <AnMaster> <ais523> actually, the numeric and string sides of a value are independent, although it's quite hard to set one and not the other <-- clarify?
21:22:46 <AnMaster> ais523, ooh even better. Store the string as a Gödel number
21:22:56 <ais523> AnMaster: you can have a value which casts to a string, and to an unrelated number
21:23:22 <AnMaster> <ais523> AnMaster: you can have a value which casts to a string, and to an unrelated number <-- still not sure what you mean
21:23:52 <AnMaster> something like?
21:23:54 <AnMaster> >>> str(29999999999999999999.4)
21:23:54 <AnMaster> '3e+19'
21:23:59 <AnMaster> >>> int(29999999999999999999.4)
21:23:59 <AnMaster> 30000000000000000000L
21:24:26 <AnMaster> (that L won't be there in python 3 or later)
21:24:26 <Deewiant> AnMaster: He means that strings are something like struct String { char* str; int numeric; }
21:24:49 <Deewiant> And it is, somehow, possible to change only one of those fields without affecting the other
21:25:05 <AnMaster> Deewiant, mhm, basically a class with overridden cast operators in C++ or similar?
21:25:15 <AnMaster> confusing the hell out of anyone reading code using said class
21:25:31 <AnMaster> Deewiant, ah ok, not really then
21:25:33 <AnMaster> even worse rather
21:25:43 <AnMaster> ais523, example?
21:25:51 <AnMaster> Deewiant, and that sounds like a bug
21:25:57 <ais523> AnMaster: error messages
21:26:13 <ais523> if you get an ENOENT or whatever, you get its number casting it to a number, and "No such file or directory" casting to string
21:26:23 <AnMaster> ais523, hm ok, sure, but that sounds like casing exception class to various things tries to yeild useful stuff
21:26:37 <AnMaster> basically, overriding cast code for the error class
21:26:40 <AnMaster> ais523, no?
21:26:57 <ais523> it isn't a class (in Perl5, at least)
21:27:02 <AnMaster> well ok
21:27:07 <ais523> it's just a constant that has different string and numeric values
21:27:17 <AnMaster> ais523, same but not defined in a consistent framework
21:27:36 <AnMaster> (which is what classes provide, at least the mess is now consistent)
21:55:07 <ais523> that's what they're doing for Perl6
22:17:20 -!- BeholdMyGlory has quit (Remote closed the connection).
22:37:43 -!- ais523 has quit (Remote closed the connection).
22:54:41 -!- adam_d has quit (Read error: 113 (No route to host)).
23:00:01 -!- oerjan has joined.
23:02:03 -!- espenlaub has joined.
23:02:23 <espenlaub> hi
23:02:27 <oerjan> hello
23:02:34 <espenlaub> how are you?
23:03:11 <espenlaub> xD ?
23:03:15 <espenlaub> where from?
23:03:17 <oerjan> just logged on myself
23:03:19 <oerjan> norway
23:03:25 <espenlaub> germany here
23:03:34 <oerjan> i guessed so
23:03:44 <espenlaub> why
23:03:52 <Ilari> espenlaub: ident line.
23:03:56 <oerjan> + espenlaub [n=espenlau@HSI-KBW-078-043-179-008.hsi4.kabel-badenwuerttemberg.de] joined #esoteric
23:04:17 <espenlaub> ok.nice. big brother is watching u ;-)
23:04:31 <espenlaub> how old are you
23:04:38 <oerjan> so, new here? this channel is about esoteric (weird!) programming languages, but we're rarely on topic
23:05:10 <espenlaub> what are esoteric programming language, i know html though...
23:05:12 <oerjan> 39, i'm one of the oldest here
23:05:59 <oerjan> lessee
23:06:51 <espenlaub> so you are very expierenced in speaking esoteric programming languages?
23:06:56 <espenlaub> what is lessee
23:07:02 <Ilari> espenlaub: Programming language => way to express computer programs. Esoteric programming language means programming language that contains weird (from mainstream point of view) stuff.
23:07:04 <oerjan> ^bf >+++++++++[<++++++++>-]<.>+++++++[<++++>-]<+.+++++++..+++.>>>++++++++[<++++>-]<.>>>++++++++++[<+++++++++>-]<---.<<<<.+++.------.--------.>>+.
23:07:07 <espenlaub> and what do you usually talk about here if not on topic
23:07:17 <fungot> Hello World!
23:07:37 <espenlaub> is ilari a bot?
23:07:38 <oerjan> that was brainfuck, one of the most famous ones
23:07:43 <oerjan> no, fungot is
23:07:43 <fungot> oerjan: ' oh, even mr ron here would rather wash under his arms than heads."
23:07:55 <oerjan> also HackEgo and EgoBot
23:08:04 <espenlaub> what kind of weird stuff should that be?
23:08:13 <espenlaub> are you a coder?
23:08:50 <oerjan> only amateur
23:08:56 <espenlaub> i really dont understand what this is all about
23:09:01 <espenlaub> can u enlighten me
23:09:17 <Ilari> espenlaub: Look at the line oerjan wrote. Does it resemble print "Hello, World!" (or close variation thereof) as in almost any mainstream programming language?
23:09:50 <oerjan> that ^bf line above was a program in brainfuck, to write "Hello, World!". fungot then ran the program (^ is the prefix that bot uses)
23:09:51 <fungot> oerjan: there was the city of ephebe surrounded them. dogs barked. somewhere a cat fnord' rincewind began, trying again with another straw.) you bastard looked down at his feet.
23:10:22 <espenlaub> alright.
23:10:24 <oerjan> it also responds if you mention its name. it is itself written in an esoteric language, befunge
23:10:33 <oerjan> ^source
23:10:33 <fungot> http://git.zem.fi/fungot
23:11:23 <espenlaub> is this something like an elite science only chosen people are able to handle with
23:11:51 <oerjan> yes... insane people
23:12:13 <oerjan> we are all mad here </alice in wonderland speech>
23:13:21 <Ilari> espenlaub: Brainfuck is really simple language. It has 8 operations: '>': Move to next memory cell. '<': move to previous memory cell. '+': Increment value in current cell, '-': decrement value in current cell. ',': read character from keyboard and store to current cell. '.' write current cell as character to screen. '['. If current cell is zero, jump to corresponding ']'. ']': If current cell is nonzero, jump to corresponding '['. Otherw
23:13:26 <oerjan> most of the esoteric languages are made to be incomprehensible or at least hard to read. they're like puzzles to code in, really
23:13:27 <espenlaub> or better: just different mind-aliented people
23:13:37 <Ilari> That broke: ...cell is nonzero, jump to corresponding '['. Otherwise execute each character in order until end of program is hit. All execpt those 8 characters are ignored.
23:14:23 <oerjan> some like brainfuck are incomprehensible because their basic commands are ridiculously simple
23:14:59 <pikhq> Those languages have an advantage, though: they are rather easy to compile to.
23:15:40 <pikhq> (Brainfuck is a really easy target for making a higher-level language around)
23:16:17 <fizzie> I am conflicted re fungot's ^source; on one hand, the gitweb link points to something you can use to (theoretically) get it up-and-running; on the other hand, it doesn't really have the immediate visual impact the actual main source file -- http://git.zem.fi/fungot/blob_plain/HEAD:/fungot.b98 -- has.
23:16:18 <fungot> fizzie: ' well done.' granny handed him his badge, swear him in, and he was suddenly very, very hard." the clown demanded. " you don't use it,' said
23:16:27 <Ilari> espenlaub: If you want some articles, there's "Friday pathological programming"-series in blog named "Good Math, Bad Math".
23:16:48 <Ilari> espenlaub: That stuff is about esoteric programming languages.
23:18:03 <pikhq> www.scienceblogs.com/goodmath -- This blog.
23:18:06 <oerjan> it's an old series from 2006-2007, but the blog owner is doing a partial rerun now
23:18:17 <fizzie> ^def source ul (http://git.zem.fi/fungot/blob/HEAD:/fungot.b98)S
23:18:17 <fungot> Defined.
23:18:32 <fizzie> ^save
23:19:30 <Ilari> espenlaub: Some esoteric languages are totally crazy. Like ones based on laying tiles. Or other languages with no concept of where one is in program.
23:19:32 <fizzie> Maybe that's a good compromise. Though the ^save didn't take. Uppity bot refuses to obey.
23:19:35 <espenlaub> this is somekind of a media communication development
23:19:37 <oerjan> ul is underload, another ridiculously simple language
23:19:52 <oerjan> espenlaub: i don't know what you mean
23:20:38 <espenlaub> the artificial creation of new languages only used in a virtural dimension
23:21:06 <oerjan> espenlaub: anyway when we're not on topic there is a lot of talk about coding and computers and other geek stuff
23:21:11 <espenlaub> oerjan, why do you think you are mad? alice in wonderland
23:21:24 <oerjan> espenlaub: i just like that quote :)
23:21:32 <espenlaub> and thats all?
23:21:41 * oerjan looks for the exact text
23:21:59 <Ilari> espenlaub: It takes some madness to be able to design mind-bending programming language (which is by defintion esoteric).
23:22:04 <espenlaub> heilandsack
23:22:23 <oerjan> .'But I don.t want to go among mad people,' Alice remarked.
23:22:23 <oerjan> 'Oh, you can.t help that,' said the Cat. 'We.re all mad here. I.m mad. You.re mad.'
23:22:26 <oerjan> 'How do you know I.m mad?' said Alice.
23:22:29 <oerjan> 'You must be,. said the Cat. 'or you wouldn.t have come here.'.
23:22:37 <oerjan> darn unicode characters again
23:22:48 <espenlaub> cool dialog
23:22:54 <espenlaub> the cat must be right
23:23:01 <oerjan> yep
23:23:13 <espenlaub> so you just hang out in this chat for geek stuff and for esoteric stuff?
23:23:27 <espenlaub> and not for esoteric stuff i wanted to say
23:23:46 <espenlaub> thats a hack
23:23:54 <oerjan> espenlaub: also, someone officially declared me insane after i wrote an interpreter for unlambda (an esoteric language) in INTERCAL (another one)
23:24:07 <oerjan> (well, privately actually)
23:24:22 <espenlaub> you can handle that with your own?
23:25:20 <espenlaub> you know it seems just a little bit crazy and isolated beening declared as an insane person by others
23:25:26 <oerjan> when i get in the mood. it doesn't happen _that_ often...
23:25:48 <oerjan> espenlaub: well mind you this other person was also an esoteric language person
23:26:19 <espenlaub> for what type of application are you programming with esoter. language?
23:26:30 <oerjan> silly ones
23:26:32 <Ilari> One esoteric programming language I have coded interpretter for: It starts with empty string. At each step it places 0s, 1s, is or os at end of string, avoiding given pattern. If i is placed, it stops to read the keyboard and then spits binary representation of read character into end of string and continues. If o is placed and 8 characters before it are binary, it writes that as character to screen. Program halts when string can't be ext
23:26:44 <Ilari> ...character to screen. Program halts when string can't be extended anymore without violating the pattern given.
23:27:20 <Ilari> The pattern is given as context-free grammar.
23:27:30 <espenlaub> how many commands has the language?
23:27:52 -!- espenlaub has quit ("http://irc2go.com/").
23:28:07 <Ilari> Oh, and the 0s and 1s written when i is placed ignore the pattern given.
23:29:27 <oerjan> is this a regex pattern, or just a single string?
23:29:45 <Ilari> context free grammar. Its more powerful than (standard) regex.
23:29:50 <oerjan> oh right
23:30:16 <oerjan> and i guess it chooses non-deterministically at each step?
23:30:25 -!- coppro has joined.
23:30:44 <Ilari> Actually, randomly if it has multiple choices.
23:31:28 <Ilari> I don't consider that random choice and nondeterministic choice to be the same thing.
23:31:49 <oerjan> there is a certain overlap...
23:32:33 <oerjan> and since it can halt, i take it that it doesn't consider more than one character at a time to extend with?
23:32:51 <oerjan> as in, the character added can destroy the ability to go further
23:33:00 <Ilari> Yes, only considers single character at time (except of course that i spamming 8 at time).
23:33:33 <oerjan> so is it tc? :)
23:34:07 <Ilari> And as said, i ignores the pattern. If after it spams the 8 chaaracters the string matches the pattern, the program continues.
23:34:26 <Ilari> I think it is TC.
23:35:19 <oerjan> now the complement of a context-free language is not necessary context-free, hm
23:36:07 <oerjan> so there is not a pattern you stay within
23:36:34 <Ilari> It was inspired by some undecidable problem involving context free grammars.
23:36:58 <oerjan> ah, so it was designed to be undecidable and so probably tc?
23:38:13 <Ilari> IIRC, it was about finding string that given CFG doesn't generate.
23:38:35 <oerjan> right
23:38:59 <oerjan> hm wait
23:39:38 <oerjan> that does not obviously give tc though, since you are choosing randomly at each step
23:40:11 <Ilari> Writing the pattern in suitable manner, you can force it to be deterministic.
23:40:14 <oerjan> and so you are not doing your utmost for finding such a non-generating string
23:40:26 <oerjan> yeah, but does it stay undecidable then?
23:40:57 <Ilari> Of course, when designing the language, I had to figure out how to make it only consider one character at time.
23:41:05 -!- kar8nga has quit (Remote closed the connection).
23:42:02 <oerjan> the pattern takes the _whole_ string though, it's not about initial substrings (since otherwise ignoring the pattern at i would not help)
23:42:13 <oerjan> i assume
23:42:27 <oerjan> i mean, the whole string at the current step
23:42:46 <Ilari> It should be possible to match all false executions of given turing machine.
23:43:41 <Ilari> The i is input operation. o is output. They have role analogous to brainfuck , and .
23:43:58 <oerjan> for tc it needs to emulate the turing machine deterministally though
23:44:29 <oerjan> oh wait now i vaguely recall something
23:46:09 <Ilari> i and o probably won't change its computational class.
23:46:27 <oerjan> you can embed the history of running of a turing machine in a string so that matching two context-free languages ensure the history is correct
23:46:41 <Ilari> Yup.
23:47:28 -!- Sgeo has joined.
23:47:57 <oerjan> which was how a book i browsed proved that some problem about context-free languages was undecidable
23:48:23 <oerjan> i don't recall the rest of the details though
23:49:41 <oerjan> hm maybe you can also do that with avoiding a single cfg, is that how your language is intended?
23:50:18 -!- FireFly has quit ("Later").
23:50:21 <oerjan> by using the cfg to detect mismatches in the history
23:51:05 <Ilari> If you have multiple CFGs that all detect false executions, you can take their union.
23:51:42 <oerjan> the history is the steps of the turing machine computation, with odd and even steps reversed. that way you can look at consecutive pairs of steps and analyze them. i think.
23:52:07 <oerjan> i'm not sure how much i'm remembering and how much i'm reconstructing here :)
23:53:33 <oerjan> however, now it seems obvious to me this can be done
23:54:30 <Ilari> My idea was to encode state, symbol, new state, new symbol and movement for each step. Then false executions include: Wrong steps, states not matching in consequtive operations and symbols not matching in same positions (finding same positions is like the "brace language").
23:55:01 <Ilari> Of course, one has to arrange the first state and symbol as well. Then the other rules can take over.
23:55:13 <oerjan> yeah
23:57:34 * Sgeo just got an IRC death threat
23:57:46 <Ilari> The reference interpretter probably couldn't execute 99 bottles of beer, since it would take too much memory and CPU...
23:58:16 <oerjan> i don't think you need the new state and new symbol together with the old one, though, just make the matching of those in consecutive pairs part of the "brace language" thing
23:58:36 <Ilari> Probably can be simplified...
23:59:12 <oerjan> (the brace language thing was why i said/recalled that consecutive steps needed to be encoded reversed from each other)
23:59:17 <Ilari> The reference interpretter undergone quite much optimization. The first versions took something like 12 seconds to execute "Hello, World!". The later versions only ~40ms.
←2009-09-16 2009-09-17 2009-09-18→ ↑2009 ↑all