←2010-07-21 2010-07-22 2010-07-23→ ↑2010 ↑all
00:00:45 <oerjan> mu
00:01:25 <cpressey> 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 <Sgeo> How many of those are MS languages?
00:04:11 <Sgeo> erm, the taken ones
00:04:32 <cpressey> GOODBYE
00:04:33 -!- cpressey has left (?).
00:11:23 <AnMaster> hm
00:12:20 <AnMaster> 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 <Sgeo> Hell, I'm using C# for a project that.. it would have been nice to have runtime reloading for
00:26:42 <oerjan> AnMaster: what about the plugins package(s)?
00:27:16 <oerjan> they allow you do load stuff, maybe not as conveniently as erlang, which i don't really know
00:27:26 <oerjan> *to load
00:32:16 <Sgeo> Stupid question, but r^2 = x^2 + y^2 + z^2 is the equation for a sphere?
00:32:38 <oerjan> centered at (0,0,0), yes
00:33:48 * Sgeo wonders what r = x+y+z is the equation of
00:34:02 <oerjan> a plane
00:34:09 <AnMaster> oerjan, hm should check that out. But how to update the core on the fly?
00:34:56 <oerjan> 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 <AnMaster> oerjan, besides this is mainly IO stuff and haskell seems slightly cumbersome for stuff that is >90% IO
00:35:52 <oerjan> i guess updating ghc itself would be impossible to do in this way, if that's what you mean by core
00:36:10 <AnMaster> oerjan, well you can't do beam either that way (the erlang VM)
00:36:30 <oerjan> ok
00:37:11 <coppro> oerjan: how Erlang does it is that a module can exist twice in memory as 'new' and 'old' versions
00:37:38 <AnMaster> 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 <coppro> 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 <coppro> calls from outside the module always go into the new one
00:37:58 <AnMaster> yeah what coppro explained better than me
00:38:04 <oerjan> 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 <coppro> version numbers aren't necessary
00:38:44 <AnMaster> oerjan, however this does not help much with reloading the code that handles loading and reloading of plugins
00:38:52 <oerjan> well it would be in the haskell version
00:38:57 <coppro> ah
00:39:13 <AnMaster> well I would probably go for OTP with erlang
00:39:26 <coppro> AnMaster: that can usually be done too, can't it?
00:39:43 <oerjan> 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 <AnMaster> coppro, what can?
00:39:48 <Sgeo> http://pastie.org/1054576
00:39:52 <Sgeo> I haven't gone insane, have I?
00:39:56 <coppro> AnMaster: reloading the plugin-reloading code in Erlang
00:40:03 <AnMaster> coppro, yes but I meant in haskell
00:40:13 <Ilari> No surprise that erlang supports runtime reloading of code, considering what enviroments it was designed to operate in...
00:40:13 <Sgeo> I can take the ... unit vector, is that the right term ... of a vector without square rooting?
00:40:14 <coppro> oh
00:40:20 <coppro> Ilari: yeah, it's awesome
00:40:29 <coppro> you can even reload the VM piece by piece
00:40:36 <coppro> (if doing multiple nodes)
00:40:41 <AnMaster> 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 <AnMaster> Ilari, indeed
00:41:57 <AnMaster> 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 <oerjan> Sgeo: what?
00:42:50 <Sgeo> oerjan, to make a unit vector out of a vector, I just need to divide all the parts by r^2?
00:42:53 <coppro> 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 <oerjan> Sgeo: that last line of yours is not a vector
00:43:21 <AnMaster> 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 <oerjan> it's still the same sphere
00:43:48 <coppro> AnMaster: well, once every node is upgraded, they could probably synchronize a protocol upgrade
00:43:58 <AnMaster> coppro, hm
00:44:10 <AnMaster> coppro, I don't know how that would be done though
00:44:29 <AnMaster> coppro, though the protocol doesn't change very often so not such a large issue really
00:44:38 <oerjan> Sgeo: a vector is like (x,y,z)
00:44:56 <AnMaster> think it changed last time two major releases ago, and considering those happens like every other year at most...
00:44:59 <Sgeo> Well, the new vector would be (x_0^2/r_0^2 etc
00:45:17 <oerjan> 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 <AnMaster> 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 <AnMaster> not bad
00:46:53 <Sgeo> oerjan, why wouldn't x^2/r^2 work?
00:47:43 <Sgeo> Oh, because that's the squared term for the new x
00:47:44 <oerjan> 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 <oerjan> although it's not even the unit vector of _that_
00:49:07 <oerjan> 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 <oerjan> *its
00:49:56 <Ilari> Does Erlang multi-VM connections still need global shared secrets?
00:49:59 <Sgeo> The reason I'm apprehensive about square roots is because I'm dealing with ints
00:50:32 <oerjan> Sgeo: the unit vector of an int vector is not necessarily an int vector, or even rational
00:51:10 <Ilari> Just consider unit vector of (2,0,1).
00:51:38 <AnMaster> <Ilari> Does Erlang multi-VM connections still need global shared secrets? <-- iirc there are other ways, but that is still the default
00:51:49 <AnMaster> I think there is some support for ssl even
00:52:08 <AnMaster> probably going to need some work setting that up
00:52:25 <AnMaster> besides the default way makes most sense on a trusted network like can be found in typical clusters
00:52:30 <Ilari> Some multi-VM systems use only local secrets and pairwise shared secrets.
00:52:56 <Ilari> (and the pairwise shared secrets are autonegotiated).
00:53:25 <AnMaster> 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 <AnMaster> for something like 100 nodes or whatever
00:54:25 <Ilari> N local secrets total to generate, each node needing to negotiate N shared secrets.
00:54:54 <AnMaster> hm
00:55:17 <AnMaster> Ilari, anyway having one global shared secret is not much of an issue for the typical use case of erlang really
00:55:29 <Ilari> Yeah, for typical case it isn't.
00:55:29 <AnMaster> and there is always that ssl option if you don't trust stuff
00:56:20 <Ilari> One could store shared secret sufficient to secure communications in 96 bytes (2*32 byte keys, 2*16 byte IVs).
00:57:10 <AnMaster> 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 <AnMaster> which ought to be a lot better than rolling your own
00:57:28 <AnMaster> since getting cryptos right is hard
00:57:34 <Ilari> 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 <AnMaster> Ilari, 12 bytes would end up being padded on most systems
00:59:26 <AnMaster> either that or being rather slow
00:59:45 <Ilari> 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 <AnMaster> wait, byte not bit
00:59:48 <AnMaster> right
01:00:14 <AnMaster> Ilari, what about side channel attacks on your AES256 implementation? ;P
01:01:29 <Ilari> Presumably you got AES256 from some library (as implemeting fast AES256 isn't quite trivial).
01:02:00 <AnMaster> touche
01:02:09 <AnMaster> Ilari, ssl is still a better idea probably
01:02:32 <AnMaster> Ilari, what about MITM and your idea?
01:02:43 <Ilari> That's why the key exchange is hard.
01:02:48 <AnMaster> right
01:05:21 -!- pikhq has joined.
01:05:27 <Ilari> SSL is quite horridly complicated.
01:05:41 <AnMaster> hm
01:06:15 <Ilari> 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 <AnMaster> "Added function zip:foldl/3 to iterate over zip archives." <-- heh nice
01:07:28 <AnMaster> not sure how a left fold and a right fold over a zip would work though
01:08:53 <Ilari> SSL(TLS) really gets complicated when X509 is included in.
01:09:01 <AnMaster> X509 being?
01:09:20 <Ilari> The standard cert spec used with TLS.
01:09:29 <AnMaster> ah
01:10:34 <Ilari> 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 <AnMaster> Ilari, I didn't know you could skip certs
01:11:17 <AnMaster> Ilari, anyway, what system is that?
01:12:07 -!- pikhq has quit (Read error: Connection reset by peer).
01:13:16 <Ilari> Version of git:// extended to support TLS (using custom remote helper and custom daemon).
01:13:29 <AnMaster> heh
01:13:45 <AnMaster> Ilari, how does it do auth without X509
01:15:10 <Ilari> Supported authentications: Server: OpenPGP certs (bit SSH-style), Client: Anonymous, Unix user authentication, SRP, OpenPGP certs or SSH keypairs.
01:15:30 <AnMaster> SRP?
01:15:42 <AnMaster> Ilari, also why not just tunnel git over ssh :P
01:15:44 <Ilari> Form of username/password authentication.
01:16:05 <AnMaster> ssh seems a lot less complicated than ssl
01:16:16 <AnMaster> at least for the auth stuff
01:16:18 <Ilari> AnMaster: Well, that's the standard way.
01:16:33 <AnMaster> yes, bzr is usually tunneled over ssh too for example
01:16:40 <AnMaster> hg tends to go over https iirc
01:19:18 <wareya> My dad said that haskell was the newbie's functional programming language.
01:19:21 <wareya> Should I agree with this?
01:19:25 <wareya> -space
01:19:32 <Ilari> 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 <AnMaster> wareya, what one does he suggest instead?
01:20:02 <AnMaster> though I would suggest something like scheme fits that description better
01:20:56 <Ilari> Yes, it uses TLS but can use ssh keypairs for authentication.
01:21:20 <Ilari> (and that is the standard mode when I use it between machines, within the same machine, I use unix user auth).
01:22:15 <AnMaster> hm
01:22:22 <AnMaster> does haskell have call/cc btw?
01:22:26 <wareya> He suggested common lisp
01:22:31 <oerjan> AnMaster: in a monad :D
01:22:52 <AnMaster> oerjan, well obviously it breaks the pure functional semantics yes.
01:23:52 <oerjan> specifically callCC is a method of the MonadCont class, which includes the Cont and ContT m monads
01:24:07 <oerjan> the latter being a transformer
01:24:59 -!- pikhq has joined.
01:25:01 <AnMaster> ah
01:26:43 <oerjan> so you can use ContT IO to get continuations/callCC combined with IO
01:26:51 <AnMaster> 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 <pikhq> ContT... IO.
01:28:26 <pikhq> o.O
01:28:31 <oerjan> oh right
01:28:51 <pikhq> That has got to have somewhat odd effects on side effects.
01:28:59 <oerjan> it should be ContT r IO where r is the type returned by the final continuation
01:29:39 <oerjan> pikhq: not really, it's more or less like in scheme, they're not undone just because you jump around
01:29:43 <AnMaster> okay wtf "OTP-8686 A bug introduced in kernel- has been fixed." <-- complete changelog writing fail
01:30:14 <pikhq> oerjan: So, it works just exactly how you'd expect.
01:30:18 <coppro> kernel isn't even part of OTP, is it?
01:30:23 <pikhq> Which is itself very mind-bending.
01:30:33 <AnMaster> coppro, well OTP-nnnn is some bug tracker number
01:30:40 <coppro> oh
01:30:53 <AnMaster> coppro, all entries in the changelog have one of them
01:30:57 <AnMaster> but yeah: what bug
01:31:02 <oerjan> 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 <AnMaster> I mean, usually they are all very detailed
01:31:19 <oerjan> (that way = undoing side effects)
01:31:23 <pikhq> oerjan: IOT? IOT?!?
01:31:30 <pikhq> AAAAAAGHMYHEAD
01:32:00 <oerjan> pikhq: purely hypothetical monad transformer that adds IO _inside_ pure code, it would be.
01:32:08 <pikhq> Yes.
01:32:11 <pikhq> AAAAGHMYHEAD
01:32:15 <AnMaster> <pikhq> Which is itself very mind-bending. <-- you mean call/cc in general? I agree completely then
01:32:26 <pikhq> AnMaster: Yes.
01:33:00 -!- Gregor-L has changed nick to Gregor.
01:33:13 <oerjan> pikhq: to see _some_ of that effect, compare StateT s (Cont r) with ContT r (State s)
01:33:27 <AnMaster> 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 <AnMaster> returning the continuation: argh
01:33:47 <oerjan> in the former, jumping _would_ undo state changes, in the latter it wouldn't. iirc.
01:33:56 <AnMaster> oerjan, aaaargh
01:34:04 <pikhq> oerjan: AAAAAAAAAARRRRRRGH
01:34:52 <pikhq> oerjan: It's *time travel*! It's actual, literal, time travel!
01:35:02 <oerjan> *MWAHAHAHA*
01:35:14 <AnMaster> oerjan, would that actually work?
01:35:36 <pikhq> AnMaster: Yes.
01:35:49 <oerjan> AnMaster: i _think_ so, it's been a while
01:35:58 <AnMaster> pikhq, just add the IO monad there and you could kill your own grandfather then?
01:36:17 <pikhq> AnMaster: If you could do an IOT, then yes.
01:36:22 <AnMaster> oh right
01:36:32 <pikhq> IOT *must* be impossible. It requires the ability to time travel.
01:36:45 <AnMaster> damn
01:37:51 <oerjan> pikhq: as well as many-worlds, if you use it over [] :D
01:37:59 <pikhq> oerjan: :D
01:38:10 <AnMaster> [] ? As in list?
01:38:14 <oerjan> yes
01:38:14 <pikhq> Yes.
01:38:42 <AnMaster> 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 <pikhq> Actually. Wouldn't you need a ListT monad?
01:39:46 <oerjan> 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 <pikhq> No, no, you wouldn't.
01:40:17 <AnMaster> oerjan, hm
01:40:31 <AnMaster> oerjan, okay that hurts.
01:40:42 <oerjan> 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 <oerjan> (it's not afair included in the default libraries)
01:41:33 <pikhq> ...
01:41:46 <pikhq> *Befunge 98 interpreter in Haskell could use this*.
01:41:53 <AnMaster> what would a ListT monad do?
01:43:10 <oerjan> 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 <AnMaster> pikhq, use it to implement TRDS
01:43:43 <pikhq> AnMaster: Precisely.
01:44:07 <AnMaster> pikhq, do it NOW
01:44:22 <AnMaster> pikhq, I wonder why you are not in #microcosm btw
01:44:45 <oerjan> *consist (way back)
01:47:22 -!- Gregor-P has quit (Ping timeout: 264 seconds).
01:49:10 <CakeProphet> instance MonadIO STM where liftIO = return.unsafePerformIO
01:49:11 <CakeProphet> :)
01:51:54 <CakeProphet> --performs no unknown side-effects.
01:54:57 <oerjan> CakeProphet: evil
01:55:54 <Gregor> http://www.facebook.com/pages/Gregor-Richards/133966549972228 Hey guys I decided I'm all pretentious now :P
01:57:11 <oerjan> alien fashion sense, it all fits
01:58:26 <Gregor> Baaaaaa
02:01:11 <pikhq> http://www.ronpatrickstuff.com/ Jet powered car.
02:01:15 <pikhq> Street legal.
02:05:37 -!- p_q has joined.
02:07:37 <oerjan> p_q: nice goggles
02:07:44 -!- poiuy_qwert has quit (Ping timeout: 240 seconds).
02:08:31 <Madk> check out my Grid
02:08:33 <Madk> Grin*
02:08:41 <Madk> search the esolang wiki
02:08:45 <Madk> I made it better
02:10:37 -!- wareya has quit (Ping timeout: 260 seconds).
02:10:37 <Sgeo> Time travel monad?
02:11:08 <Sgeo> Also, what's evil about what CakeProphet did?
02:12:05 <oerjan> Madk: did you mean to delete the M-code hello world? we seem to have edited simultaneously
02:12:24 <Madk> recheck
02:12:28 <Madk> I moved it again
02:12:31 <Madk> to the end of the Ms
02:12:59 <oerjan> argh
02:13:02 <Madk> ?
02:13:14 <oerjan> Madk: the - should not count for the ordering, dammit :D
02:13:20 <Madk> :/
02:13:27 <oerjan> that's why i moved it first
02:13:33 -!- wareya has joined.
02:13:42 <Madk> It should count
02:17:09 <AnMaster> <pikhq> Street legal. <-- ... how?
02:17:18 <pikhq> AnMaster: Somehow.
02:18:12 <AnMaster> "That doesn't stop me from the occasional blast on the highway though." <-- that can't be legal
02:18:28 <pikhq> AnMaster: It is not *il*legal.
02:18:38 <oerjan> 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 <oerjan> it's evil for ST too
02:20:31 <AnMaster> hah
02:20:31 <oerjan> 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 <AnMaster> pikhq, hahaha: "Jet keeps sucking the rose out of the bud vase on the dash!"
02:27:41 <pikhq> Heheh.
02:30:00 <AnMaster> "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 <AnMaster> Sgeo, but electric cars aren't bullshit
02:31:45 <AnMaster> so that doesn't work
02:32:31 <coppro> not even bulshytt
02:32:43 -!- oerjan has quit (Quit: Good night).
02:32:47 <Sgeo> It's more of an issue that power companies aren't being asked to store sensitive data
02:33:01 <Sgeo> That's the thing that annoys me about cloud computing
02:33:47 <AnMaster> 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 <pikhq> AnMaster: Yeah, well.
02:35:38 <AnMaster> pikhq, besides actually using the jet engine outside car shows and such seems extremely dangerous to cars behind you
02:36:44 <Sgeo> So, my dad won't let me give an unused phone to a friend :(
02:36:47 <pikhq> AnMaster: Almost certainly.
02:36:54 <pikhq> Sgeo: How old are you again?
02:36:56 <Sgeo> 21
02:37:08 <Sgeo> :/
02:37:18 <pikhq> ... And you need to give any credence to what your dad says... Why?
02:38:16 <Gregor> I've been not giving any credence to what my dad says since I was 15 :P
02:38:42 <coppro> that sounds about right
02:38:53 <AnMaster> coppro, what does?
02:39:06 <coppro> <Gregor>I've been not giving any credence to what my dad says since I was 15 :P
02:40:39 <Sgeo> pikhq, because he gives me money for everything
02:40:53 <Sgeo> Including college
02:40:59 <Sgeo> And pays for food, etc.
02:41:41 <pikhq> Gregor: Same!
02:41:53 <pikhq> Sgeo: Might I suggest a job? Your dad is fucking nuts.
02:42:07 <Sgeo> That might interfere with school
02:42:12 <HackEgo> No output.
02:42:15 <Sgeo> And dad might pull college funding
02:42:25 <pikhq> Sgeo: Your dad is fucking nuts.
02:42:41 <coppro> also your education system is fucking nuts
02:42:41 <HackEgo> No output.
02:42:56 <pikhq> coppro: Yes, it is completely and utterly nuts.
02:42:58 <HackEgo> No output.
02:43:24 <coppro> At least I know that if my parents pulled school funding, I wouldn't be forced to drop out
02:43:52 <pikhq> coppro: And how much do they need to pay?
02:45:21 <coppro> 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 <AnMaster> coppro, school funding? That's the state
02:45:51 <pikhq> coppro: Sorry, how much *need be paid*.
02:45:54 <coppro> pikhq: oh
02:45:55 <pikhq> In general.
02:46:01 -!- Madk has quit (Ping timeout: 276 seconds).
02:46:03 <coppro> probably on the order of $80k
02:46:07 <coppro> total
02:46:08 <AnMaster> that's a lot
02:46:17 <coppro> indeed
02:46:25 <pikhq> ... That's rather a lot.
02:46:27 <AnMaster> the government should fund it
02:46:34 <coppro> I'm on the upper edge of payment at my school though
02:46:42 <coppro> and that's including living expenses, etc.
02:46:46 <AnMaster> coppro, which country are you in
02:46:49 <coppro> Canada
02:47:04 <AnMaster> ah living expenses and text books are not included in the 0 SEK cost for me at university.
02:47:13 <coppro> yeah, you Europeans have it nice
02:47:14 <AnMaster> text books are only included up to high school iirc
02:47:19 <coppro> although I'm in an expensive program
02:47:24 <pikhq> AnMaster: ... *0*?
02:47:25 <coppro> there are programs that are significantly cheaper
02:47:39 <AnMaster> pikhq, well as I said, living costs and text books still cost
02:47:45 <pikhq> WHY THE HELL AM I NOT IN EUROPE
02:47:52 <coppro> also, my parents are rich
02:47:54 <AnMaster> pikhq, because you can't be in two places at once
02:47:56 <coppro> if they weren't the government would pay
02:48:18 <AnMaster> hm that is an interesting system
02:48:29 <coppro> it's actually pretty bad
02:48:37 <coppro> since it's based on parental income
02:48:45 <AnMaster> yes that doesn't make much sense
02:48:49 <coppro> and parental income does not always translate to funds available for students
02:48:51 <AnMaster> should be based on your own incom
02:48:55 <AnMaster> income*
02:49:35 <pikhq> coppro: Better than US's setup.
02:49:44 <coppro> and of course there's student loans... woohoo
02:50:04 <pikhq> Whereby the government doesn't pay until your family's poor enough to barely be able to afford *food*.
02:50:04 <AnMaster> 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 <Gregor> Fuck?
03:36:17 <HackEgo> Gregor's first child now has a little brother or sister! Aren't they so cute together?
03:36:24 <Gregor> Hm, wonder what went wrong before.
03:37:50 <pikhq> Clearly, HackEgo disapproved of cursing, and has now grown up.
03:38:32 <Gregor> Yup.
03:40:28 <coppro> `quote
03:40:30 <HackEgo> 166|<oklopol> 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 <AnMaster> <HackEgo> Gregor's first child now has a little brother or sister! Aren't they so cute together? <-- how did that happen
04:00:43 <AnMaster> also you have children? ^_^
04:00:52 <AnMaster> you are like way too young for that
04:01:23 <AnMaster> 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 <Gregor> :P
04:02:20 <Gregor> AnMaster: HackEgo rewards you with a child every time you say the F-word :P
04:02:23 <Gregor> Which makes sense.
04:02:51 <Gregor> 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 <pikhq> 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 <AnMaster> Gregor, fuck that
04:50:56 <HackEgo> Congratulations! AnMaster's action has brought a beautiful new baby into the world. Isn't it adorable?
04:51:06 <AnMaster> Gregor, damn you
04:51:13 <AnMaster> wtf
04:51:24 <Gregor> :P
04:52:11 <AnMaster> Gregor, so from now on I'll always use damn
04:52:18 <AnMaster> Gregor, also what if I'm quoting something
04:52:21 <AnMaster> it needs to understand it
04:52:23 <Gregor> THEN BABIES
04:52:25 <AnMaster> Gregor, thus AI HARD
04:52:33 <Gregor> The real problem is when you're talking about a certain programming language :P
04:52:41 <Gregor> A certain, enormously topical programming language.
04:52:44 <AnMaster> Gregor, it does it inside a word?
04:52:50 <AnMaster> Gregor, okay just disable it then
04:52:56 <Gregor> It's just /fu*ck/i :P
04:53:01 <Gregor> Erm, fuu*ck
04:53:14 <AnMaster> Gregor, which one do you mean btw
04:53:17 <AnMaster> please type it out
04:53:29 <Gregor> /fuu*ck/i
04:53:38 <AnMaster> no which programming language
04:53:43 <Gregor> BrainFuck :P
04:54:00 <HackEgo> No output.
04:54:22 <Gregor> >_<
04:54:26 <Gregor> Borken again :P
04:54:32 <Gregor> 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 <AnMaster> Gregor, see
04:57:06 <Gregor> Moop
05:00:37 <AnMaster> google image search preview pages gone web 2.0
05:00:48 <AnMaster> http://preview.tinyurl.com/3xbmmtr
05:00:55 <AnMaster> (because url is longer than one IRC line)
05:01:07 <Gregor> Hm
05:01:10 <Gregor> So 'tas.
05:01:14 <AnMaster> Gregor, ?
05:01:19 <AnMaster> define 'tas
05:01:27 <Gregor> "it has"
05:01:31 <AnMaster> ah
05:01:41 <AnMaster> Gregor, this is horrible
05:01:45 <AnMaster> this is an outrage
05:01:49 <AnMaster> against all google stood for
05:02:28 <Gregor> Almost as against all that Google stood for as the rest of Google.
05:02:48 <AnMaster> Gregor, eh?
05:05:11 -!- Sgeo has quit (Ping timeout: 240 seconds).
05:06:02 <lifthrasiir> AnMaster, and they still use cookies with that long url?
05:07:47 <Gregor> 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 <Gregor> (Multi-player)
05:11:01 <pikhq> Gregor: Mindless Automaton is close.
05:11:14 <Gregor> Link?
05:11:21 <Gregor> Ohhey
05:11:53 <pikhq> 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 <Gregor> Hmmm ... AFAICT the only thing it lacks is a standard deck?
05:12:18 <pikhq> 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 <pikhq> http://mindless.sourceforge.net/
05:12:25 <pikhq> , BTW.
05:12:33 <Gregor> I just wonder how much work it would be to make it use generic cards.
05:13:40 <pikhq> Depends on how complex those cards are.
05:14:19 <Gregor> I'm talking about playing cards.
05:14:25 <Gregor> Like, A, 1-10, J, Q, K
05:14:36 <pikhq> *Oooooh*.
05:14:56 <Gregor> Maybe toss a Joker in there if I'm feeling frisky.
05:15:00 <Gregor> Also take out the 1 :P
05:15:07 <pikhq> Okay, the major problem you have there is that Mindless Automaton assumes two decks.
05:15:46 <Gregor> I assume two decks ... shuffled together.
05:15:55 <Gregor> Ohwait, hyuk
05:16:01 <Gregor> Hydra is played with each player having their own draw pile.
05:16:07 <pikhq> ... No, in Magic the Gathering each player has a deck.
05:16:08 <Gregor> So that COULD work.
05:16:44 <pikhq> Basically, Mindless Automaton could probably be made to work for any *trading* card game.
05:17:22 <Gregor> Right :P
05:17:28 <Gregor> Not Hydra :P
05:17:34 <Gregor> I want something like that, but with even LESS rules.
05:17:58 <pikhq> The problem being that MA is set up around Magic. Which has lots and looots of bookkeeping. :P
05:21:08 <Gregor> So, feel like writing a generic card game server? :P
05:21:41 <pikhq> I have too much to not do already!
05:21:43 -!- sanxiyn has joined.
05:22:03 <Gregor> How about you, random newcomer? Want to write a generic card game server? :P
05:22:15 <sanxiyn> What is a generic card game server?
05:23:26 <Gregor> 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 <sanxiyn> Gregor: Do you know about Zillions of Games?
05:23:53 <coppro> costs money
05:24:03 <coppro> also, limiting to cards is bad
05:24:11 <pikhq> And does not ship with source code and a usage license.
05:24:30 <sanxiyn> Well, I was just trying to ask whether it is a similar concept.
05:24:38 <coppro> *note: the two things are not related)
05:24:48 <Gregor> 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 <Gregor> Except not for cards.
05:25:00 <sanxiyn> Exactly.
05:25:06 <coppro> if you're going to cards, you might as well cover all games
05:25:21 <Gregor> coppro: One step at a time there pooppy.
05:25:35 <coppro> thanks for the confidence
05:25:45 <Gregor> coppro: I mean unless you want to write it.
05:25:45 <sanxiyn> I always liked http://www.pagat.com/
05:25:46 <pikhq> And if you're going to all games you might as well cover all games, as defined in game theory.
05:25:47 <Gregor> In which case GO GO GO
05:26:11 <sanxiyn> So to see whether it is general enough, one could try to play games randomly chosen from the list there.
05:26:14 <pikhq> (fortunately, this omits the Game of Life)
05:26:52 <sanxiyn> pikhq: Combinatorial game theory
05:27:43 <sanxiyn> But (say) {{|}|{|}} is not very playable for humans, so one would need visualization
05:28:09 <Gregor> This conversation does not end with me having a generic card game server :P
05:28:22 <sanxiyn> Indeed it doesn't.
05:29:59 <sanxiyn> 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 <AnMaster> lifthrasiir, yes afaik
05:48:00 <sanxiyn> lifthrasiir: ?
05:49:31 <lifthrasiir> sanxiyn, AnMaster quoted this url from google image search preview: http://preview.tinyurl.com/3xbmmtr
05:49:38 <AnMaster> <coppro> also, limiting to cards is bad <-- XD
05:49:58 <AnMaster> sanxiyn, it turned out to be longer than one irc line
05:50:53 <AnMaster> 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 <AnMaster> lifthrasiir, however, looking at it, it contains page the image came from, image url and back-url
05:51:17 <AnMaster> no idea why the last one
05:51:22 <Gregor> I wonder what information they've got in there :P
05:51:43 <Gregor> Name, address, sex, age, education, sexual orientation, ... :P
05:51:46 <AnMaster> Gregor, well, some I told you about
05:51:53 <AnMaster> but the rest I have no idea about
05:51:54 <lifthrasiir> AnMaster, i once thought that some privacy information was encoded into the url
05:52:03 <lifthrasiir> but it seems not
05:52:16 <AnMaster> the image search url is fairly long too
05:52:23 <AnMaster> 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 <AnMaster> contains something about me using firefox I see
05:52:49 <AnMaster> and um. it is basically url encoded inside that url
05:53:05 <AnMaster> &prev=/images%3Fq[...]
05:55:31 <AnMaster> 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 <CakeProphet> ...did we invent the term esoteric programming language?
08:09:09 <CakeProphet> "we' == whoever first made the esolang community
08:18:56 -!- CakeProphet has quit (Ping timeout: 240 seconds).
08:20:05 <cheater99> i have a SERIOUS QUESTION
08:20:11 <cheater99> pertaining to matters of IMPORTANCE
08:20:20 <cheater99> suppose you add a girl on facebook
08:20:35 <cheater99> and you start chatting and she suddenly starts talking dirty
08:20:50 <cheater99> but at the same time it turns out she thinks she's talking to someone else with the same first name
08:20:57 <cheater99> add the fact that she's hot
08:21:00 <cheater99> should you:
08:21:05 <cheater99> 1. tell her of the error of her ways
08:21:28 <cheater99> 2. continue, save log, save her photos, and tell her later, then post it to all her friends
08:21:46 <cheater99> 3. continue, save log, save her photos, never tell her, and post it to an internet chat room
08:21:48 <cheater99> 4. ????
08:22:18 <Axtens> Given how much people seem to love litigation these days, I'd go for #1
08:22:28 <cheater99> no no
08:22:30 <cheater99> this is eastern europe
08:22:33 <cheater99> litigation doesn't exist
08:23:42 <Axtens> 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 <cheater99> it's not trust
08:23:56 <cheater99> she's like
08:24:02 <cheater99> been talking to me for two days now or so
08:26:34 <Axtens> 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 <cheater99> ah ok
08:26:55 <cheater99> yeah
08:27:01 <cheater99> i am
08:27:02 <cheater99> but!
08:27:03 <cheater99> the thing is
08:27:12 <cheater99> she started talking about that stuff unprompted
08:27:14 <cheater99> AND
08:27:25 <Axtens> 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 <cheater99> 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 <AliceMargatroid> Hi.
09:55:51 -!- GreaseMonkey has joined.
10:01:11 <CakeProphet> AliceMargatroid: hello.
10:11:38 <fizzie> AnMaster: Ooh, nifty: http://fcam.garage.maemo.org/fcamera.html
10:12:46 <AliceMargatroid> I am tempted to go into some Perl channel.
10:12:51 <AliceMargatroid> And suggest golf on a Brainfuck intrepter.
10:13:00 <AliceMargatroid> Should I?
10:16:00 -!- tombom has joined.
10:16:19 -!- AliceMargatroid has quit (Read error: Connection reset by peer).
10:19:41 <AnMaster> fizzie, nice indeed
10:20:04 <fizzie> (Disclaimer: haven't tried it, the user interface and such might suck majorly.)
10:21:09 <AnMaster> fizzie, I assume you are going to try it?
10:22:50 <fizzie> 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 <fizzie> 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 <fizzie> It seems to take 11-megabyte images.
10:36:39 -!- Slereah has joined.
10:37:31 <fizzie> ... and dcraw decodes it as a 640x480 image that's mostly just bright red and black ...
10:38:41 <fizzie> http://www.cis.hut.fi/htkallas/test.png -- I would not exactly call that "working".
10:42:25 <AnMaster> indeed something went wrong
10:42:30 <AnMaster> fizzie, what does ufraw make out of it?
10:43:18 <fizzie> "The program 'ufraw' is currently not installed. To run 'ufraw' please ask your administrator to install the package 'ufraw'"
10:43:29 <fizzie> Will have to see when I get home.
10:44:14 <AnMaster> fizzie, ufraw uses dcraw though so hm...
10:44:30 <AnMaster> fizzie, do they have an irc channel or something where you can ask about this?
10:45:38 <fizzie> There's a forum; I'll see if other raw-decoding tools work on the .dng file first.
10:46:47 <AnMaster> fizzie, also how many MP?
10:47:16 <AnMaster> fizzie, 12 seems somewhat on the large side since that is just below what my 8 MP camera gives me
10:47:30 <AnMaster> they are like 13 MB unless I misremember
10:47:32 <AnMaster> *.mrw though
10:47:37 <AnMaster> and 12 bits per channel
10:47:40 <fizzie> It should be a 5-or-so megapixel sensor.
10:48:04 <AnMaster> fizzie, so unless that gives you more than 12 bits per channel the image file seems exceedingly large
10:48:41 <fizzie> Well, it could be a very unoptimal format.
10:49:02 <fizzie> 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 <AnMaster> fizzie, possibly.
10:49:32 <AnMaster> fizzie, ah yes selecting tiff on my camera gives larger images than *.mrw. And only 8 bits per channel
10:49:49 <AnMaster> in fact .mrw always tend to be smaller than tiff
10:50:03 <AnMaster> even when converted on computer and using deflate
10:58:45 <fizzie> Heh; ImageMagick supposedly supports .dng files; so, I try "identify test.dng":
10:58:46 <fizzie> htkallas@pc112:/users/htkallas/tmp$ identify test.dng
10:58:46 <fizzie> sh: ufraw-batch: not found
10:58:46 <fizzie> 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 <fizzie> identify: unable to open image `/tmp/magick-XXdaOBkS.pnm': No such file or directory @ blob.c/OpenBlob/2439.
10:59:17 <AnMaster> XD
11:01:24 <AnMaster> $ file /usr/bin/identify
11:01:25 <AnMaster> /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 <AnMaster> not a shell script as I had expected
11:01:51 -!- oerjan has joined.
11:02:16 <AnMaster> fizzie, ufraw is a very nice tool in general though
11:02:26 <AnMaster> it is what I use to convert raw files
11:02:58 <AnMaster> gui tool with preview, you can settings. Then save the image and also optionally a file describing the settings
11:03:11 <AnMaster> then you can use that settings file for batch processing the rest
11:03:13 <AnMaster> in a pano
11:03:20 <AnMaster> useful when you want constant wb and such
11:03:35 <fizzie> I know; I've used it the couple of times I've done raw with the real camera.
11:03:49 <fizzie> Doesn't build here, though; they don't have enough gtk devel packages installed.
11:03:58 <AnMaster> wtf
11:04:07 <AnMaster> fizzie, don't you use a laptop?
11:08:25 <fizzie> Well, no. Why would I?
11:08:48 <Ilari> 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 <Ilari> (looking at the source code).
11:12:54 -!- Arzgarb has left (?).
11:14:32 <fizzie> 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 <AnMaster> fizzie, to be able to install ufraw ;P
11:17:09 <fizzie> It's not exactly central to what I *should* be doing here.
11:17:30 <AnMaster> 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 <AnMaster> fizzie, good point
11:27:26 <Ilari> 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 <AnMaster> Ilari, what program?
11:29:42 <Ilari> One custommade routine...
11:30:39 <AnMaster> Ilari, sure but what does it do?
11:31:52 <Ilari> Bidirectional data copy between pipe pairs.
11:32:09 <AnMaster> 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 <fizzie> 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 <AnMaster> fizzie, considering the size it ought to be there though
12:10:40 <AnMaster> fizzie, is there a lot of data after the preview ends?
12:11:34 <AnMaster> 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 <fizzie> 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 <AnMaster> fizzie, well there must be a raw image in between then
12:12:33 <AnMaster> try to set look for some likely offset after the header
12:12:56 <fizzie> TIFF is a messy format; there should be something pointing to it from the main directory.
12:12:57 <AnMaster> I mean, test a few after the header, like header, header + padded to some boundary and such
12:13:32 <fizzie> 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 <fizzie> One'd think it'd be polite enough to read it even if it's not in the proper order, though.
12:14:36 <AnMaster> fizzie, um it complains about that when loading images into hugin after converting with ufraw
12:14:39 <AnMaster> seems to work still
12:15:54 <AnMaster> 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 <AnMaster> or something like that
12:16:23 <AnMaster> could be messy if that header is completely missing of course
12:16:30 <fizzie> 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 <AnMaster> fizzie, right
12:17:14 <AnMaster> fizzie, overwrite the preview image field then
12:17:21 <AnMaster> in a copy of course
12:18:02 <AnMaster> fizzie, assuming length doesn't mess up that would work
12:18:44 <fizzie> 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 <fizzie> 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 <AnMaster> fizzie, probably the raw image starts just after or just after + padding some other header of data bit that is known
12:20:06 <AnMaster> ah
12:20:09 <AnMaster> I guess not then
12:20:35 <fizzie> First "strip" of preview image data starts at 10203626; maybe I'll look there.
12:20:36 <AnMaster> fizzie, write a short program that scans for known "must be like this" values
12:21:04 <AnMaster> 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 <AnMaster> should be trivial to locate such values
12:21:37 <AnMaster> doesn't even need to try to figure out the offset. Just finding that value would be a good start
12:21:55 <AnMaster> then you could limit the number of possibilities down by other fields, say height
12:21:55 <fizzie> I don't really know the raw dimensions, though. There's some tag numbers that are dng-specific, those might work.
12:21:55 <AnMaster> or such
12:22:17 <AnMaster> fizzie, well, go for some that you know. Surely there must be some
12:23:54 <fizzie> 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 <AnMaster> right
12:24:40 <AnMaster> fizzie, read the source then
12:24:43 <AnMaster> and try to fix it
12:24:44 <AnMaster> maybe
12:24:47 <AnMaster> or report a bug
12:25:27 <fizzie> 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 <AnMaster> fizzie, right revision?
12:25:45 <fizzie> Of course the N900 extras-testing version might be outdated or something.
12:25:55 <AnMaster> besides the svn is on rev 37 hah
12:26:06 <AnMaster> updated 10 hours ago
12:27:01 -!- MizardX- has joined.
12:27:01 <AnMaster> 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 <fizzie> 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 <AnMaster> fizzie, gah.
12:28:34 <fizzie> 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 <AnMaster> fizzie, why don't they inline the values
12:29:07 <fizzie> Because they want fixed-width records, and the values have very different lengths.
12:29:20 <AnMaster> hm why do they want that
12:29:31 <AnMaster> fizzie, you you have gcc and such on your phone? Just check out and compile last version
12:29:55 <fizzie> I don't have the development environment in the phone.
12:30:00 <AnMaster> huh
12:30:03 <AnMaster> how strange :P
12:30:09 <fizzie> It's a bit on the large side.
12:30:19 <AnMaster> hm doesn't the phone support memory cards?
12:30:32 <fizzie> Sure, but still.
12:30:35 <fizzie> It is possible to mangle it into a chroot, though; mooz did that.
12:30:42 <AnMaster> fizzie, btw what fs does it use?
12:30:43 <fizzie> 009bb130 0f 00 fe 00 04 00 01 00 00 00 00 00 00 00 00 01 |................|
12:30:47 <AnMaster> ext3?
12:31:00 <AnMaster> fizzie, so somewhere around there then
12:31:27 -!- Sgeo has joined.
12:31:31 <fizzie> It's possible they inline four-bytes-or-smaller values, actually, instead of pointing at them.
12:32:58 <AnMaster> bbl
12:35:13 <fizzie> 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 <fizzie> From what I hear it's possbile to repartition and reformat that stuff if you really want.
12:37:15 <fizzie> 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 <fizzie> Heh. If I use TIFFSetSubDirectory(tif, 0x9bb130); to forcibly jump to where I think the raw-image ifd is, I get:
12:39:58 <fizzie> TIFFReadDirectory: Warning, test.dng: invalid TIFF directory; tags are not sorted in ascending order.
12:39:58 <fizzie> TIFFReadDirectory: Warning, test.dng: unknown field with tag 33421 (0x828d) encountered.
12:39:58 <fizzie> TIFFReadDirectory: Warning, test.dng: unknown field with tag 33422 (0x828e) encountered.
12:39:58 <fizzie> Segmentation fault
12:44:21 <AnMaster> wow
12:44:29 <AnMaster> fizzie, so it wasn't quite there then
12:44:57 <AnMaster> fizzie, check their bug tracker. needs login to even read it it seems
12:48:02 <fizzie> 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 <Sgeo> Why am I obsessed with Lua?
12:48:47 <Sgeo> I can never seem to view languages as just tools
12:50:00 <AnMaster> Sgeo, why do you always ask us questions we can't possibly know the answer to
12:50:32 <fizzie> 2592x1968 pixels; that sounds okayish.
12:50:51 <AnMaster> fizzie, so it does
12:51:29 <fizzie> And it's stored 16 bits per sample, though I doubt the sensor actually records that much.
12:51:38 <AnMaster> 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 <AnMaster> fizzie, iirc *.mrw stores the 12 bits per pixels packed or something silly like that
12:52:17 <AnMaster> err
12:52:21 <AnMaster> 12 bits per channel I mean
12:52:24 <AnMaster> not per pixel
12:52:34 <AnMaster> and not per channel as such, but per element
12:52:48 <AnMaster> since iirc it is the usual GGRB style sensor
12:53:24 <AnMaster> though *.mrw supports several models and thus iirc several different number of bits per sensor element
12:54:14 <fizzie> 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 <fizzie> Slow going, this manual parsing.
12:54:35 <AnMaster> right
12:54:44 <AnMaster> fizzie, as long as it seems correct
12:56:12 <fizzie> 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 <fizzie> Orientation: topleft. That's also correct and reasonable.
12:57:29 <AnMaster> fizzie, you are probably at the right place but does *.dng contain custom tags compared to normal *.tiff ?
12:57:33 <AnMaster> if so it could explain
12:57:37 <AnMaster> <fizzie> TIFFReadDirectory: Warning, test.dng: unknown field with tag 33421 (0x828d) encountered.
12:57:46 <fizzie> Yes, it does. And those are the right numbers, like I said.
12:58:18 <fizzie> 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 <fizzie> Samples per pixel: "1". Well... I guess that's reasonable too. It's hard to say what number it *should* be.
12:58:55 <AnMaster> fizzie, did you try gdb?
12:59:13 <fizzie> Not yet, I'll decode this manually first out of curiosity.
12:59:25 <AnMaster> fizzie, and 1 seems a bit strange
12:59:35 <AnMaster> wouldn't that mean greyscale
13:01:18 <fizzie> 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 <AnMaster> hm okay
13:03:20 <fizzie> 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 <fizzie> CFAPattern: green, red, blue, green.
13:06:59 <fizzie> 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 <AnMaster> hahaha
13:07:52 <AnMaster> fizzie, are there more planes to map than those?
13:09:24 <fizzie> 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 <fizzie> BlackLevelRepeatDim: 2x2. I don't know what it's about exactly, but...
13:10:25 <AnMaster> fizzie, maybe the human eye, that has 4 and in some <1% or such 5
13:11:04 <AnMaster> fizzie, I wonder if it could describe that "light level only" thing of the human eye
13:11:19 <AnMaster> of course the placements of the sensor elements is a lot more complex there
13:11:52 <AnMaster> fizzie, anyway, why not store the data along Hillberts space filling curve or such
13:14:02 <fizzie> 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 <fizzie> Having that be about 2^10 makes it sound like it only records 10 bits for each channel, not 12.
13:15:12 <fizzie> (Given how noisy pictures it takes, maybe that's not such a huge loss.)
13:15:26 <AnMaster> fizzie, well 12 was for my camera
13:15:29 <AnMaster> there are those that do more
13:15:31 <AnMaster> iirc
13:15:41 <fizzie> 12 is common-ish; I think mine does that too.
13:15:42 -!- Madk has joined.
13:16:04 <AnMaster> fizzie, storing the values packed is a bit strange though
13:18:40 <fizzie> 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 <AnMaster> fizzie, fun
13:19:16 <fizzie> 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 <AnMaster> right
13:19:33 <AnMaster> bbl
13:23:28 <fizzie> 4a 01 0d 00 01 00 00 00 30 b1 9b 00
13:23:28 <fizzie> tag 0x14a, type ifd, count 1, offset 0x9bb130
13:23:29 <fizzie> What.
13:23:42 <fizzie> There is a subifd pointer there.
13:24:57 <fizzie> Besides, the tags are in ascending order. At least assuming those 16-bit values are unsigned and not signed.
13:26:35 <Madk> fizzie: check out Grin on the esolang wiki
13:27:16 <fizzie> dcraw is full of nice special cases
13:27:38 <fizzie> case 330: /* SubIFDs */
13:27:39 <fizzie> if (!strcmp(model,"DSLR-A100") && tiff_ifd[ifd].width == 3872) {
13:34:11 <fizzie> Also the code is pretty freaky.
13:34:17 <fizzie> if (*len * ("11124811248488"[*type < 14 ? *type:0]-'0') > 4) /* ... */
13:41:25 <fizzie> Ha! A single-character patch to dcraw and now I can extract images.
13:49:04 <Ilari> What does that DSLR-A100 with width of 3872 special case do?
13:49:46 <fizzie> It does:
13:49:48 <fizzie> load_raw = &CLASS sony_arw_load_raw;
13:49:48 <fizzie> data_offset = get4()+base;
13:49:48 <fizzie> ifd++; break;
13:50:57 <fizzie> It seems to be a camera-detection thing.
13:52:21 <fizzie> 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 <AnMaster> fizzie, heh
16:45:31 <Madk> I'm working on another soteric language
16:45:50 <Slereah> Is it a language based on kittens
16:45:53 <Madk> it's got more arithmetic capabilities than anyone will ever use
16:45:57 <Slereah> With kittens as data structures
16:46:00 <Madk> and it has no arguments for any commands
16:46:13 <Madk> I just hit 64 commands :D
16:46:24 <Madk> only a few of them are useless
16:46:44 <Madk> about 3/4 of those are different math functions
16:47:00 <Madk> another half of the remainer are references to constants
16:47:01 -!- sebbu has joined.
16:47:19 <Madk> nxtmoves the cell pointer to the right
16:47:19 <Madk> bckmoves the cell pointer to the left
16:47:19 <Madk> incincrement a cell's value
16:47:19 <Madk> decdecrement a cell's value
16:47:19 <Madk> zroset a cell's value to 0
16:47:19 <Madk> oneset a cell's value to 1
16:47:19 <Slereah> Is the constant 0
16:47:21 <Madk> =piset a cell's value to pi
16:47:23 <Madk> =e=set a cell's value to e
16:47:25 <Madk> fc1set a cell's value to the first Feigenbaum constant
16:47:27 <Madk> fc2set a cell's value to the second Feigenbaum constant
16:47:29 <Madk> apeset a cell's value to Apry's constant
16:47:31 <Madk> gldset a cell's value to the Golden ratio
16:47:33 <Madk> emcset a cell's value to the Euler-Mascheroni constant
16:47:35 <Madk> lplset a cell's value to the Laplace limit
16:47:35 <AnMaster> pastebin
16:47:39 <Madk> prbset a cell's value to the Parabolic constant
16:47:39 <AnMaster> this is a bit spammy
16:47:41 <Madk> mlcset a cell's value to Mill's constant
16:47:43 <Madk> [...]set a cell's value to the number specified inside
16:47:45 <Madk> outoutput the cell's value as a number
16:47:47 <Madk> inpinput the cell's value as a number
16:47:49 <Madk> prnoutput the cell as an ASCII character
16:47:49 <AnMaster> ...
16:47:51 <Madk> linoutput a newline to the console
16:47:53 <Madk> stkoutput the entire numerical contents of the stack to the console
16:47:55 <Madk> stroutput the entire contents of the stack as ASCII characters
16:47:57 <Madk> (...)output the text inside to the console
16:47:59 <Madk> pshpush the cell under the pointer's value onto the stack
16:48:01 <Madk> poppop the stack's topmost value into this cell and remove it
16:48:03 <Madk> addadd the numbers on the stack together
16:48:04 <Slereah> How can you set the cell to the value pi
16:48:05 <Madk> subsubtract the lower numbers on the stack from the topmost
16:48:09 <Madk> mulmultiply the numbers on the stack together
16:48:10 <cpressey> \o/
16:48:11 <myndzi\> |
16:48:11 <myndzi\> |\
16:48:11 <Madk> divdivide the topmost number on the stack by the others
16:48:13 <Madk> pwrraises the topmost number to the powers of the rest of the stack
16:48:15 <Madk> maxremoves all but the greatest number from the stack
16:48:16 <AnMaster> argh
16:48:17 <Madk> minremoves all but the least number from the stack
16:48:19 <Madk> sicincrements all stack values by 1
16:48:20 <Slereah> Does it actually set it as pi or as a floating point approximation
16:48:21 <Madk> sdcdecrements all stack values by 1
16:48:23 <Madk> modcomputes all stack values modulo the value in this cell
16:48:25 <Madk> flrrounds all stack values to the lowest integer
16:48:25 <AnMaster> try /flushq
16:48:27 <Madk> celrounds all stack values to the highest integer
16:48:29 <Madk> rndrounds all stack values to the nearest integer
16:48:31 <Madk> sintakes the sine in degrees of all stack values
16:48:33 <Madk> costakes the cosine in degrees of all stack values
16:48:35 <Madk> tantakes the tangent in degrees of all stack values
16:48:38 <AnMaster> your irc client might have that to clear it's send queue
16:48:39 <Madk> sectakes the secant in degrees of all stack values
16:48:41 <Madk> csctakes the co
16:48:43 <Madk> D:
16:48:45 <Madk> alright
16:48:47 <Madk> ?
16:48:49 <Madk> it uses 64-bit floating points
16:48:51 <Madk> so it gets fairly close
16:48:53 <AnMaster> pastebin next time :P
16:48:59 <Slereah> Yeah, but
16:49:04 <Slereah> If you do sin(pi)
16:49:07 <Slereah> Do you get 0
16:49:11 <Slereah> Or something else
16:49:14 <Madk> let me check :D
16:49:24 <Madk> if I can get the interpreter to work
16:49:46 <Slereah> You can write the interpreter in Mathematica
16:49:47 -!- sebbu2 has quit (Ping timeout: 248 seconds).
16:49:51 <Slereah> It will keep the pi as pi
16:56:50 <Madk> my trig works in degrees, not radians
16:57:25 <Slereah> That's not very convenient when you have pi as a value
16:57:39 <Madk> I can make conversion commands pretty easily
16:57:59 <Madk> convert the values on the stack from degrees/radians
17:00:41 <Madk> yeah, pi+trig works fine
17:02:17 <Madk> (Hello, world!)
17:02:19 <Madk> :D
17:02:28 <Madk> 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 <AnMaster> Slereah, hm now you made me consider a mathematica self interpreter
17:44:11 <AnMaster> XD
17:44:32 <AnMaster> or more feasible: writing an x86 emulator in mathematica and running it under that
17:44:47 <AnMaster> getting an interpreter loop between two languages that could arguably both be considered esoteric
17:44:47 <Slereah> x86 has like thousands of commands
17:44:50 <Slereah> Don't do it foo
17:44:57 <AnMaster> Slereah, of course I won't
17:45:38 <AnMaster> 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 <AnMaster> or... better yet
17:46:17 <AnMaster> fix up gcc-bf so it generates less buggy code
17:46:31 <AnMaster> then write a brainfuck interpreter in mathematica
17:46:36 <AnMaster> then cross compile qemu to gcc-bf
17:47:29 <AnMaster> 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 <AnMaster> ais523, hm do you think it is/will be possible to compile qemu with gcc-bf?
17:55:46 <ais523> I'm not sure
17:55:49 <AnMaster> possibly making it output raw vga dump or something like that
17:56:05 <AnMaster> since obviously you don't have the normal GUI toolkits and such
17:56:13 <ais523> PSOX!
17:56:15 * ais523 runs
17:56:21 <AnMaster> ais523, and since it is definitely feasible to write a brainfuck interpreter that ought to get us a loop
17:56:25 <AnMaster> err
17:56:34 <AnMaster> brainfuck interpreter in mathematica*
17:56:47 <AnMaster> ais523, now you can suddenly run mathematica under mathematica
17:57:14 <ais523> that would be pointless
17:57:21 <ais523> and also probably violate mathematica's license
17:57:28 <AnMaster> ais523, well yes but remember which channel this is
17:57:31 <AnMaster> ais523, for science!
18:01:25 <Madk> http://esolangs.org/wiki/Tri
18:01:30 <Madk> interpreter link pending
18:10:27 <AnMaster> Madk, why so many commands
18:10:45 <Madk> I dunno
18:11:05 <Madk> I just added pretty much everything that came to mind :P
18:12:10 <AnMaster> for example: sto = pop psh
18:12:29 <AnMaster> a compiler could optimise that
18:12:52 <Madk> I did it for sake of convenience when writing code
18:13:32 <AnMaster> Madk, right. Ever seen malbolge? ;P
18:13:55 <Madk> I just want my languages to have a different style to them, not brain-killing :P
18:14:03 <AnMaster> not saying it should be as bad as malbolge of course
18:14:03 <ais523> Madk: thanks for all your work improving the wiki, by the way
18:14:15 <Madk> My pleasure :)
18:14:25 <ais523> 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 <AnMaster> 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 <AnMaster> I like that
18:15:43 <AnMaster> better yet, make it substract all values from the top one. So you have to add that back after
18:15:57 <Madk> "subsubtract the lower numbers on the stack from the topmost" ?
18:16:16 <AnMaster> Madk, well, it could substract the topmost from itself as well
18:16:29 <Madk> that would be painful :D
18:16:41 <AnMaster> 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 <Madk> a single value
18:16:59 <Madk> it's that way with all the ones that come up with one answer
18:17:20 <Madk> I'm just tiding up my interpreter to upload it
18:17:21 <AnMaster> Madk, also do you use doubles or some more exact representation, like a CAS would
18:17:34 <Madk> doubles. What exactly is a CAS?
18:17:43 <AnMaster> computer algebra system
18:17:53 <Madk> It doesn't use CAS, no
18:17:57 <AnMaster> it would give you pi or pi/2 rather than an inexact value
18:18:06 <Madk> Ah
18:18:13 <AnMaster> for example
18:18:36 <AnMaster> tends to be possible to force them to give you an approx value if you really want it though.
18:19:32 <AnMaster> people use sec, csc and such!?
18:19:33 <AnMaster> huh
18:20:09 <Madk> You think those are obscure, wait till you see exsecant and versine
18:20:14 <AnMaster> 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 <Madk> the thing is, cotangent is just 1/tan
18:20:44 <AnMaster> nop
18:20:45 <AnMaster> no cot
18:21:04 <AnMaster> Madk, well sure
18:21:28 <AnMaster> Madk, I never even heard of "exsecant" before
18:21:30 <AnMaster> wtf is it
18:21:36 <Madk> secant - 1
18:21:39 <Madk> :P
18:21:45 <AnMaster> why on earth
18:22:04 <Madk> because wikipedia had an entire article dedicated to it :D
18:22:11 <AnMaster> Madk, versine?
18:22:18 <AnMaster> again never heard of it
18:22:35 <Madk> 1-cos
18:22:40 <AnMaster> ...
18:22:42 <AnMaster> wtf
18:22:57 <AnMaster> Madk, why are you using degrees rather than radians btw? To make it more painful to use?
18:23:10 <Madk> make it easier on me
18:23:15 <AnMaster> huh
18:23:26 <AnMaster> that makes no sense
18:23:42 <Madk> I'm used to degrees and the language I'm writing my interpreters in use degrees by default
18:23:55 <AnMaster> what language is that?
18:23:59 <Madk> BlitzMax
18:24:04 <AnMaster> never heard of it
18:24:05 <AnMaster> is it FOSS?
18:24:10 <Madk> Very nive for getting things done quickly
18:24:14 <Madk> FOSS?
18:24:22 <AnMaster> Free/Open Source Software
18:24:27 <Madk> It's $80
18:24:31 <AnMaster> ah...
18:24:35 <Madk> But it's worth every penny
18:24:51 <pikhq> Madk: Does it come with a source code license?
18:24:56 <Madk> It's fast and powerful, but it's very good for rapid protyping, too
18:25:00 <Madk> nop
18:25:09 <Madk> no restrictions on usage once you buy it
18:25:16 <AnMaster> does it work for anything but 32-bit windows (and possibly 64-bit)
18:25:29 <pikhq> Then it's about significantly more expensive than it has any right to be.
18:25:38 <Madk> Windows 32 (it runs on 64), mac, and linux
18:26:09 <AnMaster> 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 <fizzie> 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 <Madk> possibly to soon be expanded to systems using ARM processors
18:26:14 <AnMaster> pikhq, right?
18:26:47 <pikhq> AnMaster: Correct.
18:26:47 <Madk> anmaster: Not to the compiler
18:26:52 <AnMaster> mhm
18:26:56 <Madk> not that I'm aware of, at least
18:27:06 <Madk> the thing is, most of it is written in BlitzMax itself
18:27:08 <pikhq> AnMaster: Also, the right to create and distribute your own changes to it.
18:27:11 <AnMaster> jmp/trg looks like [/] from bf
18:27:22 <AnMaster> pikhq, ah
18:27:22 <Madk> anmaster: that was the intention
18:27:40 * pikhq likes his free software
18:27:41 <Madk> Let me check something quick
18:27:46 <AnMaster> pikhq, same
18:30:56 <Madk> 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 <AnMaster> mhm...
18:34:19 <AnMaster> still I prefer completely open source
18:39:31 <fizzie> AnMaster: Heh, "ufraw test.dng": Floating point exception. (It has the same bug in its built-in dcraw code.)
18:41:02 <AnMaster> heh
18:41:13 <AnMaster> fizzie, yeah mail the dcraw author
18:41:30 <AnMaster> next ufraw version after the next dcraw version ought to include that fix then
18:42:24 <fizzie> 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 <AnMaster> ah
18:43:15 <fizzie> Oh well, at home I can easily patch my own copies.
18:43:30 <fizzie> It can't be a bug many people hit, otherwise they'd have hit it already.
18:45:25 <AnMaster> 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 <Madk> what kind of program should I try and write in Grin
18:46:33 <Madk> I have th urge to try something
18:46:55 <AnMaster> Grin? Is that yet another one?
18:47:02 <Madk> http://esolangs.org/wiki/Grin
18:47:26 <Madk> I have fun with that one
18:47:49 <AnMaster> wow... that is like bf gone bloated
18:47:55 <AnMaster> so completely unlike bf
18:47:57 <Madk> :P
18:48:01 <fizzie> 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 <fizzie> 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 <AnMaster> huh
18:49:19 <AnMaster> fizzie, 8 byte offset in a file? You get image files large enough to need that?
18:49:55 <AnMaster> Madk, write a Grin interpreter in Grin
18:50:05 <Madk> ._.
18:50:16 <AnMaster> hey you asked for suggestions
18:50:31 <fizzie> 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 <AnMaster> Madk, why not implement Tri in Grin then?
18:50:38 <Madk> I would have already but I can't think of a good way to give it the input code :D
18:51:10 <AnMaster> fizzie, hm
18:51:25 <AnMaster> Madk, on STDIN?
18:51:36 <AnMaster> and then some end of file marker
18:51:39 <Madk> it can only read 1 char or number at a time
18:51:42 <AnMaster> after which it starts the program
18:51:46 <AnMaster> Madk, so use a loop
18:51:46 <fizzie> 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 <fizzie> 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 <AnMaster> Madk, how do you think bf self interpreters work?
18:52:03 <Madk> AnMaster: perhaps.
18:52:12 <AnMaster> Madk, then tend to use @ to mark the end of the input bf program
18:52:24 <AnMaster> they*
18:52:27 <Madk> I'm writing one more example for Tri, then I'll do something for that
18:52:40 <Madk> Oh, and check out the sweet icon on the tri interpreter executable
18:53:04 <fizzie> 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 <AnMaster> Madk, unlikely. I run 64-bit linux.
18:53:18 <Madk> ah
18:53:27 <Madk> the source is included in the download
18:53:40 <AnMaster> well I don't plan to spend $80 for that
18:53:46 <Madk> There is a free BlitzMax demo
18:53:56 <AnMaster> and I don't trust closed source in general
18:54:15 <Madk> :|
18:54:18 <AnMaster> 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 <AnMaster> but that is it
18:57:00 <fizzie> That dcraw guy sure tries hard to be extra clever with his code.
18:57:03 <fizzie> dcraw.c:6405: warning: array subscript is above array bounds
18:57:09 <fizzie> What it does around that line is:
18:57:27 <fizzie> double cam_xyz[4][3]; ... for (j=0; j < 12; j++) cam_xyz[0][j] = ...;
18:57:40 <fizzie> It's sort-of valid, but still.
18:57:44 <AnMaster> haha
18:59:32 <fizzie> Mm, patched ufraw seems to work just fine.
19:00:22 <fizzie> 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 <fizzie> 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 <fizzie> 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 <AnMaster> hm
19:04:15 <AnMaster> fizzie, for my camera ufraw manages to extract stuff but forgets to byteswap the MakerNotes thingy
19:04:43 <AnMaster> 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 <AnMaster> exiftool manages to do that correctly
19:05:59 <fizzie> 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 <AnMaster> exiftool manages my camera's MakerNotes
19:08:03 <AnMaster> fizzie, anyway presumably it was fcam that wrote it here?
19:08:10 <AnMaster> so the format of it should be easy to find
19:08:28 <fizzie> 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 <fizzie> Especially the "DNG Private Data: (Binary data 765 bytes, use -b option to extract)" bit.
19:13:23 <fizzie> 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 <AnMaster> fizzie, what exactly does the Color Matrix thing mean I often wondered
19:15:01 <AnMaster> fizzie, I tend to set my camera to use AdobeRGB instead and then use that. Seems to give somewhat better results
19:16:31 <AnMaster> though sometimes that results in somewhat bland colours
19:16:44 <AnMaster> on the other hand Colour Matrix often gives too intensive colours
19:17:05 <fizzie> 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 <fizzie> I do have the fcam sources where it computes those color matrices, but, well.
19:17:47 <AnMaster> hm
19:19:15 <AnMaster> fizzie, any reply from the dcraw author yet?
19:19:22 <fizzie> 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 <AnMaster> fizzie, how does it compute those? I mean, what stuff from the image does the function to compute that matrix use?
19:21:02 <fizzie> 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 <fizzie> What it writes there is a 3x3 conversion matrix from CIE XYZ colorspace to raw-sensor RGB.
19:22:42 <fizzie> 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 <fizzie> Hm, it comes from N900::Platform::rawToRGBColorMatrix(...), and...
19:23:31 <fizzie> And there it is just fixed numbers.
19:23:36 <fizzie> http://graphics.stanford.edu/papers/fcam/html/_n900_2_platform_8cpp_source.html
19:23:43 <fizzie> "These are quick and dirty numbers ..."
19:24:18 <fizzie> There could even be hardware-revision based differences there.
19:27:23 <AnMaster> fizzie, perhaps
19:28:04 <fizzie> 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 <fizzie> There's even a use-with-ufraw tutorial there.
19:30:10 <fizzie> Starts with "Use a tripod." The phone isn't very tripod-friendly.
19:30:29 <fizzie> Nothing a roll of duct tape couldn't solve, though!
19:30:50 <AnMaster> fizzie, or lego
19:31:04 <AnMaster> it was quite easy to build a stable support for my phone in lego
19:31:41 <AnMaster> 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 <AnMaster> fizzie, hm it might only be valid in that given light condition or something like that
19:42:36 <fizzie> Well, it's purely hypothetical anyway; I don't think I'm going to go and buy a reference target anyway.
19:47:27 <AnMaster> ah
19:47:32 <AnMaster> expensive are they?
19:48:35 <fizzie> Well, perhaps not in an absolute sense; "-- targets cost from around $40 to one costing significantly more (read hundreds of $'s) --"
19:48:43 <fizzie> Still perhaps not worth it.
19:48:55 <AnMaster> hm
19:51:16 <fizzie> 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 <AnMaster> fizzie, you think finding such a spectrophotometer would be easy?
19:54:20 <AnMaster> sure, some dept will but...
19:54:47 <fizzie> 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 <fizzie> es; and then they all fed into a computer.
19:55:01 <fizzie> I have no clue what it was supposed to measure, but it was a really neat thing nonetheless.
19:55:21 <fizzie> Computer science is so boring when it comes to equipment. We don't even get bubbly liquids.
19:55:40 <pikhq> Just das blinkenlights.
19:55:45 <AnMaster> fizzie, wait what? product names with tubes?
19:55:49 <AnMaster> sure you weren't dreaming?
19:56:13 <AnMaster> oh wait I misread
19:56:19 <AnMaster> still strange
20:00:05 <fizzie> 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 <AnMaster> heh
20:01:22 <fizzie> Oh, and LuxRender: http://en.wikipedia.org/wiki/LuxRender
20:01:35 <fizzie> "full spectral rendering: Instead of the RGB colour spectrum, full spectra are used for internal calculations."
20:01:41 <fizzie> Everyone should do it like that!
20:07:43 -!- sftp has quit (Read error: Connection reset by peer).
20:08:31 <AnMaster> fizzie, so hm... is that RADIANCE better than povray?
20:08:49 <fizzie> I guess it depends on whether you want pretty pictures or actual physical simulation.
20:08:58 <AnMaster> "Radiance was developed with primary support from the U.S. Department Of Energy and additional support from the Swiss Federal Government."
20:09:00 <AnMaster> why those...
20:09:24 <fizzie> Here's one of those spheres: http://www.labsphere.com/productdetail.aspx?id=857
20:10:10 <fizzie> This page has also some of those boxes included: http://www.labsphere.com/productdetail.aspx?id=875&catid=
20:10:11 <AnMaster> not very good images of it
20:12:35 <fizzie> 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 <fizzie> Given how much I like all kinds of gadgets, I sure picked the wrong field.
20:14:34 <AnMaster> fizzie, XD
20:17:12 -!- sftp has joined.
20:25:26 <fizzie> 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 <fizzie> 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 <fizzie> 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 <fizzie> 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 <AnMaster> fizzie, hah
20:40:32 <AnMaster> fizzie, can you select cloud types? I want to render METAR data XD
20:42:59 <fizzie> 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 <fizzie> CIE sky seems to be a messy collection of trigonometric and exponential functions, designed to approximate measurements.
20:48:23 <fizzie> In both systems you can use HDR environment-map images to provide light intensity, if you happen to have some.
20:48:43 <fizzie> And for any light you can provide as data file the spectral distribution of it.
20:50:19 <fizzie> 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 <AnMaster> 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 <fizzie> Oh, and of course materials for both systems are done by cheating, and not actually modeling what happens to them photons.
21:00:27 <fizzie> 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 <AnMaster> fizzie, Soap OPeRA format ;P
21:27:32 -!- Wamanuz4 has joined.
21:29:41 -!- Wamanuz3 has quit (Ping timeout: 240 seconds).
21:34:11 <Madk> o
21:34:14 <Madk> ok
21:34:20 <Madk> I've made another language
21:34:27 <Madk> but I don't want to overdo it on the commands
21:34:52 <Madk> It's on a 2D grid
21:34:52 -!- wareya has quit (Read error: Connection reset by peer).
21:35:04 <Madk> <>^v change the direction of a pointer
21:35:14 <Madk> % is where the pointer(s) start
21:35:28 <Madk> x kills a pointer, @ kills the program
21:35:33 -!- wareya has joined.
21:35:43 <Madk> # makes 3 pointers in the opposing cardinal directions
21:35:55 <Madk> and " starts and stops printing a string
21:36:09 <Madk> I know I definitely need some conditional program flow in there
21:36:37 <Madk> I have pointers incrementing/decrementing with + and -
21:36:41 <Madk> = sets it to zero
21:37:02 <Madk> I'm thinking maybe ? destroys a pointer if it's 0 and ! destroys it if it's not
21:37:06 <Madk> something like that
21:37:19 <Madk> there's also basic i/o
21:42:38 -!- tombom_ has quit (Quit: Leaving).
21:52:36 <AnMaster> Madk, why not make it self modifying
21:52:37 <AnMaster> like befunge
21:52:44 <AnMaster> would become a fungoid then
21:52:45 <Madk> it is to an extent
21:52:54 <AnMaster> oh?
21:52:55 <Madk> I don't want it to be too similar, though
21:53:02 <AnMaster> so code and data storage is shared?
21:53:13 <Madk> to an extent
21:53:20 <Madk> every pointer has 1 byte of data
21:53:28 <AnMaster> mhm
21:53:35 <Madk> and the field is modifiable to a point
21:53:56 <Madk> 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 <Ilari> So far 10 of 37 opcodes implemented... And there are some opcodes to be defined.
21:59:41 <cheater99> http://img820.imageshack.us/img820/1091/71108837.jpg VS http://img695.imageshack.us/img695/1416/p77k.jpg
21:59:45 <cheater99> who wins?
22:01:45 <oerjan> popeye wouldn't hit a girl!
22:01:57 <oerjan> 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 <cheater99> it's not
22:10:44 <cheater99> she's just a friend
22:12:17 -!- CakeProphet has joined.
22:21:01 <Sgeo> Wasn't that pic on Reddit?
22:22:03 <AnMaster> Ilari, details on that esolang?
22:22:40 <AnMaster> cheater99, the latter one looks like he has a bell curve on his arm
22:22:42 <AnMaster> -_-
22:23:29 <Sgeo> AnMaster, that's totally normal
22:26:38 <oerjan> AnMaster: dammit don't tell me you don't even know popeye
22:28:33 <AnMaster> oerjan, I know about em
22:28:52 <oerjan> whew
22:29:00 <AnMaster> oerjan, but I still think that looks like a bell curve
22:29:09 <AnMaster> and that's not realistic
22:29:34 <oerjan> well the whole point of popeye is he isn't realistic
22:30:25 -!- CakeProphet has quit (Ping timeout: 265 seconds).
22:30:30 <AnMaster> oerjan, no I don't think that is the *whole* point
22:30:52 <AnMaster> because you can get a lot more unrealistic
22:30:57 <oerjan> i'm exaggerating for effect, there. like that curve.
22:30:57 <AnMaster> just add a third arm
22:30:59 <AnMaster> for example
22:32:17 -!- CakeProphet has joined.
22:33:09 -!- cheater99 has quit (Ping timeout: 240 seconds).
22:33:31 <oerjan> http://en.wikipedia.org/wiki/Eugene_the_Jeep <-- now _that's_ unrealistic :D
22:33:36 <oerjan> (and popeye)
22:34:32 <Ilari> 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 <pikhq> The whole point of Popeye is to sell spinach.
22:34:50 <oerjan> pikhq: hm, _could_ be
22:35:05 <ais523> Ilari: reminds me vaguely of some sort of extended BF
22:35:10 <ais523> which is famous for effectively being destructive-read
22:36:19 <Ilari> TCness requires use of swap space. And all flow transfers are unconditional.
22:36:41 <pikhq> 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 <oerjan> with hard-boiled eggs
22:37:41 <oerjan> i haven't had it in years
22:37:47 <pikhq> Fresh spinach is freaking delicious, though.
22:37:57 <Ilari> (only flow control primitive is relative unconditional jump).
22:38:08 <pikhq> And, actually, when the spinach is *in* something it's rather nice. Just straight cooked spinach though? Urgh.
22:39:33 <ais523> I like spinach-flavoured pasta
22:39:48 <Ilari> I need to define load extension library instruction, map instruction instruction, test instruction instruction and unmap instruction instruction.
22:39:49 <ais523> Ilari: relative unconditional jump's a great control-flow operator
22:42:19 -!- cheater99 has joined.
22:44:13 <cheater99> AnMaster doesn't know popeye?
22:45:36 <pikhq> No, he does.
22:46:31 -!- aliseiphone has joined.
22:47:17 <ais523> hi aliseiphone
22:47:35 <pikhq> Heil
22:47:49 <aliseiphone> 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 <aliseiphone> pikhq: Hitler, at your service.
22:48:35 <pikhq> aliseiphone: Ah, mein Fuerher! Ein volk ein reich ein Fuerher, da?
22:49:00 <aliseiphone> pikhq: Quite so! I suggest we kill all the Jews and one clown.
22:49:08 <pikhq> Gespersprachen ales der Reichsvolksenkoffen!
22:49:24 <pikhq> aliseiphone: Why all the Jews? I get the clown, but the Jews?
22:49:25 <ais523> aliseiphone: I've heard that one before
22:49:26 <aliseiphone> Yes. Er. Very much so.
22:49:41 -!- Madk has joined.
22:49:47 <aliseiphone> ais523: It's an old bash.org one.
22:49:59 <aliseiphone> pikhq: See? Nobody cares about clowns!
22:49:59 <ais523> that would explain it
22:50:02 <ais523> not in the top 200, though
22:50:06 <aliseiphone> Wait... what?
22:50:17 <pikhq> ais523: Wait, what?
22:50:18 <aliseiphone> ais523: Huh. Well, it used at be, at least.
22:50:19 <ais523> or if it is, I don't remember seing it there
22:50:21 <ais523> *seeing
22:50:21 <pikhq> Thass a classic.
22:50:31 <aliseiphone> I'm sure it is...
22:51:02 * ais523 checks
22:51:17 <ais523> it is, you're right
22:51:24 <pikhq> aliseiphone: Fucking clowns. Only thing worse is a nwolc.
22:51:37 <aliseiphone> Wow; the top 200 has changed drastically.
22:51:43 <aliseiphone> Or rather, the top 10.
22:51:47 <aliseiphone> Now they suck.
22:52:20 <oerjan> ?nwolc a s'tahw
22:52:35 <ais523> hmm, some of them are charming
22:58:52 <aliseiphone> ais523: Define "charming".
22:59:13 <aliseiphone> The whole point of bash is basically its crassness.
22:59:22 <ais523> hmm, things that make me smile when I read them
22:59:30 <ais523> I don't like the crass ones as much
22:59:39 <aliseiphone> Where has the ping one gone?
22:59:56 <aliseiphone> The "responds to pings; just physically can't find it" one.
23:00:00 <ais523> #9322 is a pong one
23:00:03 <ais523> the responds to pings is #2
23:00:09 <ais523> well, second on the list
23:00:12 <ais523> not numbered 2
23:00:21 <aliseiphone> And the stab-over-TCP/IP? :(
23:00:51 <aliseiphone> And "tetris is so unrealistic"? And ...
23:00:52 <ais523> that's pretty high up too
23:01:03 <ais523> I'm rereading the top 100, and haven't come across the tetris one yet though
23:02:21 <aliseiphone> ... 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 <aliseiphone> 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 <ais523> I have no idea what you're quoting from
23:14:55 <ais523> 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 <oerjan> rather uncomfortable feeling, i recall
23:20:03 <cheater99> HELLO ALISE
23:20:14 <cheater99> up is what!
23:20:23 <oerjan> still, better than the dreams of being hunted/caught by a pack of carnivorous dinosaurs. (yes, that used to be recurring.)
23:23:59 <cheater99> oerjan: and very fair so, you little mammarian meatbag
23:24:29 <oerjan> *mammalian
23:24:42 <cheater99> 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 <aliseiphone> oerjan: Raptors CHASING YOU IN TO THE FIXED POINT
23:26:10 <aliseiphone> ais523: Newly created!
23:26:33 <ais523> hmm, well I suppose you have a lot of spare time with nothing much to do in it
23:26:55 <oerjan> i don't think they were raptors. probably tyrannosaurs.
23:26:57 <aliseiphone> Just like Bjorn.
23:27:41 <aliseiphone> oerjan: so what do quantum voxels feel like
23:27:54 <oerjan> nauseating.
23:28:04 <aliseiphone> XD
23:28:04 <oerjan> at least that's what my vague recall says.
23:28:39 <aliseiphone> Schrodinger's cat actually just feels really uncomfortable.
23:28:40 <cheater99> Sgeo: out with it
23:28:58 <aliseiphone> like something is VERY WRONG
23:29:17 * cheater99 sets up an experiment with Schrdinger's alise
23:30:07 <Sgeo> 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 <Sgeo> And ... yeah
23:30:13 <Sgeo> >.>
23:30:25 <Sgeo> Nothing happened, so don't think that that's why I said >.>
23:32:10 <Sgeo> Oh, at the end, there was some picture thing, and she didn't want me standing near her
23:32:31 <Sgeo> Oh, and completely unrelated, I cannot figure out where this fits, there was a quarantine of some sort, different DCs
23:33:00 <ais523> hmm, seems it's not illegal to violate a website TOS in the US
23:33:11 <ais523> (court judgement yesterday)
23:33:24 <ais523> but it is illegal to try to get around technical attempts to lock you out
23:34:10 <Sgeo> Eeep, I did that once
23:34:21 <ais523> hmm, you know
23:34:29 <ais523> it would be really appropriate to host C-INTERCAL on a MySpace account
23:36:54 <ais523> I probably won't, though; I'm having difficulty figuring out if the MySpace license is compatible with the GPL
23:37:12 <ais523> 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 <ais523> presumably, they want us to agree to that
23:39:32 <ais523> agreeing to their own TOS doesn't make much sense
23:40:25 <Sgeo> When you presume, you make a pres out of u and me
23:41:36 <ais523> I doubt I could create a page quite awful enough to look properly MySpacy, though
23:41:57 <ais523> (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 <Sgeo> Is an HTML4/HTML5 polygot possible? Aren't there different doctypes or something?
23:43:21 <ais523> well, as near as possible
23:43:41 <ais523> a bit of the page source is probably fixed by MySpace as it is
23:45:47 <Madk> dang iiit
23:46:03 <Madk> my interpreter is acting up for some reason when it gets to a / from below
23:46:22 <Madk> it makes no sense at all and I really don't know why
23:46:30 <Madk> oh
23:46:37 <Madk> I think I know why now ._.
23:46:42 <Madk> but it still makes no sense
23:47:37 <aliseiphone> ais523: 99% of it
23:47:47 -!- MizardX has quit (Ping timeout: 276 seconds).
23:47:56 <aliseiphone> ais523: you "design" with utterly insane css in the about me section
23:47:58 <ais523> aliseiphone: you could just make the rest of the source really long to compensate
23:48:02 <aliseiphone> or at least you used to
23:48:16 <aliseiphone> no actual proper support for it
23:48:29 <aliseiphone> just an abuse of the lenient HTML allowance
23:48:32 <ais523> that sounds like MySpace, all right
23:48:50 <aliseiphone> 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 <aliseiphone> ais523: remember when nobody used facebook and everyone went on about myspace? Maybe next we'll be back to Friendster.
23:57:07 <ais523> oh, I /hope/ Facebook collapses
23:57:13 <ais523> the chance of whatever replacing it being even worse is rather low
23:57:27 <aliseiphone> Speaking of "all right", alright is so a word.
23:57:33 <ais523> that said, MySpace still seems to be very popular among bands
23:57:40 <ais523> aliseiphone: it is, I think; but it has a slightly different meaning IMO
23:57:52 <aliseiphone> yes, facebook has very few provisions for bands
23:57:59 <aliseiphone> ais523: oh, indeed
23:58:00 <ais523> I thought conciously about which to use before I used it
23:58:13 <aliseiphone> but the pedants dislike it
23:58:46 <aliseiphone> btw, old OEDs are awesome — well, concise OED, but still
23:59:00 <ais523> perhaps it's a word now even if it used not to be
23:59:34 <aliseiphone> It has rime and gaol preferred over rhyme and gaol. "Gullible" is actually not in it, just "gull" with "hence ~ible". :-)
←2010-07-21 2010-07-22 2010-07-23→ ↑2010 ↑all