←2014-02-07 2014-02-08 2014-02-09→ ↑2014 ↑all
00:06:35 -!- Sgeo has joined.
00:06:41 -!- aergus has joined.
00:06:42 -!- conehead_ has quit (Ping timeout: 276 seconds).
00:06:55 -!- shikhin has joined.
00:10:41 -!- Frooxius has quit (Ping timeout: 245 seconds).
00:10:50 -!- conehead__ has joined.
00:21:38 -!- tromp_ has joined.
00:29:09 <shachaf> Sgeo: are you Sgeoing #haskell
00:30:07 <kmc> what does that mean
00:30:11 <kmc> fungot: do you Sgeo?
00:30:12 <fungot> kmc: but flaming people for poor spelling grammar also bad. the only other language i can speak english, you make macro writers list all the classes?
00:30:20 <kmc> `coins
00:30:22 <HackEgo> byyocoin attscoin spachellcoin tectdiscoin cccxxicoin imperdecoin velycoin bitumcoin agacoin waibcoin antcoin auracoin regxcoin unpliamenteuroschcoin shakrusolcoin rhotocoin aniccoin mibbcoin devilcoin ificidicacicoin
00:30:38 <kmc> `coins
00:30:41 <HackEgo> houcoin affmancoin 5-logcoin lolcoin ozonecoin nonotcoin backcoin sendsoncoin eningcoin ethcoin bracoin bijcoin beasepcoin mdpncoin fromageddendstuckcoin avrllercoin kickcoin bayfelycoin broofcoin longiorsestantcoin
00:31:04 <kmc> `run wc -l /usr/share/dict/words
00:31:05 <HackEgo> wc: /usr/share/dict/words: No such file or directory
00:31:07 <kmc> :/
00:31:59 <kmc> `ls /usr/share/dict
00:32:00 <HackEgo> No output.
00:34:05 <shachaf> kmc: did you know you can apt-get install wamerican-insane to get a big words list
00:34:46 <kmc> preschoolercoin shittycoin illegalcoin brassierecoin stupefyingcoin profanitycoin liquorcoin aggravationcoin ragcoin slaphappiercoin metamorphiccoin execrablecoin flabbergastcoin
00:35:13 <kmc> chuckholecoin confidentialcoin kismetcoin matinéecoin numeracycoin ignorancecoin linoleumcoin
00:35:54 <kmc> shachaf: yes
00:36:12 <ion> unpliamenteuroschcoin
00:41:40 <ion> diff /usr/share/dict/foo{-insane,} | sed -nre 's/^< (.*)/\1coin/p'
00:43:37 -!- aergus has quit (Quit: Leaving).
00:43:59 <ion> Does HackEgo have any dict files?
00:44:14 <quintopia> b_jonas: i have one of smullyan's books where he defines one of those languages. i should put it on the wiki
00:45:24 <quintopia> oerjan: that's a pretty cool pattern, but in order to get a tag system, we need it to arrive at the front of the queue in the right orientation. is that easy?
00:46:28 <ion> % diff /usr/share/dict/american-english{-insane,} | sed -nre 's/^< (.*)/\1coin/p' | shuf | head -n 20 | xargs -d'\n'
00:46:30 <ion> breathalyzescoin erythrenecoin illimitability'scoin intercirculationcoin Lepismatidaecoin Pleurotomaria'scoin Tachyglossidaecoin sheepfacednesscoin Kapwepwe'scoin micturatedcoin indeterminationscoin brachycephalism'scoin scarpettocoin furoscoin coadministrationscoin oxheadscoin flemitcoin sphenoturbinalcoin Bacocoin Celisse'scoin
00:47:15 <ion> The first Google result: To view the definition of sphenoturbinal[1], activate your Merriam-Webster Unabridged Dictionary FREE TRIAL now!
00:47:16 <kmc> egrep '^[a-z]*[a-rt-z]$'
00:47:28 <kmc> micturatedcoin nice
00:47:32 <ion> Gee, i surely will do that instead of reading it directly from the second Google result.
00:48:26 <oerjan> quintopia: what do you mean by right orientation?
00:48:34 <kmc> and what does that regex do exactly?
00:48:35 <Bike> Tachyglossidaecoin.
00:48:55 <kmc> ion: oh, xargs -d'\n' is really handy! thanks
00:49:29 <shachaf> so handy that one might wonder why it's not the default
00:49:33 <ion> kmc: Also: xargs -a <(some command) -d'\n' foo when you don’t want to break foo’s stdin.
00:49:45 <kmc> sulphurcoin aristocracycoin steamiestcoin exploitcoin bloatedcoin allegorycoin vicaragecoin dullestcoin
00:50:15 <kmc> speaking of words and letters and shit, https://twitter.com/anagramatron
00:51:20 <oerjan> quintopia: i'd imagine the actual structure of the whole queue to consist of these patterns, except for a few "active" blocks.
00:51:49 <oerjan> and those blocks would be responsible for synchronizing at their ends, naturally.
00:52:20 <oerjan> unless they want to activate the data inside one of these patterns, in which case they'd delete the prefix and possibly more.
00:52:24 <quintopia> oerjan: i'll have to study it to see what it does. right now i have to watch the opening cermonies :P
00:52:54 <ion> kmc: It took me a while to get it.
00:54:50 <ion> Pro tip: don’t try to analyze the retweets in isolation.
01:04:27 <kmc> available in a different format here http://anagramatron.tumblr.com/
01:09:15 <Sgeo> I should implement Braintrust in Racket
01:09:31 <Sgeo> Since I can include the Racket compiler in the compiled program
01:09:50 -!- eliudLl24 has joined.
01:10:09 <Sgeo> Should be able to avoid needing to actually have Racket, and effectively have Braintrust compile directly to machine code
01:10:28 <Sgeo> Or... err, Racket bytecode + Racket interpreter? Not sure how it works
01:11:02 <eliudLl24> Hello
01:11:30 <eliudLl24> :'(i ave a problem :'(
01:11:36 <eliudLl24> have*
01:11:49 <kmc> `relcome eliudLl24
01:11:50 <HackEgo> eliudLl24: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: <http://esolangs.org/wiki/Main_Page>. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
01:12:14 <eliudLl24> ._.
01:12:29 <eliudLl24> Haha!
01:12:32 <eliudLl24> XD
01:13:51 -!- eliudLl24 has left.
01:20:37 <kmc> welp
01:21:08 <kmc> contraceptioncoin dairycoin arrogantcoin jerkincoin
01:23:22 <shachaf> jerkcitycoin
01:23:37 <ion> I’ll buy 10000
01:25:53 -!- ggherdov has quit (Ping timeout: 265 seconds).
01:29:16 <oerjan> kmc: real words seem so passé for this
01:29:39 <oerjan> `coins
01:29:40 <HackEgo> geolbecoin nppcoin ardbarcoin ihaxcoin poblidcoin 350coin piecescoin chorreloecoin redcoracoin moncoin flumpaislmcoin brecoin frefcoin tagelpmencoin comcoin nunnytcoin flivitcoin nsomcoin mjicoin 272coin
01:29:54 <oerjan> ihaxcoin, clearly
01:29:59 <Bike> numbers now huh
01:31:48 <Taneb> I'm now treasurer of my uni's CS society help
01:33:58 <kmc> Taneb: are you the Taneb in #rust?
01:34:16 <Taneb> kmc, yes
01:34:28 <Taneb> Are you the kmc in #rust
01:34:36 <Taneb> Is FreeFull the FreeFull in #rust
01:34:37 <Taneb> help
01:34:47 <kmc> yes
01:34:51 <kmc> we have a nice #esoteric contingent there
01:34:59 <FreeFull> Taneb: I am
01:35:05 <Taneb> :D
01:35:06 <kmc> lifthrasiir sometimes
01:35:27 <Taneb> I tried to push myself to learn it after I accidentally convinced some of my friends to learn it and they started asking me questions
01:35:27 <shachaf> a nice #esoteric contingent and a grouchy #esoteric contingent
01:35:29 <shachaf> (that's me)
01:36:50 <kmc> haha
01:36:54 <kmc> Taneb: awesome
01:37:08 <kmc> Taneb: that's like how I convinced Sgeo to learn Kernel
01:37:23 <Taneb> :D
01:37:34 <kmc> except I still don't know Kernel
01:37:43 <Taneb> Kinda like me with Rust
01:37:46 <Bike> "so, not like it, really"
01:37:57 <FreeFull> Taneb: I told my friend not to learn it until it hits 1.0
01:38:03 <FreeFull> Rust, that is
01:38:09 <Taneb> One of these friends is writing a GNU Chess Twitter bot
01:38:11 <Taneb> In Rust
01:38:27 <kmc> FreeFull: well it's not like the concepts behind ownership, lifetimes, etc. will change
01:38:36 <kmc> it's not too early to learn those
01:38:40 <FreeFull> kmc: True, but stuff is still changing
01:38:47 <kmc> just don't expect the code you write to actually compile in a month :)
01:38:52 <FreeFull> Error handling and such
01:38:58 <kmc> yeah. it's too early to learn the std lib really
01:38:58 <Taneb> I'm confused about the different kinds of pointers but I really just need to sit down and learn them
01:39:16 <FreeFull> Taneb: Only three kinds I think
01:39:32 <Taneb> It's 20 to 2 in the morning, I'm not gonna try and learn them now
01:39:33 <kmc> Taneb: managed pointers are on their way out so all we have now is owning pointers, references (formerly "borrowed pointers"), and C-style raw pointers
01:39:48 <FreeFull> C-style you should already understand
01:39:51 <Taneb> Which twiddle are managed pointers?
01:40:04 <kmc> managed is (was) @T
01:40:08 <Taneb> Ah, okay
01:40:09 -!- ggherdov has joined.
01:40:10 <FreeFull> kmc: They're not called borrowed pointers anymore?
01:40:15 <kmc> FreeFull: nope!
01:40:33 <kmc> Taneb: the syntax is deprecated in favor of a library type Gc<T>, which isn't actually GC'd yet (just refcounted) just like the old @ boxes
01:41:08 <Bike> imo, write code dependent on Gc<T> being refcounted, so that the actual later type class thing whatever has to be GcActually
01:41:52 <Taneb> By and large I like the language :)
01:42:21 <Bike> jesus i'm so rusty with C i don't remember how to declare a constant. it doesn't have const does it? do i still #DEFINE shit
01:43:02 <zzo38> C does have a const declaration, but that isn't the use for it
01:44:06 <Taneb> Still need to get the hang of it
01:44:13 <Taneb> Well, I need to get the hang of not-Haskell
01:44:15 <Bike> the use for it isn't declaring constants?
01:44:19 <Taneb> (you should see my Python code)
01:44:37 <kmc> C's const is just a qualifier on pointers
01:45:01 <Bike> goddamn it
01:45:12 <Bike> this thing has 'const std::string hw("Hello World\n");' how do i do that in C
01:45:29 <Bike> can it just be const char* hw = "Hello World\n" because that would make sense
01:45:38 <kmc> hmm is that really true though? GCC will compile "const int x = 3;" as C but is that standard?
01:46:40 <kmc> Bike: yes, or const char hw[] = "Hello World\n";
01:46:45 <FreeFull> const is a qualifier for any type
01:46:52 <kmc> which has slightly different semantics
01:47:05 <Bike> i might as well learn the array pointer distinction some time
01:47:08 <Bike> so what's the difference
01:47:18 <kmc> arrays and pointers are totally different
01:47:24 <kmc> but arrays decay into pointers in some circumstances
01:47:25 <Bike> yes.
01:47:38 <FreeFull> sizeof acts differently for arrays and pointers
01:47:54 <kmc> I got this link here but it's down now? http://mauke.hopto.org/stuff/c/array-pointer.html
01:47:58 <zzo38> Also array is declared as a storage but a pointer doesn't do that
01:48:37 <FreeFull> You can use const to declare a function that takes an array that has a minimum size
01:49:38 <Bike> i was going to use a wrapper around this library but now i'm thinking i'm so bad with C i should write in C just to unfuck myself
01:50:03 <kmc> Bike: so think of a static variable as just giving a name to some location in the binary. the «char hw[]» example gives a name to a location where "Hello World\n" is stored; the «char *hw» example gives a name to a location where a pointer (i.e. 4 or 8 bytes) to some location containing "Hello World\n" is stored
01:50:15 <kmc> if it weren't const, you could reassing «char *hw» to point to another string but not «char hw[]»
01:50:20 <Bike> ok hold on just a sec here
01:50:25 <Bike> is it static?
01:50:34 <kmc> sorry, by static i don't just mean declared with the 'static' keyword
01:50:38 <Bike> yeah i know
01:50:46 <Bike> i just... you're going to ahve to bear with me here
01:50:53 <shachaf> http://webcache.googleusercontent.com/search?q=cache%3Ahttp%3A%2F%2Fmauke.hopto.org%2Fstuff%2Fc%2Farray-pointer.html
01:50:58 <kmc> I mean anything declared with 'static' in a function or anything declared at the top level of a file, whether declared with 'static' or not
01:51:09 <Bike> static in this context means it's like, not erased by the compiler or anything
01:51:11 <kmc> i.e. variables which live at a single fixed location in the loaded binary
01:51:15 <Bike> probably something cleverer.
01:51:27 <kmc> as opposed to normal function local variables, which live temporarily on the stack
01:51:36 <Bike> ok. makes sense.
01:51:47 <kmc> this is sort of an operational view rather than a semantic one
01:51:54 <kmc> but you kinda have to learn C from both ends
01:52:01 <kmc> because the semantics don't make a lot of sense without the operational constraints
01:52:42 <kmc> anyway read shachaf's link
01:52:50 <Taneb> Goodnight, all
01:52:59 <Bike> goodnight
01:53:11 <kmc> they say the first milestone to learning C is realizing that pointers and arrays are the same, and the second milestone is realizing that they aren't the same at all
01:54:11 <Bike> so is sizeof on a pointer the size of "the pointer itself", like a word or whateverr
01:54:15 <kmc> yes
01:54:35 <kmc> on a 64-bit machine, sizeof(foo*) == 8 regardless of what type foo is
01:54:58 <Bike> so if i do char* hw = "Hello World" and sizeof it i'll get 1 or 4 or something (or uh, 8) but if i do char hw[] = "Hello World" i'll get 11?
01:55:01 <kmc> (on a typical 64-bit machine, ignoring exotic non-flat memory models and such)
01:55:13 <kmc> Bike: 12 because there's a null as well
01:55:17 <Bike> oh yeah.
01:55:21 <Bike> ok cool that makes sense.
01:55:58 <Bike> and in the second case, &hw is then the same as hw in the first case? (not counting allocation stuff or whatever, hopefully you know what i mean)
01:56:22 <kmc> Bike: &hw is the same as the result of hw decaying to a pointer, yeah
01:56:27 <kmc> of course sizeof(&hw) != sizeof(hw)
01:56:30 <FreeFull> Oh, that was static I was thinking of, not const
01:56:39 <FreeFull> void someFunction(char someArray[static 100])
01:56:40 <Bike> right
01:56:56 <kmc> gotta run, ttyl!
01:57:00 <Bike> and then if i had the hw pointer version (call it hwp) then &hwp would be a pointer to hwp, which is totally different from &hw
01:57:04 <Bike> later thanks
01:59:59 <FreeFull> int64_t hw[] = {1,2,3,4}; will give you a sizeof of 32
02:05:40 -!- oerjan has quit (Quit: nite).
02:11:26 -!- Bike has quit (Ping timeout: 246 seconds).
02:11:51 -!- Bike has joined.
02:18:01 <Bike> is ther esome constant to return from main instead of zero if i'm being incredibly anal
02:18:29 <zzo38> I don't know of any such thing
02:18:55 <Bike> you know, something like RETURN_SUCCESS that's zero on everything except the fuckutron 9000
02:19:03 <Bike> just wondering cos EXIT_SUCCESS and EXIT_FAILURE apparently exist
02:20:56 -!- augur has joined.
02:21:32 -!- augur_ has joined.
02:21:33 -!- augur has quit (Read error: Connection reset by peer).
02:29:31 -!- nooodl has quit (Quit: Ik ga weg).
02:52:33 <kmc> Bike: the return codes from main are always the same as the arguments to exit(), I think
02:52:50 <pikhq> Yep.
03:04:51 <kmc> cilantrocoin
03:04:57 -!- Frooxius has joined.
03:07:15 <copumpkin> kmc: does the name aaron todd ring a bell?
03:07:47 <kmc> maybe
03:07:49 <kmc> the nick "toddaaro" does
03:07:52 <copumpkin> yup
03:08:29 <copumpkin> he's my new officemate! he said he knew (of?) you
03:09:17 <kmc> cool
03:09:59 <Bike> good news i have more C questions
03:10:05 <kmc> hooray
03:10:10 <pikhq> And we know all of C.
03:10:22 <kmc> good news everybody!
03:10:22 <Bike> this API has a function for getting an array ("an array") of information, like a version string or suchlike
03:10:54 <Bike> the function is like get_version(size_t, char*, size_t*)
03:11:23 <Bike> and you basically have to call it twice - the first time the first two arguments are NULL or w/e and you just want the size_t pointer, which tells you the size the result will be
03:11:37 <Bike> and then you call it with the third argument NULL and the first argument the third from last time
03:11:41 <Bike> why not have two functions?
03:12:20 <shachaf> why two functions when you can have one
03:12:28 <pikhq> Is this Windows?
03:12:35 <pikhq> Sounds like Windows API design.
03:12:42 <shachaf> i've heard of windows apis doing that
03:12:51 <Bike> it's not, but the billion NULLs everywhere did give me bad memories of windows
03:13:12 <Bike> i mean, the goal is to avoid having to call malloc in the library, right, but like... bluh
03:13:38 <pikhq> I imagine the intent is that you can pass a buffer and the size of the buffer, and call a second time if you had to resize the buffer.
03:16:04 -!- Phantom__Hoover has quit (Read error: Connection reset by peer).
03:16:36 <Bike> i guess that sort of makes sense...
03:17:10 <Bike> also: this thing returns a char[] technically. can i just assume that it's null terminated? (it is with my implementation but, anal)
03:17:44 <shachaf> you mean, assume it because of the type?
03:18:00 <Bike> the type and usual conventions.
03:18:16 <Bike> i imagine it's possible to return a non-null-terminated char[], i'm just wondering if anyone does so.
03:18:22 <Bike> without saying so, anyway
03:18:40 <pikhq> It's done, but it's also pretty explicitly said.
03:18:53 <pikhq> The default assumption is that a char* is NUL terminated.
03:18:55 <shachaf> "returning a char[]" is kind of strange anyway
03:18:56 <Bike> ok. was kinda paranoid since i had the size of the string on hand and all.
03:19:20 <pikhq> shachaf: Unless the function returns a char[static 4] or something then it's just goofy.
03:19:23 <pikhq> :)
03:19:23 <shachaf> but if you're using char * strings in C they'll generally be \0-terminated, yes
03:19:54 <Bike> the api spec has "char[]". i actually have it using a char* without complaint, and i guess it's the same as a function argument anyway
03:20:27 <pikhq> Yes, in a function declaration it's just a really stupid way of writing char*.
03:20:44 <Bike> well in the decl it's a void*... you know what i'm probably not describing this well anyway http://www.khronos.org/registry/cl/sdk/1.2/docs/man/xhtml/
03:21:01 <pikhq> Oooooh, it's those idiots.
03:21:10 <pikhq> They couldn't design a good API to save their lives.
03:21:10 <Bike> are khronos known idiots
03:21:14 -!- zzo38 has quit (Ping timeout: 260 seconds).
03:21:19 <pikhq> Yes, OpenGL is horrid.
03:21:44 <Bike> it does this thing with "contexts" that i vaguely remember from opengl, in fact...
03:26:42 <pikhq> How you'd do clGetPlatformInfo in a sane way is more like: char *cl_platform_info(int id);
03:27:34 <Bike> what, no cl_int??
03:27:47 <pikhq> cl_int is evidence of brain damage.
03:28:04 <Bike> every C api i have ever used defines its own whatever_int whatever_char whatever_whatever
03:28:23 <pikhq> Yes, that is a cargo cult practice.
03:28:36 <Bike> actually, wait, i don't think memory pool system did. thanks, mps
03:28:44 <Bike> why the hell do they do that, it's so confusing.
03:28:53 <Bike> i'm pretty sure i've asked this before.
03:29:09 <pikhq> I have no idea why it's done, I just know that it has literally no value.
03:30:09 <Bike> hmmmmm mps sorta does it
03:30:09 <pikhq> But then, zlib is claimed to be a good library. Which is saddening.
03:30:12 <Bike> "A transparent type is an alias defined using typedef, and this is documented so that the client program can rely on that fact. For example, mps_addr_t is a transparent alias for void *. Transparent types express intentions in the interface: in the case of mps_addr_t it represents a pointer that is under the control of the MPS."
03:30:51 <Bike> which seems kind of weird still, but at least there's no mps_int_t.
03:30:56 <pikhq> I disagree with that choice, but that is at least someone being reasonable.
03:31:18 <pikhq> Except that library does not strictly conform to C. :P
03:31:32 <pikhq> *_t is reserved namespace.
03:31:33 <Bike> what, you can't typedef with void* or something?
03:31:35 <Bike> oh.
03:31:46 <Bike> well, whoops, that's all over the place.
03:32:12 <pikhq> Yep. That too is cargo culted from people seeing it in libc a lot.
03:32:12 * Bike glances through other api docs, finds plenty of size_t and va_list at least
03:32:23 <pikhq> Where it's used a lot *because it's reserved for libc*.
03:32:29 <Bike> heh.
03:33:14 <pikhq> The point is, you can't make your own types ending in _t. Because that's reserved.
03:33:34 <Bike> right, sure.
03:33:40 <Bike> it seems like a weirdo hungarian thing, i guess.
03:34:14 <pikhq> More a "C has no namespacing whatsoever" thing.
03:34:15 <Bike> when i first started programming i tried a lot of C but never quite understood it because of things like this that are never explained. being a programmer in that sort of environment seems demoralizing.
03:34:44 <pikhq> This is largely a matter of no good books on the subject existing.
03:35:02 <Bike> admittedly Learn C in 24 Hours wasn't the best choice on my part
03:35:04 <Bike> :p
03:35:10 <pikhq> Because many C programmers learned C from cargo culting in the 80s.
03:36:31 <monotone> I started learning C by writing programs that crash a lot. I still haven't left that phase.
03:37:39 <Bike> pikhq: so with your sane way - that means the cl library handles the malloc-ing?
03:38:07 <pikhq> No. It returns a pointer to a fixed, constant buffer in the library.
03:39:26 <Bike> oh, i see. i don't think it's necessarily that fixed though.
03:39:37 <Bike> anyway, i just noticed these Get functions are allowed to return OOM codes anyway.
03:39:47 <pikhq> *facepalm*
03:39:49 <Bike> so that's cool
03:40:02 <Bike> this is all so efficient!
03:40:20 -!- impomatic has quit (Ping timeout: 246 seconds).
03:40:55 <pikhq> Another way to handle it, if it can't be fixed or even fixed in size, is: char *cl_platform_info(char **, size_t *);
03:41:04 <pikhq> Wherein it'll call realloc for you if necessary.
03:41:34 <shachaf> that assumes a lot about how you'll be doing memory management
03:41:47 <pikhq> How so?
03:42:24 <shachaf> well, that your string will be allocated by malloc()
03:48:44 <Bike> hm, in this case the cl_uint etc. thing might be justified, since cl defines a C-ish language for devices that aren't the host, so uint on the host may not be the device's uint, so they call the latter cl_uint
03:48:51 <Bike> except there's no way the device is calling these functions.
03:54:17 <kmc> "we can expect internal chip speeds to increase by a factor of approximately 13 overall up to 2012, when the clock rates reach about 10GHz"
03:54:37 <Bike> :o
03:54:50 -!- Sorella has quit (Quit: It is tiem!).
03:55:16 <kmc> C APIs have so many wacky ways to manage memory... in this sense Rust actually has *fewer* pointer types than C ;)
03:56:15 <kmc> it's just that Rust's different pointer types are checked by the compiler, rather than being something you have to hold in your head and never ever screw up or you get pwned
03:57:21 <kmc> Bike: ooh are you using MPS?
03:57:28 <kmc> MPS seems pretty shiny
03:57:39 <Bike> no, it's just what comes to mind when i think of "C API that i can remotely understand"
03:57:52 <kmc> ok
03:57:53 <Bike> would be nice to have to use it
04:03:00 <Bike> hm this thing says a return value can be "a combination of" a bunch of opaque constants
04:03:19 <kmc> ;_;
04:03:25 <kmc> they probably mean a bitwise OR
04:03:33 <Bike> probably
04:03:41 <Bike> but who knows
04:04:14 <Bike> "Currently supported values are one of or a combination of: CL_DEVICE_TYPE_CPU, CL_DEVICE_TYPE_GPU, CL_DEVICE_TYPE_ACCELERATOR, CL_DEVICE_TYPE_DEFAULT, a combination of the above types, or CL_DEVICE_TYPE_CUSTOM. " kinda redundant actually
04:07:52 <Bike> cool gcc doesn't recognize CL_DEVICE_TYPE_CUSTOM, maybe i can "file a bug"
04:09:46 <Bike> hey sweet these things have popcnt. finally good news.
04:10:08 <Bike> even the GPU. what's a GPU do with popcnt? hell if i know but i'm excited to find out.
04:11:39 <Bike> i wonder if pikhq would like the thirty lines beginning with "typedef cl_uint"
04:12:14 <Bike> "WARNING! Unlike cl_ types in cl_platform.h, cl_bool is not guaranteed to be the same size as the bool in kernels." what's the point of anything life is meaningless
04:27:48 <quintopia> I ran all resplicate sequences of the form 6 3 10 1 62 n 1 for all odd numbers up to 500 and classified them according to what they did long-term.
04:28:19 <quintopia> turns out 6 3 10 1 6 2 459 1 is a period 9808 oscillator
04:28:26 <quintopia> (or rather, becomes one)
04:28:38 -!- conehead has quit (Quit: Computer has gone to sleep.).
04:31:26 -!- shikhin has quit (Ping timeout: 246 seconds).
04:39:17 <Sgeo> Should I be concerned that a Racket dev is pointing to node.js as an example of why I shouldn't complain about something that Racket does?
04:39:28 <kmc> yes
04:39:39 <Sgeo> In the sense of 'it worked for node.js, it would work for us'
04:40:21 <Sgeo> http://www.reddit.com/r/Racket/comments/1w88rq/social_solution_to_a_technical_problem/cf9vy4g?context=3
04:40:52 <kmc> well ok
04:41:21 <kmc> slightly ironic because of the multi-year fight over who gets to be "node" in Debian
04:42:36 <quintopia> and 6 3 10 1 6 2 383 1 converges to the 688-twos oscillator after 42,118 cycles.
04:42:52 <quintopia> METHUSELAH
04:45:05 <Sgeo> kmc: port syntax-parse to Rust
04:45:14 <kmc> no u
04:45:29 <Sgeo> Hmm, I wonder if Racket's syntax-parse, when told that something is an expression, will expand it to check
04:46:11 <Sgeo> Also, I want to write a more hygienic syntax-quasiquote
04:59:04 -!- tromp_ has quit (Remote host closed the connection).
04:59:39 -!- tromp_ has joined.
05:02:28 <Sgeo> kmc: that thing you linked me. Haven't watched yet, but I assume it's intended to be if the language has already been implemented, and starting from scratch things could have been done differently, this wouldn't be needed?
05:04:11 -!- tromp_ has quit (Ping timeout: 260 seconds).
05:09:07 <kmc> i don't know
05:14:34 -!- w00tles has joined.
05:17:18 <Sgeo> kmc: should I be twitching in discomfort at a templating system that picks up on the lexical environment of the include-template?
05:18:01 <kmc> ask your doctor if you should be twitching
05:22:44 <monotone> If it's anything like the feeling I get when I pass locals() to a Django template...
05:22:52 <Bike> D:
05:23:48 <kmc> monotone: obviously the template code should be rewritten to use the 'inspect' module to read its caller's locals implicitly
05:23:51 <kmc> :D :D :D
05:24:53 <monotone> "Anything that makes us more like PHP has to be good, right?"
05:26:15 <Bike> sinners, sinners, i'm surrounded by iniquity
05:26:44 <monotone> It's not too late to renounce the material world and become a monk!
05:27:15 <monotone> Actually, no, I think Perl ruined that one.
05:27:36 <monotone> Bike: Yeah, you're screwed.
05:27:53 <Bike> what else is new
05:30:28 <monotone> The Winter Olympics?
05:31:21 <Bike> they've been having those forever.
05:31:34 <Bike> i need something fresh!!
05:35:30 <monotone> I feel like you won't be satisfied with anything but the blood of the innocent.
05:35:46 <Bike> well obviously
05:37:17 <monotone> You'll have to ask kmc for that.
05:40:43 <Bike> kmc what's the market price of innocent blood
05:49:32 -!- luserdroog has joined.
05:52:43 <kmc> jeez it's so hard to get ever since silk road shut down
05:53:45 <kmc> only since 1924, that's hardly "forever"
06:00:02 <Sgeo> I should try Light Table
06:00:21 <Sgeo> If I'm willing to like Smalltalk merely because of the IDE, trying a 'good' IDE for a language I once liked shouldn't be painful
06:00:29 <Sgeo> And it's not like I have new reason to dislike Clojure
06:04:00 -!- w00tles has quit (Quit: quit).
06:24:04 <Bike> i should have known "typedef intptr_t cl_context_properties" wasn't going to end well. it ended with clCreateContext({CL_CONTEXT_PLATFORM, (cl_context_properties)(platform[0]), 0}, ...)
06:24:48 <Bike> btw cl_uint isn't a mere unsigned int, it's actually unsigned __int32
06:40:06 <kmc> indiscretioncoin grittiercoin cockamamiecoin weepcoin manslaughtercoin gloamingcoin kebabcoin yawncoin snackcoin spaghetticoin
06:41:04 -!- Tritonio1 has joined.
06:44:15 -!- Tritonio has quit (Ping timeout: 272 seconds).
06:44:20 <Bike> weepcoin sounds useful and fun
06:46:39 <kmc> you mine weepcoins by weeping
06:46:50 <Bike> shit i'm way ahead of the market
06:46:55 <shachaf> imo hugcoin
06:48:54 <kmc> Matthew Green's rationale for launching Zerocoin as a new currency: "If people will put money into Dogecoin, they’ll put it into anything"
06:54:56 <Sgeo> Which is a more entertaining read, The Reasoned Schemer, or Purely Functional Data Structures?
06:55:34 <Bike> i recommend some karel čapek.
06:55:34 <kmc> i think the former is more entertaining but i care more about the results in the latter
06:56:20 <shachaf> if your goal is entertainment there are also other books you could read that would satisfy it even better
07:33:58 -!- luserdroog has quit (Ping timeout: 245 seconds).
08:11:29 <kmc> kalecoin
08:13:58 -!- mtve has quit (Ping timeout: 250 seconds).
08:16:49 <fizzie> `coins
08:16:50 <HackEgo> rflcercoin percoin 90pcoin demcoin 3trecoin rtnencoin um-32coin sheavoignacoin cystoccoin undennecoin goto++coin vernankcoin wildcoin rssbcoin fortcoin chrcoin iotcoin gagnacoin tace1.0coin spartneratemlcoin
08:17:06 <fizzie> 90pcoin, the cryptocurrency for the 90%.
08:19:49 <augur_> elliott_________: this seems like something you'd like: http://dorrismccomics.com/post/6384447758
08:32:16 <Sgeo> https://pbs.twimg.com/media/Bfut4WoCQAAdY3o.jpg
08:33:40 <Bike> "If the Perl 5 interpreter source were lost, I'm pretty sure we as a species could not accurately recreate it."
08:34:11 <Bike> Sgeo: heh.
08:40:37 <fizzie> http://www.afterdawn.com/news/article.cfm/2014/02/07/finnish_police_probe_wikipedia_donation_requests that'll teach them
09:28:48 -!- MindlessDrone has joined.
09:29:40 -!- MindlessDrone has quit (Changing host).
09:29:40 -!- MindlessDrone has joined.
09:40:56 -!- Phantom_Hoover has joined.
09:59:53 -!- oklopol has joined.
10:14:18 -!- mtve has joined.
10:15:10 -!- Bike has quit (Ping timeout: 252 seconds).
10:15:15 -!- conehead has joined.
10:19:26 <Sgeo> Why am I installing EiffelStudio?
10:25:41 <elliott_________> why are you asking us
10:31:55 -!- Bike has joined.
10:54:14 -!- conehead has quit (Quit: Computer has gone to sleep.).
11:11:06 <ion> http://imgur.com/gallery/nfRsdYe
11:29:00 -!- Sorella has joined.
12:15:25 -!- shikhin has joined.
12:30:38 -!- Sellyme has quit (Excess Flood).
12:32:04 -!- Sellyme has joined.
12:53:39 -!- Tritonio1 has quit (Ping timeout: 260 seconds).
12:56:31 -!- Tritonio has joined.
13:09:26 -!- yorick has joined.
13:14:39 -!- MoALTz has quit (Ping timeout: 260 seconds).
13:16:13 -!- itsy has joined.
13:20:26 -!- MoALTz has joined.
13:24:05 -!- oerjan has joined.
13:32:22 -!- MindlessDrone has quit (Quit: MindlessDrone).
13:34:43 -!- MoALTz has quit (Ping timeout: 260 seconds).
13:37:40 -!- MoALTz has joined.
13:38:44 <ion> Breaking Baryons http://youtu.be/eI91bT-p5Oc | Desperately Seeking Susy http://youtu.be/3vM5u3VT_WE
13:42:15 <oerjan> Got my Heart on a String
13:46:32 -!- MoALTz has quit (Ping timeout: 246 seconds).
13:57:04 -!- nooodl has joined.
13:59:54 -!- tromp_ has joined.
14:04:17 -!- tromp_ has quit (Remote host closed the connection).
14:04:52 -!- tromp_ has joined.
14:07:21 -!- oklopol has quit (Ping timeout: 245 seconds).
14:09:26 -!- tromp_ has quit (Ping timeout: 260 seconds).
14:12:14 <itsy> A Core War tournament has just been announced http://youtu.be/41GIevxobH0 (more details tomorrow)
14:47:26 -!- MindlessDrone has joined.
15:02:03 <oerjan> `unicode ELLIPSIS
15:02:04 <HackEgo> Unknown character.
15:02:20 <oerjan> `unicode HORIZONTAL ELLIPSIS
15:02:21 <HackEgo> ​…
15:08:15 <quintopia> helloerjan
15:08:49 <oerjan> hello just confirming one of your conjectures
15:09:01 <oerjan> (and making your python work)
15:09:23 <shikhin> `unicode PILE OF SHIT
15:09:24 <HackEgo> Unknown character.
15:09:27 <shikhin> Aww.
15:09:31 <shikhin> What was it called?
15:09:37 <quintopia> my local copy works perfectly!
15:09:40 <shikhin> `unicode PILE OF POO
15:09:41 <HackEgo> Unknown character.
15:10:30 <Slereah_> `unicode EGYPTIAN HIEROGLYPH E017
15:10:30 <HackEgo> ​𓃥
15:10:36 <quintopia> (probably the wiki version isn't the same as my local version. i updated them together rather than copypasting)
15:11:00 <quintopia> oerjan: which conjecture did you confirm
15:11:03 <oerjan> hm is the remainder a conjecture at all
15:11:14 <oerjan> "The family 6 3 10 1 6 2 (2k) 1 for k at least 12 always becomes an oscillator of period k-1."
15:11:50 <oerjan> just tracing it by hand, and doing the python on a couple examples to check i didn't mess up
15:14:14 <oerjan> shikhin: HackEgo has a copy of python that cannot handle all of unicode.
15:14:16 <quintopia> yeah i don't understand your proof. the last line and 6th line look nothing the same... :P
15:14:29 <shikhin> oerjan: Fix it!
15:14:48 <oerjan> 6th last line, quintopia
15:15:02 <quintopia> oh
15:15:27 <quintopia> ah yes
15:15:46 <oerjan> shikhin: too much work, especially while HackEgo is otherwise somewhat broken (but don't count on me doing it anyway)
15:16:06 <shikhin> Ah :-(
15:16:50 <oerjan> oh wait
15:17:20 <quintopia> oerjan: i ran 6 3 10 1 6 2 n 1 for all odds up to 500 and categorized the long-term behavior for each one. i can uncover no pattern.
15:18:06 <oerjan> ah.
15:19:07 <oerjan> fixed a miscounting in the description.
15:19:47 <oerjan> i somehow looked at the wrong vertical ellipsis when counting the first time
15:50:41 -!- ais523 has joined.
16:03:55 <oerjan> ais523: you might want the little resplicate building block i made
16:04:34 <ais523> oerjan: it's OK, I already proved it TC
16:04:38 <ais523> quintopia: ResPlicate's TC
16:04:45 <oerjan> yay!
16:05:42 <oerjan> (and a little aww, too)
16:07:09 <ais523> quintopia: oerjan: http://nethack4.org/esolangs/resplicate/tag-to-resplicate.pl http://nethack4.org/esolangs/resplicate/tc-proof-notes.txt
16:07:42 <ais523> tag system to resplicate compiler, notes I wrote when creating it (so you can get some insight into how I go about proving languages TC)
16:07:57 <ais523> I'm almost inspired to make a tarpit version now (which would probably be more complex than the original)
16:08:06 <ais523> resplicate has a whole bunch of capabilities that aren't particularly useful
16:08:57 <ais523> btw, that compiler uses -1 for cells that never execute
16:09:06 <ais523> I'm not sure if that technically complies with the language definition
16:09:21 <oerjan> it does not
16:18:02 <ais523> you can just substitute any other number, though
16:18:08 <ais523> let me go change it
16:19:22 <ais523> OK, now it uses 523
16:21:00 <ais523> oerjan: actually the TCness proof was pretty routine
16:21:12 <ais523> there was only one difficult bit, remembering where the IP was after copying the alphabet
16:22:13 <ais523> also that interp's got a lot more complex overnight
16:22:55 -!- zzo38 has joined.
16:36:06 <oerjan> hm reading your .txt, i think the part about being allowed to copy misaligned alphabets is important for being able to perform a command in a single pass of the queue, which is also alas why you won't be needing anything like the nice building block i made
16:36:32 <ais523> oerjan: I feel like there may be some complex solution that doesn't require misaligned alphabets
16:36:52 <ais523> but there's not much point, because resplicate isn't really a tarpit, it has a whole range of different things you can do
16:37:20 <oerjan> my vague thoughts (which i tried not to think _too_ much about since i knew you were working on it) was that you'd need a second pass through to clean up afterwards, which is why i thought such a "stabilizer" was needed when you went through the rest of the queue
16:38:16 <oerjan> and also i was thinking cyclic tag instead, which i now realize is more complicated.
16:38:41 <oerjan> (because you have state that needs to be passed on)
16:39:35 <oerjan> s/you have/cyclic tag has/
16:40:22 <ais523> cyclic tag is basically one of the simplest models for "the program and data are separate" models
16:40:40 <ais523> if you have to mix them up, then you can use tag, which basically just needs a queue and a lookup table
16:40:53 <ais523> lookup tables are awkward in many languages, but pretty easy in ResPlicate
16:41:26 <oerjan> right
16:44:06 <ais523> so the only tricky issue in ResPlicate is trying to distribute copies of the lookup table where you need them, while not losing track of what you're doing in the process
16:56:30 <ion> http://www.theonion.com/articles/newly-tenured-professor-now-inspired-to-work-harde,35169/?utm_source=butt&utm_medium=butt&utm_campaign=butt
17:00:13 <ais523> what's with all the key=butt in the query string?
17:01:19 -!- oerjan has quit (Quit: You should get to the bottom of this).
17:01:30 <ion> ais523: It had some more boring tracking information but i fixed it.
17:01:44 <ais523> ah right
17:02:15 <int-e> why didn't you delete it though...
17:02:46 -!- MoALTz has joined.
17:03:53 <ion> int-e: That would result in a lack of butts in some httpd log.
17:04:14 <ion> Hah. Try uploading a file that is not an image. http://i.srsfckn.biz/
17:05:49 <int-e> colorful.
17:06:24 <int-e> it doesn't like .xpm
17:06:25 <int-e> sniff.
17:07:24 <int-e> or windows bitmaps. is it jpg and png only?
17:08:11 <zzo38> curl: (26) failed creating formpost data
17:08:37 <zzo38> What happen if the file has extra data on the end?
17:08:40 <int-e> oh, gif, too.
17:09:18 <zzo38> Nevermind I figured out the problem
17:10:43 <int-e> it doesn't mind extra data.
17:12:05 <zzo38> How do I convert it into CP437 encoding?
17:13:26 <zzo38> O, I figured out I have iconv in MinGW
17:15:01 <int-e> http://i.srsfckn.biz/95.png
17:15:31 <zzo38> OK
17:20:16 -!- yorick has quit (Remote host closed the connection).
17:20:43 <zzo38> I tried uploading a ZIP archive by prepending a 1x1 PNG file and it works
17:21:59 <zzo38> http://i.srsfckn.biz/3B2.png
17:23:17 <int-e> -rw-a-- 2.0 fat 6294 b- defN 14-Feb-08 09:12 pic.ans
17:24:26 <zzo38> Yes, that is what it is done
17:25:09 <zzo38> Such a file can be unzipped even though it is uploading as PNG
17:40:11 -!- Tritonio1 has joined.
17:43:21 -!- Tritonio has quit (Ping timeout: 265 seconds).
18:04:18 <quintopia> ais523: can you make nethack4 deliver pl files with a text/plain mime type please?
18:04:31 <quintopia> i'd rather examine code in browser
18:05:04 <ais523> quintopia: hmm, is there any way to get your browser to override the MIME type?
18:05:16 <ais523> I like the current situation because then I get syntax highlighting
18:06:32 <quintopia> i don't know of any way for dolphin
18:06:48 <ais523> you use a filesystem browser as a web browser?
18:06:56 <fizzie> https://dl.dropboxusercontent.com/u/113389132/Misc/20140208-pi2.jpg <- it's a Raspberry Pi. (Well, part of it.)
18:06:58 <ais523> or are there /three/ programs called dolphin?
18:07:02 <quintopia> the mobile browser not the file system browser
18:07:17 <ais523> ok, right, there are at least three programs called dolphin
18:07:30 <quintopia> three programs...plus gamecube
18:07:47 <ais523> the gamecube emulator's named after the gamecube's codename
18:07:53 <ais523> so that isn't really surprising
18:08:16 <ais523> (I remember seeing someone complaining that their computer thought that their gamecube emulator was a file manager and kept trying to open directories in it…)
18:09:28 <quintopia> how long until gamecube emulator for mobile
18:09:59 <ais523> I'd say it'd be a while before mobile phone have enough power, a few years at least
18:10:55 <ais523> and even on PCs, gamecube emulators don't have accurate timings for reading from CD yet
18:11:04 <ais523> which completely changes the strategy for some games
18:12:45 -!- shikhout has joined.
18:13:31 <quintopia> ais523: what mime type does it actually deliver .py as? i'll search for plugins or something
18:13:36 <quintopia> *.pl
18:14:39 <ais523> Content-Type: application/x-perl
18:14:56 <ais523> sorry, had to go tell my browser to capture the HTTP headers, browsers tend not to do that by default
18:15:36 -!- shikhin has quit (Ping timeout: 245 seconds).
18:15:36 -!- shikhout has changed nick to shikhin.
18:18:25 <ais523> oh gah, now I'm thinking about the 1D MMO again
18:18:33 <ais523> that's one of #esoteric's sillier ideas
18:19:25 <fizzie> There's at least one 1D shooter, Lineality.
18:19:35 <fizzie> https://archive.org/details/Lineality
18:19:53 <ais523> hmm, in a 1D shooter, it seems quite hard to miss
18:20:00 <fizzie> (It's not online at all, though.)
18:20:11 <ais523> what sort of mechanics are used to make the shooting part interesting? you have to get the range accurate?
18:20:30 <fizzie> I don't remember. It's possible that no effort was spent to make it an interesting game.
18:21:36 <fizzie> You can select between "Width Mode", "Height Mode" and "Depth Mode", which I think control the direction of the line.
18:21:41 <fizzie> It can also optionally rotate.
18:22:58 <fizzie> Well, you get to choose the direction to shoot at, and enemies drop life.
18:23:09 <fizzie> I suppose there's some amount of strategy involved in deciding when to turn around.
18:26:55 <nooodl> an MMO on a tape would be cute
18:28:48 <Bike> do you ever feel disappointed that your gpu isn't four dimensional because i do
18:32:18 <ais523> Bike: modern GPUs are perfectly capable of doing four-dimensional calculations (then rendering them to 3D, then 2D for the screen)
18:32:28 <ais523> although the GPU itself is three-dimensional
18:32:34 <Bike> i can't have 4d work groups though
18:32:59 <ais523> however, most GPU programming languages don't let you mess around with the 5x5 matrices you'd need
18:33:00 <Bike> 256×256×256 max. tyrannical
18:33:06 <ais523> CUDA and OpenCL do
18:33:30 <ais523> oh, that's pretty minor, given that if you're creating a "256x256x256" group it's basically just concatenating the bits of the three coordinates
18:33:37 <ais523> you can just modulo them out of the block number by hand
18:33:52 <ais523> some GPUs even have shift operations nowadays
18:34:25 <Bike> but it's just not the same, man!
18:35:21 <Bike> anyway i'm going to write my first gpgpu program up in here. gonna square an array. shit yeah.
18:35:42 <ais523> Bike: oh boy, have fun
18:35:48 <ais523> we use that as a GPU optimization test for our students sometimes
18:36:00 <ais523> there are mindbogglingly high numbers of ways to screw that up performance-wise
18:36:12 <zzo38> I do think you should have support just arbitrary dimensional
18:36:15 <Bike> i was thinking about what would make a good "hello world" but matrix*vector and summing a vector both seemed too complicated
18:36:19 <ais523> like, if you write a naive matrix-squaring program, there are at least 8 optimizations you can do
18:36:50 <ais523> zzo38: basically the way it works is that the GPU can handle a limited number of "blocks" at any given time, which are basically the large scheduling units of the GPU
18:36:54 <Bike> the tutorial i'm going off of uses an actual hello world. like what, this is a fucking gpu
18:37:31 <FireFly> Does it raytrace "Hello world!"?
18:37:37 <ais523> and you want blocks to have high data locality, i.e. you want to reduce the amount of memory that each individual block accesses as far as possible
18:37:39 <FireFly> Because that seems like something that'd be sensical to do on a GPU
18:37:46 <ais523> the blocks have numbers that are just integers (typically 24-bit)
18:37:53 <Bike> no, it just has each unit put a single letter into a string
18:37:57 <ais523> but it often makes sense to interpret them as coordinates
18:38:00 <FireFly> Oh, boring
18:38:05 -!- MoALTz has quit (Ping timeout: 246 seconds).
18:38:16 <ais523> Bike: actually, GPU-accelerated memcpy is a pretty good hello world
18:38:28 <Bike> memcpy maybe, but this is a constant...
18:38:42 <ais523> yeah, I wasn't suggesting for a hello world
18:38:55 <ais523> but as a first project that isn't very difficult yet is the sort of task GPUs are actually good at
18:39:13 <Bike> i figure elementwise squaring shouldn't be hard.
18:39:15 <Phantom_Hoover> http://www.bbc.co.uk/news/uk-england-surrey-26098944
18:39:20 <Phantom_Hoover> way to not sound sinister bbc
18:39:27 <ais523> NetHack 4 uses GPU acceleration for copying rectangular areas around in video memory (and occasionally alpha-blending), that's about it
18:39:33 <ais523> yet it still helps a lot because GPUs are very fast
18:39:37 <ais523> Bike: oh, element-wise
18:39:39 <Bike> it's only taking time because the only tutorial i found is in C++ and kind of fucked up
18:39:44 <ais523> I thought you mean multiplying an array by itself
18:39:46 <elliott_________> nethack 4 uses the gpu???
18:39:48 <Bike> what were you thinking? cross product?
18:39:58 <ais523> elliott_________: only in tiles or faketerm mode
18:40:01 <Bike> also yeah i'm excited to hear even term roguelikes are high-end now
18:40:11 <elliott_________> aw I was hoping it was just for internal optimisation
18:40:18 <Bike> wait. alpha blending? what?
18:40:30 <ais523> Bike: in case it wants to draw "monster on stairs" or whatever
18:40:39 <Bike> dag
18:41:00 <ais523> conditionals are really hard to do on a GPU, turns out that alpha blending (multiplying by 1 or 0) is actually faster than using an if statement to do transparency any other way
18:41:27 <Bike> lol.
18:41:31 <ais523> or well, they're not /hard/, you can write them just fine
18:41:36 <ais523> but GPUs are not fast at evaluating them
18:41:46 <Bike> do they have any branch prediction?
18:41:53 <Bike> i doubt it but
18:42:55 <ais523> they actually /can't/ have branch prediction, the way they work, because absolutely everythig is SIMD
18:43:16 <ais523> if statements tend to be very slow unless the entire warp takes the same branch, as a result
18:43:24 <ais523> otherwise it has to process the branches separately
18:44:07 <ais523> GPUs do something that's similar in nature to branch prediction, though
18:44:07 <Bike> warp?
18:44:26 <ais523> if a block tries to access data, it'll deschedule it while it's waiting for the data to arrive from RAM
18:44:45 <ais523> a half-warp is the unit that actually runs on a GPU at once
18:45:14 <ais523> like, it has one ALU for each thread in the half-warp, they all run in perfect lock-step (sufficiently so that if you know what the GPU's warp size is, you can get away with not adding in synchronization primitives)
18:45:52 <ais523> current GPUs take one clock cycle to write the value back into block memory, so you effectively have an entire warp running concurrently
18:46:13 <ais523> GPU programming languages tend to abstract away the existence of warps, you work at the thread or block level
18:47:27 <Bike> blugh, it's going to suck figuring out how to write a kernel for the actual thing i'm writing. i'm porting it from matlab full of branches V_V
18:47:43 <Bike> and not-independent for loop iterations
18:47:50 <Bike> good time to have zero experience with concurrency
18:49:01 <zzo38> Can NetHack 4 run in text mode and not use GPU (such as if it is not available)?
18:49:36 <zzo38> ais523: There is Checkout on esolang wiki though, but no implementation (as far as I know)
18:50:37 <elliott_________> he wrote it.
18:52:04 <ais523> zzo38: it can run in text mode without the GPU
19:01:10 <ais523> some day I'd like to write a game entirely on the GPU, that sounds like it could be fun
19:03:07 <Bike> how do you do a multiline string in C again
19:03:42 <ais523> "first line\n" (put a literal newline here) "second line\n" and so on
19:04:09 <ais523> C ignores doublequote, whitespace, doublequote sequences in strings
19:04:35 <ais523> it also ignores backslash-newline sequences anywhere but that's typically a bad idea to use because that doesn't let you indent the line afterwards
19:04:46 <Bike> oh. well that's convenient
19:04:59 <zzo38> I did program a bit more of "Savant's Maze" roguelike game; now it is possible to pick up items and list them in your inventory. However, a curse affects all items of the same kind so if you have a cursed scroll of knight move and pick up an uncursed one, that one will become cursed too, or if you have an uncursed one and pick up a cursed one, both will become cursed.
19:05:48 <ais523> doing a backslash-newline in the middle of a keyword is typically frowned on
19:06:24 <Bike> lol
19:20:35 -!- trout has quit (Quit: I found 1 in /dev/zero).
19:21:34 <ais523> I think the backslash-newline thing was invented for the same reason as trigraphs, so that you could write a very simple mechanical translator from C-code-I-found-on-Usenet (the Web didn't exist back then) to C-code-that-fits-my-machine's-text-encoding
19:21:47 <ais523> in this case, to deal with line length issues rather than character set issues
19:22:03 <ais523> back in the days of punched cards, there were literal limits on the longest lines it was possible to store in text files
19:22:07 <ais523> although, hmm
19:22:15 <ais523> I wonder if punched cards and Usenet coexisted, it seems unlikely
19:22:25 <ais523> possibly punched-card machines were still in use as Usenet were starting, but not widespread
19:27:24 <ais523> actually I think that given the design of C, the most likely explanation is that they did it like that just in case someone wanted to use it with a punched card machine at some point
19:31:22 -!- conehead has joined.
19:35:54 <FreeFull> > "\ \"
19:35:56 <lambdabot> ""
19:42:58 <ais523> FreeFull: interesting use of backslashes
19:43:05 <ais523> what happens if you put stuff other than whitespace in between them?
19:43:16 <FireFly> ais523: what about in comments?
19:43:27 <FireFly> backslash-newline in C, I mean
19:43:34 <ais523> FireFly: you can backslash-newline inside comments, including // comments
19:43:39 <FireFly> Nice
19:43:43 <ais523> this is a great way to troll people, I think gcc warns about it nowadays
19:43:49 <FireFly> Well, maybe "nice" is not the right word
19:43:51 <ais523> you can also backslash-newline between the / and * or * and /
19:43:58 <ais523> but it's quite hard to make that look like an accident
19:44:20 <FreeFull> > "\ a \"
19:44:21 <lambdabot> <hint>:1:6:
19:44:22 <lambdabot> lexical error in string/character literal at character 'a'
19:45:08 <FireFly> I imagine you could camouflage it in line comments doing something like /// this is a comment \\\
19:45:09 <ais523> it'd be fun, although kind-of pointless, if strings allowed comments in them
19:45:25 <ais523> in C you can do that using "hello "/* this is a comment */"world"
19:45:56 <ais523> because comments are transformed to whitespace before string literals are concatenated
19:49:33 <kmc> it's even better with trigraphs
19:49:36 <kmc> // Will the next line be executed????????????????/
19:49:36 <kmc> a++;
19:51:18 <Bike> more C questions. i have a const char[] source at toplevel. in a function when i try declaring "char[][] sources = {source}" gcc tells me the element type is incomplete.
19:52:39 <kmc> you can't define an array of things whose size is unknown
19:52:53 <kmc> and the size of char[] is unknown (unlike, say, char[10])
19:53:09 <kmc> you would probably use: char *sources[]
19:53:22 <Bike> hm
19:53:25 <kmc> which is an array of char*
19:54:09 <Bike> yeah, that works (once i add a const), thanks
19:56:09 <Bike> const char *foo[] is an array of const char*, right? can i make the array itself constant (not really necessary, but)
19:58:57 <kmc> const char * const foo[]
19:59:23 <Bike> elegant
19:59:26 <kmc> it's uncommon though
19:59:28 -!- variable has joined.
19:59:45 <Bike> yeah it's pointless here
19:59:51 <kmc> people get more particular about const in C++
19:59:54 <kmc> at least in some styles of C++
20:00:15 <kmc> `which cdecl
20:00:16 <HackEgo> No output.
20:00:18 <kmc> boo
20:00:51 <kmc> well you can use it on the web here: http://cdecl.org/
20:00:54 <FireFly> C syntax is kinda weird
20:00:54 <kmc> "declare foo as array of const pointer to const char"
20:01:09 <FireFly> like, int typedef foo; being legal, since typedefs are just regular declarations
20:01:24 <kmc> FireFly: yeah
20:01:46 <kmc> it has a certain degree of internal consistency ("declaration follows use!") but it's a /bad/ rule even if there is a rule
20:02:11 <kmc> const int (* volatile bar)[64] // ;___;
20:02:11 <Bike> i had this idea that i could use {...} as a constant literal nameless array because of the initializer syntax
20:02:14 <FireFly> That part is somewhat reasonable-ish I find
20:02:14 <Bike> what a fool i was!
20:02:25 <ais523> I tried to define a function that returns pointers to arrays
20:02:31 <ais523> I'm not entirely sure if it's legal
20:02:32 <FireFly> I mean, at least it's not completely weird once you understand what's going on
20:02:42 <kmc> ais523: why not?
20:02:44 <ais523> but with declaration follows use, the resulting syntaxes are beautifully bizarre
20:02:50 <zzo38> Some new things are allowed in GNU C though
20:02:55 <Bike> "char * const (*(* const bar)[5])(int )" lol
20:03:37 <kmc> when you get types that complex the only reasonable approach is typedefs
20:03:50 <Bike> ok let me see if i can untangle it without this site
20:03:50 <ais523> let's see; function taking void, returning pointer to int[2], would be by declaration-follows-use int *(func(void))[2]
20:03:50 <kmc> lots of typedefs
20:04:22 <FreeFull> FireFly: What does int typedef foo; mean?
20:04:27 <Bike> .............
20:04:29 <Bike> ok i give up.
20:04:32 <FireFly> same as typedef int foo;
20:04:36 <FreeFull> Ok
20:04:40 <FireFly> `typedef` is just a storage specifiec IIRC
20:04:41 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: typedef`: not found
20:04:42 <FireFly> specifier*
20:04:54 <FreeFull> Ah
20:04:58 <FreeFull> So same as const and static?
20:05:15 <kmc> yeah
20:05:26 <pikhq> ais523: I think you might need to write that as "int *(func(void))[static 2]" to have it not be literally the same as returning an int**. :)
20:05:31 <ais523> cdecl translates "declare f as function (void) returning pointer to array 2 of int" to "int (*f(void ))[2]"
20:05:47 <ais523> pikhq: doesn't it returns a variably modified type anyway?
20:06:18 <pikhq> Yes, but with [static 2] it's a constraint violation to return a buffer with fewer than 2 elements.
20:06:29 <Bike> sweet, i got my segfault again
20:06:35 <Bike> woooyeah livin the dream
20:06:39 <kmc> [static 2] is a wonderfully obscure corner of C99 :)
20:06:42 <kmc> along with [*]
20:06:49 <pikhq> I'm quite fond of it. :)
20:06:51 <kmc> me too
20:06:54 <kmc> I think I learned it from you here :)
20:06:56 <FireFly> I'm not even sure what that does
20:07:00 <FireFly> well, now I am I guess
20:07:02 <kmc> int [fungot 2];
20:07:02 <fungot> kmc: i don't think you can make clumsy, kludgey workarounds. the interviewee thought it was
20:07:04 <zzo38> I do not like those features of C99
20:07:10 <pikhq> The really nice thing about [static 2] is, it even *has a point*.
20:07:20 <Bike> honestly i think i'd be happy just if [] went on the type instead of the name
20:07:27 <pikhq> zzo38: int foo[static 1] is a non-nullable pointer. :)
20:07:28 <Bike> and function pointer type syntax just... died in a hole somewhere
20:07:31 <FireFly> fungot does not approve of C99's obscure corners
20:07:31 <fungot> FireFly: i could be
20:07:39 <FireFly> fungot: make your mind up
20:07:39 <fungot> FireFly: though right now i'm putting the finishing touches on it.)
20:07:43 <kmc> it's stronger than just a non-nullable pointer
20:07:55 <zzo38> pikhq: Such thing is worthless as far as I can tell.
20:07:57 <kmc> [static 2] is a promise to the compiler, right? not anything the compiler will check for you (unless you get lucky with warnings)
20:08:01 -!- Phantom__Hoover has joined.
20:08:07 <pikhq> kmc: Right, yes.
20:08:14 <FireFly> I found a bunch of things I thought was weird when I looked through http://www.lysator.liu.se/c/ANSI-C-grammar-y.html once
20:08:30 <pikhq> [static 1] is *essentially* a non-nullable pointer though. As it guarantees it'll point to a valid buffer with at least one element.
20:08:31 <Bike> hm i think i need to queue up a read even though it's synced to host memory
20:08:32 <Bike> whatevs
20:08:38 <ais523> #include <stdlib.h>\\int (*f(void ))[2] {\ return malloc (2 * sizeof (int));\}\\int main(void) {\ int (*x)[2] = f();\ free(x);\ return 0;\}
20:08:44 <ais523> (that's a C program with \ rather than newline)
20:08:47 <ais523> does actually compile and run
20:09:02 <kmc> pikhq: it's non-nullable but it also has to point to memory which is mapped, and is of the appropriate type
20:09:15 * pikhq nods
20:09:23 <Bike> btw: in this thing there's a setup to wait for something on the event queue to finish, but you can also specify that the i/o operation you're enqueuing should block
20:09:28 <pikhq> It can't be UB to dereference it. Slightly stronger, yeah.
20:09:39 <Bike> There Is More Than One Way To Do It And They're All Kind Of Weird
20:10:27 <zzo38> Do you think the way BLISS does it is better? Nice features of BLISS are not found in C or any other modern programming languages I know of.
20:10:51 <pikhq> ais523: Yes.
20:11:03 <kmc> is C a modern programming language? it's more like a coelacanth to me
20:11:14 <zzo38> What does "coelacanth" mean?
20:11:26 -!- MindlessDrone has quit (Quit: MindlessDrone).
20:11:31 <Bike> The coelacanth is a fish famous for being "evolutionarily old".
20:11:31 -!- Phantom_Hoover has quit (Ping timeout: 245 seconds).
20:11:41 <kmc> it's a type of fish which has not evolved much in the past 400 million years
20:11:42 <Bike> the species has been "basically the same" for "a very long time"
20:12:05 <kmc> they're kinda ugly
20:12:17 <Bike> your mom
20:12:28 <kmc> welp
20:12:35 <pikhq> It's believed to be closely related with the first tetrapods.
20:12:44 <Bike> refer to previous message
20:12:52 <Bike> anyway the point is that C isn't a modern programming language, says kmc
20:13:00 <Bike> but it's still kickin'
20:13:03 <kmc> yep
20:13:08 <Bike> or not, since it doesn't have legs, just fins
20:13:11 <kmc> C will outlive the human race
20:13:28 <Bike> what, did we put it on some space probe?
20:13:35 <zzo38> And my opinion is that C99 and C11 and so on are trying to improve C in the wrong way.
20:13:52 <Bike> zzo is strongly opposed to jaws and adaptive immune systems
20:14:05 <Bike> ~biology joke~
20:14:54 <Bike> oh, i suppose coelacanths have those. boring.
20:15:26 <Bike> gonna go bunch a shark
20:15:49 <Bike> btw the way bones develop is completely insane, i see why sharks don't wanna
20:15:55 <Bike> they look like tampons with a billion eyes......................
20:16:00 <ion> :-D http://ponzi.io/
20:16:22 <kmc> ion: yeah wtf
20:16:27 <kmc> the sound of a thousand economists' heads exploding
20:16:58 <Bike> are these numbers real...
20:17:36 <Bike> "STILL WAITING TO MY 0.017728BTC FROM YESTERDAY. 3-4 TIMES WORKED FOR ME THEN GRABBED ALL MY MONEY." holy shit
20:17:39 <Bike> this is beautiful
20:17:56 <Bike> STOP INVEST IF YOU WANT TO LOOOSE YOUR MONEY!
20:18:25 <zzo38> Support for zero length arrays is a good way to improve C.
20:19:19 <Bike> ok so that amount of BTC is about twelve bucks right now
20:19:27 <Bike> makes it even better.
20:19:48 <ais523> 1BTC is such a large unit that it's hard to get a mental grasp on it
20:20:08 <ais523> I'm not clicking the link, but is that site basically a ponzi scheme that's totally upfront about it?
20:20:14 <Bike> yup.
20:20:16 <pikhq> Yes.\
20:20:23 <Bike> and it has two hundred something btc in it.
20:20:46 <Bike> if .01 btc is about twelve bucks, 1 btc is 1200 bucks. more than that cos of the other digits. that's not hard to grasp.
20:20:48 <ais523> wait, isn't that like a hundred thousand dollars?
20:21:05 <Bike> beautiful, isn't it?
20:21:13 <kmc> they've taken in about $160,000 yeah
20:21:16 <kmc> and paid out most of it
20:21:28 <kmc> because of how bitcoin works you can at least verify that everyone in the past has gotten paid back
20:21:34 <ais523> oh, I thought that's the amount they kept for themselves
20:21:41 <copumpkin> :O
20:22:00 <Bike> i kind of doubt anyone who'd set this up feels btc are worth it :p
20:22:06 <FreeFull> I wonder if I can shorten this to use fewer than 29 parts
20:22:37 <zzo38> Other thing to improve C would be to make "extern static" to be allowed, but I don't think any version of any C standard is allowing it.
20:23:11 <kmc> they have a point that this might be a money laundering scheme
20:23:15 <kmc> but not a sustainable one
20:23:25 <kmc> a typical laundry would pay back less that 100% of what you put in...........
20:24:01 <kmc> "butbuob: Show HN: Litecoin Ponzi Scheme written in Rust"
20:25:38 <kmc> zzo38: I think GCC does but I don't know if it has the semantics you want
20:25:44 <kmc> what do you think "extern static" should mean
20:26:54 <elliott_________> 1 BTC is like $700-800 now
20:26:57 <elliott_________> not $1200,...
20:27:03 <elliott_________> it hit $1200 like /once/
20:27:13 <kmc> GCC has static inline and extern inline
20:27:26 <kmc> and the traditional GCC meaning of extern inline is the opposite of the C99 meaning :(
20:27:59 <Bike> elliott_________: are you faulting my awesome math
20:29:03 <Bike> someone who was a huge jerk would point out that if .017 BTC = $12 then 1.7 BTC = $1200, and i rounded the wrong way. luckily we don't have any of those here.
20:29:48 <Bike> ugh i can't figure out why this is segfaulting
20:30:04 <kmc> did you get a backtrace from a debugger
20:30:24 <Bike> nahhhhhh just segmentation fault (core dumped)
20:30:37 <Bike> i can see what call causes it but i'm not sure what i'm doing wrong, is all
20:31:05 <kmc> well the debugger might help you determine that
20:31:22 <Bike> like... gdb?
20:34:10 <zzo38> kmc: What does GCC do with it?
20:34:10 <kmc> yeah
20:34:20 <kmc> gdb --args ./myprog whatever args
20:34:26 <kmc> then 'run'
20:34:37 <kmc> when it crashes you'll be back at the gdb prompt and you can type 'bt' for a backtrace
20:34:44 <kmc> you should also compile with -g and with no optimizations
20:35:01 <Bike> scary
20:35:07 <Bike> well i g uess i gotta learn gdb sometime
20:35:34 <zzo38> But what does "extern static" do in GCC if anything, and what are the GCC and C99 meanings of "extern inline"?
20:36:24 <kmc> zzo38: http://gcc.gnu.org/ml/gcc/2006-11/msg00006.html
20:36:42 <kmc> Bike: yeah. gdb is super fancy but knowing how to do the 5 most basic things is very useful
20:37:19 <kmc> Bike: valgrind is also very useful for debugging memory errors in C, particularly in the cases where you *don't* get a crash or the crash happens a while after the incorrect memory use
20:37:38 <Bike> well, unsurprisingly, bt shows it's two levels deep in the opaque library
20:37:42 <Bike> bluh bluh
20:38:16 <Bike> guess i'll stare at the api some more
20:39:49 <zzo38> kmc: OK, and what for "extern static"?
20:40:13 <kmc> maybe I misremember and it's not allowed
20:40:40 <kmc> yeah foo.c:1:1: error: multiple storage classes in declaration specifiers
20:40:43 <elliott_________> zzo38: what do you want extern static to do
20:40:47 <kmc> so what would your "extern static" mean?
20:41:52 <zzo38> I want it to export it but mangle it so that it doesn't interfere with other files having a function of the same name, but otherwise treat it as static
20:42:11 <zzo38> (And if the definition is not given, try to use an external one)
20:45:37 <kmc> so if there's no definition it links to the non-mangled name, but if it is defined it exports with a mangled name?
20:46:25 <zzo38> No, it uses the mangled name either way.
20:46:27 <Vorpal> So I'm in the market for a new GPU. For gaming mostly. Any recommendations wrt. Nvidia vs. AMD at this point? It doesn't matter when booting to windows, and I expect I will have to use the closed source drivers in either case under Linux for full functionality, so, which one is least shitty on Linux currently?
20:46:42 <Vorpal> I use AMD atm, and it works reasonably
20:46:58 <Vorpal> But it provides less performance than under windows in for example minecraft
20:47:39 <ais523> Vorpal: basically the situation is that Nvidia care about their Linux drivers, AMD don't; however, the official Nvidia Linux drivers are both closed-source and excessively corporate
20:47:45 <ais523> they feel like a Windows program
20:47:47 <kmc> zzo38: so the mangling scheme is documented and the user is expected to sometimes declare functions using their mangled name elsewhere?
20:47:48 <Vorpal> Hm
20:47:55 <kmc> that seems awkward
20:48:05 <elliott_________> I suspect AMD will be better for console ports in the future.
20:48:20 <ais523> there's also open source drivers for the nvidia drivers, which are missing quite a lot of functionality but otherwise work fine
20:48:22 <Vorpal> ais523, AMD is working for better open source support though, right?
20:48:31 <ais523> and nvidia have been known to help them out from time to time
20:48:46 <ais523> Vorpal: AMD's getting more open wrt source, but the drivers themselves are awful
20:48:57 <elliott_________> given that the two biggest consoles are x86 machines with AMD APUs (which also means ports from consoles in the future are likely going to be more common in general)
20:49:01 <kmc> zzo38: I do like the idea of a declaration that means "either a static in this compilation unit, or extern if none exists"
20:49:06 <Vorpal> ais523, well they are pretty stable at least, they weren't a few years ago
20:49:23 <kmc> but maybe that's already what you get by declaring extern and defining static? is that allowed?
20:49:24 <Vorpal> elliott_________, yep.
20:49:43 <kmc> nope, it isn't
20:49:53 <kmc> anyway that could be useful to have library functions which can be overridden on a per-compilation-unit basis
20:50:03 <kmc> but I don't see the point of exporting the overrides under mangled names
20:50:05 <kmc> (or at all)
20:50:15 <Bike> i have an amd gpu and the proprietary drivers were kind of a pain to install, but now that i've done it i can play hl2 smoothly
20:50:36 -!- itsy has left.
20:50:39 <Vorpal> elliott_________, why the excessive underscores btw?
20:50:44 <Bike> "pain to install" includes "i can't use xorg 15"
20:50:45 <zzo38> kmc: No you have to declare them using "extern static" elsewhere too, and then give the definition in a file. However you would need to know which file it belongs to if you want to mangle the name, so I have elsewhere wrote about a directive to do so.
20:50:52 <ais523> Vorpal: e had two and I complained
20:51:06 <ais523> you've probably just inspired em to add more
20:51:15 <elliott_________> this is the most that will fit
20:51:19 <Vorpal> Ah
20:51:22 <ais523> anyway, NVidia are probably the Apple of GPUs
20:51:31 <Vorpal> ais523, how do you mean
20:51:50 <Bike> i looked at nvidia gpus but i looked at their cuda site and holy shit is it annoying
20:51:50 <Vorpal> s/how/what/
20:51:57 <Bike> (good basis for purchases)
20:52:03 <ais523> the stuff mostly works an is high-quality, but doesn't have many user-servicable parts and you're relying on the company to keep doing updates
20:52:13 <zzo38> So, it is a way to make something like namespaces except that there is no interference with other namespaces having the same name.
20:52:15 <Vorpal> ais523, right, and AMD is what?
20:52:24 <Vorpal> Not the same?
20:52:40 <ais523> Vorpal: some weird generic brand name manufacturer you've never heard of but their stuff seems to work
20:52:52 <ais523> there are loads of them in any electronics store
20:52:57 <Vorpal> Heh
20:53:56 <fizzie> To set the record straight, while typedef indeed is ("for syntactic convenience only", C11 6.7.1p5) a storage-class specifier, and so is "static", "const" is not; it's a type qualifier instead.
20:54:51 <ais523> that's because you can put consts in the middle of an expression and they change meaning depending on where they are
20:55:05 <ais523> err, of a type
20:55:25 <fizzie> Arguably it's also because they serve different functions.
20:55:45 <Bike> i just realized something. records are circular
20:56:46 <fizzie> Vorpal: Speaking of photography, I tried to do http://en.wikipedia.org/wiki/File:RevLensMac.png today, but as I'm missing an adapter ring (the one I ordered was broken) I had to do it with a less then optimal pair of lenses, and the end results... leave something to be desired: https://dl.dropboxusercontent.com/u/113389132/Misc/20140208-pi2.jpg
20:58:16 <Vorpal> fizzie, interesting, but who was speaking of photography? ;P
20:58:34 <fizzie> Vorpal: I'm sure we were, at some point during the preceding year or so.
20:58:39 <Vorpal> Oh right
20:58:46 <Vorpal> Also what is the thing on the left?
20:59:11 <fizzie> I think it's the surface of one of the ICs.
20:59:51 <Vorpal> Ah
20:59:58 <fizzie> https://dl.dropboxusercontent.com/u/113389132/Misc/20140208-pi3.jpg is how close I can get with the regular lenses, and I think that closeup is from the four R15 resistors and that Samsung chip there.
21:00:07 <Vorpal> fizzie, what is the benefit of doing this reverse lens thing? I never heard of it before
21:00:31 <fizzie> Vorpal: Lots of magnification without having to get a proper "macro" lens that can focus real close.
21:01:06 <Vorpal> fizzie, Also I would suggesting using a smaller shutter perhaps?
21:01:12 <Vorpal> The focus is *very* narrow
21:01:41 <fizzie> Vorpal: Stopping down the aperture kept increasing the amount of vignetting, sadly.
21:02:18 <Vorpal> fizzie, you mean the black circle thing or normal vignetting?
21:02:25 <fizzie> The black circle.
21:02:27 <Vorpal> Oh
21:02:33 <Vorpal> That is a bummer
21:03:01 <fizzie> I believe it should work better with a large-aperture lens as the reversed one, but I couldn't use the one I have because of that missing adapter ring.
21:03:09 <Vorpal> Ah
21:03:42 <fizzie> Also the whole contraption was something like at least half a metre long, and my tiny mini-tripod just couldn't hold it up. And it could focus only something like 1-3 cm away from the end of the reversed lens. So it wasn't exactly a practical thing.
21:03:46 <fizzie> Fun, though.
21:04:05 <Vorpal> Ah
21:04:17 <Vorpal> fizzie, yeah a larger tripod might be a good idea
21:05:51 <fizzie> I do have a regular tripod, but I couldn't maneuver it close enough to the TV stand I had the RPi on, because of the legs. (And when I tried to "tilt" it by making one leg longer, it started to fall over.)
21:06:00 <kmc> this e-mount macro lens is $300 :/
21:06:17 <fizzie> Perhaps I'll experiment more when I get a non-broken ring, it should be in the mail.
21:06:42 <kmc> i should probably get an adapter and some cheaper macro lens though, but I'm such a lazy noob that I probably wouldn't use it right
21:07:05 <kmc> but mushrooms have such nice details to capture
21:07:15 <Vorpal> fizzie, can't you extend/retract the legs on your tripod? Or did that not help either?
21:07:22 <ais523> btw, this reddit thread is really confusing me: http://www.reddit.com/r/roguelikes/comments/1xa9rj/i_have_been_writing_a_pseudoroguelike_mmorpg_with/
21:07:28 <zzo38> I don't have any gamepad for use with my computer; if I did then I might design some two-player Famicom game using it, and in fact I have a idea of such a thing too: It is something like a Pokemon battle game, but there is some differences for example there is only eight element types (all balanced), and you can attack only one at a time but can switch your primary/secondary as you attack.
21:07:48 <ais523> why did anyone think it was a good idea to write an MMO where you fight monsters by editing Clojure code using regexes?
21:07:58 <ais523> it seems to have found an audience, anyway
21:08:08 <zzo38> The eight element types are: North, South, Alien, Magic, Air, Insect, Slime, Abnormal.
21:08:21 <fizzie> kmc: An "extension tube" (that basically just moves the lens and therefore lowers the minimum focus distance) is often a pretty cheap option, I believe. (It doesn't get to as large magnifications as a macro lens, and you need to get closer, but at least it's just an empty tube and therefore often reasonably priced.)
21:08:45 <kmc> okay
21:09:24 <zzo38> And same type attack bonus not only gives bonus to damage but gives a bonus to priority as well.
21:09:35 <fizzie> kmc: Or so I've read, anyway. My father's got some M42 mount lenses and an extension tube set from the 1960s-1970s, I've been thinking of getting a $7 M42-to-EF adapter and borrowing those.
21:10:11 <ais523> zzo38: there's some of that in the latest Pokémon game, in X/Y there's a Flying Pokémon that gets a priority boost on Flying moves
21:10:14 <ais523> it's a really powerful ability
21:10:49 <zzo38> ais523: Is it overriding speed or adding to the speed, and how much?
21:11:03 <ais523> "At level 0, you will only be able to match and substitute up to 10 characters, and you won't yet have access to []+*|)( and other regular expression "sigils." You can see that even with the most basic monster, it will take conscious effort to figure out useful spells to cast."
21:11:07 <ais523> zzo38: it adds 1 priority
21:11:21 <ais523> which is the difference between Tackle and Quick Attack, or Quick Attack and Extremespeed
21:11:52 <zzo38> My way is adding 2 speed rather than 1 priority, and applies to all types/attacks.
21:12:34 <pikhq> ais523: Wait, really? Jeeze, that is quite powerful.
21:12:37 <ais523> 2 speed as in speed points on the status screen (that's hardly anything)? or as in 2 stages (i.e. Agility)?
21:12:51 <ais523> pikhq: yeah, very powerful, I can see why it's limited to one Pokémon
21:12:56 <zzo38> As in two points on the status screen
21:13:07 <zzo38> But, this is before stages are applied.
21:14:00 <zzo38> Where the speed is 0 to 245, and up to ten can be added due to bonuses so it is 255 at maximum.
21:14:11 <pikhq> Cripes. Hidden ability Talonflame is crazy then.
21:14:26 <zzo38> pikhq: What does that one do?
21:14:47 <pikhq> Exactly what we've been talking about. Flying moves get a priority boost.
21:14:47 <Vorpal> <ais523> why did anyone think it was a good idea to write an MMO where you fight monsters by editing Clojure code using regexes? <-- that sounds amusing for 5 minutes
21:14:57 <zzo38> pikhq: OK
21:18:23 <ais523> Vorpal: apparently they want to commercially release this, and quite a few people are saying "that sounds interesting" despite it not being on a programming-based subreddit
21:18:31 <ais523> with a monthly fee for playing
21:18:51 <Vorpal> ais523, eeh, I'm not sure that would work out. As a free game jam thingy? Sure
21:19:01 <ais523> Vorpal: neither am I
21:19:09 <ais523> in a sense I /want/ to see it work out because it's so unusual
21:19:20 <ais523> but I don't expect it to
21:19:47 <Vorpal> ais523, Well yes, but I wouldn't want to play it myself. It sounds way too much like work to me these days. I have been coding much less in my spare time recently, doing other stuff instead
21:20:16 <zzo38> Such a thing you described with using regex to fight, seem like not so good as it is written but perhaps made as a single-player puzzle game, may be interesting.
21:20:34 <Vorpal> brb
21:20:35 <zzo38> (Where, any level is fixed based on the puzzle and not based on your level)
21:26:44 <fizzie> Vorpal: Oh, almost forgot to mention, I also did a moon comparison thing: https://dl.dropboxusercontent.com/u/113389132/Misc/20140206-mooncomp.jpg
21:29:13 <Bike> segfaults are so fucking frustrating
21:29:22 <kmc> Bike: and yet they're pretty much the best case outcome
21:29:23 <Vorpal> back
21:29:42 <Vorpal> fizzie, new/old as in?
21:29:43 <Bike> compared to scribbling all over ram?
21:30:03 <kmc> yeah, a segfault is a memory handling mistake which happened to be caught by the hardware / OS
21:30:04 -!- yorick has joined.
21:30:15 <kmc> (though it could be the consequence of another mistake which was not)
21:30:35 <Vorpal> kmc, unless of course it segfaults in a different location every time. In which case you might have a threading issue or some sort of heap corruption or...
21:30:54 <fizzie> Vorpal: Old and new camera. Old picture was from 2009, and it's entirely coincidental that the moon phase is such a close match, I hadn't even looked at the old picture before taking the new one.
21:31:20 <Vorpal> fizzie, why the colour difference? Camera or atmospheric conditions?
21:32:05 <Bike> god damn it what did i do wrong
21:33:06 <fizzie> Vorpal: Possibly both. The old one was not terribly good when it came to white balance. (Especially the AWB, so I may have had it set to some suboptimal preset.)
21:33:38 <fizzie> I guess it should be recorded in the Exif data.
21:34:43 <fizzie> "White Balance: Daylight". Well, it's... reflected daylight?
21:35:08 <Vorpal> fizzie, my old camera (which is my current camera that is) has a button to set the white balance from a neutral color you put in front of it
21:35:49 <kmc> http://www.reddit.com/r/Bitcoin/comments/1x9gue/my_protest_at_mtgox_offices_5_to_7th_february/
21:35:52 <kmc> "I was told that up until a few weeks [at time of the interview] ago, there was hardly any development environment to test changes. Most changes were done straight on the production environment. Typing this made me throw up in my mouth."
21:37:34 <fizzie> Vorpal: Both "old" and "new" can do custom white balance, and I used to use it quite a lot with the old one, though (somewhat disappointingly) the workflow to do so is less practical in the new one. (Old one has a menu option to take a custom-WB shot; for new one you need to take a picture, and *then* go to a menu and select that picture as source for custom WB.)
21:37:44 <fizzie> Wonder what a "Light Source: Fine Weather" Exif entry means.
21:38:00 <fizzie> I don't think there are any weather sensors in the camera.
21:38:56 <fizzie> Seems to be a redundant way to say "White Balance: Daylight".
21:39:09 <kmc> if MtGox collapses and there's panic selling maybe I should buy some Bitcoins finally
21:39:21 <kmc> they're only 20% of the bitcoin-to-real-money market now: http://bitcoincharts.com/charts/volumepie/
21:40:32 <copumpkin> :O
21:40:38 <Vorpal> fizzie, ouch. Mine just has a button that greys out everything except the center of the display, and then when you release it, it takes a photo and uses the area in the middle as the reference
21:40:43 <Vorpal> works really well
21:40:48 <Bike> lol they call real money "fiat"
21:41:03 <elliott_________> fiat is a reasonable name for fiat money
21:41:16 <kmc> bitcoin is even more fiat than fiat, though
21:41:16 <elliott_________> it's a technical term...
21:41:20 <copumpkin> elliott_________: you've grown a long tail since I last saw you
21:41:33 <copumpkin> kmc: depends who's doing the fiat-ing, I suppose
21:41:34 <elliott_________> kmc: depends on the definition, I think
21:41:42 <kmc> yeah but by at least one of the common definitions
21:41:50 <fizzie> Vorpal: That's approximately how it worked in the old one, though you navigated a menu to get there. (Also you could select one out of two slots to save the custom balance as.)
21:42:03 <copumpkin> if you make that definition broad enough, you could shove gold into the fiat designation too
21:42:06 <copumpkin> :D
21:42:09 <kmc> yes
21:42:10 <copumpkin> (which I love to do, honestly)
21:43:15 <copumpkin> kmc: if you decide to buy and want to do it OTC with someone, let me know and I can probably help you find a counterparty (might end up being cheaper with less hassle than an exchange)
21:43:15 <Vorpal> copumpkin, also cars. *hides*
21:43:18 <kmc> aside from industrial uses, it depends on whether you think the human aesthetic / cultural appreciation of gold is more "real" than the value of dollars
21:43:24 <kmc> copumpkin: haha okay
21:43:53 <copumpkin> I don't even charge fees! >_>
21:44:12 <kmc> well you can't charge much fee as an OTC matchmaker who doesn't assume counterparty risk ;P
21:44:19 <copumpkin> lol
21:44:33 <copumpkin> hey, I can set you up with the most trustworthy people in the community! what's not to love!
21:44:36 <kmc> true
21:44:39 <copumpkin> >_<
21:44:39 <Bike> all i see is fire and void
21:44:44 <copumpkin> but I'm kidding, of course :P
21:45:16 <copumpkin> I've also been known to escrow for people to do that sort of stuff
21:45:19 <kmc> do OTC BTC-USD transactions typically happen through escrow?
21:45:21 <kmc> yeah
21:45:26 <copumpkin> depends
21:45:38 <copumpkin> if you like getting scammed, go for an unauthenticated stranger
21:45:44 <copumpkin> (lots of people do that)
21:46:11 <copumpkin> the more savvy tend to just go with reputable people and the less reputable of the pair sends first
21:46:16 <kmc> heh
21:46:17 <copumpkin> and even more savvy will go with escrow
21:46:56 <ais523> there should be some sort of cryptographically sound way to exchange arbitrary cryptocoins with each other even if they're on different chains
21:48:14 <elliott_________> USD isn't a cryptocurrency
21:48:29 <ais523> I know
21:48:40 <ais523> credit cards are, though
21:48:45 <ais523> not a very good cryptocurrency, though
21:49:22 <Bike> i googled for an opencl irc channel and it's all bitcoin mining
21:49:40 <kmc> ;_;
21:50:03 <kmc> ais523: oh?
21:50:10 <kmc> how would it work
21:50:44 <ais523> I have no idea, but I guess I have a "this should be cryptographically possible" sense that's comparable to my "this should be TC" sense
21:50:47 <ais523> i.e. not 100% reliable
21:50:59 <copumpkin> have y'all played flappy bird?
21:51:15 <kmc> NO WHAT IS THAT AND WHY IS EVERYONE TALKING ABOUT IT
21:51:40 <copumpkin> ridiculously hard game
21:51:40 <Bike> kmc: http://www.theatlantic.com/technology/archive/2014/02/the-squalid-grace-of-flappy-bird/283526/
21:51:43 <Bike> hth
21:51:45 <copumpkin> http://www.youtube.com/watch?v=gD-nzHy2DdU
21:51:50 <copumpkin> not hard in an interesting way
21:52:24 <Bike> the trick is to read this article or watch a video or whatever and think "ok then, fuck this" and go back to something practical like making your program segfault a hundred times
21:53:24 <kmc> or read an IRC message
21:53:36 <Bike> you're a prodigy
21:56:54 <kmc> http://www.metalair.org/decentralised-cryptocurrency-exchange/ is trying to do it but they won't share their design work so far
21:58:46 <ais523> kmc: re your original bitcoin link, the hilarious thing is the way that people keep on trying to confirm/deny the story via reference to hitherto unmentioned third party X, and third party X turns up to confirm that their involvement in it is genuine
21:58:55 <ais523> it's like the entire community are reading that reddit thread
21:58:59 <kmc> heh true
21:58:59 <ais523> which is actually pretty believable
22:00:00 <copumpkin> the real useful post is gmaxwell's contribution
22:00:02 <copumpkin> not that protest thing
22:00:06 <copumpkin> well, that might be useful too
22:00:09 <Vorpal> ais523, which link was that?
22:00:16 <kmc> I was mostly amused by the horror story of interviewing there
22:00:24 <copumpkin> http://www.reddit.com/r/Bitcoin/comments/1x93tf/some_irc_chatter_about_what_is_going_on_at_mtgox/cf99yac
22:00:35 <ais523> err, not the one copumpkin linked
22:00:51 <ais523> it's about 1 and a half screenfuls ago on my screen, kmc linked it
22:00:53 <copumpkin> this one, http://www.reddit.com/r/Bitcoin/comments/1x9gue/my_protest_at_mtgox_offices_5_to_7th_february/
22:00:57 <copumpkin> but read mine too
22:01:10 <Vorpal> Ah
22:06:40 <kmc> ais523: so one simple approach is that the two parties take turns exchanging small quantities of money until the whole transfer is consummated
22:08:12 <kmc> this will be pretty slow with existing cryptocurrencies
22:10:35 <ais523> I know someone developed a bitcoin mixer that doesn't require any of the participants to trust any of the others
22:10:41 <ais523> but that might require protocol adpatations
22:10:43 <ais523> *adaptations
22:13:13 <kmc> zerocoin was originally designed as that, yeah, and it does require protocol changes
22:13:26 <ais523> ah right
22:13:39 <kmc> now it's going to be a separate currency because in the words of the designer, "If people will put money into Dogecoin, they’ll put it into anything"
22:13:52 <kmc> so it's a new cryptocurrency with true anonymity
22:13:54 <ais523> the designer is probably correct there
22:14:17 <kmc> I also know about a Bitcoin mixer that ran for a while using RSA blind signing
22:14:46 <kmc> so you still trust the central party not to take your money, but they can't reveal which coins were exchanged for which, even under torture / subpoena
22:15:12 <ais523> oh, btw, for everyone who was wondering why imgur didn't work on my computer no matter which browser I was using, and continued to not work even when I accessed the internet from a hotel in France
22:15:26 <ais523> I eventually discovered it was due to an entry I'd added in the hosts file that had gone out of date
22:15:32 <kmc> and here's another design http://blog.ezyang.com/2012/07/secure-multiparty-bitcoin-anonymization/
22:15:35 <ais523> that's somewhere to check next time
22:16:12 <ais523> must have been back when the DNS was being buggy
22:16:38 <zzo38> Are you able to make some more Attribute Zone levels if I have made up the program?
22:26:32 <copumpkin> that ponzi.io is doing pretty well
22:26:44 <copumpkin> back in the day we had bitcoinduit which worked the same way
22:29:08 * copumpkin sends in 10000 coins
23:18:45 <Bike> after much wailing and mashing of teeth i have written a gpgpu program
23:19:01 <kmc> hooray
23:19:30 <kmc> the last time I did that was in 2007, back when you still had to pretend that your data represented red, green, blue values in a texture
23:19:46 <Bike> pretty sure this means i'm basically a bitcoin trillionaire already
23:19:53 <kmc> itym dogecoin
23:20:30 <Bike> isn't it called "digging" or something with dogecoin
23:26:35 <kmc> yeah
23:38:11 -!- oerjan has joined.
23:39:33 <FireFly> I wonder how WebCL is going..
23:40:20 <Bike> what, so you can mine from firefox?
23:40:59 <ais523> hopefully the cryptocoin craze will lead to actual useful developments in GPGPU technology
23:41:12 <FireFly> um, no
23:41:21 <FireFly> So I can play with the GPU from JS
23:41:46 <FireFly> ...for purposes other than mining *coins
23:41:52 <Bike> like what
23:42:08 <FireFly> raytracing or something
23:42:15 <ais523> games that run entirely on the GPU?
23:42:23 <ais523> you could have massively parallel control of thousands of characters
23:42:30 <ais523> it'd be good for collision processing too
23:42:30 <Bike> general purpose game processing unit
23:42:39 <ais523> the hard part would be screen transitions
23:59:18 -!- tromp_ has joined.
←2014-02-07 2014-02-08 2014-02-09→ ↑2014 ↑all