00:00:45 mu 00:01:25 http://stackoverflow.com/questions/367480/are-there-any-single-letter-programming-language-names-left 00:03:34 -!- pikhq has quit (Read error: Connection reset by peer). 00:04:04 How many of those are MS languages? 00:04:11 erm, the taken ones 00:04:32 GOODBYE 00:04:33 -!- cpressey has left (?). 00:11:23 hm 00:12:20 it is a pity that ghc doesn't have the runtime reloading capabilities of erlang. That is why I'm not going to use haskell for this irc bouncer I'm considering writing 00:15:37 -!- augur has quit (Remote host closed the connection). 00:15:49 -!- augur has joined. 00:17:21 Hell, I'm using C# for a project that.. it would have been nice to have runtime reloading for 00:26:42 AnMaster: what about the plugins package(s)? 00:27:16 they allow you do load stuff, maybe not as conveniently as erlang, which i don't really know 00:27:26 *to load 00:32:16 Stupid question, but r^2 = x^2 + y^2 + z^2 is the equation for a sphere? 00:32:38 centered at (0,0,0), yes 00:33:48 * Sgeo wonders what r = x+y+z is the equation of 00:34:02 a plane 00:34:09 oerjan, hm should check that out. But how to update the core on the fly? 00:34:56 AnMaster: i expect you'll need some continuation passing style to launch the new version as a function, i vaguely thought that's what erlang did as well 00:35:23 oerjan, besides this is mainly IO stuff and haskell seems slightly cumbersome for stuff that is >90% IO 00:35:52 i guess updating ghc itself would be impossible to do in this way, if that's what you mean by core 00:36:10 oerjan, well you can't do beam either that way (the erlang VM) 00:36:30 ok 00:37:11 oerjan: how Erlang does it is that a module can exist twice in memory as 'new' and 'old' versions 00:37:38 oerjan, and erlang loads a new version of the module and then makes all future calls to it point to the new one. Calls to the module from within itself point to the same version calling, so you switch by calling it with module name, not just function name. 00:37:47 code running in the old version will continue to call the old version on normal calls, but if you qualify them with module:function, then it will use the new module 00:37:56 calls from outside the module always go into the new one 00:37:58 yeah what coppro explained better than me 00:38:04 coppro: well that direct-plugins package i looked at includes the package name as part of the loading, including version number, so it should be similar 00:38:25 version numbers aren't necessary 00:38:44 oerjan, however this does not help much with reloading the code that handles loading and reloading of plugins 00:38:52 well it would be in the haskell version 00:38:57 ah 00:39:13 well I would probably go for OTP with erlang 00:39:26 AnMaster: that can usually be done too, can't it? 00:39:43 but then i expect erlang has had years to perfect this, it's _the_ language that's known for supporting it after all 00:39:44 coppro, what can? 00:39:48 http://pastie.org/1054576 00:39:52 I haven't gone insane, have I? 00:39:56 AnMaster: reloading the plugin-reloading code in Erlang 00:40:03 coppro, yes but I meant in haskell 00:40:13 No surprise that erlang supports runtime reloading of code, considering what enviroments it was designed to operate in... 00:40:13 I can take the ... unit vector, is that the right term ... of a vector without square rooting? 00:40:14 oh 00:40:20 Ilari: yeah, it's awesome 00:40:29 you can even reload the VM piece by piece 00:40:36 (if doing multiple nodes) 00:40:41 Sgeo, yes you have gone insane. It is insane to not use LaTeX to format that. the ASCII notation is completely unreadable 00:41:07 Ilari, indeed 00:41:57 coppro, well what if the version change changes the distribution protocol? Though of course erlang does support using ancient versions of that protocol still 00:42:07 Sgeo: what? 00:42:50 oerjan, to make a unit vector out of a vector, I just need to divide all the parts by r^2? 00:42:53 AnMaster: the VM should have a system by which to switch protocols ad-hoc! (I don't know if it does. I would not be entirely surprised) 00:43:07 Sgeo: that last line of yours is not a vector 00:43:21 coppro, I'm not sure either. But iirc it needs to use the same version against all other nodes 00:43:31 * Sgeo has no clue of proper notation right now 00:43:42 it's still the same sphere 00:43:48 AnMaster: well, once every node is upgraded, they could probably synchronize a protocol upgrade 00:43:58 coppro, hm 00:44:10 coppro, I don't know how that would be done though 00:44:29 coppro, though the protocol doesn't change very often so not such a large issue really 00:44:38 Sgeo: a vector is like (x,y,z) 00:44:56 think it changed last time two major releases ago, and considering those happens like every other year at most... 00:44:59 Well, the new vector would be (x_0^2/r_0^2 etc 00:45:17 and if r^2 = x^2 + y^2 + z^2, the corresponding unit vector is (x/r, y/r, z/r), _not_ /r^2 00:46:25 wow checking release notes of the R14A erlang alpha version I see they mention speed up of the profiler in the range of 6 to 84 times 00:46:29 not bad 00:46:53 oerjan, why wouldn't x^2/r^2 work? 00:47:43 Oh, because that's the squared term for the new x 00:47:44 Sgeo: for one thing, with (x^2/r^2, y^2/r^2, z^2/r^2) you have a vector proportional to (x^2, y^2, z^2), _not_ to (x,y,z) 00:48:27 although it's not even the unit vector of _that_ 00:49:07 it's not necessarily a unit vector at all, since it's length is sqrt(x^4 + y^4 + z^4)/r^2 00:49:12 *its 00:49:56 Does Erlang multi-VM connections still need global shared secrets? 00:49:59 The reason I'm apprehensive about square roots is because I'm dealing with ints 00:50:32 Sgeo: the unit vector of an int vector is not necessarily an int vector, or even rational 00:51:10 Just consider unit vector of (2,0,1). 00:51:38 Does Erlang multi-VM connections still need global shared secrets? <-- iirc there are other ways, but that is still the default 00:51:49 I think there is some support for ssl even 00:52:08 probably going to need some work setting that up 00:52:25 besides the default way makes most sense on a trusted network like can be found in typical clusters 00:52:30 Some multi-VM systems use only local secrets and pairwise shared secrets. 00:52:56 (and the pairwise shared secrets are autonegotiated). 00:53:25 Ilari, yes but imagine you have lots of nodes, Since erlang networks tend to be complete graphs (though they don't need to iirc) that would mean a lot of secrets to generate 00:53:36 for something like 100 nodes or whatever 00:54:25 N local secrets total to generate, each node needing to negotiate N shared secrets. 00:54:54 hm 00:55:17 Ilari, anyway having one global shared secret is not much of an issue for the typical use case of erlang really 00:55:29 Yeah, for typical case it isn't. 00:55:29 and there is always that ssl option if you don't trust stuff 00:56:20 One could store shared secret sufficient to secure communications in 96 bytes (2*32 byte keys, 2*16 byte IVs). 00:57:10 Ilari, by default erlang only uses it for auth though, not for encryption of the actual data. Again due to the typical use case. And if you need more than that you still have that ssl option 00:57:20 which ought to be a lot better than rolling your own 00:57:28 since getting cryptos right is hard 00:57:34 I think one could do with even less memory if one wanted to (such as 1x32 byte key, 1x12 byte IV for total of 44 bytes). 00:59:21 Ilari, 12 bytes would end up being padded on most systems 00:59:26 either that or being rather slow 00:59:45 More specifically, the key exchange is hard. If you have shared secret, just derive session keys and initial IVs and use AES256-GCM. 00:59:47 wait, byte not bit 00:59:48 right 01:00:14 Ilari, what about side channel attacks on your AES256 implementation? ;P 01:01:29 Presumably you got AES256 from some library (as implemeting fast AES256 isn't quite trivial). 01:02:00 touche 01:02:09 Ilari, ssl is still a better idea probably 01:02:32 Ilari, what about MITM and your idea? 01:02:43 That's why the key exchange is hard. 01:02:48 right 01:05:21 -!- pikhq has joined. 01:05:27 SSL is quite horridly complicated. 01:05:41 hm 01:06:15 The joke is that NSA has unit for sabotaging crypto systems. They even write code implementing crypto stuff... Professional-looking code at that. 01:06:21 "Added function zip:foldl/3 to iterate over zip archives." <-- heh nice 01:07:28 not sure how a left fold and a right fold over a zip would work though 01:08:53 SSL(TLS) really gets complicated when X509 is included in. 01:09:01 X509 being? 01:09:20 The standard cert spec used with TLS. 01:09:29 ah 01:10:34 Hmm... Wonder how many systems in world use TLS connections that do not involve X509 certificates. They are probably exceedingly rare (but I happen to have one). 01:11:01 Ilari, I didn't know you could skip certs 01:11:17 Ilari, anyway, what system is that? 01:12:07 -!- pikhq has quit (Read error: Connection reset by peer). 01:13:16 Version of git:// extended to support TLS (using custom remote helper and custom daemon). 01:13:29 heh 01:13:45 Ilari, how does it do auth without X509 01:15:10 Supported authentications: Server: OpenPGP certs (bit SSH-style), Client: Anonymous, Unix user authentication, SRP, OpenPGP certs or SSH keypairs. 01:15:30 SRP? 01:15:42 Ilari, also why not just tunnel git over ssh :P 01:15:44 Form of username/password authentication. 01:16:05 ssh seems a lot less complicated than ssl 01:16:16 at least for the auth stuff 01:16:18 AnMaster: Well, that's the standard way. 01:16:33 yes, bzr is usually tunneled over ssh too for example 01:16:40 hg tends to go over https iirc 01:19:18 My dad said that haskell was the newbie's functional programming language. 01:19:21 Should I agree with this? 01:19:25 -space 01:19:32 The extended protocol is indeed true superset, I have seen the normal Git internal git:// client get successful connection and grab stuff. 01:19:37 wareya, what one does he suggest instead? 01:20:02 though I would suggest something like scheme fits that description better 01:20:56 Yes, it uses TLS but can use ssh keypairs for authentication. 01:21:20 (and that is the standard mode when I use it between machines, within the same machine, I use unix user auth). 01:22:15 hm 01:22:22 does haskell have call/cc btw? 01:22:26 He suggested common lisp 01:22:31 AnMaster: in a monad :D 01:22:52 oerjan, well obviously it breaks the pure functional semantics yes. 01:23:52 specifically callCC is a method of the MonadCont class, which includes the Cont and ContT m monads 01:24:07 the latter being a transformer 01:24:59 -!- pikhq has joined. 01:25:01 ah 01:26:43 so you can use ContT IO to get continuations/callCC combined with IO 01:26:51 coppro, last erlang beta release (R14A) dropped support for the distribution protocol used in R11B and older. Or at least parts of that protocol. R11B was before I learned Erlang. Probably around the time it went open source, which was several years ago. 01:28:21 ContT... IO. 01:28:26 o.O 01:28:31 oh right 01:28:51 That has got to have somewhat odd effects on side effects. 01:28:59 it should be ContT r IO where r is the type returned by the final continuation 01:29:39 pikhq: not really, it's more or less like in scheme, they're not undone just because you jump around 01:29:43 okay wtf "OTP-8686 A bug introduced in kernel-2.13.5.3 has been fixed." <-- complete changelog writing fail 01:30:14 oerjan: So, it works just exactly how you'd expect. 01:30:18 kernel isn't even part of OTP, is it? 01:30:23 Which is itself very mind-bending. 01:30:33 coppro, well OTP-nnnn is some bug tracker number 01:30:40 oh 01:30:53 coppro, all entries in the changelog have one of them 01:30:57 but yeah: what bug 01:31:02 pikhq: now if you could have an IOT transformer and use IOT (Cont r), then that would really have worked that way, i think. Except IOT is impossible afaik 01:31:08 I mean, usually they are all very detailed 01:31:19 (that way = undoing side effects) 01:31:23 oerjan: IOT? IOT?!? 01:31:30 AAAAAAGHMYHEAD 01:32:00 pikhq: purely hypothetical monad transformer that adds IO _inside_ pure code, it would be. 01:32:08 Yes. 01:32:11 AAAAGHMYHEAD 01:32:15 Which is itself very mind-bending. <-- you mean call/cc in general? I agree completely then 01:32:26 AnMaster: Yes. 01:33:00 -!- Gregor-L has changed nick to Gregor. 01:33:13 pikhq: to see _some_ of that effect, compare StateT s (Cont r) with ContT r (State s) 01:33:27 pikhq, call/cc that isn't returned from the call/cc is quite easy to understand though. After all it is quite similar to the C setjmp/longjmp stuff then 01:33:38 returning the continuation: argh 01:33:47 in the former, jumping _would_ undo state changes, in the latter it wouldn't. iirc. 01:33:56 oerjan, aaaargh 01:34:04 oerjan: AAAAAAAAAARRRRRRGH 01:34:52 oerjan: It's *time travel*! It's actual, literal, time travel! 01:35:02 *MWAHAHAHA* 01:35:14 oerjan, would that actually work? 01:35:36 AnMaster: Yes. 01:35:49 AnMaster: i _think_ so, it's been a while 01:35:58 pikhq, just add the IO monad there and you could kill your own grandfather then? 01:36:17 AnMaster: If you could do an IOT, then yes. 01:36:22 oh right 01:36:32 IOT *must* be impossible. It requires the ability to time travel. 01:36:45 damn 01:37:51 pikhq: as well as many-worlds, if you use it over [] :D 01:37:59 oerjan: :D 01:38:10 [] ? As in list? 01:38:14 yes 01:38:14 Yes. 01:38:42 hm I don't see how many-worlds follow from that but then this is doing my head in anyway so I might as well just not try to figure it out 01:39:23 Actually. Wouldn't you need a ListT monad? 01:39:46 AnMaster: lists act as the do-several-things-at-once monad. IOT [] would consists of lists of IO actions that were all simultaneously applied in separate environments 01:40:09 No, no, you wouldn't. 01:40:17 oerjan, hm 01:40:31 oerjan, okay that hurts. 01:40:42 well there is a ListT monad somewhere, i don't quite recall if it _was_ a true monad or not, there was at least something fishy with the initial implementation 01:41:19 (it's not afair included in the default libraries) 01:41:33 ... 01:41:46 *Befunge 98 interpreter in Haskell could use this*. 01:41:53 what would a ListT monad do? 01:43:10 AnMaster: nondeterminism/several-things-at-once of actions in an underlying monad. the transformer version of [] 01:43:19 * pikhq still is wincing from the freaking *time travel* monad 01:43:36 pikhq, use it to implement TRDS 01:43:43 AnMaster: Precisely. 01:44:07 pikhq, do it NOW 01:44:22 pikhq, I wonder why you are not in #microcosm btw 01:44:45 *consist (way back) 01:47:22 -!- Gregor-P has quit (Ping timeout: 264 seconds). 01:49:10 instance MonadIO STM where liftIO = return.unsafePerformIO 01:49:11 :) 01:51:54 --performs no unknown side-effects. 01:54:57 CakeProphet: evil 01:55:54 http://www.facebook.com/pages/Gregor-Richards/133966549972228 Hey guys I decided I'm all pretentious now :P 01:57:11 alien fashion sense, it all fits 01:58:26 Baaaaaa 02:01:11 http://www.ronpatrickstuff.com/ Jet powered car. 02:01:15 Street legal. 02:05:37 -!- p_q has joined. 02:07:37 p_q: nice goggles 02:07:44 -!- poiuy_qwert has quit (Ping timeout: 240 seconds). 02:08:31 check out my Grid 02:08:33 Grin* 02:08:41 search the esolang wiki 02:08:45 I made it better 02:10:37 -!- wareya has quit (Ping timeout: 260 seconds). 02:10:37 Time travel monad? 02:11:08 Also, what's evil about what CakeProphet did? 02:12:05 Madk: did you mean to delete the M-code hello world? we seem to have edited simultaneously 02:12:24 recheck 02:12:28 I moved it again 02:12:31 to the end of the Ms 02:12:59 argh 02:13:02 ? 02:13:14 Madk: the - should not count for the ordering, dammit :D 02:13:20 :/ 02:13:27 that's why i moved it first 02:13:33 -!- wareya has joined. 02:13:42 It should count 02:17:09 Street legal. <-- ... how? 02:17:18 AnMaster: Somehow. 02:18:12 "That doesn't stop me from the occasional blast on the highway though." <-- that can't be legal 02:18:28 AnMaster: It is not *il*legal. 02:18:38 Sgeo: it violates the entire spirit of the STM monad, which is to disallow any side effects that are not controlled by the software transactions. and it even does so in a particularly unsafe way, since the IO action might _never_ be performed if the value isn't looked at. 02:19:18 * Sgeo was misreading it as ST 02:19:47 it's evil for ST too 02:20:31 hah 02:20:31 functions like that should at least contain unsafe in the name (and ST has one which does) 02:20:47 -!- sshc_ has changed nick to sshc. 02:27:32 pikhq, hahaha: "Jet keeps sucking the rose out of the bud vase on the dash!" 02:27:41 Heheh. 02:30:00 "Hmmm, the car has two engines making the car a hybrid so maybe we can drive in the commuter lanes along with the Toyota Priuses." XD 02:31:14 * Sgeo compares electric cars to cloud computing 02:31:42 Sgeo, but electric cars aren't bullshit 02:31:45 so that doesn't work 02:32:31 not even bulshytt 02:32:43 -!- oerjan has quit (Quit: Good night). 02:32:47 It's more of an issue that power companies aren't being asked to store sensitive data 02:33:01 That's the thing that annoys me about cloud computing 02:33:47 pikhq, oh my... that guy is thinking about putting jet engines on a scooter too. That's just insane and a lot more unsafe than on a car 02:34:23 AnMaster: Yeah, well. 02:35:38 pikhq, besides actually using the jet engine outside car shows and such seems extremely dangerous to cars behind you 02:36:44 So, my dad won't let me give an unused phone to a friend :( 02:36:47 AnMaster: Almost certainly. 02:36:54 Sgeo: How old are you again? 02:36:56 21 02:37:08 :/ 02:37:18 ... And you need to give any credence to what your dad says... Why? 02:38:16 I've been not giving any credence to what my dad says since I was 15 :P 02:38:42 that sounds about right 02:38:53 coppro, what does? 02:39:06 I've been not giving any credence to what my dad says since I was 15 :P 02:40:39 pikhq, because he gives me money for everything 02:40:53 Including college 02:40:59 And pays for food, etc. 02:41:41 Gregor: Same! 02:41:53 Sgeo: Might I suggest a job? Your dad is fucking nuts. 02:42:07 That might interfere with school 02:42:12 No output. 02:42:15 And dad might pull college funding 02:42:25 Sgeo: Your dad is fucking nuts. 02:42:41 also your education system is fucking nuts 02:42:41 No output. 02:42:56 coppro: Yes, it is completely and utterly nuts. 02:42:58 No output. 02:43:24 At least I know that if my parents pulled school funding, I wouldn't be forced to drop out 02:43:52 coppro: And how much do they need to pay? 02:45:21 pikhq: Uh, depends how much I earn in the meantime. I expect that I could leave them with paying a net of 0, not counting the education funds that are set aside. I'll need a lot of help for the first year, and after that it's based on the quality of job I get. 02:45:36 coppro, school funding? That's the state 02:45:51 coppro: Sorry, how much *need be paid*. 02:45:54 pikhq: oh 02:45:55 In general. 02:46:01 -!- Madk has quit (Ping timeout: 276 seconds). 02:46:03 probably on the order of $80k 02:46:07 total 02:46:08 that's a lot 02:46:17 indeed 02:46:25 ... That's rather a lot. 02:46:27 the government should fund it 02:46:34 I'm on the upper edge of payment at my school though 02:46:42 and that's including living expenses, etc. 02:46:46 coppro, which country are you in 02:46:49 Canada 02:47:04 ah living expenses and text books are not included in the 0 SEK cost for me at university. 02:47:13 yeah, you Europeans have it nice 02:47:14 text books are only included up to high school iirc 02:47:19 although I'm in an expensive program 02:47:24 AnMaster: ... *0*? 02:47:25 there are programs that are significantly cheaper 02:47:39 pikhq, well as I said, living costs and text books still cost 02:47:45 WHY THE HELL AM I NOT IN EUROPE 02:47:52 also, my parents are rich 02:47:54 pikhq, because you can't be in two places at once 02:47:56 if they weren't the government would pay 02:48:18 hm that is an interesting system 02:48:29 it's actually pretty bad 02:48:37 since it's based on parental income 02:48:45 yes that doesn't make much sense 02:48:49 and parental income does not always translate to funds available for students 02:48:51 should be based on your own incom 02:48:55 income* 02:49:35 coppro: Better than US's setup. 02:49:44 and of course there's student loans... woohoo 02:50:04 Whereby the government doesn't pay until your family's poor enough to barely be able to afford *food*. 02:50:04 coppro, there are those here. Meant for text books and living costs 02:57:17 -!- Madk has joined. 03:00:41 -!- augur has quit (Remote host closed the connection). 03:00:48 -!- augur has joined. 03:03:57 -!- augur has quit (Read error: Connection reset by peer). 03:04:03 -!- augur has joined. 03:04:52 -!- Madk has quit (Quit: Leaving). 03:08:32 -!- wareya has quit (Ping timeout: 260 seconds). 03:14:49 -!- BeholdMyGlory has quit (Remote host closed the connection). 03:14:53 -!- FireFly has quit (Quit: swatted to death). 03:22:11 -!- CakeProphet has changed nick to _____. 03:22:40 -!- _____ has changed nick to Guest12555. 03:22:52 -!- Guest12555 has changed nick to CakeProphet. 03:25:39 -!- augur has quit (Remote host closed the connection). 03:25:45 -!- augur has joined. 03:36:06 -!- HackEgo has quit (Remote host closed the connection). 03:36:08 -!- HackEgo has joined. 03:36:12 Fuck? 03:36:17 Gregor's first child now has a little brother or sister! Aren't they so cute together? 03:36:24 Hm, wonder what went wrong before. 03:37:50 Clearly, HackEgo disapproved of cursing, and has now grown up. 03:38:32 Yup. 03:40:28 `quote 03:40:30 166| you move on the tape and shit 03:47:30 -!- Wamanuz3 has quit (Ping timeout: 276 seconds). 04:00:14 -!- wareya has joined. 04:00:36 Gregor's first child now has a little brother or sister! Aren't they so cute together? <-- how did that happen 04:00:43 also you have children? ^_^ 04:00:52 you are like way too young for that 04:01:23 should wait until you are 35 at least, that way you have a lot more money and also get a lot more time without children 04:01:55 :P 04:02:20 AnMaster: HackEgo rewards you with a child every time you say the F-word :P 04:02:23 Which makes sense. 04:02:51 Prooooooobably not having real children any time soon :P 04:13:46 -!- augur has quit (Read error: Connection reset by peer). 04:19:23 -!- augur has joined. 04:25:19 Copulation! 04:27:03 -!- sftp has quit (*.net *.split). 04:27:04 -!- dbc has quit (*.net *.split). 04:27:04 -!- mycroftiv has quit (*.net *.split). 04:31:32 -!- myndzi\ has joined. 04:32:23 -!- sftp has joined. 04:32:23 -!- dbc has joined. 04:32:23 -!- mycroftiv has joined. 04:33:26 -!- myndzi has quit (Ping timeout: 240 seconds). 04:50:54 Gregor, fuck that 04:50:56 Congratulations! AnMaster's action has brought a beautiful new baby into the world. Isn't it adorable? 04:51:06 Gregor, damn you 04:51:13 wtf 04:51:24 :P 04:52:11 Gregor, so from now on I'll always use damn 04:52:18 Gregor, also what if I'm quoting something 04:52:21 it needs to understand it 04:52:23 THEN BABIES 04:52:25 Gregor, thus AI HARD 04:52:33 The real problem is when you're talking about a certain programming language :P 04:52:41 A certain, enormously topical programming language. 04:52:44 Gregor, it does it inside a word? 04:52:50 Gregor, okay just disable it then 04:52:56 It's just /fu*ck/i :P 04:53:01 Erm, fuu*ck 04:53:14 Gregor, which one do you mean btw 04:53:17 please type it out 04:53:29 /fuu*ck/i 04:53:38 no which programming language 04:53:43 BrainFuck :P 04:54:00 No output. 04:54:22 >_< 04:54:26 Borken again :P 04:54:32 OK, I'm disabling it because it keeps breaking things :P 04:55:04 -!- HackEgo has quit (Remote host closed the connection). 04:55:06 -!- HackEgo has joined. 04:56:05 Gregor, see 04:57:06 Moop 05:00:25 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARGH 05:00:37 google image search preview pages gone web 2.0 05:00:48 http://preview.tinyurl.com/3xbmmtr 05:00:55 (because url is longer than one IRC line) 05:01:07 Hm 05:01:10 So 'tas. 05:01:14 Gregor, ? 05:01:19 define 'tas 05:01:27 "it has" 05:01:31 ah 05:01:41 Gregor, this is horrible 05:01:45 this is an outrage 05:01:49 against all google stood for 05:02:28 Almost as against all that Google stood for as the rest of Google. 05:02:48 Gregor, eh? 05:05:11 -!- Sgeo has quit (Ping timeout: 240 seconds). 05:06:02 AnMaster, and they still use cookies with that long url? 05:07:47 Somebody know of or want to write a generic card game server? That is, one that enforces no rules, just lets you take cards and treat them in usual card-like ways (make stack, put them face-up or face-down, etc) 05:07:53 (Multi-player) 05:11:01 Gregor: Mindless Automaton is close. 05:11:14 Link? 05:11:21 Ohhey 05:11:53 Its set of actions is set up around Magic. However, it enforces 0 rules, and the set of actions is kinda generic because of that. 05:11:53 Hmmm ... AFAICT the only thing it lacks is a standard deck? 05:12:18 I think it also enforces Magic *card types*, but that's not a big deal; it'll let you stick in typeless cards. 05:12:22 http://mindless.sourceforge.net/ 05:12:25 , BTW. 05:12:33 I just wonder how much work it would be to make it use generic cards. 05:13:40 Depends on how complex those cards are. 05:14:19 I'm talking about playing cards. 05:14:25 Like, A, 1-10, J, Q, K 05:14:36 *Oooooh*. 05:14:56 Maybe toss a Joker in there if I'm feeling frisky. 05:15:00 Also take out the 1 :P 05:15:07 Okay, the major problem you have there is that Mindless Automaton assumes two decks. 05:15:46 I assume two decks ... shuffled together. 05:15:55 Ohwait, hyuk 05:16:01 Hydra is played with each player having their own draw pile. 05:16:07 ... No, in Magic the Gathering each player has a deck. 05:16:08 So that COULD work. 05:16:44 Basically, Mindless Automaton could probably be made to work for any *trading* card game. 05:17:22 Right :P 05:17:28 Not Hydra :P 05:17:34 I want something like that, but with even LESS rules. 05:17:58 The problem being that MA is set up around Magic. Which has lots and looots of bookkeeping. :P 05:21:08 So, feel like writing a generic card game server? :P 05:21:41 I have too much to not do already! 05:21:43 -!- sanxiyn has joined. 05:22:03 How about you, random newcomer? Want to write a generic card game server? :P 05:22:15 What is a generic card game server? 05:23:26 A server (and client) that would handle the basics of cards (decks, hands, piles, etc), but wouldn't enforce any rules, allowing you and your mates to play any card game (so long as you all knew the rules and stuck to them) 05:23:41 Gregor: Do you know about Zillions of Games? 05:23:53 costs money 05:24:03 also, limiting to cards is bad 05:24:11 And does not ship with source code and a usage license. 05:24:30 Well, I was just trying to ask whether it is a similar concept. 05:24:38 *note: the two things are not related) 05:24:48 I haven't used it, but it seems to be a similar concept. 05:24:49 -!- sftp has quit (*.net *.split). 05:24:51 -!- dbc has quit (*.net *.split). 05:24:51 -!- mycroftiv has quit (*.net *.split). 05:24:53 Except not for cards. 05:25:00 Exactly. 05:25:06 if you're going to cards, you might as well cover all games 05:25:21 coppro: One step at a time there pooppy. 05:25:35 thanks for the confidence 05:25:45 coppro: I mean unless you want to write it. 05:25:45 I always liked http://www.pagat.com/ 05:25:46 And if you're going to all games you might as well cover all games, as defined in game theory. 05:25:47 In which case GO GO GO 05:26:11 So to see whether it is general enough, one could try to play games randomly chosen from the list there. 05:26:14 (fortunately, this omits the Game of Life) 05:26:52 pikhq: Combinatorial game theory 05:27:43 But (say) {{|}|{|}} is not very playable for humans, so one would need visualization 05:28:09 This conversation does not end with me having a generic card game server :P 05:28:22 Indeed it doesn't. 05:29:59 One idea would be putting network layer to PySolFC or so. 05:30:23 -!- sftp has joined. 05:30:23 -!- dbc has joined. 05:30:23 -!- mycroftiv has joined. 05:46:55 lifthrasiir, yes afaik 05:48:00 lifthrasiir: ? 05:49:31 sanxiyn, AnMaster quoted this url from google image search preview: http://preview.tinyurl.com/3xbmmtr 05:49:38 also, limiting to cards is bad <-- XD 05:49:58 sanxiyn, it turned out to be longer than one irc line 05:50:53 lifthrasiir, but yes I'm fairly certain it use cookies because I checked that url was the same when I was logged in to my google/gmail account and when I weren't. Because I got suspicious about the url and didn't want anyone to steal anything 05:51:13 lifthrasiir, however, looking at it, it contains page the image came from, image url and back-url 05:51:17 no idea why the last one 05:51:22 I wonder what information they've got in there :P 05:51:43 Name, address, sex, age, education, sexual orientation, ... :P 05:51:46 Gregor, well, some I told you about 05:51:53 but the rest I have no idea about 05:51:54 AnMaster, i once thought that some privacy information was encoded into the url 05:52:03 but it seems not 05:52:16 the image search url is fairly long too 05:52:23 http://www.google.com/images?q=LTE%205150&oe=utf-8&rls=org.mozilla:en-US:official&client=firefox-a&um=1&ie=UTF-8&source=og&sa=N&hl=en&tab=wi&biw=1519&bih=538 05:52:32 contains something about me using firefox I see 05:52:49 and um. it is basically url encoded inside that url 05:53:05 &prev=/images%3Fq[...] 05:55:31 bbl going to watch dvd. For like the first time ever on this computer which I had since 2004 or such 06:10:01 -!- calamari has joined. 06:12:35 -!- calamari has quit (Client Quit). 06:16:06 -!- coppro has quit (Ping timeout: 260 seconds). 06:16:57 -!- sanxiyn has left (?). 06:32:31 -!- coppro has joined. 07:11:06 -!- CakeProphet has quit (Ping timeout: 240 seconds). 07:13:20 -!- CakeProphet has joined. 07:43:34 -!- augur has quit (Remote host closed the connection). 07:51:45 -!- Axtens has joined. 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:08:58 ...did we invent the term esoteric programming language? 08:09:09 "we' == whoever first made the esolang community 08:18:56 -!- CakeProphet has quit (Ping timeout: 240 seconds). 08:20:05 i have a SERIOUS QUESTION 08:20:11 pertaining to matters of IMPORTANCE 08:20:20 suppose you add a girl on facebook 08:20:35 and you start chatting and she suddenly starts talking dirty 08:20:50 but at the same time it turns out she thinks she's talking to someone else with the same first name 08:20:57 add the fact that she's hot 08:21:00 should you: 08:21:05 1. tell her of the error of her ways 08:21:28 2. continue, save log, save her photos, and tell her later, then post it to all her friends 08:21:46 3. continue, save log, save her photos, never tell her, and post it to an internet chat room 08:21:48 4. ???? 08:22:18 Given how much people seem to love litigation these days, I'd go for #1 08:22:28 no no 08:22:30 this is eastern europe 08:22:33 litigation doesn't exist 08:23:42 I'd still go for #1. Trust is hard to come by and once lost is exceptionally hard to regain. Just let her know that you know and leave it at that. 08:23:54 it's not trust 08:23:56 she's like 08:24:02 been talking to me for two days now or so 08:26:34 Okay, so I'm unusual in that I'm in to acting honourably. I'd have told her long before now. But you're now in a position where an apology includes a huge loss of face. 08:26:54 ah ok 08:26:55 yeah 08:27:01 i am 08:27:02 but! 08:27:03 the thing is 08:27:12 she started talking about that stuff unprompted 08:27:14 AND 08:27:25 I suppose you could introduce into the conversation topics that she knows the other guy wouldn't know anything about and wait for her to go, "hey, hang on, you're not whatsisname, are you?" 08:27:28 i only figured out she must be mistaking me later on 08:29:53 -!- Axtens has quit (Quit: Leaving). 08:43:46 -!- CakeProphet has joined. 08:46:52 -!- SevenInchBread has joined. 08:48:30 -!- CakeProphet has quit (Ping timeout: 258 seconds). 08:50:49 -!- SevenInchBread has changed nick to CakeProphet. 09:33:22 -!- MigoMipo has joined. 09:33:50 -!- Arzgarb has joined. 09:35:18 -!- FireFly has joined. 09:43:13 -!- AliceMargatroid has joined. 09:43:18 Hi. 09:55:51 -!- GreaseMonkey has joined. 10:01:11 AliceMargatroid: hello. 10:11:38 AnMaster: Ooh, nifty: http://fcam.garage.maemo.org/fcamera.html 10:12:46 I am tempted to go into some Perl channel. 10:12:51 And suggest golf on a Brainfuck intrepter. 10:13:00 Should I? 10:16:00 -!- tombom has joined. 10:16:19 -!- AliceMargatroid has quit (Read error: Connection reset by peer). 10:19:41 fizzie, nice indeed 10:20:04 (Disclaimer: haven't tried it, the user interface and such might suck majorly.) 10:21:09 fizzie, I assume you are going to try it? 10:22:50 Yes, though I'm not sure I'm going to start using it for random snapshot-style photogrammery. I wonder if they've added some trick to make it start that FCam instead of the usual "Camera" app when the lens cover is opened. 10:29:25 -!- Wamanuz3 has joined. 10:32:11 -!- Slereah has quit (Ping timeout: 252 seconds). 10:33:45 Well, it seems reasonably nice and usable, if a tad on the simple side. Still, manual controls are nice, as is raw shooting. 10:33:52 It seems to take 11-megabyte images. 10:36:39 -!- Slereah has joined. 10:37:31 ... and dcraw decodes it as a 640x480 image that's mostly just bright red and black ... 10:38:41 http://www.cis.hut.fi/htkallas/test.png -- I would not exactly call that "working". 10:42:25 indeed something went wrong 10:42:30 fizzie, what does ufraw make out of it? 10:43:18 "The program 'ufraw' is currently not installed. To run 'ufraw' please ask your administrator to install the package 'ufraw'" 10:43:29 Will have to see when I get home. 10:44:14 fizzie, ufraw uses dcraw though so hm... 10:44:30 fizzie, do they have an irc channel or something where you can ask about this? 10:45:38 There's a forum; I'll see if other raw-decoding tools work on the .dng file first. 10:46:47 fizzie, also how many MP? 10:47:16 fizzie, 12 seems somewhat on the large side since that is just below what my 8 MP camera gives me 10:47:30 they are like 13 MB unless I misremember 10:47:32 *.mrw though 10:47:37 and 12 bits per channel 10:47:40 It should be a 5-or-so megapixel sensor. 10:48:04 fizzie, so unless that gives you more than 12 bits per channel the image file seems exceedingly large 10:48:41 Well, it could be a very unoptimal format. 10:49:02 Running "gimp test.dng" directly on the file opened a correct-looking image, but it's just 640x480; I think that's a preview image included in the file. DNG is TIFF-based, "file test.dng" says "TIFF image data, little-endian". 10:49:02 fizzie, possibly. 10:49:32 fizzie, ah yes selecting tiff on my camera gives larger images than *.mrw. And only 8 bits per channel 10:49:49 in fact .mrw always tend to be smaller than tiff 10:50:03 even when converted on computer and using deflate 10:58:45 Heh; ImageMagick supposedly supports .dng files; so, I try "identify test.dng": 10:58:46 htkallas@pc112:/users/htkallas/tmp$ identify test.dng 10:58:46 sh: ufraw-batch: not found 10:58:46 identify: Delegate failed `"ufraw-batch" --silent --wb=camera --black-point=auto --exposure=auto --create-id=also --out-type=ppm --out-depth=16 "--output=%u.pnm" "%i"' @ delegate.c/InvokeDelegate/1015. 10:58:46 identify: unable to open image `/tmp/magick-XXdaOBkS.pnm': No such file or directory @ blob.c/OpenBlob/2439. 10:59:17 XD 11:01:24 $ file /usr/bin/identify 11:01:25 /usr/bin/identify: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped 11:01:30 not a shell script as I had expected 11:01:51 -!- oerjan has joined. 11:02:16 fizzie, ufraw is a very nice tool in general though 11:02:26 it is what I use to convert raw files 11:02:58 gui tool with preview, you can settings. Then save the image and also optionally a file describing the settings 11:03:11 then you can use that settings file for batch processing the rest 11:03:13 in a pano 11:03:20 useful when you want constant wb and such 11:03:35 I know; I've used it the couple of times I've done raw with the real camera. 11:03:49 Doesn't build here, though; they don't have enough gtk devel packages installed. 11:03:58 wtf 11:04:07 fizzie, don't you use a laptop? 11:08:25 Well, no. Why would I? 11:08:48 Always fun when some program gets into odd state and you just can't see how it could get into that state... :-/ 11:09:37 (looking at the source code). 11:12:54 -!- Arzgarb has left (?). 11:14:32 Even the latest dcraw.c messes the file up. I guess it's also possible that FCamera writes spec-wise bad DNG files that just happen to work in official Adobe tools. 11:16:47 fizzie, to be able to install ufraw ;P 11:17:09 It's not exactly central to what I *should* be doing here. 11:17:30 Ilari, that is when you either bisect (if you are lucky and it used to work) or do step by step debugging 11:17:42 fizzie, good point 11:27:26 I don't have working version (this was the first "working" version) and problem doesn't want to reproduce anymore. I did straces and can infer the program state out of those, but can't figure how it could have gotten into that state. 11:29:26 Ilari, what program? 11:29:42 One custommade routine... 11:30:39 Ilari, sure but what does it do? 11:31:52 Bidirectional data copy between pipe pairs. 11:32:09 Ilari, mhm 11:36:28 -!- MigoMipo has quit (Read error: Connection reset by peer). 11:39:08 -!- DH____ has joined. 11:42:05 -!- MigoMipo has joined. 12:01:47 -!- oerjan has quit (Quit: leaving). 12:04:40 -!- coppro has quit (Quit: I am leaving. You are about to explode.). 12:09:58 Hrm. I've been looking at the .dng file; it's supposed to -- according to spec and fcam sources -- have as main image the 640x480 preview, then as subimage the actual raw data. According to libtiff, the preview is okay (it even has "Subfile Type: reduced-resolution image (1 = 0x1)" set) but there is no "SubIFDs" tag set in the directory that would point to the actual raw image. 12:10:21 -!- GreaseMonkey has quit (Quit: I'm using NO SCRIPT WHATSOEVER - Download it at file:///dev/null). 12:10:30 fizzie, considering the size it ought to be there though 12:10:40 fizzie, is there a lot of data after the preview ends? 12:11:34 fizzie, also I wonder how a generic raw format can even work considering there are cameras with hexagonal picture elements and so on 12:12:02 Actually the preview image directory is near the end of the file (at offset 0xa9c665, or 11126373 bytes into the file); it should have a tag-330 field containing a single pointer to the actual raw-image dir. 12:12:20 fizzie, well there must be a raw image in between then 12:12:33 try to set look for some likely offset after the header 12:12:56 TIFF is a messy format; there should be something pointing to it from the main directory. 12:12:57 I mean, test a few after the header, like header, header + padded to some boundary and such 12:13:32 libtiff does complain about "Warning, test.dng: invalid TIFF directory; tags are not sorted in ascending order"; I wonder if that could make it skip some tags. 12:14:02 One'd think it'd be polite enough to read it even if it's not in the proper order, though. 12:14:36 fizzie, um it complains about that when loading images into hugin after converting with ufraw 12:14:39 seems to work still 12:15:54 fizzie, I guess it didn't write the entry correctly. Look for some likely offset and use a hex editor to set that in the correct header 12:16:02 or something like that 12:16:23 could be messy if that header is completely missing of course 12:16:30 You can't really "set" anything in the header if the field for it doesn't exist; adding bytes in-between would mess all offsets. 12:16:41 fizzie, right 12:17:14 fizzie, overwrite the preview image field then 12:17:21 in a copy of course 12:18:02 fizzie, assuming length doesn't mess up that would work 12:18:44 Technically speaking I could perhaps alter the "first IFD" offset (which is in the header at the beginning of the file) to point at the raw-image ifd, if I could just find it. 12:19:17 At least for the preview image, the directory came after the image data, so presumably it's somewhere in the middle, most likely a bit before the preview-image data starts. 12:19:53 fizzie, probably the raw image starts just after or just after + padding some other header of data bit that is known 12:20:06 ah 12:20:09 I guess not then 12:20:35 First "strip" of preview image data starts at 10203626; maybe I'll look there. 12:20:36 fizzie, write a short program that scans for known "must be like this" values 12:21:04 fizzie, like if you know the width in pixels and there is a field for it, check all offsets until that field matches 12:21:21 should be trivial to locate such values 12:21:37 doesn't even need to try to figure out the offset. Just finding that value would be a good start 12:21:55 then you could limit the number of possibilities down by other fields, say height 12:21:55 I don't really know the raw dimensions, though. There's some tag numbers that are dng-specific, those might work. 12:21:55 or such 12:22:17 fizzie, well, go for some that you know. Surely there must be some 12:23:54 Most of the stuff is written in the "first" IFD, the one with the preview image attached. (Which also means that dcraw might not like if I just point the first-ifd pointer directly to the raw data, since it'll be missing those fields.) 12:24:22 right 12:24:40 fizzie, read the source then 12:24:43 and try to fix it 12:24:44 maybe 12:24:47 or report a bug 12:25:27 I've read the fcam sources, and they *look* like they should do the right thing. It certainly tries to add a proper subifd pointer when writing a tiff file. 12:25:43 fizzie, right revision? 12:25:45 Of course the N900 extras-testing version might be outdated or something. 12:25:55 besides the svn is on rev 37 hah 12:26:06 updated 10 hours ago 12:27:01 -!- MizardX- has joined. 12:27:01 hm seems to have been developed outside svn to start with 12:27:09 -!- MizardX has quit (Read error: Connection reset by peer). 12:27:30 -!- MizardX- has changed nick to MizardX. 12:28:10 The "look for known values" strategy is complicated by the fact that the image directory has just field tags and types, and the file-offset pointers to the values; the values themselves can be anywhere in the file, with no pointer back of course. 12:28:28 fizzie, gah. 12:28:34 There should be the byte sequence "fe 00 04 00 01 00 00 00" in the directory I'm looking for; that's reasonably long. 12:28:42 fizzie, why don't they inline the values 12:29:07 Because they want fixed-width records, and the values have very different lengths. 12:29:20 hm why do they want that 12:29:31 fizzie, you you have gcc and such on your phone? Just check out and compile last version 12:29:55 I don't have the development environment in the phone. 12:30:00 huh 12:30:03 how strange :P 12:30:09 It's a bit on the large side. 12:30:19 hm doesn't the phone support memory cards? 12:30:32 Sure, but still. 12:30:35 It is possible to mangle it into a chroot, though; mooz did that. 12:30:42 fizzie, btw what fs does it use? 12:30:43 009bb130 0f 00 fe 00 04 00 01 00 00 00 00 00 00 00 00 01 |................| 12:30:47 ext3? 12:31:00 fizzie, so somewhere around there then 12:31:27 -!- Sgeo has joined. 12:31:31 It's possible they inline four-bytes-or-smaller values, actually, instead of pointing at them. 12:32:58 bbl 12:35:13 mount says "ubi0:rootfs on / type ubifs" (where ubifs seems to be a jffs2 successor, meant for flash-based systems); then "/dev/mmcblk0p2 on /home type ext3" (that's ~2-3 gigabytes, for installing programs to and such) and finally "/dev/mmcblk0p1 on /home/user/MyDocs type vfat" (for media files; it's probably vfat for compatibility easiness; that one's exported over the USB mass storage thing). 12:36:17 From what I hear it's possbile to repartition and reformat that stuff if you really want. 12:37:15 Right, tiff spec: "to save time and space the Value Offset contains the Value instead -- if and only if the Value fits into 4 bytes". 12:39:55 Heh. If I use TIFFSetSubDirectory(tif, 0x9bb130); to forcibly jump to where I think the raw-image ifd is, I get: 12:39:58 TIFFReadDirectory: Warning, test.dng: invalid TIFF directory; tags are not sorted in ascending order. 12:39:58 TIFFReadDirectory: Warning, test.dng: unknown field with tag 33421 (0x828d) encountered. 12:39:58 TIFFReadDirectory: Warning, test.dng: unknown field with tag 33422 (0x828e) encountered. 12:39:58 Segmentation fault 12:44:21 wow 12:44:29 fizzie, so it wasn't quite there then 12:44:57 fizzie, check their bug tracker. needs login to even read it it seems 12:48:02 It is there, those tag numbers are what should be there and I just manually parsed it sort-of correctly. I guess TIFFPrintDirectory just borks on it or something. 12:48:38 Why am I obsessed with Lua? 12:48:47 I can never seem to view languages as just tools 12:50:00 Sgeo, why do you always ask us questions we can't possibly know the answer to 12:50:32 2592x1968 pixels; that sounds okayish. 12:50:51 fizzie, so it does 12:51:29 And it's stored 16 bits per sample, though I doubt the sensor actually records that much. 12:51:38 fizzie, but yeah, better try to compile last version when you get to your cross compiler. And if that doesn't help: file bug 12:52:06 fizzie, iirc *.mrw stores the 12 bits per pixels packed or something silly like that 12:52:17 err 12:52:21 12 bits per channel I mean 12:52:24 not per pixel 12:52:34 and not per channel as such, but per element 12:52:48 since iirc it is the usual GGRB style sensor 12:53:24 though *.mrw supports several models and thus iirc several different number of bits per sensor element 12:54:14 This has PhotometricInterpretation field that has a DNG-specific value of "Color Filter Array"; I think it's supposed to mean raw sensor data like that. There should be some later DNG-specific fields to denote the geometry and color-order. 12:54:23 Slow going, this manual parsing. 12:54:35 right 12:54:44 fizzie, as long as it seems correct 12:56:12 So far so good. Next tag was "data strip offsets", and it has 164 strips; I seem to recall that tiff strips are <64k splits, and 164*64k is about 10.5 megs, which sounds reasonable. 12:57:03 Orientation: topleft. That's also correct and reasonable. 12:57:29 fizzie, you are probably at the right place but does *.dng contain custom tags compared to normal *.tiff ? 12:57:33 if so it could explain 12:57:37 TIFFReadDirectory: Warning, test.dng: unknown field with tag 33421 (0x828d) encountered. 12:57:46 Yes, it does. And those are the right numbers, like I said. 12:58:18 Still, it doesn't quite explain the segfault: tiff readers are supposed to be clever enough to skip fields they don't understand. 12:58:51 Samples per pixel: "1". Well... I guess that's reasonable too. It's hard to say what number it *should* be. 12:58:55 fizzie, did you try gdb? 12:59:13 Not yet, I'll decode this manually first out of curiosity. 12:59:25 fizzie, and 1 seems a bit strange 12:59:35 wouldn't that mean greyscale 13:01:18 I guess it depends on how you define "pixel". Taking into account the "PhotometricInterpretation" field -- which defines what the image data is -- I guess one pixel == one sensor cell, and therefore one sample per pixel. 13:01:36 hm okay 13:03:20 CFARepeatPatternDim: (2, 2). I believe that means that the sensor color filter pattern repeats in units of 2x2 cells, which also sounds good. (Probably GG diagonally, and R/B in the other two corners, I think that's the usual case.) 13:04:52 CFAPattern: green, red, blue, green. 13:06:59 Er, or actually CFAPattern: 1, 0, 2, 1. This tag is from a separate "TIFF-EP" (electronic photography) standard; then there's a separate DNG tag to map those planes into red, green, blue with a default value of 0 = red, 1 = green, 2 = blue. Just in case things were about to get too simple. 13:07:41 hahaha 13:07:52 fizzie, are there more planes to map than those? 13:09:24 Well, um.. it maps from values in CFAPattern tag (which could theoretically go up to 255) into "plane numbers in LinearRaw space". I don't know exactly if you could have more than three in the latter, to deal with more-than-three-colors sensors. 13:09:48 BlackLevelRepeatDim: 2x2. I don't know what it's about exactly, but... 13:10:25 fizzie, maybe the human eye, that has 4 and in some <1% or such 5 13:11:04 fizzie, I wonder if it could describe that "light level only" thing of the human eye 13:11:19 of course the placements of the sensor elements is a lot more complex there 13:11:52 fizzie, anyway, why not store the data along Hillberts space filling curve or such 13:14:02 Yay, all tags parsed. Final was WhiteLevel: 959, which is the "-- fully saturated encoding level for the raw sample values -- caused either by the sensor itself becoming highly non-linear in response, or by the camera's analog to digital converter clipping" 13:14:23 Having that be about 2^10 makes it sound like it only records 10 bits for each channel, not 12. 13:15:12 (Given how noisy pictures it takes, maybe that's not such a huge loss.) 13:15:26 fizzie, well 12 was for my camera 13:15:29 there are those that do more 13:15:31 iirc 13:15:41 12 is common-ish; I think mine does that too. 13:15:42 -!- Madk has joined. 13:16:04 fizzie, storing the values packed is a bit strange though 13:18:40 Ooh, yet another tiff-file incompatibility: the first-ifd dictionary starts at 0x0a9c665 (that is, an odd offset) while the spec says it must begin on a word (two bytes, in this context) boundary. 13:18:42 -!- BeholdMyGlory has joined. 13:19:00 fizzie, fun 13:19:16 I think I'll take a manual peek at that too to see if the subifd field in fact is there or not. 13:19:26 right 13:19:33 bbl 13:23:28 4a 01 0d 00 01 00 00 00 30 b1 9b 00 13:23:28 tag 0x14a, type ifd, count 1, offset 0x9bb130 13:23:29 What. 13:23:42 There is a subifd pointer there. 13:24:57 Besides, the tags are in ascending order. At least assuming those 16-bit values are unsigned and not signed. 13:26:35 fizzie: check out Grin on the esolang wiki 13:27:16 dcraw is full of nice special cases 13:27:38 case 330: /* SubIFDs */ 13:27:39 if (!strcmp(model,"DSLR-A100") && tiff_ifd[ifd].width == 3872) { 13:34:11 Also the code is pretty freaky. 13:34:17 if (*len * ("11124811248488"[*type < 14 ? *type:0]-'0') > 4) /* ... */ 13:41:25 Ha! A single-character patch to dcraw and now I can extract images. 13:49:04 What does that DSLR-A100 with width of 3872 special case do? 13:49:46 It does: 13:49:48 load_raw = &CLASS sony_arw_load_raw; 13:49:48 data_offset = get4()+base; 13:49:48 ifd++; break; 13:50:57 It seems to be a camera-detection thing. 13:52:21 I guess I should email the dcraw guy about the problem; as closely as I can determine, what I do is more correct. (Unless what dcraw does is trying to work around some incompatibility somewhere.) 14:10:56 -!- tombom_ has joined. 14:12:05 -!- tombom has quit (Ping timeout: 260 seconds). 15:42:51 -!- cpressey has joined. 15:53:04 -!- relet has joined. 16:02:50 -!- Arzgarb has joined. 16:14:50 -!- relet has quit (Read error: Connection reset by peer). 16:38:37 fizzie, heh 16:45:31 I'm working on another soteric language 16:45:50 Is it a language based on kittens 16:45:53 it's got more arithmetic capabilities than anyone will ever use 16:45:57 With kittens as data structures 16:46:00 and it has no arguments for any commands 16:46:13 I just hit 64 commands :D 16:46:24 only a few of them are useless 16:46:44 about 3/4 of those are different math functions 16:47:00 another half of the remainer are references to constants 16:47:01 -!- sebbu has joined. 16:47:19 nxtmoves the cell pointer to the right 16:47:19 bckmoves the cell pointer to the left 16:47:19 incincrement a cell's value 16:47:19 decdecrement a cell's value 16:47:19 zroset a cell's value to 0 16:47:19 oneset a cell's value to 1 16:47:19 Is the constant 0 16:47:21 =piset a cell's value to pi 16:47:23 =e=set a cell's value to e 16:47:25 fc1set a cell's value to the first Feigenbaum constant 16:47:27 fc2set a cell's value to the second Feigenbaum constant 16:47:29 apeset a cell's value to Apéry's constant 16:47:31 gldset a cell's value to the Golden ratio 16:47:33 emcset a cell's value to the Euler-Mascheroni constant 16:47:35 lplset a cell's value to the Laplace limit 16:47:35 pastebin 16:47:39 prbset a cell's value to the Parabolic constant 16:47:39 this is a bit spammy 16:47:41 mlcset a cell's value to Mill's constant 16:47:43 [...]set a cell's value to the number specified inside 16:47:45 outoutput the cell's value as a number 16:47:47 inpinput the cell's value as a number 16:47:49 prnoutput the cell as an ASCII character 16:47:49 ... 16:47:51 linoutput a newline to the console 16:47:53 stkoutput the entire numerical contents of the stack to the console 16:47:55 stroutput the entire contents of the stack as ASCII characters 16:47:57 (...)output the text inside to the console 16:47:59 pshpush the cell under the pointer's value onto the stack 16:48:01 poppop the stack's topmost value into this cell and remove it 16:48:03 addadd the numbers on the stack together 16:48:04 How can you set the cell to the value pi 16:48:05 subsubtract the lower numbers on the stack from the topmost 16:48:09 mulmultiply the numbers on the stack together 16:48:10 \o/ 16:48:11 | 16:48:11 |\ 16:48:11 divdivide the topmost number on the stack by the others 16:48:13 pwrraises the topmost number to the powers of the rest of the stack 16:48:15 maxremoves all but the greatest number from the stack 16:48:16 argh 16:48:17 minremoves all but the least number from the stack 16:48:19 sicincrements all stack values by 1 16:48:20 Does it actually set it as pi or as a floating point approximation 16:48:21 sdcdecrements all stack values by 1 16:48:23 modcomputes all stack values modulo the value in this cell 16:48:25 flrrounds all stack values to the lowest integer 16:48:25 try /flushq 16:48:27 celrounds all stack values to the highest integer 16:48:29 rndrounds all stack values to the nearest integer 16:48:31 sintakes the sine in degrees of all stack values 16:48:33 costakes the cosine in degrees of all stack values 16:48:35 tantakes the tangent in degrees of all stack values 16:48:38 your irc client might have that to clear it's send queue 16:48:39 sectakes the secant in degrees of all stack values 16:48:41 csctakes the co 16:48:43 D: 16:48:45 alright 16:48:47 ? 16:48:49 it uses 64-bit floating points 16:48:51 so it gets fairly close 16:48:53 pastebin next time :P 16:48:59 Yeah, but 16:49:04 If you do sin(pi) 16:49:07 Do you get 0 16:49:11 Or something else 16:49:14 let me check :D 16:49:24 if I can get the interpreter to work 16:49:46 You can write the interpreter in Mathematica 16:49:47 -!- sebbu2 has quit (Ping timeout: 248 seconds). 16:49:51 It will keep the pi as pi 16:56:50 my trig works in degrees, not radians 16:57:25 That's not very convenient when you have pi as a value 16:57:39 I can make conversion commands pretty easily 16:57:59 convert the values on the stack from degrees/radians 17:00:41 yeah, pi+trig works fine 17:02:17 (Hello, world!) 17:02:19 :D 17:02:28 now to do it with stacks and everything 17:21:05 -!- sebbu has quit (Ping timeout: 265 seconds). 17:22:54 -!- Arzgarb has left (?). 17:44:10 Slereah, hm now you made me consider a mathematica self interpreter 17:44:11 XD 17:44:32 or more feasible: writing an x86 emulator in mathematica and running it under that 17:44:47 getting an interpreter loop between two languages that could arguably both be considered esoteric 17:44:47 x86 has like thousands of commands 17:44:50 Don't do it foo 17:44:57 Slereah, of course I won't 17:45:38 Slereah, the "sane" way would be to construct a gcc backend generating mathematica code, then use that to cross compile qemu XD 17:46:07 or... better yet 17:46:17 fix up gcc-bf so it generates less buggy code 17:46:31 then write a brainfuck interpreter in mathematica 17:46:36 then cross compile qemu to gcc-bf 17:47:29 possible and even feasible in theory but completely impossible to run due to gcc-bf generating enormous and slow programs. As well as mathematica not being fast at such stuff 17:53:52 -!- ais523 has joined. 17:55:25 ais523, hm do you think it is/will be possible to compile qemu with gcc-bf? 17:55:46 I'm not sure 17:55:49 possibly making it output raw vga dump or something like that 17:56:05 since obviously you don't have the normal GUI toolkits and such 17:56:13 PSOX! 17:56:15 * ais523 runs 17:56:21 ais523, and since it is definitely feasible to write a brainfuck interpreter that ought to get us a loop 17:56:25 err 17:56:34 brainfuck interpreter in mathematica* 17:56:47 ais523, now you can suddenly run mathematica under mathematica 17:57:14 that would be pointless 17:57:21 and also probably violate mathematica's license 17:57:28 ais523, well yes but remember which channel this is 17:57:31 ais523, for science! 18:01:25 http://esolangs.org/wiki/Tri 18:01:30 interpreter link pending 18:10:27 Madk, why so many commands 18:10:45 I dunno 18:11:05 I just added pretty much everything that came to mind :P 18:12:10 for example: sto = pop psh 18:12:29 a compiler could optimise that 18:12:52 I did it for sake of convenience when writing code 18:13:32 Madk, right. Ever seen malbolge? ;P 18:13:55 I just want my languages to have a different style to them, not brain-killing :P 18:14:03 not saying it should be as bad as malbolge of course 18:14:03 Madk: thanks for all your work improving the wiki, by the way 18:14:15 My pleasure :) 18:14:25 it's a joy when I go do my Esolang admin duties, and find a bunch of useful edits rather than the more common bunch of horrible spam 18:15:19 Madk, hm nice, there seems to be no substract that doesn't substract all-but-the-top values on the stack from top one 18:15:23 I like that 18:15:43 better yet, make it substract all values from the top one. So you have to add that back after 18:15:57 "subsubtract the lower numbers on the stack from the topmost" ? 18:16:16 Madk, well, it could substract the topmost from itself as well 18:16:29 that would be painful :D 18:16:41 Madk, it is unclear to me if sub leaves the lower numbers on the stack or if you get a stack with just a single value, the result 18:16:49 a single value 18:16:59 it's that way with all the ones that come up with one answer 18:17:20 I'm just tiding up my interpreter to upload it 18:17:21 Madk, also do you use doubles or some more exact representation, like a CAS would 18:17:34 doubles. What exactly is a CAS? 18:17:43 computer algebra system 18:17:53 It doesn't use CAS, no 18:17:57 it would give you pi or pi/2 rather than an inexact value 18:18:06 Ah 18:18:13 for example 18:18:36 tends to be possible to force them to give you an approx value if you really want it though. 18:19:32 people use sec, csc and such!? 18:19:33 huh 18:20:09 You think those are obscure, wait till you see exsecant and versine 18:20:14 I don't think there are keys for anything but sin, cos and tan on my calculator. And I never used anything else. cot *may* exist that menu with all commands 18:20:25 * AnMaster looks for his TI-83+ 18:20:42 the thing is, cotangent is just 1/tan 18:20:44 nop 18:20:45 no cot 18:21:04 Madk, well sure 18:21:28 Madk, I never even heard of "exsecant" before 18:21:30 wtf is it 18:21:36 secant - 1 18:21:39 :P 18:21:45 why on earth 18:22:04 because wikipedia had an entire article dedicated to it :D 18:22:11 Madk, versine? 18:22:18 again never heard of it 18:22:35 1-cos 18:22:40 ... 18:22:42 wtf 18:22:57 Madk, why are you using degrees rather than radians btw? To make it more painful to use? 18:23:10 make it easier on me 18:23:15 huh 18:23:26 that makes no sense 18:23:42 I'm used to degrees and the language I'm writing my interpreters in use degrees by default 18:23:55 what language is that? 18:23:59 BlitzMax 18:24:04 never heard of it 18:24:05 is it FOSS? 18:24:10 Very nive for getting things done quickly 18:24:14 FOSS? 18:24:22 Free/Open Source Software 18:24:27 It's $80 18:24:31 ah... 18:24:35 But it's worth every penny 18:24:51 Madk: Does it come with a source code license? 18:24:56 It's fast and powerful, but it's very good for rapid protyping, too 18:25:00 nop 18:25:09 no restrictions on usage once you buy it 18:25:16 does it work for anything but 32-bit windows (and possibly 64-bit) 18:25:29 Then it's about significantly more expensive than it has any right to be. 18:25:38 Windows 32 (it runs on 64), mac, and linux 18:26:09 Madk, I think you misunderstood "source code license" here. What I think pikhq meant was "does it include source for itself once you buy it" 18:26:13 Madk: Oh, one thing I noticed earlier; the M-code wiki spec doesn't mention N at all, just the other conditional jumps (?, !, =). 18:26:14 possibly to soon be expanded to systems using ARM processors 18:26:14 pikhq, right? 18:26:47 AnMaster: Correct. 18:26:47 anmaster: Not to the compiler 18:26:52 mhm 18:26:56 not that I'm aware of, at least 18:27:06 the thing is, most of it is written in BlitzMax itself 18:27:08 AnMaster: Also, the right to create and distribute your own changes to it. 18:27:11 jmp/trg looks like [/] from bf 18:27:22 pikhq, ah 18:27:22 anmaster: that was the intention 18:27:40 * pikhq likes his free software 18:27:41 Let me check something quick 18:27:46 pikhq, same 18:30:56 anmaster: It's modular and all the source to its modules is open. The modules are written in blitzmax itself, and some of the more basic modules import C code. I'm not entirely sure what actually goes on when you compile. But all the code is there, and I do know the IDE that comes packaged with the language is open-source. 18:34:11 mhm... 18:34:19 still I prefer completely open source 18:39:31 AnMaster: Heh, "ufraw test.dng": Floating point exception. (It has the same bug in its built-in dcraw code.) 18:41:02 heh 18:41:13 fizzie, yeah mail the dcraw author 18:41:30 next ufraw version after the next dcraw version ought to include that fix then 18:42:24 I did send one mail already; got a vague reply back that tiff_get is supposed to behave that way; sent (a moment ago) another mail to explain how the behaviour breaks subifd reading for the count==1 case, hopefully this time it'll go better. 18:42:50 ah 18:43:15 Oh well, at home I can easily patch my own copies. 18:43:30 It can't be a bug many people hit, otherwise they'd have hit it already. 18:45:25 fizzie, what is that count btw? 18:45:59 -!- Madk has quit (Read error: No route to host). 18:46:02 -!- Madk has joined. 18:46:27 what kind of program should I try and write in Grin 18:46:33 I have th urge to try something 18:46:55 Grin? Is that yet another one? 18:47:02 http://esolangs.org/wiki/Grin 18:47:26 I have fun with that one 18:47:49 wow... that is like bf gone bloated 18:47:55 so completely unlike bf 18:47:57 :P 18:48:01 AnMaster: It's the item count for the field. Basically the problem is that the subifd pointer field uses a special field type 13, which means just a 32-bit offset in the file (it's a special type so that programs that don't know about the field name still understand that the value points to an ifd directory); and every field also has a count of items in it. So for count==1, the total length of the value is 4 bytes, and it's stored inl 18:48:01 ine; but dcraw lists "8 bytes" as the item-size of type 13, so it will always think the field "ValueOffset" is an offset to the data instead of the (single) value. 18:48:55 huh 18:49:19 fizzie, 8 byte offset in a file? You get image files large enough to need that? 18:49:55 Madk, write a Grin interpreter in Grin 18:50:05 ._. 18:50:16 hey you asked for suggestions 18:50:31 It's not 8 bytes, he has just put in a value >4 into the bit of code responsible for judging whether the value's inlined or an offset, so that in the count==1 case it will treat the value as an offset and seek directly to the ifd directory location (because it thinks the field value is being held there). 18:50:34 Madk, why not implement Tri in Grin then? 18:50:38 I would have already but I can't think of a good way to give it the input code :D 18:51:10 fizzie, hm 18:51:25 Madk, on STDIN? 18:51:36 and then some end of file marker 18:51:39 it can only read 1 char or number at a time 18:51:42 after which it starts the program 18:51:46 Madk, so use a loop 18:51:46 The author explained that since tiff_get is supposed to leave the file pointer to point at the file data, he put in a >4 size so that even for count==1 it will read it and process it as an offset, leaving the file pointer point to where the subifd directory is. The problem is that the code for handling the field expects that the file pointer is left pointing at a place where it can (consecutively) read "count" times 4-byte offsets of 18:51:47 idf directories. So it works when count>1 (because then the value is not inline, and tiff_get will have seeked to where the actual directory offsets are), but not for count==1, because in that case tiff_get has seeked to the ifd directory start itself. 18:51:57 Madk, how do you think bf self interpreters work? 18:52:03 AnMaster: perhaps. 18:52:12 Madk, then tend to use @ to mark the end of the input bf program 18:52:24 they* 18:52:27 I'm writing one more example for Tri, then I'll do something for that 18:52:40 Oh, and check out the sweet icon on the tri interpreter executable 18:53:04 Currently what it does for count==1 case is that tiff_get on the field will cause the file pointer be left at the beginning of the subifd directory, and then the code handling the field will read the first 4-byte value (which will contain the number of directory items plus type tag for the first item) and treat that as a file offset; then it tries to find a directory there. 18:53:06 Madk, unlikely. I run 64-bit linux. 18:53:18 ah 18:53:27 the source is included in the download 18:53:40 well I don't plan to spend $80 for that 18:53:46 There is a free BlitzMax demo 18:53:56 and I don't trust closed source in general 18:54:15 :| 18:54:18 sure I'm stuck with my BIOS being closed source. And various firmwares in different parts of the computer. And sadly, the nvidia driver 18:54:20 but that is it 18:57:00 That dcraw guy sure tries hard to be extra clever with his code. 18:57:03 dcraw.c:6405: warning: array subscript is above array bounds 18:57:09 What it does around that line is: 18:57:27 double cam_xyz[4][3]; ... for (j=0; j < 12; j++) cam_xyz[0][j] = ...; 18:57:40 It's sort-of valid, but still. 18:57:44 haha 18:59:32 Mm, patched ufraw seems to work just fine. 19:00:22 Horribly noisy image even with (I think) the lowest (ISO 100) gain setting, though. Although this one might've been the test with automatic settings, which set it to something like ISO 320 for indoor use. 19:01:17 Metadata extraction doesn't quite work so well. The FCam API puts a "tag-list" of all metadata it knows in a special private TIFF tag, but of course nothing can decode that, except FCam itself. 19:02:41 Maybe "all metadata" was a bit too much, since it seems to include just lens-related (focus, zoom, aperture; most of which are fixed constants in the N900 camera) things. 19:03:42 hm 19:04:15 fizzie, for my camera ufraw manages to extract stuff but forgets to byteswap the MakerNotes thingy 19:04:43 which means I have to post-process the output with exiftool to copy that bit from the raw file to the tiff 19:05:09 exiftool manages to do that correctly 19:05:59 There's some sort of MakerNotes blob written, too, but I'm not sure how decodable it is with anything. I don't think I've seen any tool capable of understanding the Panasonic DMC-FZ8's (the real camera I have) MakerNotes byte-blob yet. 19:07:45 exiftool manages my camera's MakerNotes 19:08:03 fizzie, anyway presumably it was fcam that wrote it here? 19:08:10 so the format of it should be easy to find 19:08:28 exiftool extracts a reasonable amount of data from the file, though not all of it is very useful: http://sprunge.us/UUJK 19:08:49 Especially the "DNG Private Data: (Binary data 765 bytes, use -b option to extract)" bit. 19:13:23 The colors in ufraw are also a bit wrong; I wonder why there's two Color Matrix rows in there, and whether they're very correct. 19:14:09 fizzie, what exactly does the Color Matrix thing mean I often wondered 19:15:01 fizzie, I tend to set my camera to use AdobeRGB instead and then use that. Seems to give somewhat better results 19:16:31 though sometimes that results in somewhat bland colours 19:16:44 on the other hand Colour Matrix often gives too intensive colours 19:17:05 ufraw's color tab has just "Color matrix" and "No profile" entries for the camera side, and of course the camera doesn't have much controls. 19:17:16 I do have the fcam sources where it computes those color matrices, but, well. 19:17:47 hm 19:19:15 fizzie, any reply from the dcraw author yet? 19:19:22 The "Color matrix" colors are far too saturated, while "No profile" results in pretty bland colors. It could of course be either ufraw misinterpreting the numbers, or fcam computing them wrong. 19:20:28 fizzie, how does it compute those? I mean, what stuff from the image does the function to compute that matrix use? 19:21:02 It seems that the two different ColorMatrix values are for two different reference white-balance settings; I don't know if it's supposed to interpolate between or what. 19:21:36 What it writes there is a 3x3 conversion matrix from CIE XYZ colorspace to raw-sensor RGB. 19:22:42 The DNG-writing code just bases them on the Frame::rawToRGBColorMatrix function; I don't know which class implements Frame here, so I haven't yet found where it actually comes from. :p 19:23:11 Hm, it comes from N900::Platform::rawToRGBColorMatrix(...), and... 19:23:31 And there it is just fixed numbers. 19:23:36 http://graphics.stanford.edu/papers/fcam/html/_n900_2_platform_8cpp_source.html 19:23:43 "These are quick and dirty numbers ..." 19:24:18 There could even be hardware-revision based differences there. 19:27:23 fizzie, perhaps 19:28:04 I guess it should be possible to build a color profile for the camera with something like http://lprof.sourceforge.net/ but I don't have a reference image like that (and possibly it needs known light sources too). 19:29:49 There's even a use-with-ufraw tutorial there. 19:30:10 Starts with "Use a tripod." The phone isn't very tripod-friendly. 19:30:29 Nothing a roll of duct tape couldn't solve, though! 19:30:50 fizzie, or lego 19:31:04 it was quite easy to build a stable support for my phone in lego 19:31:41 used it early on with that lego panoramic thingy, to test the idea. Before I built the stuff to hold my camera 19:41:27 fizzie, hm it might only be valid in that given light condition or something like that 19:42:36 Well, it's purely hypothetical anyway; I don't think I'm going to go and buy a reference target anyway. 19:47:27 ah 19:47:32 expensive are they? 19:48:35 Well, perhaps not in an absolute sense; "-- targets cost from around $40 to one costing significantly more (read hundreds of $'s) --" 19:48:43 Still perhaps not worth it. 19:48:55 hm 19:51:16 I could just photograph any color-patch sheet, and then find a good spectrophotometer to measure what the colors actually mean. I'm sure some department of the university has one. 19:52:39 -!- oerjan has joined. 19:54:08 fizzie, you think finding such a spectrophotometer would be easy? 19:54:20 sure, some dept will but... 19:54:47 My father's school has a lighting-releated measurements lab; I remember being all ooh-aah (well, I was a lot younger, too) at their fancy devices. There was this one spherical thing in particular; you put a light bulb in one end, and the insides were painted with some paint that cost thousands/liter, and then in the other end was this collection of otherwise-unmarked-except-fancy-product-name-in-red-text black boxes connected with tub 19:54:48 es; and then they all fed into a computer. 19:55:01 I have no clue what it was supposed to measure, but it was a really neat thing nonetheless. 19:55:21 Computer science is so boring when it comes to equipment. We don't even get bubbly liquids. 19:55:40 Just das blinkenlights. 19:55:45 fizzie, wait what? product names with tubes? 19:55:49 sure you weren't dreaming? 19:56:13 oh wait I misread 19:56:19 still strange 20:00:05 I think it was supposed to be used for measuring light sources for visualization ray-tracing things that take a real spectral power distribution maps, like RADIANCE and the commercial alternatives. 20:00:24 heh 20:01:22 Oh, and LuxRender: http://en.wikipedia.org/wiki/LuxRender 20:01:35 "full spectral rendering: Instead of the RGB colour spectrum, full spectra are used for internal calculations." 20:01:41 Everyone should do it like that! 20:07:43 -!- sftp has quit (Read error: Connection reset by peer). 20:08:31 fizzie, so hm... is that RADIANCE better than povray? 20:08:49 I guess it depends on whether you want pretty pictures or actual physical simulation. 20:08:58 "Radiance was developed with primary support from the U.S. Department Of Energy and additional support from the Swiss Federal Government." 20:09:00 why those... 20:09:24 Here's one of those spheres: http://www.labsphere.com/productdetail.aspx?id=857 20:10:10 This page has also some of those boxes included: http://www.labsphere.com/productdetail.aspx?id=875&catid= 20:10:11 not very good images of it 20:12:35 There was also a gun-like device that you could point at something, then pull the trigger, and it'd beep and measure the surface illumination on the point you pointed at. 20:13:17 Given how much I like all kinds of gadgets, I sure picked the wrong field. 20:14:34 fizzie, XD 20:17:12 -!- sftp has joined. 20:25:26 I have a feeling that Radiance and LuxRender are comparable (at least within a couple of orders of magnitude) on the realistic-simulation scale; certainly they should be better than generic Blender/yafray/povray ones, for "physics-inspired simulation" values of "better". 20:26:30 E.g. in Blender if you add a "sun", it's just unidirectional light with a RGB value; whereas for LuxRender the existing "sun"-type environment light "will model sun lighting from NASA measurements, including atmospheric absorption". 20:27:30 Oh, and you can apply luminous-intensity-distribution curves (that you can get from lighting fixture manufacturers) on point lights; that's a nice tool too. 20:38:56 Radiance does CIE standard sky illumination too. You just run "gensky 7 4 14:30EDT +s -a 42 -o 89" and it outputs a July 4th, 2:30pm EDT sunny ("+s") sky as seen at 42 degrees north, 89 degrees west. (Ripped from man page example.) 20:39:42 fizzie, hah 20:40:32 fizzie, can you select cloud types? I want to render METAR data XD 20:42:59 Not very directly. You can select between CIE clear / intermediate / overcast skies. Of course the sky model is a bit of fakey, but, well, you can only go so far in pursuit of realism. 20:45:42 CIE sky seems to be a messy collection of trigonometric and exponential functions, designed to approximate measurements. 20:48:23 In both systems you can use HDR environment-map images to provide light intensity, if you happen to have some. 20:48:43 And for any light you can provide as data file the spectral distribution of it. 20:50:19 I don't think it supports a 2d-map where each point has a separately measured spectrum, but, uh... really. I'm not aware of any file formats for that sort of stuff either. 20:56:11 -!- Madk has quit (Read error: No route to host). 20:56:29 -!- DH____ has quit (Ping timeout: 265 seconds). 20:58:40 fizzie, btw the main thing I noticed is that almost always 3D rendered pictures are too perfect. That is the main way to tell them apart 20:59:40 Oh, and of course materials for both systems are done by cheating, and not actually modeling what happens to them photons. 21:00:27 Still, LuxRender does metals (hold, silver, copper, aluminium, carbon) based on measured data presets, and accepts "n/k spectral data files in the sopra format", whatever that is. 21:01:20 -!- Madk has joined. 21:08:39 fizzie, Soap OPeRA format ;P 21:27:32 -!- Wamanuz4 has joined. 21:29:41 -!- Wamanuz3 has quit (Ping timeout: 240 seconds). 21:34:11 o 21:34:14 ok 21:34:20 I've made another language 21:34:27 but I don't want to overdo it on the commands 21:34:52 It's on a 2D grid 21:34:52 -!- wareya has quit (Read error: Connection reset by peer). 21:35:04 <>^v change the direction of a pointer 21:35:14 % is where the pointer(s) start 21:35:28 x kills a pointer, @ kills the program 21:35:33 -!- wareya has joined. 21:35:43 # makes 3 pointers in the opposing cardinal directions 21:35:55 and " starts and stops printing a string 21:36:09 I know I definitely need some conditional program flow in there 21:36:37 I have pointers incrementing/decrementing with + and - 21:36:41 = sets it to zero 21:37:02 I'm thinking maybe ? destroys a pointer if it's 0 and ! destroys it if it's not 21:37:06 something like that 21:37:19 there's also basic i/o 21:42:38 -!- tombom_ has quit (Quit: Leaving). 21:52:36 Madk, why not make it self modifying 21:52:37 like befunge 21:52:44 would become a fungoid then 21:52:45 it is to an extent 21:52:54 oh? 21:52:55 I don't want it to be too similar, though 21:53:02 so code and data storage is shared? 21:53:13 to an extent 21:53:20 every pointer has 1 byte of data 21:53:28 mhm 21:53:35 and the field is modifiable to a point 21:53:56 I'm still owrking things out though :P 21:54:14 -!- augur has joined. 21:57:46 * Ilari is writing interpretter for new esolang... :-) 21:59:31 So far 10 of 37 opcodes implemented... And there are some opcodes to be defined. 21:59:41 http://img820.imageshack.us/img820/1091/71108837.jpg VS http://img695.imageshack.us/img695/1416/p77k.jpg 21:59:45 who wins? 22:01:45 popeye wouldn't hit a girl! 22:01:57 so obviously he loses 22:02:57 * oerjan has no idea who the girl is, in case that's important 22:03:02 -!- Madk has quit (Quit: Leaving). 22:04:50 -!- CakeProphet has quit (Ping timeout: 260 seconds). 22:10:42 it's not 22:10:44 she's just a friend 22:12:17 -!- CakeProphet has joined. 22:21:01 Wasn't that pic on Reddit? 22:22:03 Ilari, details on that esolang? 22:22:40 cheater99, the latter one looks like he has a bell curve on his arm 22:22:42 -_- 22:23:29 AnMaster, that's totally normal 22:26:38 AnMaster: dammit don't tell me you don't even know popeye 22:28:33 oerjan, I know about em 22:28:52 whew 22:29:00 oerjan, but I still think that looks like a bell curve 22:29:09 and that's not realistic 22:29:34 well the whole point of popeye is he isn't realistic 22:30:25 -!- CakeProphet has quit (Ping timeout: 265 seconds). 22:30:30 oerjan, no I don't think that is the *whole* point 22:30:52 because you can get a lot more unrealistic 22:30:57 i'm exaggerating for effect, there. like that curve. 22:30:57 just add a third arm 22:30:59 for example 22:32:17 -!- CakeProphet has joined. 22:33:09 -!- cheater99 has quit (Ping timeout: 240 seconds). 22:33:31 http://en.wikipedia.org/wiki/Eugene_the_Jeep <-- now _that's_ unrealistic :D 22:33:36 (and popeye) 22:34:32 AnMaster: Each codepoint in program source is instruction (some are invalid, none has parameters). Storage includes stack, RAM and tape swap space (with destructive read). 22:34:36 The whole point of Popeye is to sell spinach. 22:34:50 pikhq: hm, _could_ be 22:35:05 Ilari: reminds me vaguely of some sort of extended BF 22:35:10 which is famous for effectively being destructive-read 22:36:19 TCness requires use of swap space. And all flow transfers are unconditional. 22:36:41 Cooked spinach disturbs me. 22:37:15 * oerjan now gets a sudden craving for spinach soup. and he doesn't have any. :( 22:37:27 with hard-boiled eggs 22:37:41 i haven't had it in years 22:37:47 Fresh spinach is freaking delicious, though. 22:37:57 (only flow control primitive is relative unconditional jump). 22:38:08 And, actually, when the spinach is *in* something it's rather nice. Just straight cooked spinach though? Urgh. 22:39:33 I like spinach-flavoured pasta 22:39:48 I need to define load extension library instruction, map instruction instruction, test instruction instruction and unmap instruction instruction. 22:39:49 Ilari: relative unconditional jump's a great control-flow operator 22:42:19 -!- cheater99 has joined. 22:44:13 AnMaster doesn't know popeye? 22:45:36 No, he does. 22:46:31 -!- aliseiphone has joined. 22:47:17 hi aliseiphone 22:47:35 Heil 22:47:49 Mugged by mathematics!—suddenly Bjorn jumped in startlation as the lactating plants pulsated as they grew into immersive tree landscapes. Bjorn, on the whole, preferred grass. 22:48:04 pikhq: Hitler, at your service. 22:48:35 aliseiphone: Ah, mein Fuerher! Ein volk ein reich ein Fuerher, da? 22:49:00 pikhq: Quite so! I suggest we kill all the Jews and one clown. 22:49:08 Gespersprachen ales der Reichsvolksenkoffen! 22:49:24 aliseiphone: Why all the Jews? I get the clown, but the Jews? 22:49:25 aliseiphone: I've heard that one before 22:49:26 Yes. Er. Very much so. 22:49:41 -!- Madk has joined. 22:49:47 ais523: It's an old bash.org one. 22:49:59 pikhq: See? Nobody cares about clowns! 22:49:59 that would explain it 22:50:02 not in the top 200, though 22:50:06 Wait... what? 22:50:17 ais523: Wait, what? 22:50:18 ais523: Huh. Well, it used at be, at least. 22:50:19 or if it is, I don't remember seing it there 22:50:21 *seeing 22:50:21 Thass a classic. 22:50:31 I'm sure it is... 22:51:02 * ais523 checks 22:51:17 it is, you're right 22:51:24 aliseiphone: Fucking clowns. Only thing worse is a nwolc. 22:51:37 Wow; the top 200 has changed drastically. 22:51:43 Or rather, the top 10. 22:51:47 Now they suck. 22:52:20 ?nwolc a s'tahw 22:52:35 hmm, some of them are charming 22:58:52 ais523: Define "charming". 22:59:13 The whole point of bash is basically its crassness. 22:59:22 hmm, things that make me smile when I read them 22:59:30 I don't like the crass ones as much 22:59:39 Where has the ping one gone? 22:59:56 The "responds to pings; just physically can't find it" one. 23:00:00 #9322 is a pong one 23:00:03 the responds to pings is #2 23:00:09 well, second on the list 23:00:12 not numbered 2 23:00:21 And the stab-over-TCP/IP? :( 23:00:51 And "tetris is so unrealistic"? And ... 23:00:52 that's pretty high up too 23:01:03 I'm rereading the top 100, and haven't come across the tetris one yet though 23:02:21 ... Bjorn entered the shop through an interdimensional portal, fought a hundred year war in the middle, found true love, had children, watched them grow up, and bought crisps. He left the shop with less than a pound out of his pocket. 23:06:01 -!- kwertii has joined. 23:14:05 He walked towards the Boothy Booth, the premiere showcase for all fans of boothes, and in a fit of naïvety attempted to descend into the miniature copy of the Boothy Booth contained inside it. Alas, he tripped over it and flattened its containing tent just as a gigantic Bjorn flattened Boothy Booth. 23:14:45 I have no idea what you're quoting from 23:14:55 or if that's newly-created entertainment 23:17:16 * oerjan once had a dream somewhat like that with a miniature copy of the place he was on some kind of blackboard. i think it was inspired by a similar comic i saw. obviously i had to touch the recursion point, and the dream ended with the world somehow unraveling into something like pixels. 23:17:39 -!- GreaseMonkey has joined. 23:17:50 rather uncomfortable feeling, i recall 23:20:03 HELLO ALISE 23:20:14 up is what! 23:20:23 still, better than the dreams of being hunted/caught by a pack of carnivorous dinosaurs. (yes, that used to be recurring.) 23:23:59 oerjan: and very fair so, you little mammarian meatbag 23:24:29 *mammalian 23:24:42 mammarian. as in, made out of mammaries. 23:25:07 * Sgeo had a weird dream this afternoon, but I don't think anyone wants to hear it 23:25:54 oerjan: Raptors CHASING YOU IN TO THE FIXED POINT 23:26:10 ais523: Newly created! 23:26:33 hmm, well I suppose you have a lot of spare time with nothing much to do in it 23:26:55 i don't think they were raptors. probably tyrannosaurs. 23:26:57 Just like Bjorn. 23:27:41 oerjan: so what do quantum voxels feel like 23:27:54 nauseating. 23:28:04 XD 23:28:04 at least that's what my vague recall says. 23:28:39 Schrodinger's cat actually just feels really uncomfortable. 23:28:40 Sgeo: out with it 23:28:58 like something is VERY WRONG 23:29:17 * cheater99 sets up an experiment with Schrödinger's alise 23:30:07 cheater99, [this is the dream, not RL] a girl I've known since 1st grade turned out to be sisters with a girl I met, but who I think generally ignores me [in college]. So the first girl invited me to her house, then I saw the second girl, and it was her birthday 23:30:11 -!- MigoMipo has quit (Read error: Connection reset by peer). 23:30:12 And ... yeah 23:30:13 >.> 23:30:25 Nothing happened, so don't think that that's why I said >.> 23:32:10 Oh, at the end, there was some picture thing, and she didn't want me standing near her 23:32:31 Oh, and completely unrelated, I cannot figure out where this fits, there was a quarantine of some sort, different DCs 23:33:00 hmm, seems it's not illegal to violate a website TOS in the US 23:33:11 (court judgement yesterday) 23:33:24 but it is illegal to try to get around technical attempts to lock you out 23:34:10 Eeep, I did that once 23:34:21 hmm, you know 23:34:29 it would be really appropriate to host C-INTERCAL on a MySpace account 23:36:54 I probably won't, though; I'm having difficulty figuring out if the MySpace license is compatible with the GPL 23:37:12 probably is if there's a statement of the GPL actually inside the tarball, though 23:39:17 * ais523 vaguely wonders why MySpace's (very reasonable) TOS contains "I HAVE READ THIS AGREEMENT AND AGREE TO ALL OF THE PROVISIONS CONTAINED ABOVE." at the end 23:39:22 presumably, they want us to agree to that 23:39:32 agreeing to their own TOS doesn't make much sense 23:40:25 When you presume, you make a pres out of u and me 23:41:36 I doubt I could create a page quite awful enough to look properly MySpacy, though 23:41:57 (the alternative would be to make it a perfect HTML4/HTML5 polyglot, with full accessibility features, and host it on MySpace anyway) 23:42:38 Is an HTML4/HTML5 polygot possible? Aren't there different doctypes or something? 23:43:21 well, as near as possible 23:43:41 a bit of the page source is probably fixed by MySpace as it is 23:45:47 dang iiit 23:46:03 my interpreter is acting up for some reason when it gets to a / from below 23:46:22 it makes no sense at all and I really don't know why 23:46:30 oh 23:46:37 I think I know why now ._. 23:46:42 but it still makes no sense 23:47:37 ais523: 99% of it 23:47:47 -!- MizardX has quit (Ping timeout: 276 seconds). 23:47:56 ais523: you "design" with utterly insane css in the about me section 23:47:58 aliseiphone: you could just make the rest of the source really long to compensate 23:48:02 or at least you used to 23:48:16 no actual proper support for it 23:48:29 just an abuse of the lenient HTML allowance 23:48:32 that sounds like MySpace, all right 23:48:50 although iirc you can't use div or something 23:52:26 * Sgeo wonders what would go horribly, horribly wrong if he wrote a C program for AW that acted as a Lua host 23:56:42 ais523: remember when nobody used facebook and everyone went on about myspace? Maybe next we'll be back to Friendster. 23:57:07 oh, I /hope/ Facebook collapses 23:57:13 the chance of whatever replacing it being even worse is rather low 23:57:27 Speaking of "all right", alright is so a word. 23:57:33 that said, MySpace still seems to be very popular among bands 23:57:40 aliseiphone: it is, I think; but it has a slightly different meaning IMO 23:57:52 yes, facebook has very few provisions for bands 23:57:59 ais523: oh, indeed 23:58:00 I thought conciously about which to use before I used it 23:58:13 but the pedants dislike it 23:58:46 btw, old OEDs are awesome — well, concise OED, but still 23:59:00 perhaps it's a word now even if it used not to be 23:59:34 It has rime and gaol preferred over rhyme and gaol. "Gullible" is actually not in it, just "gull" with "hence ~ible". :-)