00:09:31 should I feel guilty about coding a bsmnt_bot competitor 00:18:19 you evil evil man 00:18:34 "No," says my Adam Smith puppet. 00:18:55 I think he's saying that to ehird. 00:19:16 * oerjan hits the Adam Smith puppet over the head with the saucepan of nations ====\___/ 00:23:57 The nice thing about my bot is that it'll have eval, but it won't be able to break the bot. 00:24:02 But you'll be able to fiddle with it 00:24:06 Also, it'll have esolang interps and stuff. 00:24:09 Also, a babble generator. 00:24:16 In short, a nice respectable #esoteric bot, with fun Python evaluation. 00:26:37 Maybe I'll make a bot, too. 00:26:49 :) 00:26:53 Also, mine will log this channel. 00:27:00 So you don't have to use the awful tunes.org log interface. 00:27:20 I've always wanted to make a fake bashbot. 00:27:29 eh? 00:28:33 An IRC bot that looks like bash but isn't. 00:28:40 define bash 00:28:43 the shell? 00:28:53 The shell, sure. 00:29:00 what did you mean 00:29:00 :P 00:29:13 The shell. 00:29:35 I don't think I know of any other bashes. 00:30:10 bash.org 00:31:22 Message('PRIVMSG', '#esoteric', 'Hello, world!') 00:32:05 * Warrigal nods 00:32:41 >>> botte.message.Message('PRIVMSG', '#esoteric', 'Hello, world!') 00:32:41 PRIVMSG #esoteric :Hello, world! 00:32:46 Phear my 1337 skillz. 00:33:55 * Warrigal ponders what programs a person could possibly want 00:34:21 irc 00:34:56 A few: cat, chmod, chown, irc, mkdir, rm, rmdir 00:35:37 it's Ye Olde Botte! 00:36:04 Warrigal: dwim 00:36:25 I suppose some commands to interact with running processes would be nice. bash itself would also be useful, of course. 00:36:45 oerjan: yes, botte is sucha nice name 00:37:29 Then again, I don't want to go overboard with trying to be like a Unix system. So no fancy process interaction that wouldn't be easy to implement anyway. 00:37:38 Warrigal: what are you doing? 00:37:48 Wanting to make a fake bashbot. 00:37:56 Ohhhh, I see 00:38:02 oerjan: will you be friends with botte? 00:38:32 I guess I would also include echo. 00:47:18 botte.bot.Bot().plugins['karma'].commands[0].handle(bot, botte.message.Message('PRIVMSG', '#esoteric', '.hello')) 00:47:21 ^ worse than java :D 00:48:34 this will be the botte of our jokes 00:49:25 XD 00:49:29 oerjan: i love you. 00:50:09 how nice. 00:50:14 oerjan: :| 00:51:26 why the long face? 00:51:34 beats me 00:51:50 no, _this_ beats you ====\___/ 00:51:57 lol 00:52:01 botte should have a .swat 00:52:07 so oerjan doesn't have to do any work 00:52:21 * oerjan never does any work anyhow 00:53:06 swatting is hard work! 00:53:26 virtually exhausting! 00:55:56 hmm I have a bit of a possible bottleneck here 00:56:06 possibly parsing the input stream for a command -everysingletime- isn't so clever 00:56:13 YM botte-l-neck 00:59:55 hmm, I'll compile everything down to regexps... 00:59:56 ...tomorrow 01:05:29 i'm... so decisive 01:05:38 whoa holy shit, oklopol moment coming on. 01:08:02 it's because oklopol isn't here 01:08:19 his spirit is possessing you 01:08:25 o.o 01:09:23 * oerjan bringeth forth ye holie exorcising swatter -----### 01:10:13 ow 01:10:26 please do not resist, or we'll have to do ye holy hand grenade next 01:11:00 BEGONE, FOULE DAEMONE 01:11:47 * oerjan watcheth ye eville daemone runne away in ye form of a rabbite 01:30:42 * ehird decides that one match of a regex then a dictionary lookup is faster than many matches of a regex. 02:28:31 I love Ye Olde Butcherede Englifhe. 02:50:06 -!- CakeProphet has quit (Remote closed the connection). 02:50:44 i hope you dont think that "ye olde butcherede englifhe" is the same as "old english" 02:51:26 i hope psygnisfive knows the meaning of the word "butchered[e]" :D 02:51:48 i do, but i mean the general "ye olde englifhe" type stuff 02:51:55 not the butcherede part :p 02:53:00 * oerjan trieth to use -th correctly, at least 02:53:36 the rest - not so much 02:53:39 the thing with older -th is that its basically where we use -s today 02:53:45 so you sound like you've got a lisp 02:53:46 :) 02:53:56 you don't thay 02:54:05 i said -s not just s :P 02:54:28 but yeah, "ye olde englifhe" is not Old English 02:54:49 * oerjan assumeth it is closer to Middle 02:54:49 if anything its early modern english before the standardization of spelling 02:54:59 or that 02:57:57 Hwæt! Wē Gār-Dena in geār-dagum, þeod-cyninga, þrym gefrunon, hu ða æþelingas ellen fremedon. Oft scyld scefingsceaþena þreatum, monegum mægþum, meodosetla ofteah, ogsode eorl. 03:02:12 that sir 03:02:16 that is Old English 03:02:39 * oerjan guessed as much 03:04:34 -!- CakeProphet has joined. 03:23:38 Speaking Old English be all about using the subjunctive. 03:24:16 Saying "That were hard to compass." instead of "That is hard to compass." make all the difference. 03:24:54 Warrigal speak much nonsense 03:25:10 It be only the subjunctive, my friend. 03:25:46 Anyway, no more complete sentences for me. Shunning verbs, and all. Much more flexible this way. 03:26:18 Peculiar or just iffy tendency, perhaps, but no problem to understand. 03:26:27 Remind me of palindromes, actually. 03:26:32 Warrigal spækas myki baldurdashi 03:27:09 Ah, the wonders of speaking entirely in incomplete sentences... 03:27:35 I accidentally complete sentences too 03:27:40 -!- GregorR has set topic: Logs are here: `wget http://tunes.org/~nef/logs/esoteric/08.12.29 -O - 2> /dev/null | grep 'logs >>>' | sed 's/.*logs >>> \(.*\) <<<.*/\1/'`. 03:28:01 ack, new year topic accidentally over 03:28:14 Accidentally? 03:28:26 The log link was wrong :P 03:28:50 well yeah i accidentally that earlier 03:28:55 Bah, verb omission. Ungrammatical. 03:29:10 Unlike omitting the subject, which I assure you is completely grammatical. 03:29:13 In Spanish, anyway. 03:29:28 Warrigal: i accidentally your viewpoint 03:30:06 Wait, "much more flexible" to avoid complete sentences completely? Yeah, right. 03:30:17 i would guess in old english as well, since they had more personal verb endings 03:31:04 istr old norse could leave out subjects, although it's been a while 03:32:37 i may adopt an egoistic grammar where i use only one subject for all sentences 03:33:33 after i drive everyone crazy with it, i will rule the world 03:34:19 or should we adopt a royal we, hm... 04:03:02 -!- psygnisfive has quit (Read error: 54 (Connection reset by peer)). 04:04:24 -!- psygnisfive has joined. 04:26:43 -!- Warrigal has changed nick to kerlo. 04:44:07 -!- kerlo has changed nick to Warrigal. 04:52:05 -!- Warrigal has changed nick to kerlo. 05:20:34 -!- Asztal has quit (kornbluth.freenode.net irc.freenode.net). 05:20:34 -!- sebbu2 has quit (kornbluth.freenode.net irc.freenode.net). 05:20:35 -!- psygnisfive has quit (kornbluth.freenode.net irc.freenode.net). 05:20:36 -!- flexo has quit (kornbluth.freenode.net irc.freenode.net). 05:20:36 -!- Dewi has quit (kornbluth.freenode.net irc.freenode.net). 05:20:37 -!- ehird has quit (kornbluth.freenode.net irc.freenode.net). 05:20:38 -!- GregorR has quit (kornbluth.freenode.net irc.freenode.net). 05:20:38 -!- puzzlet has quit (kornbluth.freenode.net irc.freenode.net). 05:20:39 -!- rodgort has quit (kornbluth.freenode.net irc.freenode.net). 05:20:39 -!- decipher has quit (kornbluth.freenode.net irc.freenode.net). 05:20:41 -!- Badger has quit (kornbluth.freenode.net irc.freenode.net). 05:20:41 -!- AnMaster has quit (kornbluth.freenode.net irc.freenode.net). 05:20:42 -!- lament has quit (kornbluth.freenode.net irc.freenode.net). 05:20:42 -!- mtve has quit (kornbluth.freenode.net irc.freenode.net). 05:20:43 -!- SimonRC has quit (kornbluth.freenode.net irc.freenode.net). 05:24:24 -!- Asztal has joined. 05:24:24 -!- ehird has joined. 05:24:24 -!- sebbu2 has joined. 05:24:24 -!- rodgort has joined. 05:24:24 -!- GregorR has joined. 05:24:24 -!- puzzlet has joined. 05:24:24 -!- SimonRC has joined. 05:24:24 -!- decipher has joined. 05:24:24 -!- lament has joined. 05:24:24 -!- mtve has joined. 05:28:24 -!- Asztal has quit (kornbluth.freenode.net irc.freenode.net). 05:28:24 -!- sebbu2 has quit (kornbluth.freenode.net irc.freenode.net). 05:28:25 -!- puzzlet has quit (kornbluth.freenode.net irc.freenode.net). 05:28:25 -!- GregorR has quit (kornbluth.freenode.net irc.freenode.net). 05:28:26 -!- ehird has quit (kornbluth.freenode.net irc.freenode.net). 05:28:26 -!- decipher has quit (kornbluth.freenode.net irc.freenode.net). 05:28:26 -!- rodgort has quit (kornbluth.freenode.net irc.freenode.net). 05:28:26 -!- lament has quit (kornbluth.freenode.net irc.freenode.net). 05:28:27 -!- mtve has quit (kornbluth.freenode.net irc.freenode.net). 05:28:27 -!- SimonRC has quit (kornbluth.freenode.net irc.freenode.net). 05:30:50 -!- Asztal has joined. 05:30:50 -!- ehird has joined. 05:30:50 -!- sebbu2 has joined. 05:30:50 -!- rodgort has joined. 05:30:50 -!- GregorR has joined. 05:30:50 -!- puzzlet has joined. 05:30:50 -!- SimonRC has joined. 05:30:50 -!- decipher has joined. 05:30:50 -!- lament has joined. 05:30:50 -!- mtve has joined. 05:31:05 -!- AnMaster has joined. 05:31:05 -!- Badger has joined. 05:31:24 -!- psygnisfive has joined. 05:31:24 -!- flexo has joined. 05:31:24 -!- Dewi has joined. 05:42:07 -!- oerjan has quit ("Good night"). 06:57:22 Argh, tools are chrome-plated. 07:53:23 -!- puzzlet has quit (Read error: 104 (Connection reset by peer)). 07:54:27 -!- puzzlet has joined. 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:28:11 GregorR: in bf, does - wrap back around to 255? 08:28:20 or is it NOP for 0's 08:53:38 -!- Mony has joined. 08:54:36 plo 08:56:18 CakeProphet: Depends on the implementation. 08:56:28 CakeProphet: In most implementations it raps around. 08:56:30 *wraps 08:56:38 no no, I think that's a good idea 08:56:52 my Haskell implementation will freestyle upon decrementing a 0 08:57:01 ... "freestyle"? 08:57:24 well, unless you mean something else by "raps around". 08:57:43 I mean that when you subtract from 0, it goes to MAXVAL. 09:01:26 http://smg.photobucket.com/albums/v47/BenMaras/?action=view¤t=ijoystick.png (NSFW, NSF-sanity) 09:03:12 -clicks- 09:03:54 heh :p 09:08:23 * CakeProphet places an order for girlfriend 10:44:34 -!- M0ny has joined. 10:53:17 -!- Mony has quit (Read error: 145 (Connection timed out)). 11:03:11 -!- M0ny has quit ("Quit"). 11:06:31 -!- KingOfKarlsruhe has joined. 11:36:03 -!- Judofyr has joined. 12:15:35 -!- puzzlet has quit (Remote closed the connection). 12:15:40 -!- puzzlet has joined. 13:09:57 -!- KingOfKarlsruhe has quit (Remote closed the connection). 13:51:27 -!- ehird has left (?). 13:51:31 -!- ehird has joined. 13:51:44 -!- ehird has left (?). 13:51:49 -!- ehird has joined. 14:13:06 you know what i like 14:13:13 bsmnt_bot. 14:13:19 ~exec sys.stdout('why thank you') 14:13:19 why thank you 14:13:28 so good to have you back old chap 14:22:19 -!- oerjan has joined. 14:36:45 Hmm... 15:11:25 -!- puzzlet has quit (Remote closed the connection). 15:11:30 -!- puzzlet has joined. 15:18:42 Pop quiz: how long do you think it'd take to match 100 short regexps against a short text? 15:20:24 finally a question within my expertise - oh wait 15:20:34 :D 15:20:50 but if i may guess: "not very long" 15:24:02 oerjan: how much faster than matching 1 short regexp against the same text, then doing a hashtable lookup on one of the groups? 15:24:14 i imagine the answer is "0.5ms" 15:24:39 now we're _really_ out of my expertise 15:26:24 although hm, you should be able to do 100 regexps in parallel by merging the finite state automata. that would be assuming they're actually implemented that way 15:27:02 or maybe the number of states will blow up exponentially (^100) 15:27:22 oerjan: I think python regexps are less speedy than FSAs 15:27:25 because of backrefs 15:28:08 yeah regexps mean more than the CS definition these days 15:28:33 i think optimizing it can depend a lot on the form of the regexps 15:29:17 and did i mention my lack of expertise? 15:29:44 oerjan: what's worth noting is that these regexps are matching a line from irc. 15:29:50 to choose which command to run. 15:29:55 very speed-sensitive, 15:31:13 um how many thousand channels are you watching? O_O 15:31:57 oerjan: well, my initial deployment is 5,000 worldwide 15:31:59 clustered 15:32:10 then I think I'll run a few instances but with shared memory 15:32:11 oh mad science 15:32:14 long-term, about 100,000 channels 15:32:22 which get 100 messages/sec each 15:33:21 hopefully I will then implement bot procreation 15:33:27 and all bots will eventually become botte 15:33:58 ic 15:34:50 anyway i think you should do the hashtable thing until you know you need more speed 15:36:33 oerjan: wut? the hashtable one is the slower one 15:36:34 :D 15:36:50 yes but it sounds like it is simpler 15:36:59 also, are you _sure_ it's slower 15:37:17 99% sure, dictionary lookup is like THE most optimized thing in python 15:37:20 (because obj.foo does it) 15:37:30 huh? 15:37:31 and the re module is written in pure python, IIRC 15:37:36 re=regex 15:37:38 so 15:37:43 regex is almost certainly slower 15:37:44 that would mean hashtable should be faster 15:37:47 yes 15:37:50 it would be 15:37:55 oh 15:37:56 er you said the opposite 15:38:00 15:36 oerjan: wut? the hashtable one is the slower one aemn 15:38:02 sould be 15:38:04 15:36 oerjan: wut? the hashtable one is the faster one 15:38:29 well then not a problem 15:38:53 or rather, you have only two problems, while with 100 regexps you would have 101 problems 15:39:59 :D 15:40:02 but 15:40:05 its a pain to implement 15:40:06 so ha 15:48:41 -!- KingOfKarlsruhe has joined. 16:30:01 -!- Judofyr has quit. 16:56:44 -!- oerjan has quit ("Cubus"). 17:09:17 -!- Slereah has joined. 17:19:57 -!- Hiato has joined. 17:20:13 Gnock-Knock 17:20:57 \me pokes a bit more 17:21:08 * Hiato pokes a bit more 17:21:32 confused windows directory tree with IRC there :P 17:25:34 -!- Judofyr has joined. 17:31:56 -!- Judofyr has quit (Read error: 60 (Operation timed out)). 17:35:12 * SimonRC wonders if people are listening here 17:38:15 \me wonders in response 17:38:20 * Hiato wonders in response 17:38:27 (... again) 17:38:55 heh 17:39:38 SimonRC, would you mind shedding some light on a certain problem for me? 17:40:44 ok, but I am busy right now 17:40:47 go ahead 17:42:11 Ok, thanks. In your opinion, what would the best way be to grow massive numbers, quickly. That is, can you suggest/demonstrate a method that will do so. 17:42:41 All of this in light of my realisation that my method is not actually as large as I thought it would be - all for a little game on the xkcd fora 17:44:06 busy beaver numbers are a good choice 17:44:17 they grow uncomputably fast 17:44:46 yeah, they're perfect, but unfortunately the number has to be finite and computable. The latter cancelling out that option 17:45:37 -!- KingOfKarlsruhe has quit (Remote closed the connection). 18:10:02 -!- ais523 has joined. 18:16:34 18:14 Besides 12 year olds aren't supposed to use the Internet 18:16:38 -- #wikipedia 18:16:50 18:14 in what universe? 18:16:57 18:15 dungodung: A universe in which there are appropriate safeguards 18:23:18 i got my keyboard :D 18:23:46 ehird gt off the internets 18:23:53 i'm 13 18:23:54 so i'm OK 18:23:58 but 12 year olds 18:23:59 oh ok 18:24:02 they need appropriate safeguards. 18:24:04 in that case 18:24:10 13 is the COPPA age, isn't it? 18:24:10 ::raep:: 18:24:12 in case they learn anything about the real world. 18:24:15 ais523: yep. 18:24:28 yeah but hes a limey 13 year old 18:24:37 so noone cares about his protection and privacy 18:24:37 do my "yes I am over 13" clicks on registration forms retroactively become legal when I turn 13? 18:24:49 no 18:24:56 dammit 18:25:12 you might end up in jail :( 18:25:26 it's ok I have green. 18:25:29 the power of green. 18:25:31 nah, that's a civial violation not a criminal one 18:25:32 *civil 18:25:35 brown? 18:25:37 so ehird can't be imprisoned, just fined lots 18:25:38 the power of brown? 18:25:42 cheese? 18:25:43 i am very incivil 18:25:46 the power of cheese? 18:25:54 ais523: I say I'd have clicked, hmm, at least 500 such yes links. 18:25:57 How much can I be fined? XD 18:26:01 whatve you been looking at that requires you be 13 ehird? 18:26:07 psygnisfive: registration forms have it. 18:26:09 _all_ of them 18:26:11 seriously 18:26:12 oh 18:26:13 really? 18:26:14 hm 18:26:16 ehird: I'm not at all sure, damage calculation is something i'm rubbish at guessing 18:26:18 it's crazy 18:26:24 obviously wouldnt be porn 18:26:28 those are 18+ here 18:26:28 lol 18:26:31 pg-13 porn 18:26:34 mmm yeah 18:27:01 if adult diapers are diapers for adults 18:27:06 is child porn porn for children? 18:27:46 yes. 18:27:52 well then 18:27:56 dont look at child porn, ehird 18:28:05 now that I'm over 13? XD 18:28:27 no, ever. porn for children is full of annoying kids doing annoying things 18:28:47 this is some odd new definition of porn for children that I was previously unaware of 18:28:54 because theyre all kids, the whole "fake story" thing is always like 18:29:00 two kids on a playground 18:29:04 one acting all slutty 18:29:09 * ehird thinks psygnisfive is in bizarro world 18:29:10 sharing her apple juice 18:29:20 * SimonRC ponders... 18:29:21 and then next thing you know its an orgy 18:29:35 i mean, that NEVER happens! 18:29:41 is is paedophilia if the child in question is older than you 18:29:57 i don't think being attracted to people of your own age is paedophilia. 18:30:07 or a boy is riding his bike too fast, a girl police officer pulls him over 18:30:24 and rides his bike? 18:30:26 ok, topic over 18:30:29 instantrimshot.com 18:30:32 you can all go home now 18:30:34 do you realize how fast you were going? // uh no.. its a bike.. i dont have a speedometer. maybe 10 miles an hour? 18:30:41 I SAID TOPIC OVER 18:30:48 :P 18:31:21 / YOUVE GOT A CARD IN YOUR SPOKES DO YOU REALIZE HOW DANGEROUS THAT IS? im going to have to place you under arrest! 18:31:41 different topic: # There once lived a man name Oedipus Rex // You may have hear about his odd complex // His name appears in Freud's index // because he loved his mother. # 18:31:49 >_< 18:31:57 lol 18:32:36 (from Tom Lehrer) 18:32:39 theres some humor in the oedipus story vs the oedipus myth in that it was all unknown to him and once it was he gouged out his eyes and ran away from being king 18:32:50 * SimonRC goes for dinner. 18:33:04 whereas i think a lot of people unfamiliar with the myth believe that he was a case of oedipal complex 18:33:20 doesn't freud say that _everyone_ is a case of that? 18:33:25 well yes :P 18:33:34 freud was a nutball 18:33:41 no shit :P 18:34:01 Freudian Slip: When you say one thing and mean your mother. 18:34:07 old 18:34:14 silence! >O 18:34:29 what instrument do you play ehird 18:34:34 nothing :D 18:34:47 ive decided to take up keyboard 18:35:01 i can do that 18:35:03 watch 18:35:04 asdjkladjhksfkjaljeoiajvog9irhbrt 18:35:06 dfkljna'∂fgjlsk;fmbdt[;lkb;lkytdmbkntldh ,mfl,ujh 18:35:10 hooray! 18:35:18 get it get it 18:35:22 I was playing my keyboard 18:35:23 ahahahhaahhaha 18:35:35 oh ill play your keyboard alright 18:35:39 you have a ∂ on your keyboard? 18:35:40 worst innuendo ever 18:35:45 ais523: option-d = d 18:35:46 err 18:35:47 ∂ 18:35:52 œ∑´®†¥ 18:35:53 ah, ok 18:35:54 alt-qwerty 18:36:01 I have a ð 18:36:02 i use unicode querty 18:36:04 using altgr 18:36:09 so mine is ð as well 18:36:49 * ehird mac usar 18:37:34 me too 18:51:18 -!- Judofyr has joined. 19:19:58 -!- LinuS has joined. 19:21:38 grrrrrrrr fuck relational databses 19:22:59 graphs are awesome, however. 19:23:00 wooo... I've finally gotten truly familiar with a second programming language. 19:23:06 CakeProphet: which two? 19:23:13 Python and Haskell 19:23:28 CakeProphet: good taste. now learn smalltalk, lisp and c. :P 19:23:31 though technically I'm familiar with C... but I never use it unless someone needs me to. 19:24:02 I also /know/ the syntax/semantics of smalltalk and lisp 19:24:07 just don't have the experience to program things in it 19:24:35 lisp doesn't really interest me 19:24:53 they're useful to know, conceptually 19:26:58 http://ogdl.sourceforge.net/ 19:26:59 awesom 19:27:00 e 19:27:07 see, I basically have to serialize a bunch of shit as that 19:27:08 and I'm done 19:27:18 well, it could do with non-string types. 19:27:48 http://ogdl.sourceforge.net/spec/ogdl-schema.htm this could work but it's just so non-automatic. 19:27:49 hmm. 19:27:50 * ehird thinks. 19:27:56 serializing arbitrary objects to a graph. hmm. 19:30:40 PICKLE 19:31:16 fail 19:31:25 pickle is 1. python-specific 2. doesn't serialize to a graph 19:35:43 * SimonRC dislikes arguing on the internet 19:35:56 SimonRC: I personally enjoy arguing on the internet. 19:36:11 it's fun, there are no consequences, and you sometimes learn things 19:36:19 why do /you/ not like arguing on the internet? 19:37:15 SimonRC: which argument? 19:37:57 I keep finding people that seem to have a crazy idea that they won't shift on 19:38:51 for example, in this: http://news.bbc.co.uk/1/hi/programmes/more_or_less/7798152.stm 19:38:51 SimonRC: THERE IS A SUPERNATURAL BEING WHO WATCHES OVER US AND SENDS US TO PARADISE OR A PLACE OF FIRE AND EVIL DEPENDING IF HE LIKES US OR NOT 19:39:00 ehird: no, not like that 19:39:04 :D 19:39:17 the brain teaser's answer is not AFAICT right 19:39:50 "a random number" doesn't say what distribution to use 19:40:07 and once you pick a distribution, information leaks out 19:40:27 a little of information at least 19:47:57 -!- ais523 has quit (Client Quit). 19:49:40 grrrrrrrr fuck relational databses 19:49:42 um 19:49:44 why? 19:49:48 they suck. 19:49:59 ehird, like postgresql? 19:50:05 * AnMaster love postgresql 19:50:19 postgresql is a great implementation of the relational paradigm, which is shit. 19:50:35 ehird, so what sort of database do you suggest instead? 19:50:51 read up. I'm writing a database that serializes arbitrary objects to a graph. :D 19:50:55 hm 19:51:05 ehird, how fast and scalable will it be? 19:51:31 AnMaster: there's not really anything in its theoretical model that would cause it to be anything but blazing, but since I'm writing the implementation in Ruby -- not very fast. 19:51:35 maybe scalable. 19:51:36 we'll see. 19:51:45 the question is, are your datasets large enough to worry about that? 19:52:03 ehird, wikipedia database? 19:52:15 AnMaster: probably take like 500 hours to import, but I don't care :) 19:52:54 ehird, is there any tutorial or introduction for graph based db? 19:53:10 AnMaster: sure. it's a graph, and it's on disk. 19:53:13 any questions? 19:55:29 ehird, well I don't see how it works for say this: SELECT pages.title AS title, revisions.text AS text FROM (pages LEFT JOIN text (pages.revision = revisions.id)) WHERE pages.protected = true; 19:55:33 or something like that 19:55:38 it may not be valid sql 19:55:50 and I don't see what your point is at all. 19:55:55 that's SQL. SQL is a relational language. 19:55:59 why are you talking about it? 19:56:06 ehird, how would you represent something like that with graph db 19:56:19 AnMaster: you wouldn't. that's a query. 19:56:24 databases don't store queries. 19:56:31 ehird, true, but a database isn't useful if you can't query it 19:56:41 so how would you represent the data and how would you query it 19:56:44 that's completely separate to the actual database 19:56:51 AnMaster: 1) as a graph. 2) by querying it as a graph 19:57:01 ehird, can you give some example 19:57:07 of what. 19:57:45 of something equivalent to the SQL query I wrote above. I assume you wouldn't represent it as tables like that, but in some other format instead 19:58:00 so I can't really ask more specific, than that 19:58:07 it's abstract, it's just like how you could query a relational DB with any language, not just sql 19:58:15 ehird, yes true 19:58:15 so I can't exactly give you a concrete example... 19:58:20 but how does the model differ? 19:58:22 I mean 19:58:30 would you store it as 2 tables? 19:58:32 or what 19:58:32 one's tables with columns, rows and relations, one's a graph 19:58:47 http://en.wikipedia.org/wiki/Graph_(mathematics) 19:59:13 yes I know about that, but: I don't know how it would be a db that could store pages with revisions 19:59:23 I have an idea 19:59:36 19:55 ehird, well I don't see how it works for say this: SELECT pages.title AS title, revisions.text AS text FROM (pages LEFT JOIN text (pages.revision = revisions.id)) WHERE pages.protected = true; 19:59:40 let's invent an arbitrary query format 19:59:43 it'd look like: 19:59:45 ehird, yep 19:59:51 I'm find with custom query formats 19:59:51 I have a list of names and adresses of customers. How would that be stored? 20:00:02 SimonRC: i'll answer AnMaster's question first 20:00:47 page = pages.select(p -> p.protected = true) 20:00:53 revision = page.revisions[page.revision] 20:00:58 SimonRC, I could answer for relational db, since there is a 1-to-1 mapping there need not be more than 1 table, probably with a primary key to use as a table elsewhere 20:01:05 it essentially comes down to OOP 20:01:09 * SimonRC watches BBC 4 20:01:18 since an OOP system is a huge object graph, in essence 20:01:22 ehird, right, there is a 1-to-many-mapping there 20:01:26 AnMaster: no 20:01:31 ehird, yes there was in my example 20:01:40 there's no such thing as a 1-to-many mapping 20:01:42 there's an ordered list. 20:01:51 ehird, each page can have 1 or more revisions 20:01:57 AnMaster: 1-to-many mapping is relational speak. 20:02:05 ehird, well, how would that translate then? 20:02:09 to graph 20:02:14 20:00 page = pages.select(p -> p.protected = true) 20:02:14 20:00 revision = page.revisions[page.revision] 20:02:21 well 20:02:26 p.protected == true 20:02:29 since I used = for assignment 20:02:47 ehird, if I want to get a set of revisions related to the set of protected pages? 20:02:58 :/ 20:03:00 dude 20:03:02 I fucking pasted it 20:03:06 yes 20:03:10 have it three times 20:03:11 20:00 page = pages.select(p -> p.protected = true) 20:03:12 20:00 revision = page.revisions[page.revision] 20:03:14 20:00 page = pages.select(p -> p.protected = true) 20:03:16 20:00 revision = page.revisions[page.revision] 20:03:18 20:00 page = pages.select(p -> p.protected = true) 20:03:18 ehird, ah, so is that: 20:03:20 20:00 revision = page.revisions[page.revision] 20:03:23 pages = pages.select(p -> p.protected = true) 20:03:24 then? 20:03:25 in fact 20:03:31 or 20:03:34 protected_pages = pages.select(p -> p.protected = true) 20:03:35 rather 20:03:45 protected_pages = pages.select_all(p -> p.protected == true) 20:03:46 since there would be more than one protected page :) 20:03:48 right 20:03:56 ehird, your use of singular confused me 20:03:57 :P 20:04:15 revisions = protected_pages.fold([], r,p -> r.concat(p.revisions)) 20:04:22 nice 20:04:27 where the fold is just regular code 20:04:30 instead of anything graph-specific 20:04:34 right 20:04:52 in ruby, it'd look like this 20:05:32 revisions = Page.find_all { |p| p.protected? }.inject([]) { |r, p| r + p.revisions } 20:06:53 19:59 I have a list of names and adresses of customers. How would that be stored? 20:07:00 it'd be stored as a graph :-P 20:07:53 ehird, none of this really help us get an understanding of what you mean 20:08:03 there's nothing to explain 20:08:04 it's a graph 20:08:05 that's it 20:08:13 there seems to be no wikipedia article on it, at least not with the name graph database or anything like that 20:08:38 because a graph database is just _a graph_ 20:08:49 http://en.wikipedia.org/wiki/Graph_(mathematics) 20:08:49 that's it 20:08:50 end of 20:08:52 full stop 20:08:56 * AnMaster looked at http://en.wikipedia.org/wiki/Database_models and 20:09:07 Your mom's a graph. 20:09:09 and http://en.wikipedia.org/wiki/Category:Databases 20:09:18 http://en.wikipedia.org/wiki/Graph_(mathematics) 20:09:21 look there. 20:10:53 ehird, would this imply that different objects of the same type can have different connectors, so not all pages need to link revisions, some could link something else instead 20:11:01 that every object is unique? 20:11:05 in it's type 20:11:13 essentially, yes 20:11:27 type information will be stored, but it won't be used to enforce data structure 20:11:36 ehird, because relational model is pretty much a graph where each node is a table and the links are on field basis 20:11:44 AnMaster: no. 20:11:50 ehird, no? 20:12:20 you can visualise the foreign key constraints as a graph 20:12:26 it is rather common to do so even 20:12:50 sure, but it's not just an arbitrary graph 20:13:02 um? 20:13:10 ah true 20:13:33 you mean the other object doesn't need a special field to act as a "connector"+ 20:13:34 ? 20:13:40 to match on 20:13:44 rather it is like pointers 20:13:55 of C structs or whatever 20:14:08 wellllllllllllll, 20:14:10 no. 20:14:57 ehird, hm? 20:16:29 -!- ais523 has joined. 20:16:36 hi ais523 20:16:38 OK, I need to counterbalance these glasses. 20:16:47 What should I mount to the left side? Taking all votes! :P 20:16:48 hi AnMaster 20:17:02 GregorR, another monitor! 20:17:17 that topic's ridiculous, surely? 20:17:22 it's grepping the logs for a link to the logs? 20:17:32 ais523: Yes, yes it is :P 20:17:39 AnMaster: I could do that, but that's /awfully/ pointless X-D 20:17:41 hah yes 20:17:51 Plus, would half the battery life of the whole system. 20:18:00 GregorR, why? doesn't it mean you will have stereo vision? 20:18:07 for the monitor 20:18:50 GAH 20:18:51 SOURCEFORGE 20:18:56 I HOPE YOU BURN IN A FIREY PIT OF DEATH 20:18:56 ehird, wait 20:18:59 let me guess 20:19:02 they changed theme again? 20:19:05 no 20:19:11 AnMaster: Can't use them both at once, the display is far outside of the center of my vision. 20:19:11 ok, what then? 20:19:26 i tried to download something and had to nab the direct link before they started automatically downloading it (FUCKERSFUCKERSFUCKERS) and then had to close that window and get it in wget 20:19:31 GregorR, oh it doesn't act like a HUD for the entire field of view? 20:19:35 how disappointing 20:19:47 AnMaster: That's the difference between $250 and $2500 20:19:52 ...oh 20:19:54 that sucks 20:19:57 ehird, eh just cancel the automated download? 20:19:59 i'm not your friend any more. 20:20:02 GregorR, ouch 20:20:05 AnMaster: no, fucking annoying 20:20:06 :| 20:20:20 ehird, I mean before you selected where to save it 20:20:28 i auto-download to the desktop 20:20:28 and the dialog for that isn't even modal 20:20:33 ehird, how insecure 20:20:36 and then put it where I want if I want to keep it 20:20:39 or delete it if I don't 20:20:41 AnMaster: wtf, how 20:20:48 ehird, auto open too? 20:20:49 also 20:20:51 no. 20:20:52 not auto open. 20:21:04 "go to this link" then what if it starts to auto download lots of crap 20:21:09 that you don't want 20:21:14 then i delete it 20:21:18 and send a mail saying "fuck you" to the site owner. 20:21:33 ehird, well if you have auto download turned on it is your own fault 20:21:37 no 20:21:38 go team sf.net! 20:21:39 that's untrue 20:21:44 Go team sf.net! 20:21:48 it's the site's fault for downloading 100 pieces of useless crap 20:22:02 just like it's the site's fault for having javascript that bounces the window around the screen 20:22:04 ehird, err it only tries to download the one you selected for download 20:22:18 AnMaster: i'm talking about this hypothetical: 20:21 "go to this link" then what if it starts to auto download lots of crap 20:22:24 you might want to upgrade to a memory longer than 4 seconds 20:22:38 ehird, in fact I was jumping back more than 4 seconds 20:22:49 back to the original topic 20:22:58 yes, I know 20:22:59 if you don't want auto download on sf.net, turn it off for that site then 20:23:02 add an exception 20:23:11 i can't. and I'd rather not use sf.net 20:23:14 which I don't. unless I have to. 20:23:18 ehird, then don't 20:23:30 then how do you propose I download software hosted there. 20:23:33 really I think this is a non-issue 20:23:44 because I just click cancel when it asks me where to save 20:23:59 if you auto download you asked for it 20:24:03 don't complain then 20:24:06 no, I didn't, you're an idiot 20:24:14 "This site does something really fucking annoying. It's the user's fault!" 20:24:34 ais523, what do you think? 20:24:49 bbl, going to play freedroid 20:24:57 I think that browsers auto-downloading is a configuration mistake 20:25:06 ais523, :) 20:25:08 I think it's convenient. 20:25:11 if only because it renders people open to accidenrally clicking on links to massive things 20:25:33 yeah, you know, I do have a cancel button 20:26:14 ehird, let me get this straight: 20:26:19 no, let's not 20:26:21 I don't care 20:26:25 1) you think auto download is convenient 20:26:33 20:26 no, let's not 20:26:34 20:26 I don't care 20:26:36 2) you think auto download at sf.net isn't convenient 20:26:56 20:26 no, let's not 20:26:56 20:26 I don't care 20:26:58 20:26 no, let's not 20:27:00 20:26 I don't care 20:27:02 20:26 no, let's not 20:27:04 20:26 I don't care 20:27:06 20:26 no, let's not 20:27:08 20:26 I don't care 20:27:10 20:26 no, let's not 20:27:12 20:26 I don't care 20:27:14 20:26 no, let's not 20:27:16 20:26 I don't care 20:27:31 ais523 well as usual he is going mad when he notices he contradicted himself... 20:27:36 no 20:27:43 i just really don't give a shit about what you have to say on the subject 20:27:57 *hiss* *meowr* 20:28:11 ehird never contradicts himself, his viewpoints are always perfectly consistent and he always finds a loophole to show that that's what he meant all along 20:28:36 that's nice. back when you're actually discussing something -> 20:28:37 -!- ehird has left (?). 20:36:30 ?help 20:36:32 @help 20:36:33 ,help 20:36:35 :help 20:36:37 ... 20:36:37 ... 20:36:43 ;help 20:36:46 #help 20:36:54 what the heck are you doing? 20:37:12 being lazy and finding bots in this channel that I can play with instead of checking the user list 20:40:39 CakeProphet: it's just fungot here atm 20:40:39 ais523: ' ' ' :image:voom fnord'" is being used under wikipedia:fair usefair use but there is 20:40:57 although running thutubot would be easy enough locally, it used to run on eso-std.org until ehird wiped it 20:46:09 -!- kar8nga has joined. 20:52:55 -!- Hiato has quit ("Leaving."). 20:53:39 ais523, run it on eso-std again? 20:54:10 eso-std is wiped atm 20:54:15 ais523, not reinstalled? 20:54:29 I don't even know if it has Perl installed 20:54:42 there's less on there atm than there is in a default clean install... 20:55:00 ais523, no aptitude, ehird told me that 21:11:43 I seem to remember ehird being less bitter. 21:22:00 it's a recent thing, due to happenings in nomic AFAICT 21:25:25 * kerlo nods 21:28:40 -!- Corun has joined. 21:31:03 ais523, well nomic isn't good for him 21:31:13 he is a bad looser 21:47:46 ais523, there? 21:47:52 something very strange just happened 21:47:58 yes, I'm here 21:48:07 someone named xlq, asked on another network if I knew "ais523" 21:48:12 heh 21:48:22 AnMaster: oh, I know xlq on another network 21:48:24 then he went on talking about same school or something *shrug* 21:48:30 hmm... maybe I should ask him if he knows AnMaster 21:48:31 ais523, irc.flightgear.org? 21:48:34 no 21:48:37 hm 21:48:38 irc.tty2.org 21:48:42 heh 21:48:59 ais523: do you know AnMaster? 21:49:07 ais523, how did he find out I know you? 21:49:14 no idea 21:49:15 I would like to know 21:50:46 -!- KingOfKarlsruhe has joined. 21:51:09 ais523, any response from him yet 21:51:11 ? 21:51:19 not yet 21:51:22 hm 21:51:29 some oblique references I don't get, he asked if I knew FlightGear and I said no 21:51:58 ais523, well I know him from irc.flightgear.org 21:52:06 I know what flightgear is 21:52:15 a very good open source flight simulator 21:52:48 [21:52] No, it's just interesting 21:52:49 [21:52] when two seemingly unrelated people you know or half-know, turn out to know each other 21:57:29 * ais523 only just now figures out that kerlo = ihope 22:12:50 -!- LinuS has quit ("Puzzi. S, parlo proprio con te. Puzzi."). 22:13:22 -!- Corun has quit (Read error: 60 (Operation timed out)). 22:37:25 ais523: ihope use lots of different nicks 22:37:30 yes, I nkow 22:37:40 I should /whois people I don't recognise more often 23:02:08 -!- ehird has joined. 23:15:22 -!- psygnisfive has quit (Read error: 104 (Connection reset by peer)). 23:15:31 -!- psygnisfive has joined. 23:20:26 -!- psygnisfive has quit (Read error: 104 (Connection reset by peer)). 23:20:34 -!- psygnisfive has joined. 23:23:15 -!- Sgeo has joined. 23:38:16 -!- oerjan has joined. 23:56:42 -!- kar8nga has quit (Read error: 110 (Connection timed out)).