00:15:29 -!- namaskar has quit (Ping timeout: 240 seconds). 00:21:56 -!- Sgeo has joined. 00:23:10 -!- namaskar has joined. 00:31:16 -!- miguel1 has joined. 00:45:36 is this config option thing on by default i.e. should i worry 00:48:54 i think recent Ubuntu kernels have it 00:49:12 do you admin any systems where the separation between user and root accounts is an important security property? 00:50:12 lol 00:50:28 it's a serious question! 00:50:49 yes, but the answer is no, i'm just a desktop luser 00:51:07 google turned up http://seclists.org/oss-sec/2014/q1/187 which is fairly detailed (but doesn't say whether COMPAT_USE_64BIT_TIME is enabled by default) 00:51:08 Curse of the Swine, a blue card, produces green tokens 00:51:35 I suppose that it also matters if you're relying on certain kinds of sandboxing 00:52:04 so it might diminish the security of chromium or something 00:52:29 nelhage suggests using it to break out of docker containers 00:52:29 alguien de aragua 00:53:20 `? welcome.es 00:53:21 ​¡Bienvenido al centro internacional para el diseño y despliegue de lenguajes de programación esotéricos! Por desgracia, la mayoría de nosotros no hablamos español. Para obtener más información, echa un vistazo a nuestro wiki: http://esolangs.org/. (Para el otro tipo de esoterismo, prueba #esoteric en irc.dal.net.) 00:55:09 naguara 72 personas y nadie hala 00:56:00 no hablamos español :/ 00:56:03 (yo un poquito) 00:57:41 kmciao 00:57:49 :) 00:58:30 isn't there a ... 00:58:45 `bienvenido miguel1 00:58:46 miguel1: ¡Bienvenido al centro internacional para el diseño y despliegue de lenguajes de programación esotéricos! Por desgracia, la mayoría de nosotros no hablamos español. Para obtener más información, echa un vistazo a nuestro wiki: http://esolangs.org/. (Para el otro tipo de esoterismo, prueba #esoteric en irc.dal.net.) 00:58:52 there you go 00:59:08 clearly you don't know enough 00:59:21 i should re-learn spanish 01:09:18 -!- tromp has joined. 01:13:33 mmmm ok 01:13:44 -!- yorick has quit (Remote host closed the connection). 01:20:07 -!- miguel1 has left. 01:28:07 http://en.wikipedia.org/wiki/-oic_acid and i thought words like "bootstrapping" had convoluted origins. how silly of me. 01:37:57 -!- conehead has quit (Quit: Computer has gone to sleep.). 01:40:32 -!- nooodl has joined. 01:54:39 kmc: Ah, yes. struct timespec is different sizes in i386, x32, *and* x86_64. 01:55:24 hilarious 01:55:27 timespec contains a time_t and a long. time_t is: i386 32 bits, x32 64 bits, x86_64 64 bits. long is: i386 32 bits, x32 32 bits, x86_64 64 bits. 01:55:27 * kmc -> dinner 01:55:30 Nasty, no? 01:56:45 Made worse by how the long has a max value of (1 sec in nanosec) - 1. 01:57:19 Soooo the damned system call doesn't even need to exist in x32, but it does anyways. 02:07:22 -!- Phantom_Hoover has quit (Remote host closed the connection). 02:48:38 Is the "Manipulative Monstrosities" intro pack halfway decent? 02:48:45 Although it's kind of too late to take back my purchase 02:48:52 -!- zzo38 has joined. 02:49:05 MTGO doesn't seem to have 'event packs' which I heard are more competititve for things like Friday Night Magic 02:50:26 is sgeo zzo38 today? 02:50:58 I don't think I am, but you can decide for yourself if you want to 02:51:32 you seem to be dropping non sequiturs 02:52:07 coppro: I don't think Sgeo is zzo38 today. 02:53:50 Sgeo is definitely not being zzo38 here. These aren't non sequiturs, but inquiries about a game that many of us play. 02:54:02 Though, zzo38 doesn't generally do non sequiturs either. 02:54:11 Linguistic oddness is his thing, not actual nonsense. :) 02:54:53 I tend to be utterly off any topic anyone else is talking about, but (hopefully) coherent within whatever I'm talking about 02:55:22 < Sgeo> Curse of the Swine, a blue card, produces green tokens <- is hardly a query 02:55:54 and yes, I'm aware that many of us play Magic; I'm probably the worst of the lot 02:59:47 If new game are made we can avoid all of the problems with the rules of Magic: the Gathering since backward compatibility is no longer required, and make it more mathematically elegant, and fix other problems too (although other people disagree about what these problems are; my opinions are one and other people may disagree some of them). One thing I would do is throw away all of the rules dealing with Constructed format, and have Limited format be 03:01:19 -!- Bike has quit (Ping timeout: 260 seconds). 03:02:37 -!- namaskar has quit (Ping timeout: 272 seconds). 03:05:30 Um. I think Magic Online thinks I'm missing basic lands for the intro pack I bought 03:10:41 Apparently Duels of the Planeswalkers 2014 doesn't fully follow the rules? :( 03:11:23 -!- Sorella has quit (Quit: It is tiem!). 03:18:34 -!- nooodl has quit (Quit: Ik ga weg). 03:23:37 I have idea which is to make up a chess variant based on Famicom PPU. 03:27:30 that's a very zzo38 idea 03:27:37 how would it work 03:28:12 You can have only eight "sprites" pieces on each row, and the "tiles" pieces can only be one palette per 2x2 area. 03:37:16 is there good software for prototyping chess variants 03:39:03 There is Zillions, but it is proprietary and Windows-only, and limited in many ways. 03:40:33 On the plus side, Zillions has awesome music 03:41:10 ... awesome might be stretching it 03:41:16 Sounds classical, but I can't put a name to it 03:41:18 -!- ^v has quit (Quit: http://i.imgur.com/MHuW96t.gif). 03:42:31 pikhq: why is long only 32 bits on x32? is it because there's a lot of code which assumes sizeof(long) == sizeof(void*) ? 03:43:02 However the source files are plain text, in a Lisp like format, so presumably you could make up another program which would be able to parse them and run them, without computer player, and one other feature also cannot be implemented without that capability, which is the rule which says you have to make multiple jumps which are the maximal total vaule of pieces (although this is a stupid feature anyways; it is too inflexible to be useful). 03:43:42 http://codu.org/webmidi/gen/29809233003217/29809233003217.ogg 03:43:46 build a distributed chess engine based on proof-of-work block chaining 03:44:58 kmc: How do you do that? 03:45:31 i don't know but perhaps you do 03:45:35 What song is that 03:46:45 kmc: "Why is it taking you so long to make your move?" "Actually, I submitted it ten minutes ago, but no one's found a hash yet!" 03:47:42 yep 04:05:55 unclear what the mining incentive is, unless it has an associated currency 04:05:56 like namecoin 04:35:58 well, there doesn't really need to be a mining incentive really. just let the players find their own hashes. yes, the difficulty will be super-low, but the point isn't to prove you worked really super hard. just hard enough that it'd be hard to replicate it later 04:39:03 -!- frogsetsboy has quit (Ping timeout: 245 seconds). 04:48:28 I think part of the point would be to have a public append-only history of all games that have been played 04:49:04 in which case mining a block needs to be a lot harder than making a move (i.e. a transaction) 04:49:19 otherwise somebody with only as much compute power as a few players can rewrite history 04:53:16 Are you trying to make up Bitcoin Chess? 04:53:41 slightly 04:53:53 `addquote I have idea which is to make up a chess variant based on Famicom PPU. 04:53:55 1164) I have idea which is to make up a chess variant based on Famicom PPU. 04:54:42 quintopia: I think things also break if blocks get mined faster than they propagate through the P2P network 04:54:53 that would make it hard to establish a consensus history wouldn't it 04:55:39 kmc: that's why difficulty resetting is part of the protocol 04:56:22 as it turns out, one can get by with mining speed of like 1min per block 04:56:45 though it does lead to forks slightly more often 04:56:50 or a lot 04:56:59 but consistency is maintained anyway 05:05:51 yeah 05:05:58 dogecoin has 60 second blocks 05:06:30 and is the #3 coin by trade volume and #6 by market cap 05:06:47 because the future is ridiculous 05:17:35 also their blockchain is huge and growing huger 05:18:06 yeah i know a guy who made a fortune speculating doge 05:23:45 -!- copumpkin has joined. 05:26:34 kmc: Yes. 05:29:52 zzo38: yes 05:36:03 Just saw someone target a negative seeming spell at themselves 05:36:10 But guess it's a trade-off... Sign in Blood 05:36:50 Um. Why is Magic Online claiming that a Swamp is summoning sick? 05:37:09 Did it come into play this turn? 05:37:16 yes 05:37:19 Then it is. 05:37:32 * Sgeo twitches 05:37:36 Yes it still has summoning sickness, but it doesn't use if it isn't a creature. 05:37:43 If it becomes a creature, then that becomes relevant. 05:38:18 Also, that player really likes foil Swamps 05:38:30 Correction: Foil basic lands 05:38:38 _Virtual_ foil cards 05:38:55 The interest in virtual foil cards bothers me more than virtual cards in and of themselves 05:39:37 I might buy a physical card for its prettiness, or a virual card for its gameplay, but can't imagine buying a virtual card for its prettiness 05:40:03 Maybe they drafted such card? 05:40:03 Although maybe I should just try Cockatrice again 05:40:14 -!- tromp has quit (Remote host closed the connection). 05:40:34 a swamp creature 05:40:47 -!- tromp has joined. 05:44:55 Sorry, it'd be Land Creature -- Swamp 05:45:15 -!- tromp has quit (Ping timeout: 252 seconds). 05:53:00 Is there a way to use appending linking of functions with GCC? 05:53:28 what does that do 05:57:21 -!- Bike has joined. 05:58:15 I mean you can make many functions in different modules together that the main module can call. 05:59:06 Maybe constructor functions can be used to fill up an array, though 06:01:06 you can build the table statically in a special section a la https://github.com/torvalds/linux/blob/v3.12/include/linux/export.h#L56-L65 06:02:11 then a linker script will give you symbols for the start and end of that section 06:02:41 OK, although I do not want to be specific to Linux or any other operating system. 06:03:15 sure, this is just the Linux kernel as one example of a C program using this trick 06:03:42 it should work on any GCC platform where the object file format supports custom sections 06:05:08 I was originally going to suggest something like #define EXPORT(fn) asm(".pushsection exported; .quad " #fn "; .popsection"); but emitting a struct from C is probably more reasonable 06:05:45 with ld's pushsection/popsection and local numbered labels you can do some pretty cool shit 06:06:17 er, as's 06:07:11 But, I don't want to be limited to specific instruction sets either. 06:07:19 well, this isn't either 06:08:20 I also do not undersatnd how that export.h is working 06:10:02 here is a simplified version 06:11:04 struct kernel_symbol { void *value; const char *name; }; #define EXPORT_SYMBOL(sym) static const struct kernel_symbol __ksymtab_##sym __attribute__((section("__ksymtab"))) = { sym, #sym }; 06:11:31 then you would write something like EXPORT_SYMBOL(my_function); void my_function() { ... } 06:11:49 and this arranges for a struct with a relocation to my_function as well as the string "my_function" to be placed into the section __ksymtab 06:11:57 OK, but I don't know how you would load it, and anyways that isn't quite what I am intending to do either 06:12:05 and the linker will glue together all of these structs from all the object files 06:12:17 and then you can iterate through them at runtime 06:12:25 zzo38: OK, what are you intending to do? 06:14:05 To make all SQL functions and various other things defined in different modules linked with the program to be available to the main program all at once even if a new file is added you don't have to fix the main program. 06:14:30 ok, it sounds like this mostly accomplishes that 06:14:40 I could do what I did in VGMCK, which is making constructor functions to add things at the beginning of a global linked list. 06:14:47 the main function can look through this table and see the names of the other functions as well as pointers to them 06:15:13 you can also use dlopen(NULL) and dlsym() 06:15:18 depending 06:15:44 That's OK, although I don't need the names (unless they are the SQL names rather than C names) 06:17:40 I am probably doing just what I did in VGMCK; it doesn't require sections supporting 06:17:49 kmc: Depending what? 06:19:13 well, you need to be using dynamic linking, and I don't know how to iterate over all the stuff in the file 06:19:19 perhaps GNU's dl_iterate_phdr is useful 06:19:38 I just introduced someone to Cockatrice :/ 06:19:47 you monster 07:00:52 -!- FreeFull has quit. 07:09:26 -!- SingingBoyo has quit (Quit: WeeChat 0.4.3-dev). 07:25:05 -!- Tritonio1 has quit (Ping timeout: 272 seconds). 07:30:26 -!- Bike has quit (Quit: sleep). 07:45:53 Bought Duals of the Planeswalkers 2014 07:46:18 cones of dunshire 07:48:03 "the game, in reverse" 07:48:16 Magic the Gathering had a card that triggered a game of Magic the Gathering within the game 07:48:29 what 07:48:30 does it have a card that triggers a game of chess 07:48:34 or chess-boxing 07:48:36 or drinking chess 07:48:42 strip poker 07:49:21 strip magic, each player starts with 20 items of clothing 07:49:29 hahaha 07:49:39 http://gatherer.wizards.com/Pages/Card/Details.aspx?multiverseid=980&printed=true 07:49:50 you don't have to count points, very handy 07:50:03 "Players must leave game in progress as it is and use the cards left in their libraries as decks with which to play a subgame of Magic. When subgame is over, players shuffle these cards, return them to libraries, and resume game in progress, with any loser of subgame halving his or her remaining life points, rounding down. Effects that prevent damage may not be used to counter this loss of life. The subgame has no ante; using less than forty 07:50:03 cards may be necessary." 07:50:52 -!- oerjan has joined. 07:56:50 wondering if a strip munchkin would be possible 07:57:05 but it seems quite strange if the winner has to be naked 07:57:12 or if everyone has to start naked 07:59:30 everyone gets naked and then they think of something more fun to do than play strip munchkin 07:59:39 :D 08:02:01 strip The Game 08:02:08 haha 08:04:38 -!- conehead has joined. 08:18:42 -!- MindlessDrone has joined. 08:39:27 -!- Tritonio has joined. 08:43:33 -!- tromp has joined. 08:48:03 -!- tromp has quit (Ping timeout: 245 seconds). 08:55:05 myname: http://www.xkcd.com/696/ ? 08:57:34 Sgeo: it's written as "any loser", does that mean a game of M:tG can have more than one loser? even between two players? 08:58:07 I think it is possible both players will lose 08:58:15 Games of Magic can have more than two players, and it's possible for all players to lose 08:58:25 "At the start of the sub-game both players draw their initial hand (usually 7 cards). If one player has fewer cards than required, that player loses. If both have fewer than required, both players lose." 08:59:05 I think the rule is, if a player wins and loses simultaneously, they lose. 08:59:49 life is a game where you often win and lose simultaneously 09:01:13 kmc: yes. an M:tG game can have at most one team as a winner, but all people can lose 09:01:32 kmc: even a two player game can end in a draw, in which case all players count as having lost 09:01:43 ok 09:01:44 kmc: I guess you saw the update on your x32 arbitrary write vulnerability? apparently it was a much more obvious problem than I thought 09:01:55 i didn't see it 09:02:05 kmc: the game is designed so that draws are rare in practice, but they still can happen and the rules must support them 09:02:06 http://seclists.org/oss-sec/2014/q1/187 09:02:27 the easiest way they can happen is all players losing life simultanously 09:02:56 ok 09:03:11 i see now 09:04:39 * kmc -> sleep 09:09:43 -!- conehead has quit (Quit: Computer has gone to sleep.). 09:22:48 -!- namaskar has joined. 09:34:34 What does the argument to the C "nan" function mean? 09:36:59 Probably the payload that goes in the mantissa of a NaN 09:37:52 But what does the payload do? 09:38:18 I don't think it has any meaning to the spec, but it's a way to attach metadata to a NaN (such as what caused it to become NaN) 09:38:49 OK; how long should the string be? 09:39:15 Some JS implementations use NaNs to store pointers/integers inside the payload 09:39:45 How does that help? 09:40:11 It means you don't have to store a tag separately, and therefore reduce the size that needs to be moved around 09:41:07 going by http://en.wikipedia.org/wiki/NaN#Floating_point the payload seems to be the size of the mantissa - 1 bit, so 22 bits for `float` and 52 for `double` I think 09:42:01 http://wingolog.org/archives/2011/05/18/value-representation-in-javascript-implementations has an explanation of NaN-boxing if you're interested in that 09:42:04 So is six bytes OK then? 09:43:21 I think so, for a double 09:43:32 I wonder if there's a function for reading the payload 09:44:27 Is NaN allowed in SQL? 09:44:42 no clue. 09:54:10 Based on a quick glance at the SQL-92 draft, it doesn't require NaNs or infinities for the "approximate numeric types". And there are no literals for them. 09:56:15 (And the meaning of the C nan() argument, and the xxx in "NAN(xxx)" for strtod et al. is implementation-defined.) 10:02:08 I am using SQLite rather than SQL-92 though. 10:06:18 Well, the SQLite data type page does say "floating point value, stored as an 8-byte IEEE floating point number", which certainly has NaNs. 10:22:19 -!- Tritonio1 has joined. 10:22:27 -!- Tritonio has quit (Ping timeout: 252 seconds). 10:24:10 -!- namaskar has quit (Ping timeout: 245 seconds). 11:01:08 -!- SeeNoEvil has joined. 11:03:15 -!- namaskar has joined. 11:11:54 -!- SeeNoEvil has left. 11:17:17 -!- nooodl has joined. 11:25:14 -!- Tritonio1 has quit (Quit: Tritonio1). 11:25:44 -!- Tritonio has joined. 11:36:05 -!- atriq has joined. 11:38:51 -!- jconn has quit (Ping timeout: 253 seconds). 11:41:23 -!- namaskar has quit (Ping timeout: 245 seconds). 11:48:55 -!- Phantom_Hoover has joined. 11:49:21 -!- nooodl has quit (Quit: Ik ga weg). 12:16:17 -!- augur has quit (Remote host closed the connection). 12:16:43 -!- augur has joined. 12:18:18 -!- augur_ has joined. 12:18:23 -!- augur has quit (Read error: Connection reset by peer). 12:33:51 -!- oerjan has quit (Quit: leaving). 12:41:05 -!- atriq has quit (Quit: Page closed). 12:44:28 I just tried to write a thing in the form "-- (a) foo, (b) bar and (c) baz --" to someone in Skype's IM thing, but it turned the (a) to an angel, (b) to a beer mug and (c) to a coffee cup. 12:45:32 ~metar EFHK 12:45:42 Aw. 12:48:02 Fancy enumeration, that 12:53:30 I don't know how it continues, but there's a high chance that (d) is a devil. 12:54:10 Oh, (according to Google) it seems to be "drink" (a Martini or some such) instead. 12:54:20 Skype seems to be a bit focused on drinkables. 12:55:17 (e) is an envelope/"email" icon, (f) is a flower, (g) doesn't exist on this page (but I think it might be an undocumented grin), (h) is a heart, and I'm bored now. 12:57:55 The (^) is a lie. 12:58:27 -!- yorick has joined. 13:11:30 I've learned that (y) is a thumbs-up in MSN from people using it outside of MSN 13:11:34 At least, I think it is 13:14:41 it is. (n) exists, too. 13:25:21 -!- DobleD has joined. 13:27:24 holaa 13:30:01 -!- boily has joined. 13:30:10 -!- metasepia has joined. 13:30:13 good wooden horse morning! 13:31:37 oh, but the trojans are not amused. 13:32:13 ffgwe 13:32:15 fgwgkeww 13:32:18 ijgwfrkewqpoed 13:32:24 fmjeifgnmje3kowo0ki21,p0kwqs,oakd,lsfdkmo32kerdo,srkfd,oewlrdk3p2wqode,poekrde 13:32:31 dfioredlskfopewñslae3kpwosñwopsñd 13:32:35 really 13:32:37 wsokafdlofkwepo0sñalkfepwsñkfop3ewkñlfk320pweñskf3pwq 13:32:38 :( 13:32:41 `relcome DobleD 13:32:42 ​DobleD: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: . (For the other kind of esoterica, try #esoteric on irc.dal.net.) 13:34:54 -!- DobleD has left. 13:35:03 Must've been some obscure esolang. 13:41:03 -!- augur_ has quit (Remote host closed the connection). 14:12:19 * boily rants against the completely useless and unusable permission system in OpenERP. 14:25:52 -!- Sgeo has quit (Read error: Connection reset by peer). 14:30:17 -!- jconn has joined. 14:31:39 -!- namaskar has joined. 14:39:07 -!- augur has joined. 14:41:38 -!- Sorella has joined. 14:54:32 -!- atriq has joined. 14:56:49 -!- augur has quit (Remote host closed the connection). 14:57:45 -!- augur has joined. 14:59:18 -!- augur has quit (Client Quit). 15:01:05 -!- tromp has joined. 15:12:45 -!- augur has joined. 15:20:51 boily: Then maybe might someone fix it if they want it more useful feature? 15:21:28 -!- Bike_ has joined. 15:22:33 Now I invented "Famicom PPU Chess": http://www.chessvariants.org/index/msdisplay.php?itemid=MSfamicomppuches 15:23:57 What is your opinion of this? 15:24:07 zzo38: it is a four player game? 15:25:18 quintopia: In two teams; you can play with just one person playing both colors of a team. 15:25:27 zzo38: to fix something in an Enterprise software? sadly not. it is more important to pile new features than to fix previous ones. 15:28:10 quintopia: Hopefully it is understandable? 15:29:00 boily: you're getting that wrong. neither fixing bugs or adding new features is important. finding bugs and inventing creative misuses of them is the most important. 15:29:45 -!- Bike_ has changed nick to Bike. 15:34:38 yep it's about the most complicated variant I've met short of Chess 2, but it seems consistent. 15:35:47 zzo38: have you ever played mobius chess? 15:48:15 quintopia: I haven't played mobius chess. 15:48:41 (Actually most chess variants I haven't played, and I don't actually play chess much either.) 15:49:59 -!- AnotherTest has joined. 15:50:11 And there are several much more complicated variants than just those. 15:52:08 -!- sebbu has quit (Ping timeout: 265 seconds). 15:59:08 That reminds me, I want to try torus go someday 15:59:21 I can't imagine it being easy to make territory without any edges 15:59:36 b_jonas: they already do that, with magic numbers and implicit undocumented type conversions and stuff. 15:59:47 quinthellopia. are you still variating chess? 16:03:50 nope 16:03:53 that's zzo38 16:06:47 hezzo38. how do you vary? 16:11:49 did you get me a job boily :P 16:15:37 boily: I do not entirely understand your question. 16:17:55 quintopia: the contract is signed, I begin February 10, and I was told by the HR to bring my Magic decks. 16:18:19 zzo38: what chess variations are you trying and analysing and comparing and enjoying? 16:18:23 boily: yes but that's your job. what about mine? 16:18:38 . o O ( Maybe HR will burn the decks and tell you to concentrate on the job. ) 16:19:02 boily: he already linked Famicom PPU chess above, and said he doesn't play chess much 16:19:37 quintopia: oh. your job. uhm... >_>... <_<... v_v... ¬_¬... 16:19:52 ah hm. that'll teach me to only partially read the logs... 16:26:14 boily: Many, including many I made up 16:27:19 You can see which game I invented at http://www.chessvariants.org/index/mainquery.php?type=Any&orderby=Type&displayauthor=1&displayinventor=1&inventorid=zzo38computer and there are several others on same website, I have looked at as well. 16:28:20 only many? that's more than several manies! 16:28:49 (oh, ポケモン将棋! ^^) 16:39:04 -!- ais523 has joined. 16:43:49 http://dealbook.nytimes.com/2014/01/31/start-up-aims-to-circumvent-rules-on-private-stock-sales/?_php=true&_type=blogs&module=BlogPost-Title&version=Blog%20Main&contentCollection=Venture%20Capital&action=Click&pgtype=Blogs®ion=Body&_r=0 hahahaha 16:54:43 -!- Tritonio has quit (Ping timeout: 245 seconds). 17:05:29 int-e: ouch, that would be bad 17:07:04 -!- callforjudgement has joined. 17:07:07 -!- ais523 has quit (Ping timeout: 272 seconds). 17:10:10 -!- sebbu has joined. 17:10:21 `ello atriq 17:10:22 atriqello 17:10:50 -!- sebbu has quit (Changing host). 17:10:50 -!- sebbu has joined. 17:35:38 -!- atriq has quit (Ping timeout: 245 seconds). 17:50:43 b_jonas: burning Magic decks is a Federal Offense punishable by up to 20 years in prison. 17:52:36 They had a thing in the nearby role-playing game convention where there was a man going around with a sign, and if you gave the man some money, he would give you some MtG cards that you were then suppose to destroy in an inventive fashion. 17:53:50 why 17:54:09 I forget exactly. It was probably one of those things that only makes sense at conventions. 17:54:30 what happens at role-playing game convention stays at role-playing game convention 17:54:30 I think it was some sort of a protest against Magic in favour of "actual" games. 17:55:25 * kmc rolls eyes 17:55:31 what makes a game "actual" in this case 17:55:56 It doesn't involve collectible cards but traditional pen-and-paper stuff instead, I believe. 17:56:01 I'm trying (and failing) to find a picture of the thing. 17:56:23 i'd totally do that though, if it wasn't too much money and if i was at a convention for some reason 17:56:38 I'm pretty sure it wasn't part of the official program, for the record, just some guy. 17:57:08 Bike: I think the least desired Magic cards in existence sell in bulk for 10 cents each, maybe even less from some sellers 17:57:11 I'm just finding photos of people actually playing Magic, and photos that don't seem to be relevant in any way. 17:57:33 -!- aergus has joined. 18:10:17 callforjudgement: definitely less 18:10:24 callforjudgement: nobody would pay 10 cents for Index 18:10:40 -!- FreeFull has joined. 18:11:06 b_jonas: I'm not sure, it's quite the combo with fetchlands 18:11:18 wait wait 18:11:29 Index is now reprinted in Standard 18:11:33 so maybe that was a bad example 18:11:43 it used to be one of the cheapest cards 18:11:47 the problem is, if cards get really /really/ terrible 18:11:53 people collect them just for the novelty value 18:13:20 (and cards which are mediocre but have memes about them are highly collected too, e.g. the cheapest versions of Storm Crow cost 15 cents) 18:16:11 being bad is not enough 18:17:00 but in any case, there are cards cheaper than 10 cent 18:17:01 -!- Slereah_ has joined. 18:17:05 Hey folks 18:17:36 Finished my assembly project, I can slack, yay~ 18:18:44 -!- Slereah_ has quit (Read error: Connection reset by peer). 18:19:04 -!- Slereah_ has joined. 18:19:07 -!- augur has quit (Read error: Connection reset by peer). 18:21:29 * boily slacks Slereah_ 18:26:18 -!- Phantom__Hoover has joined. 18:26:55 -!- Phantom_Hoover has quit (Ping timeout: 272 seconds). 18:27:22 -!- augur has joined. 18:30:12 -!- augur has quit (Read error: Connection reset by peer). 18:30:36 -!- augur has joined. 18:31:06 what's a regex that matches any string of characters which does not contain the sequence DONOTDELETE? 18:31:10 -!- augur has quit (Read error: Connection reset by peer). 18:31:28 -!- augur has joined. 18:35:13 [^D][^O][^N][^O][^T][^D][^E][^L][^E][^T][^E] 18:35:13 ? 18:35:47 any string, not any string of that length 18:36:04 $*[^D][^O][^N][^O][^T][^D][^E][^L][^E][^T][^E]*$ 18:36:09 Errr ^ 18:36:11 Or whatever 18:36:12 i dunno 18:36:27 that matches foobarbazbakDONOTDELETE 18:36:44 Does it? 18:36:49 i'm not very good at regexes 18:36:52 Maybe you should use some regex library which include negative matching function. 18:36:59 well, with different characters 18:37:14 ([^D][^O][^N][^O][^T][^D][^E][^L][^E][^T][^E])+ would work but only takes multiples of that length 18:37:28 don't remember how to do "or match ends" off the top of my head and also it's ugly anyway 18:37:29 probably something with negative lookahead? 18:37:39 By adding a "but not" operator. 18:38:41 Linux needs an unlimited grammar expression thing! 18:38:50 Though i think awk is already that 18:39:49 In AWK you can use a regular expression it will just be used where a boolean expression is used 18:40:37 -!- augur has quit (Ping timeout: 248 seconds). 18:40:49 doesn't it have extended regexes? 18:41:16 Bike: ah based on that i think (.*[^D][^O]...[^T][^E].*)* will work 18:41:29 (where ... is there rest of the character classes i didn't feel like typing) 18:42:18 or, maybe “not re.search(r'DONOTDELETE', the_string)”? 18:42:26 zzo38: is "but not" still regular? 18:42:28 that will match DONOTDELETEaaaaaaaaaaaDONOTDELETE 18:42:44 AAAAAAH 18:43:02 Bike: good point 18:43:11 AAAAAAAAAH :D 18:43:38 oh so i guess just ([^D][^O][^N][^O][^T][^D][^E][^L][^E][^T][^E])+.{,10} almost 18:44:03 except that matches aaaaaaaaaDONOTDELETE 18:44:11 yeah i was about to say 18:45:10 -!- augur has joined. 18:45:41 Hello augur 18:45:43 quintopia: I don't know if it is still regular 18:46:01 oh. just put it on the other side. 18:46:17 well no then you just have prefi problems 18:46:20 wait what 18:46:28 Maybe you can use SNOBOL patterns? 18:46:30 -!- augur has quit (Remote host closed the connection). 18:46:30 there's probably an easier way -_- 18:46:35 is "the set of strings which do not contain DONOTDELETE" even regular? 18:46:45 i think it is 18:46:48 me too 18:46:56 i can kind of visualize the FSM for it 18:47:01 of course. 18:47:12 regular languages are closed under complement. 18:47:12 I think perl regexpes have some funky lookahead thingies that work almost like negation 18:47:33 ah i think it's just D(?!ONOTDELETE) plus some other stuff 18:47:52 int-e: no, iirc, they're *not* closed under complement 18:47:52 -!- atriq has joined. 18:48:03 What about [^.]* 18:48:05 NO STRINGS 18:48:09 PROBLEM SOLVED 18:48:23 "the set theoretic Boolean operations: union K \cup L, intersection K \cap L, and complement \bar{L}. From this also relative complement K-L follows.[3]" 18:48:23 olsner: you remember incorrectly 18:48:26 good enough for me 18:48:36 Slereah_: that solves the problem of matching all strings which don't contain DONOTDELETE? ALL STRINGS SECRETLY CONTAIN DONOTDELETE???? 18:48:48 the conspiracy 18:48:49 No string is best string 18:48:53 Kill them all I say 18:49:08 well, Slereah_'s matches the empty string. 18:49:26 false advertising. i want my money back. 18:49:28 the empty string stands alone 18:49:39 Huh... I type better when looking out the window rather than at the keyboard 18:49:56 the Conspiracy Unmasqued! the Scandal is proving too much for the People! Revolts Abound! the End Times are Nigh! 18:49:58 and i breathe better when i'm thinking about anything else 18:50:11 Bike: [^.]+ 18:50:19 that's more like it 18:50:22 Bike: unfortunately, it's still not right 18:50:32 Bike: unless you set your modes right, it still matches NEWLINE 18:50:57 oh fuck that, if int-e can bring in actual math that's what i'm going to pretend to use 18:51:39 What is the goal here? 18:51:54 a regex matching all strings not containing "DONOTDELETE" 18:51:58 . in char classes in most regex flavours is treated literally 18:52:01 or a regex containing no strings, for funnierness 18:52:06 Bike: [] 18:52:08 so [^.]+ matches plenty of strings 18:52:20 int-e: your mother 18:52:27 so how about this: ([^D]*(D(?!ONOTDELETE))*)* 18:52:36 i don't remember what ?! does lol 18:52:37 Bike: $.^ ... lots of ways :) 18:52:39 FireFly: true 18:52:40 `run echo hi there | grep '[^\w\W]' 18:52:40 hi there 18:52:48 . in character class means period yes 18:52:56 hm 18:52:59 "yo momma so fat i had to come up with a new pumping lemma to get her out"? 18:53:02 quintopia: That seems overly complicated, compared to just ((?!DONOTDELETE).)*. 18:53:10 `run echo hi there | grep -o '[^\w\W]' 18:53:10 h \ i \ \ t \ h \ e \ r \ e 18:53:16 whu.. 18:53:17 fizzie: does that work????? 18:53:25 "relative complement" is an interesting term for set differene 18:53:28 difference too 18:53:38 fungot: do you even match, bro? 18:53:38 it's common, isn't it? 18:53:38 boily: sorry for my english and the queen's english, thanks. really looking forward to playing it 18:53:44 since complement is relative to the universe, anyway 18:53:56 quintopia: it matches characters while the pattern DONOTDELETE doesn't match 18:53:57 does fungot speak in RP? awesome. 18:53:57 Bike: ( that 826 is for the absence of infix operators... it all depends on what scheme system? 18:54:06 quintopia: Why not? It's just "any character except DONOTDELETE can't be at any position. Though something like ^(?!.*DONOTDELETE).*$ could be more efficient, at least assuming a usual backtracking kind of thing. 18:54:31 fizzie: oh that second one does look better 18:54:34 backtracking *shakes fist* 18:54:42 My uni is doing a programming competition, right a program that is an AI for a variant of battleships 18:55:02 neat. 18:55:07 fizzie: let's say i have a regular expression that has a .* in the middle of it. can i drop the regex in to replace that .* and have it work as expected? 18:55:22 (aka it matches all the strings the original one matched unless they have DONOTDELETE there 18:55:22 One of my friends and I have entered (it has a weekly tournee). Last week we didn't do too well, but we've submittered a new version 18:55:23 yeah I think it's easier to make a FSM for this complement and then turn it into a regex 18:55:25 _ 18:55:27 ) 18:56:00 fizzie: assuming i remove the ^ and $ of course 18:56:17 well no it won't 18:56:19 something like ^([^D]|D*(D[^OD]|DO[^ND]|DON[^OD]|DONO[^TD]|(DONOT)*([^D]|D[^ED]|DE[^LD]|DEL[^ED]|DELE[^TD]|DELET[^ED])))*D*(D[^O]|DO[^N]|DON[^O]|DONO[^T]|(DONOT)*(|D[^E]|DE[^L]|DEL[^E]|DELE[^T]|DELET[^E])))*$ 18:56:23 but shouldn't [^\w\W] match nothing? I thought it would 18:57:01 int-e: you generated that automatically, right 18:57:02 fizzie: yeah it won't work as a drop-in replacement for .* because it looks ahead all the way to the end. but maybe the first one will? 18:57:05 Bike: no. 18:57:13 int-e: that's sad 18:57:15 Bike: It's likely wrong. :) 18:57:24 int-e: you would probably like this code-trolling thing codegolf.stackexchange.com came up with 18:57:30 (the two (DONOT)* should be (DONOT)+, for example) 18:57:32 Only three teams have entered so far but it's restricted to 1st years and I know some not-first-years who want to enter 18:57:39 That restriction'll be lifted soon 18:58:04 quintopia: The first one should work for that, I think. And yes, it's not quite a drop-in otherwise. 18:58:43 I believe the string "DONOTDELETE" has the property that a match can't start in the middle of a prefix match 18:58:47 which simplifies things 18:59:06 compared to searching for, say, "ABABB" 18:59:21 what about DONOTDONOTDELETE 18:59:29 er that's true with one character of lookahead I mean 18:59:37 fizzie: it looks like the first one matches at least one character (the dot at the end). can i leave that off and have it match none also? 18:59:56 oh, true 19:00:05 quintopia: The dot at the end was just a regular dot at the end of a sentence, actually. 19:00:12 fizzie: ok cool 19:00:19 Bike: yes, that's why I need (DONOT)+ there. 19:00:59 Surely DONOTDONOTDELETE could be deleted 19:01:17 int-e: that is way too complicated if fizzie's negative lookahead version works as expected 19:02:53 quintopia: Oh I know, but those are not part of regular expressions as used in theoretical computer science (or POSIX). 19:03:03 -!- aergus has quit (Ping timeout: 265 seconds). 19:05:02 turns out the problem i was trying to solve here i had already solved in a different way and vforgot. but it's cgood to know the answer anyway 19:08:16 The negative lookahead thing isn't a terribly good thing, since it will probably attempt to match DONOTDELETE separately for each of the possible positions. 19:08:40 Is that all that bad? 19:08:44 so quadratic runtime or so? 19:08:54 Won't it fail at matching the D for each character? 19:08:59 until it matches a D, of course 19:08:59 not terrible for short strings 19:09:02 the whole point is that negating regular expressions, while possible, is extremely error-prone and tedious. 19:09:43 FireFly: well it's terrible if your string contains a lot of DONOTDELETE prefixes 19:09:51 Well yes 19:15:22 -!- Slereah__ has joined. 19:17:12 @tell Sgeo http://codu.org/webmidi/gen/29809233003217/29809233003217.ogg is Bach's Brandenburg Concerto No. 3 https://www.youtube.com/watch?v=hZ9qWpa2rIg 19:17:12 Consider it noted. 19:18:23 -!- atriq has quit (Quit: Page closed). 19:18:29 -!- Slereah_ has quit (Ping timeout: 248 seconds). 19:20:58 what's the problem? matching all strings that /don't/ contain DONOTDELETE? in what regex syntax? 19:21:52 callforjudgement: Yes, Perl, and with the requirement for being a drop-in replacement for .* when it comes to other matters, like there being a DONOTDELETE in the string after the part the .* would match. 19:22:34 fizzie: hmm, that spec sounds like that might not be what you want 19:23:07 e.g. call this regex &, how should /&.*/ match "DONOTDELETE"? success or fail? 19:25:10 I was tempted to go for the very Prolog-like solution of (?:DONOTDELETE(*COMMIT)(*FAIL)|.*) 19:25:16 but I'm not sure it matches that spec 19:25:45 callforjudgement: Well, it's not my problem. But I guess what I envisioned is that /(&)(.*)/ would match with $1 = "", $2 = "DONOTDELETE". 19:26:17 so the only way to get a match failure is along the lines of /&a/ matching "DONOTDELETEa" 19:26:50 or fooDONOTDELETEa, no? 19:26:53 in that case I normally use (?:[^D]|D(?:[^O]|O(?:[^N]|N … ))).* 19:27:04 (!?^.*DONOTDELETE.*) 19:27:04 actually it needs to be anchored both ends 19:27:07 perl negative matching. 19:27:21 Gregor: that last .* is redundant, no? 19:27:22 Gregor: you mean ?!, but that also doesn't do what was requested 19:27:24 (That might be (?!) instead of (!?), I don't recall, but that's the idea) 19:27:27 even if you put a .* afterwards 19:27:31 callforjudgement: Well, I mean, the original context sounded something like /^foo.*bar$/ except that it should match fooblarbar but not fooblDONOTDELETEarbar. 19:27:41 can you use ‽ instead 19:27:42 FireFly: I meant a $ after it, forgot about that :) 19:28:00 Gregor: still redundant 19:28:08 unless you want to exclude newlines in the rest of the string 19:28:11 and aren't using /s 19:28:12 callforjudgement: Not in a negative match. 19:28:14 kmc: propose that for Perl 6 19:28:20 Gregor: yeah, even in a negative match 19:28:32 Gregor: The "(?!.*DONOTDELETE) anchored at start" solution was sort of discussed. 19:28:38 /regex/s and /regex.*$/s always either both match or both don't match 19:28:46 callforjudgement: In a negative match, (?!DONOTDELETE) will be "any string which contains anything other than DONOTDELETE", and (?!^.*DONOTMATCH.*$) is "a string which does not contain DONOTDELETE whatsoever" 19:29:09 Gregor: you don't understand negative matche 19:29:11 *matches 19:29:27 specifically, (?!^…) always matches any non-start-of-the-string location 19:29:30 regardless of what the … is 19:29:43 because it isn't at the start of the string, thus "you can't match the start of the string here" satisfies 19:30:38 AIUI negative lookahead simply tries to match the pattern at the location, and succeeds (and matches nothing) if the lookahead match fails, and fails if the lookahead match matches 19:30:48 That sounded way more confusing than I thought it would >.> 19:30:51 ~duck AIUI 19:30:52 --- No relevant information 19:30:52 That's just the inner part of the solution, callforjudgement. 19:30:59 Obviously you need to wrap that in something that mandates line matching. 19:31:02 As I understand it 19:31:12 e.g. ^(?!^.*DONOTDELETE.*$) 19:31:13 $ perl -E '"ab" =~ /(?!^.*a.*)/ and say "[$`] [$&] [$'\'']"'; 19:31:15 [a] [] [b] 19:31:30 Gregor: OK, if you put the ^ outside the (?!) too, then the inside ^ and .*$ are redundant 19:31:37 No, they're not X_X 19:31:38 but the match isn't entirely useless 19:31:57 Gregor: give me a string that matches ^(?!^.*DONOTDELETE.*$) and doesn't match ^(?!.*DONOTDELETE), or vice versa 19:31:59 -!- namaskar has quit (Ping timeout: 240 seconds). 19:32:08 and I will run it on Perl and either prove you wrong or prove myself wrong 19:33:08 FireFly: thanks. tdh. 19:33:15 you're claiming that the two are not equivalent, presumably it should be easy to find a counterexample 19:33:37 FireFly: Based on a really quick benchmark, given the string ("A"x$n)."foo".("B"x$n).$d.("C"x$n)."bar".("D"x$n) where $n = 10000000 and $d is either "DONOTDELETE" or "DONXTDELETE", it takes (on this system) about 0.38 seconds to match /foo.*bar/, and 1.33 or 0.77 seconds to match or not match /foo((?!DONOTDELETE).)*bar/ for the two variants, respectively. 19:34:11 fizzie: that simple example seems reasonable, but it won't work in particularly ridiculous contexts 19:34:15 err, regexes 19:34:19 like /foo&DELETE/ 19:34:54 the & should be able to match "DONOT", but ((?!DONOTDELETE).)* doesn't match a DONOT that's followed by DELETE 19:35:22 fizzie: oh, okay 19:35:31 FireFly: Which wasn't all that bad, I guess. 19:40:00 callforjudgement: I guess that's true. I was trying to avoid the problem of anchored (?!.*DONOTDELETE).* that, for something like /foo&bar.*/, it wouldn't match "fooXXXbarDONOTDELETE", even though it should. 19:41:05 the (?:[^D]|D(?:[^O]|O(?:[^N]|N … ))).* solution definitely works, and is also maximally fast, but very verbose 19:41:18 err 19:41:26 (?:[^D]|D(?:[^O]|O(?:[^N]|N … )))* 19:44:29 hmm, I wonder if that can be abbreviated using (?>) 19:45:20 What is (?>) ? 19:45:32 (?>DONOTDELETE(*COMMIT)(*F)|.)* might work 19:45:59 FireFly: you can't backtrack into the internals 19:46:27 if it matches one way, it's never considered to match a different way 19:46:40 actually, on 19:46:42 *no 19:46:48 that construct has the same issue as one of fizzie's 19:48:15 doesn't match /a&DELETE/ against "aDONOTDELETE" 19:49:24 Huh, strange. I tried to expand it out, and what I got -- (?:[^D]|D(?:[^O]|O(?:[^N]|N(?:[^O]|O(?:[^T]|T(?:[^D]|D(?:[^E]|E(?:[^L]|L(?:[^E]|E(?:[^T]|T[^E]))))))))))* -- works separetely, but not in that benchmark I mentioned. I must be doing something wrong. 19:51:21 -!- MindlessDrone has quit (Quit: MindlessDrone). 19:52:40 -!- Slereah_ has joined. 19:53:23 fizzie: that doesn't work 19:54:45 -!- Slereah__ has quit (Ping timeout: 248 seconds). 19:55:01 fizzie: After adding ^ and $ around, it fails to match D; whenever you have a [^x], you also need to match the empty string ($). But even that is not enough; consider DDONOTDELETE. (The DD part matches D[^O]) 19:55:40 callforjudgement: oh 19:55:55 int-e: oh, right 19:56:00 that suggestion was mine 19:56:10 but I use it to exclude a string at the /start/ of a match 19:56:15 I forgot it wouldn't work repeated 19:57:45 -!- Phantom__Hoover has quit (Quit: Leaving). 19:59:47 I have now ended up with ^([^D]|D(D|.D|..D|...D|(ONOTD)+(D|.D|..D|...D|E...D))*($|[^DO]|O$|O[^DN]|ON$|ON[^DO]|ONO$|ONO[^DT]|ONOT(DONOT)*($|[^D]|D$|D[^OED]|DO$|DO[^ND]|DON$|DON[^OD]|DONO$|DONO[^TD]|DE$|DE[^LD]|DEL$|DEL[^ED]|DELE$|DELE[^TD]|DELET$|DELET[^ED])))*$ 19:59:51 which might be correct. 20:00:06 (at least the corresponding DFA looks plausible) 20:00:13 -!- Slereah__ has joined. 20:01:09 When will they make the GNU BLISS compiler? Did they do it yet? 20:01:17 Is there a good reason why there isn't prettier syntax for "a series of characters not including the substring X"? 20:02:12 I guess translating it to a DFA is tricky 20:02:17 regular expressions have a direct translation to nondeterministic finite automata; the complement is expensive on NFAs. 20:02:34 Perl regular expressions don't have a NFA translation, though. 20:02:59 -!- Slereah_ has quit (Ping timeout: 240 seconds). 20:07:05 I did also try out (.*)(?(?{ $1 =~ /DONOTDELETE/ })(*FAIL)) which worked as a drop-in .* in some contexts but not all; it has some backtracking-related subtlety I missed, I'm sure. 20:08:48 (It's conceptually pretty simple; "after capturing the .* FAIL this branch if the contents contain DONOTDELETE". But maybe there's something about $N inside the (?{..}) condition. Or maybe it's the inner regex.) 20:15:10 -!- augur has joined. 20:17:39 -!- Bike_ has joined. 20:17:45 -!- Bike has quit (Ping timeout: 272 seconds). 20:20:56 hi Slereah__ :P 20:27:00 -!- augur has quit (Read error: Connection reset by peer). 20:27:26 -!- augur has joined. 20:32:19 -!- tromp has quit (Remote host closed the connection). 20:32:55 -!- tromp has joined. 20:36:54 -!- callforjudgement has changed nick to ais523. 20:37:45 -!- tromp has quit (Ping timeout: 272 seconds). 20:38:27 -!- namaskar has joined. 20:38:34 -!- Slereah__ has quit (Read error: Connection reset by peer). 20:38:53 -!- Slereah_ has joined. 20:39:56 -!- andytoshi has joined. 20:41:30 -!- conehead has joined. 20:42:09 int-e: regex of the day award 20:42:20 -!- augur has quit (Remote host closed the connection). 20:42:56 fizzie: R E G E X C E P T I O N 20:43:14 -!- Slereah__ has joined. 20:44:29 -!- Bike_ has changed nick to Bike. 20:44:44 -!- oerjan has joined. 20:47:02 -!- Slereah_ has quit (Ping timeout: 264 seconds). 20:48:29 -!- Slereah_ has joined. 20:50:38 -!- Slereah__ has quit (Ping timeout: 264 seconds). 21:07:47 it's the regexception to the rule 21:08:58 fizzie: yeah it won't work as a drop-in replacement for .* because it looks ahead all the way to the end. but maybe the first one will? <-- not always 21:09:31 e.g. if you have a regexp like .*ELETE you cannot do that replacement for .* 21:09:54 because it would fail for the whole string being DONOTDELETE 21:10:22 I think that came up a bit later 21:10:23 i.e. you want something where the lookahead is also restricted to be inside the .* 21:10:27 oh ok 21:27:43 -!- augur has joined. 21:27:51 -!- augur has quit (Remote host closed the connection). 21:28:28 -!- augur has joined. 21:43:28 -!- Bike has quit (Ping timeout: 245 seconds). 21:44:12 -!- augur has quit (Quit: Leaving...). 21:48:11 -!- ais523 has quit. 21:50:05 -!- boily has quit (Quit: newYear :: Chicken -> Horse). 21:50:08 -!- metasepia has quit (Remote host closed the connection). 21:57:36 Oh wow, someone combined Occulus Rift with Razor Edge. Neat. 21:57:54 I guess it was just a question of time. 22:12:26 -!- int-e has quit (Quit: leaving). 22:12:39 -!- augur has joined. 22:12:48 -!- int-e has joined. 22:28:26 -!- AnotherTest has quit (Ping timeout: 264 seconds). 22:29:54 -!- Slereah__ has joined. 22:31:54 -!- Slereah_ has quit (Ping timeout: 252 seconds). 22:34:57 -!- aergus has joined. 22:42:00 -!- trout has changed nick to variable. 22:42:01 -!- variable has changed nick to constant. 22:42:21 Now I have added the new HWPL commands: DELIMIT, ENUMERATION, DIAGRAM, DURING, DURING NOT, LOWER, RAISE, GOTO, NEXT 22:43:38 DELIMIT and ENUMERATION are used for macros, while the others are used for state machines. 22:48:22 Now I added the ALWAYS command, but it isn't like the ALWAYS command in Verilog. 22:53:50 -!- andytoshi has left ("WeeChat 0.4.2"). 23:14:16 -!- nisstyre has joined. 23:22:33 -!- oerjan has quit (Quit: nite).