00:04:25 <FireFly> `run printf '\r\nQUIT :a\r\n' # would do better, but won't work anyway
00:05:00 <blotter__> obviously it wont be a raw irc message
00:05:14 <blotter__> otherwise plain echos wouldnt work
00:06:58 <oerjan> * boily chokes on trying to say “brzrocoin” <-- you're just not czech enough hth
00:07:52 <boily> I am Canadian. I am also sane. those are two qualities that prevent me of pronouncing exotic consonant clusters.
00:08:29 <oerjan> still with the delusions
00:09:36 <boily> the delusions, they are delicious.
00:10:01 <boily> (or is that the meal I'm currently eating? I can't make the distinction.)
00:18:01 -!- blotter__ has quit (Ping timeout: 272 seconds).
00:24:08 <oerjan> my current meal is so cheesy
00:24:30 <oerjan> also bready and liver patéy
00:27:01 <kmc> http://yle.fi/uutiset/poroille_tarkoitetun_heijastinsprayn_tehtavana_estaa_liikenneonnettomuuksia/7093117
00:32:00 <oerjan> <Taneb> Well, the easiest way I've seen is by simulation of B,C,K,W with fix to get round Hindley-Milner <-- come to think of it, i don't actually have a citation that that is enough. i'm suddenly worried by the fact you cannot make polymorphic functions this way.
00:33:25 <oerjan> i'm not sure that it's actually a problem, though.
00:34:08 <boily> pâté de foie is a good thing.
00:34:27 -!- boily has quit (Quit: CHICKEN OF DOUBT).
00:34:30 -!- metasepia has quit (Remote host closed the connection).
00:34:40 <oerjan> and i think lens probably has enough stuff that you could make arithmetic directly as well, which would surely clinch it.
00:35:46 <zzo38> If you write "echo KCUF | rev", then the respose is supposed to be "FUCK" it isn't a misbehaviour. If you don't like it, give different input please!
00:36:00 <zzo38> boily: Being Canadian and sane prevent you from pronouncing some things? Are you sure?
00:36:39 <oerjan> :t view curried (view (sumOf both))
00:36:40 <lambdabot> Couldn't match type `((a0, b0) -> Accessor a1 (a0, b0),
00:36:40 <lambdabot> (a0, b0) -> Accessor a1 (a0, b0))'
00:37:11 <oerjan> :t view curried (sumOf both)
00:37:26 <oerjan> :t view curried (productOf both)
00:37:37 <zzo38> I think it is allowed to be both sane and insane simultaneously.
00:38:14 <kmc> There is an area of the mind that could be called unsane, beyond sanity, and yet not insane. Think of a circle with a fine split in it. At one end there's insanity. You go around the circle to sanity, and on the other end of the circle, close to insanity, but not insanity, is unsanity.
00:38:24 <kmc> `addquote <zzo38> I think it is allowed to be both sane and insane simultaneously.
00:38:26 <HackEgo> 1170) <zzo38> I think it is allowed to be both sane and insane simultaneously.
00:39:20 <lambdabot> `-' (imported from Prelude), `^' (imported from Prelude),
00:39:28 <Bike> When the object enters the timestream, time begins to correct itself. Let me use this example: Imagine four balls on the edge of a cliff. Say a direct copy of the ball nearest the cliff is sent to the back of the line of balls and takes the place of the first ball. The formerly first ball becomes the second, the second becomes the third, and the fourth falls off the cliff. Time works the same way.
00:39:33 <lambdabot> `-' (imported from Prelude), `-~' (imported from Control.Lens)
00:39:39 <lambdabot> Num a => ASetter s t a a -> a -> s -> t
00:39:46 <zzo38> kmc: O, that's how it works.
00:40:16 <kmc> zzo38: that's what Terence McKenna says, anyway
00:40:28 <kmc> dude probably smoked his own weight in DMT
00:40:41 <kmc> depending on your perspective that might make him either more or less reliable on these matters
00:40:46 <zzo38> OK, now I can know who such a quotation is from.
00:41:11 <Bike> wait is DMT something you smoke
00:41:12 <kmc> naturally, I know that quote not from reading his writing directly but from hearing it in a psychedelic trance song
00:41:17 <kmc> Bike: can be
00:41:56 <kmc> "When smoked, DMT generally reaches full effects within 10-60 seconds of inhalation." it's one of these
00:41:58 <zzo38> I don't know what "DMT" stands for.
00:42:04 <Bike> dimethyltryptamine.
00:42:20 <kmc> N,N-dimethyltryptamine yeah
00:42:40 <oerjan> I,I N,N-dimethyltryptamine
00:42:43 * kmc has smoked 5-MeO-DMT but not DMT
00:43:16 <Bike> i,i 2-(1H-indol-3-yl)-N,N-dimethylethanamine ¬_¬
00:43:46 <kmc> Bike: you can also trip from eating DMT-containing plants but you need to take them with a MAOI; there are traditional preparations for this
00:43:51 <kmc> copumpkin: oh, how was it?
00:44:05 <lambdabot> Occurs check: cannot construct the infinite type: t0 = Mutator t0
00:44:05 <lambdabot> Expected type: ASetter (Mutator t0) t0 (Mutator t0) (Mutator t0)
00:44:05 <lambdabot> Actual type: (Mutator t0 -> Mutator t0)
00:44:11 <Bike> https://24.media.tumblr.com/901826dd6f13abf694cac1fb0442643d/tumblr_n09sqfia1j1qetjcco3_250.jpg
00:44:11 <kmc> did you see the machine elves
00:44:12 <oerjan> darn what was it again
00:44:34 <copumpkin> nope, but I saw lots of weird things getting drawn in green tendrils
00:44:46 <copumpkin> it was really weird, part of a ritual in the dark
00:45:06 <copumpkin> the room was completely dark but if my eyes were open, I'd feel super lucid
00:45:21 <copumpkin> but since it was dark and I was seeing shit regardless, my eyes would creep shut without me noticing, but when they were shut I'd feel super mentally congested
00:45:27 <copumpkin> then I'd open them up and feel relieved again
00:45:36 <kmc> that's interesting
00:45:53 <copumpkin> I'd do it again, but didn't much enjoy the throwing up :)
00:46:23 <lambdabot> Getting (Endo (Endo Int)) s a -> s -> Int
00:46:27 <copumpkin> it was the sketchiest thing I've ever done, too. I was in a big city in the peruvian amazon, super poor, driven away into the slums of the poor city
00:46:44 <copumpkin> then walked into a house where the shaman lived
00:46:54 <copumpkin> probably not the wisest thing to do, but it worked out
00:47:00 <kmc> i'm glad it worked out :)
00:47:02 <kmc> eating a large qty of plant stuff is a good way to throw up, yeah
00:47:08 <kmc> though i have puked from pure synthetic psychedelics too
00:47:12 <copumpkin> this was a weird liquid concoction
00:47:13 <kmc> (well, purity unknown but probably high)
00:48:26 <oerjan> FreeFull: view simple _is_ id
00:48:55 <oerjan> FreeFull: the game here is to use no identifiers or constructors defined outside lens
00:49:47 <lambdabot> (Applicative f, Choice p) => APrism s t a b -> p (e, a) (f (e, b)) -> p (e, s) (f (e, t))
00:49:55 <lambdabot> (Applicative (Data.Profunctor.Rep.Rep q), Applicative f, Data.Profunctor.Rep.Representable q) => Overloading p q f s t a b -> Overloading p q f s' t' a b -> Overloading p q f (s, s') (t, t') a b
00:50:07 <lambdabot> `aside' (imported from Control.Lens),
00:54:16 -!- tertu has joined.
00:56:27 <lambdabot> (Functor f, Contravariant f) => (Maybe b -> f (Maybe b)) -> b -> f b
00:58:24 <oerjan> :t lengthOf (review _Just) _Just
00:58:25 <lambdabot> Couldn't match type `Maybe (a0 -> Accessor (Endo (Endo Int)) a0)'
00:58:25 <lambdabot> with `(p0 a1 (f0 b0) -> p0 (Maybe a1) (f0 (Maybe b0)))
00:58:35 <lambdabot> Getting (Endo (Endo Int)) s a -> s -> Int
00:59:37 <oerjan> :t lengthOf folded ((review _Just) _Just)
00:59:38 <lambdabot> No instance for (Choice p0) arising from a use of `_Just'
00:59:38 <lambdabot> The type variable `p0' is ambiguous
00:59:38 <lambdabot> Possible fix: add a type signature that fixes these type variable(s)
01:00:40 <Bike> can't you just use djinn somehow
01:00:49 <oerjan> :t lengthOf folded ((review _Just) (view simple))
01:00:50 <lambdabot> No instance for (MonadReader a0 m0) arising from a use of `view'
01:00:50 <lambdabot> The type variables `m0', `a0' are ambiguous
01:00:50 <lambdabot> Possible fix: add a type signature that fixes these type variable(s)
01:01:43 <oerjan> :t lengthOf folded ((review _Just) (over simple))
01:01:52 <oerjan> > lengthOf folded ((review _Just) (over simple))
01:02:26 <lambdabot> MonadReader b m => AReview s t a b -> m t
01:02:36 <Bike> well i'm satisfied
01:04:07 <oerjan> Bike: just ponder http://cokmett.github.io/cokmett/ (you need to click on the picture)
01:04:53 <Bike> bimonocycleoid
01:06:03 <oerjan> hm i recall a question whether it was statistically guaranteed to halt, don't think it got a proper answer
01:07:08 <zzo38> Highlighting the picture seems to reveal something, although clicking on it doesn't work.
01:08:02 <oerjan> > view curried (productOf both) (lengthOf folded ((review _Just) (over simple))) (lengthOf folded ((review _Just) (over simple)))
01:08:17 <oerjan> > view curried (sumOf both) (lengthOf folded ((review _Just) (over simple))) (lengthOf folded ((review _Just) (over simple)))
01:08:27 <oerjan> @tell Taneb view curried (sumOf both) (lengthOf folded ((review _Just) (over simple))) (lengthOf folded ((review _Just) (over simple)))
01:08:54 -!- tertu has quit (Ping timeout: 252 seconds).
01:09:58 <FreeFull> Heh, using lengthOf for getting numbers
01:10:01 <lambdabot> Getting (Endo (Endo Int)) s a -> s -> Int
01:10:13 <oerjan> Bike: oh Taneb already did
01:10:21 <Bike> yeah but isn't _1 cheating or something
01:10:31 <oerjan> no, _1 is defined in lens
01:10:41 <Bike> yeah but it has a 1 in it.
01:10:43 <Bike> clearly too easy.
01:11:02 <Bike> otherwise why did you go through all the effort of finding another way to get 1
01:11:52 <Bike> hell if i know, i'm not a nerd
01:12:07 <FreeFull> I don't think tuples are indexed
01:12:12 <oerjan> zzo38: it's using javascript
01:14:35 <oerjan> > (3,4) & view (each.index 0)
01:14:37 <lambdabot> Couldn't match type `GHC.Types.Int'
01:14:37 <lambdabot> with `p0 b' (Control.Lens.Internal.Getter.Accessor a0 b')'
01:14:37 <lambdabot> Expected type: (a0 -> Control.Lens.Internal.Getter.Accessor a0 a0)
01:14:37 <lambdabot> -> p0 b' (Control.Lens.Internal.Getter.Accessor a0 b')
01:14:37 <lambdabot> Actual type: (a0 -> Control.Lens.Internal.Getter.Accessor a0 a0)
01:14:55 <oerjan> > [3,4] & view (each.index 0)
01:14:56 <lambdabot> Couldn't match type `GHC.Types.Int'
01:14:56 <lambdabot> with `p0 t0 (Control.Lens.Internal.Getter.Accessor a0 t0)'
01:14:56 <lambdabot> Expected type: (a0 -> Control.Lens.Internal.Getter.Accessor a0 a0)
01:14:56 <lambdabot> -> p0 t0 (Control.Lens.Internal.Getter.Accessor a0 t0)
01:14:56 <lambdabot> Actual type: (a0 -> Control.Lens.Internal.Getter.Accessor a0 a0)
01:15:33 <oerjan> > [3,4] & view (traversed.index 0)
01:15:34 <lambdabot> Couldn't match type `GHC.Types.Int'
01:15:35 <lambdabot> with `p0 t0 (Control.Lens.Internal.Getter.Accessor a0 t0)'
01:15:35 <lambdabot> Expected type: (a0 -> Control.Lens.Internal.Getter.Accessor a0 a0)
01:15:35 <lambdabot> -> p0 t0 (Control.Lens.Internal.Getter.Accessor a0 t0)
01:15:35 <lambdabot> Actual type: (a0 -> Control.Lens.Internal.Getter.Accessor a0 a0)
01:16:57 -!- tertu has joined.
01:17:03 <oerjan> > (3,4) ^. each.index 0
01:17:05 <lambdabot> Couldn't match type `GHC.Types.Int'
01:17:05 <lambdabot> with `p0 b' (Control.Lens.Internal.Getter.Accessor a0 b')'
01:17:05 <lambdabot> Expected type: (a0 -> Control.Lens.Internal.Getter.Accessor a0 a0)
01:17:05 <lambdabot> -> p0 b' (Control.Lens.Internal.Getter.Accessor a0 b')
01:17:05 <lambdabot> Actual type: (a0 -> Control.Lens.Internal.Getter.Accessor a0 a0)
01:18:29 <zzo38> What is your opinion of procedural SQL? I do not find procedural SQL extensions useful; the features provided by SQLite (now that recursive WITH clauses are supported) is good enough. Wikipedia does say, SQL is influenced by Datalog, so there is some relation to logic programming.
01:18:59 <Bike> procedural sql is the false helix
01:20:13 <zzo38> However, two missing features from SQLite which would help would be CREATE FUNCTION (not in the way PL/SQL does it, though), and ALTER ... RENAME TO ... for objects other than tables.
01:21:03 <zzo38> Better way of CREATE FUNCTION should be one similar to views, so it is like: CREATE FUNCTION name(args) AS expression;
01:22:04 <oerjan> @tell Taneb hm i briefly forgot you'd already done fibonacci.
01:22:53 -!- nooodl_ has quit (Quit: Ik ga weg).
01:25:04 <zzo38> To do aggregate functions you should have, before AS, put ACCUMULATING and a list of variables, each one has "name = initial_value UPDATE TO new_value". Do you think that would be better way?
01:26:28 <zzo38> For example: CREATE FUNCTION TOTAL(X) ACCUMULATING (T = 0 UPDATE TO T+X) AS T;
01:28:55 <oerjan> <Bike> no pasting allowed? <-- pasting is allowed. you're just not allowed to look at the result.
01:34:58 -!- blotter__ has joined.
01:45:54 -!- zzo38 has quit (Remote host closed the connection).
01:55:23 <oerjan> i think the last paragraph of this blog post is on topic here http://terrytao.wordpress.com/2014/02/04/finite-time-blowup-for-an-averaged-three-dimensional-navier-stokes-equation/#respond
01:55:42 <oerjan> oops i forgot to take off that #respond
01:55:54 <oerjan> (as did the reddit poster)
01:56:52 <Bike> it is my dream to some day understand something tao says
01:57:09 -!- Frooxius has quit (Ping timeout: 265 seconds).
01:57:32 <oerjan> basically terry tao is suggesting that it _could_ in principle be possible to disprove the navier-stokes conjecture by embedding a computer into ideal fluid mechanics
01:58:27 <oerjan> or something equivalent to a cellular automaton replicator
01:58:34 <Bike> «To visualise the dynamics of such a system, I found it useful to describe this system graphically by a “circuit diagram” that is analogous (but not identical) to the circuit diagrams arising in electrical engineering» damn
01:58:53 <Bike> not that this looks anything like a circuit diagram but
01:59:20 -!- tertu has quit (Ping timeout: 252 seconds).
02:00:30 <oerjan> also he refers to the lord of the rings movies
02:01:10 <oerjan> (don't worry Bike, i don't really understand any of this either)
02:01:29 <Bike> i've yet to meet anyone that can understand tao
02:02:28 <Bike> of course, i probably couldn't understand anyone who could understand tao
02:03:34 -!- tertu has joined.
02:20:15 -!- heroux has quit (Ping timeout: 272 seconds).
02:20:32 -!- heroux has joined.
02:29:26 -!- CADD has joined.
02:29:50 -!- CADD has changed nick to Guest76828.
02:33:41 -!- Guest76828 has quit (Ping timeout: 248 seconds).
02:36:56 -!- yorick has quit (Ping timeout: 245 seconds).
02:41:52 -!- Sprocklem has quit (Read error: Connection reset by peer).
02:43:08 -!- Sprocklem has joined.
03:10:17 -!- blotter__ has quit (Ping timeout: 252 seconds).
03:14:52 -!- Phantom_Hoover has joined.
03:19:43 -!- Frooxius has joined.
03:23:28 -!- tromp_ has quit (Remote host closed the connection).
03:24:01 -!- tromp has joined.
03:28:11 -!- tromp has quit (Ping timeout: 245 seconds).
03:33:59 -!- zzo38 has joined.
03:53:37 -!- blotter__ has joined.
04:03:00 <Taneb> What d'you call the idea that if you choose something randomly it tends to be one of the more common ones?
04:16:24 <zzo38> Taneb: It isn't precisely clear what you mean.
04:16:43 <Taneb> I don't think it really matters
04:17:08 <Taneb> Like, I'm trying to compute an estimate of the mode. Enumerating the possibilities is expensive.
04:18:12 <Taneb> I don't think it really matters what I call it
04:19:22 <oerjan> well i think the mode may be one of the hardest parameters to estimate if you don't have some other knowledge about the distribution
04:20:21 <oerjan> because you might miss it completely if it's a narrow spike
04:21:29 <Taneb> oerjan, here it's the case that any of the population is sort of good enough
04:21:32 <Taneb> Just the mode is the best
04:22:04 <zzo38> O, yes, that is what it is called; it is called the mode.
04:22:18 <zzo38> At first I didn't understand, but of course, that is what it is.
04:22:38 -!- tertu has quit (Ping timeout: 265 seconds).
04:25:29 -!- luserdroog has joined.
04:29:22 -!- password2 has joined.
04:39:46 -!- tertu has joined.
04:40:47 <zzo38> I thought of idea to connect I/O devices to computer and to each other using ethernet, that peer-to-peer is possible, no special drivers are need to write implementations or proxies, and several other things.
04:43:16 -!- Sorella has quit (Quit: It is tiem!).
04:48:19 <newsham> just hook up keyboard to ethernet broadcast
04:48:24 <newsham> everyone gets every keystroke..p2p!
04:48:46 <kmc> in uni we made a Linux kernel driver which let you share a page of memory with every host on your LAN
04:48:58 <zzo38> Yes, that is the other thing; to allow multiple devices to be having multiple devices.
04:49:22 <kmc> it was p. cool, you could just write into memory and the other nodes would see it by magic
04:49:30 <zzo38> For example to allow one keyboard on two computers, or multiple computers to share access to a single disk.
04:49:31 <kmc> of course doing this with good performance is Very Hard
04:49:42 <kmc> but it's also a problem that multi-core systems have to solve
04:49:46 <zzo38> A file system could be supported using FTP and Plan 9 protocols.
04:50:15 <newsham> EPARSE "ftp and plan9 protocols"
04:50:37 <kmc> it would have been fun to extend that project by implementing real cache coherence protocols
04:51:05 <pikhq_> newsham: Plan9 is a network protocol. To be specific it is the network protocol used for all RPC on Plan 9. :)
04:51:23 <zzo38> Or to have two devices connected to each other without necessarily needing the host computer (other than a router or something like that).
04:52:28 <newsham> http://www.thenewsh.com/~newsham/plan9/
04:55:53 -!- zzo38 has quit (Ping timeout: 252 seconds).
04:56:48 -!- Phantom_Hoover has quit (Quit: Leaving).
04:57:40 -!- zzo38 has joined.
04:57:43 <zzo38> I think it would be a good idea to make each process in a Linux (or similar) system to have a filesystem associated which is under its directory in /proc/ and if the program doesn't provide a filesystem, then you should get a "disk is not inserted" error when you try to access it.
04:58:35 <newsham> luserdroog: you should use it. you can get a vm imgae setup really quickly.
04:59:13 <luserdroog> Hmm. I do have some free disk space after offloading some porn....
05:07:20 -!- atriq has joined.
05:07:27 <atriq> My desktop decided to stop working
05:07:40 <atriq> First time I've used my laptop in aaaages
05:08:38 <oerjan> is it pining for the fjords
05:08:57 <atriq> It's pining for a hard drive that hasn't fallen out, I think
05:09:15 <newsham> plan9 ran on big machines in 2002. so pretty much takes up no disk space today ;-)
05:09:29 <newsham> also the core system is itself pretty small
05:09:58 <newsham> you can find some demo videos on youtubes, too
05:10:13 <atriq> You know, it's 5 am
05:10:17 <atriq> I really should sleep
05:10:42 <Sgeo> Didn't people used to complain about how much resources a Smalltalk VM took up?
05:11:12 <zzo38> How much resources to they compare to how much DOS takes up?
05:11:20 <newsham> also easy to get and use -- plan9 ports, which give syou much of the plan9 env/tools in unix. http://swtch.com/plan9port/
05:14:21 <kmc> Taneb: it sounds like you were describing the idea of statistical sampling
05:14:24 <kmc> @localtime atriq
05:14:24 <kmc> people will complain about anything
05:14:25 <newsham> sgeo: now its just a small vm for toys on olpcs. :)
05:14:54 <lambdabot> Local time for oerjan is Tue Feb 18 06:14:51 2014
05:15:20 <lambdabot> Local time for atriq is Tue Feb 18 05:15:25
05:15:25 <Sgeo> Is it possible to obtain OLPCs these days?
05:15:43 <newsham> i imagine people are throwing them away by now
05:16:02 <kmc> Sgeo: ask Blaketh
05:16:13 <kmc> he's in #trains
05:16:13 -!- SirCmpwn has changed nick to SirCmpwn_.
05:16:16 <newsham> google says ebay has some for sale in the $100-$150 range
05:16:26 <kmc> at one point he had like 30 of them plus the box that lets you charge 30 batteries at once :)
05:17:04 <newsham> walmart has new olpc tablets
05:17:10 <atriq> My laptop has connectivity problems
05:17:15 -!- SirCmpwn_ has changed nick to SirCmpwn.
05:17:25 <oerjan> one laptop per connection
05:18:25 <newsham> i've got an xo. the clock battery is out, so i have to manually fix the date to use it properly, but other than that in working order
05:20:25 <kmc> i installed debian on mine but it kept hard-freezing
05:20:41 -!- blotter__ has quit (Ping timeout: 245 seconds).
05:23:35 <oerjan> looks fast enough from here
05:23:41 <atriq> oerjan, it keeps dropping
05:24:00 <atriq> It's fast but unstable
05:24:09 <newsham> i should install the cray emulator on my xo
05:26:15 <zzo38> Have "process custom file systems" been implemented at all? I think I have seen some, but they require the program to terminate and retain some directory elsewhere, which doesn't seem very sensible to me.
05:31:05 -!- SirCmpwn has changed nick to SirAway.
05:32:02 <zzo38> Do you know of any graphics libraries for SQL?
05:32:25 -!- Sprocklem has quit (Read error: Operation timed out).
05:32:31 <newsham> dont know what you mean by 'process custom filesystems'
05:32:56 <atriq> My live esolang creation is in 3 days
05:34:09 <zzo38> newsham: I mean that in the process directory under /proc/ there would be another directory which represents a filesystem implemented by the program, and is available while it is running. If no filesystem is implemented by the program, then you could get a "disk not inserted" error or something like that, when trying to access it.
05:35:04 <newsham> there are programs which implement synthetic filesystems from usre programs, usually using the fuse library and driver.
05:35:16 <newsham> plan9ports (plan 9 from user space) has some in its dist
05:35:32 <newsham> ie. when you run acme you get /mnt/acme/* directories for your acme windows.
05:35:42 <newsham> see http://www.youtube.com/watch?v=dP1xVpMPn8M for a demo
05:35:51 <zzo38> OK, but that isn't quite what I meant.
05:36:04 <zzo38> I meant you would get it in /proc/1928/fs/ or whatever.
05:36:19 <newsham> its a filesystem implemented by a program which is available while its running.. although its not (normally) mounted under /proc
05:36:20 <zzo38> (And if you wanted it elsewhere, you would create a link to it.)
05:36:24 <newsham> it could be, if you wanted it to
05:36:41 <newsham> you can mount it anywhere you feel like, of course
05:37:31 <zzo38> I mean the system should be designed to automatically mount it in /proc whether or not the program even provides a filesystem. If more than one instance is then running, you can access each one by their process ID.
05:38:21 <newsham> whats the advantage? seems like you'd force each proc to implement at most one fs
05:38:34 <newsham> i guess to answer your question, no, i have not heard of such a thing
05:39:19 <zzo38> If it implements more than one, they can be implemented in subdirectories, so you don't need more than one.
05:39:40 <newsham> unless you didnt want them to have a parent/child relation to each other
05:40:14 <newsham> you should implement it for the linux kernel and give it a try
05:40:41 <zzo38> They don't need to; for example you can implement one as /proc/444/fs/A/ and one as /proc/444/fs/B/ but they would generally be the same filesystem actually; if separate implementations exist the program would just proxy them through the A and B directories.
05:41:38 <zzo38> Or else the process could fork additional processes, if that would help at all.
05:42:16 -!- blotter__ has joined.
05:42:38 <Sgeo> I think I'll just have all (most) lenses be merely traversals.... a wrong type would get reported as being 0 targets
05:43:34 <ski> zzo38 : the Aditi project was a really interesting idea
05:44:01 <zzo38> For example if the program implements FTP access as a local file system, then you might use a command like "ftpfs example.org &" and then you get its process ID; afterward you can close the connection by sending SIGTERM to the process, or perhaps to reset the connection by sending SIGUSR1.
05:44:49 <zzo38> ski: What is that?
05:45:02 <ski> a deductive database system
05:45:06 <ski> or rather, it was
05:46:11 <ski> it had integration with Prolog, and later with Mercury
05:46:32 <zzo38> How does it work? Do you have an example?
05:46:47 <newsham> http://man.cat-v.org/plan_9/4/ftpfs
05:47:22 <ski> the project page is <http://web.archive.org/web/20091002082304/http://www.cs.mu.oz.au/research/aditi/>
05:48:43 <ski> "it" being the deductive database parts ? or the integration with Prolog or Mercury ?
05:49:10 <zzo38> ski: I mean the deductive database.
05:49:36 <ski> do you know any logic programming (like Prolog) ?
05:50:24 <zzo38> No, I don't know much about it. Wikipedia says SQL is influenced by Datalog, but I don't know much about how Prolog or Datalog works.
05:50:37 -!- SirAway has changed nick to SirCmpmn.
05:50:45 <zzo38> I know SQL though. I also know some about some kinds of synbolic logic.
05:50:58 <ski> well, then you imo should sooner or later learn some Logic Programming. it's quite interesting
05:51:12 <ski> preferably sooner :)
05:51:13 <zzo38> What relation does it have with SQL?
05:51:22 <zzo38> Maybe then I can understand.
05:51:32 <zzo38> Since, I do know how to write programs in SQL.
05:51:57 <ski> unfortunately, SQL has a very ugly syntax
05:52:23 <ski> Logic Programming languages typically borrow their syntax much more directly from first-order predicate logic
05:52:47 <zzo38> I do not think the syntax of SQL is so bad.
05:54:34 <ski> the main thing that should have to be changed in a Prolog-like syntax, to make it better applicable to databases, it adding support for records / named arguments, so that you don't have to remember the order of arguments for a thirteen-arity relation
05:54:38 <zzo38> newsham: I can see from that, its implementation has to add various things such as using unmount command, trying to access the user's home directory, etc, even though with my suggestion it is a bit more simpler since you can just use SIGTERM to get rid of the connection and that would automatically do everything for you; the directory is automatically gone since it is in /proc instead.
05:55:17 <ski> SQL is partly built as a pointful layer over relational algebra, which is more or less pointless
05:55:54 <newsham> i would say sql is totally pointless ;-)
05:56:12 <ski> hehe (i meant "pointless" in the technical sense :)
05:56:29 <Sgeo> Is prolog/datalog syntax actually compilable to something more efficient than brute-force?
05:56:30 <newsham> zzo38: mostly for comedic effect.
05:56:47 -!- SirCmpmn has changed nick to SirCmpwn.
05:57:00 <ski> well, not totally. but unfortunately SQL deviates on several points from the relational model
05:57:15 <zzo38> ski: What kind of points do you mean?
05:57:31 <ski> (and then in addition many DBMSs deviate from the SQL standard)
05:58:02 <Sgeo> :( Datomic is still proprietary, right?
05:58:22 <zzo38> Well, I use SQLite, and think many of the extensions that other systems add are mostly worthless.
05:59:47 <newsham> [19:59] < zzo38> ski: What kind of points do you mean?
06:00:31 <newsham> http://www.haskell.org/haskellwiki/Pointfree
06:01:13 <zzo38> SQL programming does give everything names, such as tables, fields, and even loops are given names (unlike most programming languages).
06:01:37 <Sgeo> Factor counts as almost fully pointfree, even though you do need to name parameters (just for the types, not for use in code), right?
06:02:18 <newsham> [19:57] < ski> SQL is partly built as a pointful layer over relational algebra, which is more or less pointless
06:02:22 <newsham> yah, he said it was pointful.
06:02:30 <zzo38> A view can contain a SELECT statement that doesn't define names for the result fields, although it won't be so useful if you want to try to insert data into the views (probably to cause triggers to fire).
06:03:56 <ski> zzo38 : some major points : order of attributes should never matter. nulls. duplicate tuples allowed in an extensional relation if it doesn't have a uniqueness constraintH
06:04:02 -!- atriq has quit (Quit: Leaving).
06:04:40 <ski> Sgeo : what do you mean by "brute-force" ?
06:04:54 <Sgeo> ski: enumerating through every possibility, ala the List monad
06:05:14 <ski> Sgeo : deductive databases doesn't quite work like that
06:05:26 <Sgeo> ski: ok. Prolog has to though, right?
06:05:33 <ski> yes, but that's different
06:06:04 <zzo38> ski: What do you mean, "order of attributes"? And, you can tell it which fields don't have null values, in SQL.
06:06:25 <ski> Logic Programming languages, like Prolog,Mercury,Oz,lambdaProlog, will employ backward-chaining, and will reason a tuple-at-a-time. this most commonly is implemented by backtracking
06:07:30 <ski> deductive databases otoh will employ forward-reasoning, and reason set-at-a-time, typically using variants of fixed-point-iteration for recursive intensional predicates
06:08:02 -!- password2 has quit (Ping timeout: 264 seconds).
06:08:09 -!- oerjan has quit (Quit: Hneit).
06:08:36 <ski> the latter is typically much more efficient, when you're dealing with huge upto gigantic amounts of data, and only a comparatively very meager amount of rules ("views") in addition to it
06:09:15 <ski> in Prolog, the computation starts from the goal, and reasons backwards, trying to find ways of justifying the goal in terms of new subgoal
06:09:28 <ski> until it comes back to the base data
06:10:12 <ski> and tuple-at-a-time means that it follows one solution at a (conceptually) time, tracing it through the logic
06:10:39 <ski> one can handle multiple solutions in parallel (OR-Prolog) or in sequence (backtracking)
06:11:35 <ski> deductive databases otoh start from the base data, combines such base sets together with each other according to the rules of the intensional database, until it has finally computed the set of tuples corresponding to the query (goal) made by the user
06:12:34 <ski> and set-at-a-time means that it reasons about the sets of tuples/solutions collectively, iterating over them by joins familiar from relational database theory
06:13:31 <ski> the extensional part of the database consists of schemata of extensional/base relations, together with the current data (tuples/facts) that are currently stored in the database for these relations
06:14:18 <ski> the facts in these relations are usually ad hoc, representing some (usually incomplete) view of how the messy world happens to look like at the moment
06:14:38 <ski> (abbreviated EDB)
06:15:32 <ski> the intensional part of the database (IDB), in the SQL case consists of views
06:17:01 <ski> in deductive databases, the IDB *looks* more or less like a program in a Logic Programming language. it consists of mainly rules, and perhaps a few facts as well (thay generally do *not* have an "ad hoc" feel, but rather "must be" what they are, and probably won't change at all in the near future, at least not any more than the rules)
06:17:55 <ski> however, the actual execution of the rules (and facts) here is different, because forward-chaining and set-at-a-time rather than backward-chaining and tuple-at-a-time, as mentioned above
06:19:33 <ski> (btw, one difference between Aditi and basic Datalog is that Aditi had support for handling non-atomic datums in tuples)
06:21:29 <ski> one of the simplest examples of IDB relations is transitive closure
06:23:08 -!- luserdroog has quit (Ping timeout: 245 seconds).
06:23:59 <zzo38> I do not quite understand what it related to databases.
06:24:38 <ski> we'd first declare something along the lines of
06:25:23 <ski> :- type airport == string.
06:25:54 -!- luserdroog has joined.
06:26:09 <ski> :- type distance == floating.
06:26:17 <ski> :- base flight(airport,airport,distance).
06:26:46 <ski> :- mode flight(out,out,out) is nondet.
06:26:50 -!- tromp has joined.
06:27:03 <zzo38> What does ":- mode flight(out,out,out) is nondet." mean?
06:27:05 <ski> (i'm deviating a bit from the actual Aditi syntax here)
06:27:13 <luserdroog> Not irreparable. I broke the pin in the power jack.
06:27:56 <ski> it's a mode declaration, and this mode declaration, with all `out's, and with `nondet' would probably be provided by default for base/extensional relations
06:28:39 <zzo38> I do not understand what that means.
06:28:58 <ski> it basically says that we can generate (output) values for the three attributes of this relation, and that we may get any number of solutions ("non-deterministic", zero or more solutions/tuples)
06:29:36 <ski> i think for every base relation, we will have a mode with only `out's and with determinism `nondet'
06:30:09 <zzo38> How is it different if you don't put "out" in there, then?
06:30:13 <ski> (maybe in some cases it would make sense to change the determinism from `nondet' here, i'm not sure)
06:30:23 <ski> well, that's mostly interesting for IDB predicates
06:31:36 <ski> :- pred trip(airport,airport,distance).
06:31:42 -!- tromp has quit (Ping timeout: 265 seconds).
06:32:05 <ski> :- mode trip(in,out) is nondet.
06:32:19 <ski> er, we should get distance as well
06:32:23 <ski> :- mode trip(in,out,out) is nondet.
06:32:35 <zzo38> And how does that mean, then?
06:32:36 <ski> :- mode trip(out,in,out) is nondet.
06:34:08 <ski> the first of these two modes mean that we may query on the trip/3 relation (which is basically a view, in SQL terminology), providing the starting airport, and get back a set of triples with that starting airport, and all possible ending airports, and the cumulative distance travelled
06:34:29 <ski> for the second mode, in the other direction, from ending to starting
06:35:31 <ski> (possibly there isn't much difference in this specific example, since i suppose flights between airports are usually(?) bidirectional, i.e. offered in both directions -- perhaps this isn't to be assumed in general)
06:36:14 <zzo38> Although SQL views don't take inputs, and may not even contain any meaningful data (when I write SQL programs at least, perhaps half of the time the views don't contain any data and are write-only).
06:36:32 <ski> well, trip/2 itself doesn't take any inputs
06:36:44 <ski> a specific *mode* of it can take inputs
06:36:52 <ski> oh, i just recalled
06:37:17 <ski> extra modes on base relations will in many cases amount to indices on the bsae relations
06:37:22 <zzo38> Ah, what? What is trip/2?
06:37:32 <ski> sorry, trip/3
06:37:58 <ski> :- mode flight(in,out,out) is nondet.
06:38:19 <ski> expresses that you can index on the starting airport in the flight/3 relation
06:38:25 <ski> :- mode flight(out,in,out) is nondet.
06:38:31 <ski> expresses that you can index on the ending airport in the flight/3 relation
06:39:08 <ski> (and yes, as i said above, it would be better to use records or named arguments, instead of relying on argument order for the roles of the arguments)
06:39:24 <ski> anyway, trip/3 can be defined by the *clauses*
06:39:40 <ski> trip(Original,Destination,Distance) :- flight(Original,Destination,Distance).
06:39:54 <zzo38> Ah, OK, so it is like indexing, then.
06:40:20 <ski> trip(Original,Destination,DistanceA + DistanceB) :-
06:40:25 <ski> flight(Original,IntermediateStop,DistanceA),
06:40:30 <ski> flight(IntermediateStop,Destination,DistanceB).
06:41:20 <ski> these two rules (rules and facts are collectively known as clauses) would in SQL probably be expressed as a `union' of two `select' queries
06:41:38 <ski> the `:-' means "if" (in the logical sense)
06:41:46 <zzo38> Yes, that would be UNION
06:42:03 <zzo38> I can see what it is meaning now
06:42:21 <zzo38> Although then you will have no more than two flights, it looks like
06:42:29 <ski> so the first clause says that one can make a trip from `Original' to `Destination' travelling `Distance', *if* one can take a (single) flight from `Original' to `Destination' travelling `Distance'.
06:42:34 <Sgeo> I am involving a lot of other people's intellectual resources on this project, I better follow through on it
06:42:40 <ski> er, sorry, mistyped
06:42:46 <ski> second clause should be
06:42:49 <ski> trip(Original,Destination,DistanceA + DistanceB) :-
06:42:56 <ski> trip(Original,IntermediateStop,DistanceA),
06:43:01 <ski> trip(IntermediateStop,Destination,DistanceB).
06:43:07 <zzo38> Yes, that is better.
06:43:33 <ski> (first i was thinking of an assymetric way of expressing it, but then i changed it to symmetric. unfortunately in the wrong way :)
06:44:00 <ski> ok, so the `,' separating the two trip/3 "calls" to the right of the `:-' ("if") here means "and", logical conjunction
06:44:13 <zzo38> Yes, that is clear
06:44:57 <ski> so the second clause says that one can make a trip from `Original' to `Destination' travelling `DistanceA + DistanceB', *if* one can make a trip from `Original' to `IntermediateStop' travelling `DistanceA' *and* make a trip from `IntermediateStop' to `Destination' travelling `DistanceB'.
06:45:20 <ski> now, for the first mode
06:45:23 <ski> :- mode flight(in,out,out) is nondet.
06:45:28 <zzo38> Yes, I can understand that much already.
06:45:46 <ski> the engine would probably internally rewrite the second clause to instead read
06:45:48 <zzo38> The mode, I don't quite understand yet
06:45:54 <ski> trip(Original,Destination,DistanceA + DistanceB) :-
06:45:56 <ski> trip(Original,IntermediateStop,DistanceA),
06:46:02 <ski> flight(IntermediateStop,Destination,DistanceB).
06:46:10 <ski> for efficiency reasons
06:46:22 <zzo38> Yes I would think too, to do like that
06:46:53 <zzo38> You can do that in SQL too by using recursive queries (something introduced this month, in fact)
06:47:04 <ski> the basic idea for computing trip/3 is to start by the empty set
06:47:12 <ski> then initialize by filling it with all the tuples/rows/facts from flight/3 -- this corresponds to the first clause above
06:47:47 <ski> zzo38 : yes, however, iiuc deductive databases still can make more general sorts of recursion than recursive `with'
06:48:11 <ski> the next step is to enter a fixed-point iteration loop
06:48:46 <ski> the (original) second clause for trip/3 says how we from tuples in trip/3 *and* from tuples in trip/3 can compute tuples in trip/3
06:48:59 <ski> this is basically a join (plus a little arithmetic and projection)
06:49:41 <ski> so, you use the recursive rule of trip/3 to add succesively more and more tuples to the (temporarily computed) intensional flight/3 relation
06:50:02 <ski> of course, if a tuple is already in the current approximation for flight/3, you don't add it again
06:50:18 <zzo38> Can you give an example of such more general sorts though?
06:50:23 <ski> the iteration stops when nothing new was added in the last step
06:52:27 <ski> the obvious first optimization to this process is to only combine *new* flight tuples with all the existing flight tuples, and also all the existing flight tuples with only the *new* ones, at each step
06:52:51 -!- blotter__ has quit (Ping timeout: 260 seconds).
06:53:34 <ski> so that in each join, for each combination of two tuples combined, one from the "left" trip/3 call, and one from the "right" one, at least one of those two tuples was newly added in the last iteration step
06:53:46 <ski> this is known as semi-naive execution
06:54:17 <ski> there are several further optimization steps, often depending on the actual structure of the recursive rule
06:54:44 <ski> well, several further possible optimization steps one could apply, i mean
06:55:46 <ski> one of these is that, in the case that the original starting airport (in terms of the example above) is known, it is better to use the alternative formulation of the recursive rule, with one call to trip/2 and one to flight/3, joining these instead
06:56:23 <ski> that way you only add one more airport to the conceptual (not stored/computed in the example) list of airports along the trip
06:56:52 <ski> the gain is that there's in general *many* ways to arrive at a string by concatenating smaller strings
06:57:26 <ski> so, the original (unoptimized) version will be inefficient in that it will recompute the same tuple very many times
06:57:34 <ski> already with
06:57:50 <ski> there are two different ways to built it up from parts
06:58:27 <ski> as the number of nodes rise, the number of possible ways to arrive at the list rises at a faster rate
06:58:40 <ski> (i don't recall whether it's exponential, or only polynomial rn)
06:58:49 <ski> (hm, probably exponential)
06:59:05 <ski> so, one could consider a query
06:59:37 <ski> ?- trip(sydney,Destination,Distance).
06:59:45 <ski> (capital letter signifies a variable)
06:59:53 <ski> this would be logically equivalent to saying
07:00:13 <ski> ?- Origin = sydney,trip(Origin,Destination,Distance).
07:00:44 <ski> however, it's inefficient to compute *all* the trips whatsoever, and only *then* join with the `Origin = sydney' condition
07:01:08 <ski> (yes, this is conceptually a join. though of a special sort which is a projection)
07:01:47 <ski> so, regardless of whether you write the former or the latter query (`?-' is the query prompt, btw), the system will actually compute this in a more efficient way
07:02:40 <ski> it will note that the `Origin' will be passed along unchanged between the call to the left of `:-', and the recursive call, all the way down to the call to the base relation flight/3
07:03:19 <ski> so, it will internally compute a specialized version of trip/3 that has propagated the information `Origin = sydney' all the way down to the fetch from the base relation
07:03:36 <ski> and this is of course where the extra mode (the index) on the base relation comes in
07:03:55 <ski> so, we only select flights taking off from `sydney' out of potentially very many flights
07:04:39 <ski> the classic general transformation that can propagate "constraints" from the query down the intensional clauses is called "magic sets"
07:04:58 <ski> there are also other transformations, sometimes better, but often only applying in special cases
07:07:56 <quintopia> return (t%32)|(t*6)&(0xFF*(~t>>11&1))|(t*4)&(0xFF*(t>>12&1))|(((~t>>10)&(~t>>11)&1)*rand(256*256))|int(t*[1.25,1.25,1.5,1.5,1.66666,1.6666,1.5,1.5,2,2,1.875,1.66666,1.5,1.25,1.125,1][(t/2048+c)%16])<<3
07:08:07 <ski> you can also add more complex constraints, like
07:08:23 <ski> ?- Origin = sydney,Distance < 1000.0,trip(Origin,Destination,Distance).
07:09:15 <ski> and that inequality constraint would be used to ignore temporary flights that already have too high a distance, not bothering to involve such tuples in further joins
07:09:41 <ski> zzo38 : i suppose this gives a starting idea of some of what deductive databases are about
07:09:50 <ski> i have to leave presently, though .. :/
07:15:46 -!- CADD has joined.
07:15:47 -!- CADD has quit (Client Quit).
07:22:46 -!- CADD has joined.
07:22:46 -!- CADD has quit (Client Quit).
07:33:33 -!- luserdroog has quit (Ping timeout: 245 seconds).
07:35:56 -!- tertu has quit (Ping timeout: 252 seconds).
07:41:34 -!- tertu has joined.
07:41:48 -!- prooftechnique has quit (Quit: leaving).
07:45:56 -!- tromp has joined.
07:50:29 -!- tromp has quit (Ping timeout: 248 seconds).
08:14:29 -!- tertu has quit (Ping timeout: 240 seconds).
08:28:26 <myname> most of the time i look in this channel is like "dafuq am i readin"
09:26:58 -!- MoALTz has joined.
09:58:34 -!- augur_ has joined.
09:58:43 -!- augur has quit (Read error: Connection reset by peer).
10:20:01 -!- CADD has joined.
10:20:01 -!- CADD has quit (Client Quit).
10:39:44 -!- conehead has quit (Quit: Computer has gone to sleep.).
10:56:29 <Sgeo> http://www.fark.com/comments/8146474/Ship-not-allowed-to-deliver-40000-tons-of-much-needed-road-salt-to-New-Jersey-because-A-The-ship-cant-dock-because-of-weather-B-Nobody-will-unload-it-because-of-a-dock-worker-strike-C-The-ship-isnt-carrying-an-American-flag
10:56:44 <Sgeo> I feel like an idiot, the comments are saying everyone knows what is actually meant
10:57:00 <Sgeo> I shoudl probably be seeping
11:43:15 <zzo38> Do you know, if a program licensed under GPL is linked with SQLite and uses sqlite3_enable_load_extension(db,1) then what are the license requirements? SQLite itself is public domain.
12:04:24 -!- yorick has joined.
12:12:25 -!- Phantom_Hoover has joined.
12:19:40 <nortti> https://ang.wikipedia.org/wiki/H%C4%93afodtramet
12:21:41 <Sgeo> Is there ANYONE alive today who natively speaks old English?
12:22:37 -!- MoALTz has quit (Read error: Connection reset by peer).
12:23:19 -!- MoALTz has joined.
12:23:35 <Sgeo> Wait, this isn't genuine Old English, is it?
12:23:41 <Sgeo> "As a general rule for the OE wiki, try to remember the following OE guidelines to give this wiki a consistent look and feel:"
12:24:37 -!- Sorella has joined.
12:26:23 <nortti> Sgeo: as fair as I understand, it is real old english with neologisms for words not in the real old english
12:41:28 -!- zzo38 has quit (Remote host closed the connection).
12:42:39 -!- MindlessDrone has joined.
12:55:35 -!- FireFly has quit (Ping timeout: 272 seconds).
13:12:51 -!- Phantom_Hoover has quit (Ping timeout: 265 seconds).
13:30:04 <Sgeo> http://osrc.dfm.io/Sgeo flipped from me being a Haskell coder to being a Racket coder. With one push.
13:33:02 <int-e> http://osrc.dfm.io/int-e lists zeckendorf first, I need to push some more stuff to lambdabot ...
13:34:41 <int-e> I'm also unsure what recruiters would make of making new repositories at 3am. heh.
13:36:32 -!- FireFly has joined.
13:47:53 <fizzie> Oh no: after having that one semi-punny alliterative homework problem title ("Conditional contradiction conundrum"), now I'm tempted to make another one.
13:59:03 -!- Sgeo has quit (Read error: Connection reset by peer).
14:35:21 -!- constant has changed nick to function.
14:52:44 -!- tertu has joined.
14:59:29 -!- nooodl has joined.
14:59:51 -!- password2 has joined.
15:06:54 -!- shikhin has joined.
15:28:11 -!- Sprocklem has joined.
16:12:32 <nooodl> http://en.wikipedia.org/wiki/Uniform_access_principle#Problems :|||
16:12:37 -!- ski has quit (Quit: Lost terminal).
16:13:15 <Bike> nerds using standard references from science fiction you say
16:25:45 <Vorpal> So when I got out at the gas station after driving home from work today I saw smoke from the front right wheel. At the moment I hate being a car owner. -_-
16:26:17 <Vorpal> fizzie, any new photos to cheer me up?
16:31:36 -!- shikhout has joined.
16:34:26 -!- shikhin has quit (Ping timeout: 245 seconds).
16:34:27 -!- shikhout has changed nick to shikhin.
16:35:42 <oklopol> i mean a temporary one, i still have one lesson this month and two next month
16:38:20 -!- AnotherTest has joined.
16:39:26 <Vorpal> oklopol, oh? I guess it works differently over there then, never heard of temporary licenses
16:40:23 <oklopol> first you drive with a piece of paper for a few weeks, then you get a temporary license in the mail, then you get a permanent one after 1-2 years.
16:40:39 <Vorpal> oklopol, huh, okay that isn't how it works in Sweden
16:41:05 <oklopol> also it costs about 2000 euros
16:41:35 <Vorpal> You do get a piece of paper for a couple of weeks after passing the tests (both the theoretical and the practical ones), but then you get your proper license in the mail.
16:46:12 <Slereah> Does dev C++ have tools to auto add classes and such?
16:46:16 <Slereah> Or do I have to do it manually
16:53:17 <Slereah> what should I use for a quantum computer simulation
16:53:26 <Slereah> I guess I need a QUANTUM STATE thing, for a start
16:53:55 <Slereah> Then add some spin and momentum attribute
16:54:16 <Slereah> Such that they are arrays of values
16:54:55 <Slereah> Then multiparticle states as arrays of one particle states, with maybe some indicator of the superselectors/commutation rules
16:56:55 <Slereah> And since it's a finite discretized space, I can consider that the momentum is an int
17:07:38 -!- Sprocklem has quit (Ping timeout: 260 seconds).
17:09:57 -!- Sprocklem has joined.
17:15:00 -!- Sprocklem has quit (Ping timeout: 252 seconds).
17:41:24 -!- Sprocklem has joined.
17:45:15 -!- tertu has quit (Quit: No Ping reply in 180 seconds.).
17:45:23 -!- tertu has joined.
17:47:32 -!- zzo38 has joined.
17:51:29 -!- password2 has quit (Ping timeout: 240 seconds).
18:12:04 <Slereah> The thrill of the forbidden
18:12:14 <Slereah> I'm writing in C++ and making all my shit public
18:24:27 -!- Sprocklem has quit (Remote host closed the connection).
18:28:20 -!- MoALTz_ has joined.
18:29:10 -!- zzo38 has quit (Quit: zzo38).
18:31:10 -!- MoALTz has quit (Ping timeout: 260 seconds).
18:31:28 -!- ais523 has joined.
18:36:48 -!- AnotherTest has quit (Read error: Connection reset by peer).
18:37:35 -!- AnotherTest has joined.
18:51:19 -!- luserdroog has joined.
18:59:29 -!- tertu has quit (Ping timeout: 240 seconds).
19:02:58 -!- tertu has joined.
19:08:08 -!- luserdroog has quit (Ping timeout: 245 seconds).
19:08:56 -!- password2 has joined.
19:12:25 <nyuszika7h> hi, I need the shortest way to set the current cell to a random value - either 0 or 1
19:13:26 <ais523> nyuszika7h: BF is deterministic
19:13:26 <oklopol> it's a deterministic language
19:13:30 <ais523> best you could do would be a pseudorandom number
19:13:39 <ais523> in which case the better the quality of the randomness you want
19:13:41 <ais523> the longer the program will be
19:14:06 <ais523> you'd have to maintain PRNG state somewhere you could easily access on the tape
19:14:23 <ais523> like, simplest would be to use 1 bit of state and just alternate, but that doesn't look very random
19:14:33 <ais523> what do you need the pseudorandomness for? there might be an easier solution
19:14:54 <HackEgo> dricoin barbacoin vercoin ozdecoin trianiconcoin aeedius'scoin ()coin dupdogma-2dcoin unlcoin sumambalzbaumiccoin neocoin brocoin xlikecoin snaitcoin puzzcoin basisheadcoin alizicoin tbittcoin skucoin d16coin
19:15:32 <ais523> this `coins thing is actually really realistic
19:15:34 <ais523> much better than `words
19:15:44 <kmc> heh d16coin
19:15:47 <Taneb> ais523, that's the terminal object of Crypcurren, the category of cryptocurrencies
19:15:52 <nyuszika7h> I just need to randomly move either left or right, but it would need to check for staying in range too, so forget it, it's probably gonna be long, not suitable for golfing :P
19:15:59 <Jafet> The mythical 16-sided coin
19:16:05 -!- password2 has quit (Ping timeout: 252 seconds).
19:16:06 <ais523> nyuszika7h: yeah, I don't think it'd be golf-suitable
19:21:15 -!- spiette has joined.
19:22:51 -!- tertu has quit (Remote host closed the connection).
19:32:43 <kmc> good PRNG for BF is an interesting question, though
19:32:46 <kmc> perhaps a LFSR
19:33:33 <ais523> kmc: using one bit per cell?
19:33:50 <kmc> it was good enough for the DVD CCA right https://www.cs.cmu.edu/~dst/DeCSS/Gallery/css-brainfuck.txt
19:33:53 <kmc> 90s kids remember
19:33:54 <ais523> the actual shifting would be awkward, though
19:34:04 <ais523> unless you allowed the RNG state to move along the tape
19:42:06 <fizzie> Vorpal: Here's a photo: https://dl.dropboxusercontent.com/u/113389132/Misc/20140215-mystery.jpg
19:43:35 <kmc> what's this?
19:43:55 -!- conehead has joined.
19:43:58 <Taneb> Looks like a speaker or a microphone
19:47:08 <fizzie> It's a closeup of the surface of one of these reflector things, https://dl.dropboxusercontent.com/u/113389132/Misc/20140218-ref.jpg
19:48:49 <fizzie> That's about 7-8 cm tall, for a size reference.
19:49:15 <kmc> is this one of those thing which reflects light especially in the direction from which it came?
19:49:38 <fizzie> Yes. Here's what I get if I turn the led "flash" on in the phone the latter picture was taken with: https://dl.dropboxusercontent.com/u/113389132/Misc/20140218-ref2.jpg
19:49:40 <kmc> so how big physically is one pixel in that image?
19:50:04 <kmc> is it basically made of a bunch of tiny corner cubes? i never understood how those work
19:50:21 <fizzie> There's a handy diagram, I saw it.
19:50:36 <fizzie> http://en.wikipedia.org/wiki/File:Comparison_of_retroreflectors.svg
19:50:43 <fizzie> I think it's more like type 1.
19:50:49 -!- function has changed nick to trout.
19:51:21 <fizzie> Except you need a corner of a cube in three dimensions, of course.
19:52:04 <fizzie> But it's easy to figure out since if you take the incident ray in the coordinate axis set up by the edges of the cube, then one wall will do x = -x, second one will do y = -y and third one will do z = -z.
19:55:05 <fizzie> As for pixel size, in other photos the width of the entire image (at the distance that's in focus) has generally been somewhere around 5 mm.
19:57:08 <fizzie> So given the original 5472x3648 resolution, one pixel would correspond (very approximately) to 1 µm. Though that's been scaled to 25% (so 4 µm?), I haven't really been getting pixel-sharp images out of that setup.
19:58:24 <fizzie> Like they say: when you all you have is a cobbled-together macro thing, everything looks like it's in need of magnification.
20:02:28 <fizzie> If you want to guesstimate distances, the diameter of the inner thread in https://dl.dropboxusercontent.com/u/113389132/Misc/20140203-ding.jpg is (like it says) 52 mm and if you look at the dent, you get (scaled to 50% because there really isn't any detail above that) https://dl.dropboxusercontent.com/u/113389132/Misc/20140218-ding.jpg
20:02:50 <kmc> you should photograph some mushroom gills!!!
20:03:25 <kmc> if you're getting 4μm resolution you might be able to identify general spore shape and size
20:05:51 <fizzie> I probably should look at something natural, yes. Not that I think I have any mushrooms handy right now.
20:07:20 <fizzie> Apropos nothing, today when getting home from the city the bus in front had a license plate reading "KMC-NNN", where NNN stands for three decimal digits I no longer remember.
20:08:42 <kmc> TIL you can declare uninhabited types in Rust. also that you can crash the compiler if you use unsafe hax to create values of that type anyway
20:19:39 <olsner> you know how some degenerate code ends up being primarily layers and wrappers around other stuff with almost nothing doing anything real?
20:20:42 <kmc> in my experience basically all software is like that
20:21:06 <olsner> I wonder if you could make an esolang around that, where each method/function/unit can do extremely little by itself
20:21:15 <kmc> it's called Java *rimshot*
20:21:49 <olsner> well, no, Java allows methods to do a lot if you just write them like that :)
20:22:15 <olsner> had a Java project where one method tended to break JVMs because it was too big
20:24:06 -!- MindlessDrone has quit (Quit: MindlessDrone).
20:26:31 <olsner> (meanwhile, on another floor of the same building, a C++ project came up against VS6's limit of 65536 lines in one source file)
20:28:26 <FreeFull> 16 bits ought to be enough for everybody!
20:29:52 <kmc> that's a pretty annoying limit
20:30:49 <olsner> I think it was lines in the file itself, not counting include files etc
20:31:05 <kmc> still, 65k lines isn't that implausible, especially if it's generated
20:31:48 <newsham> if its generated you can make lines very short
20:32:03 <olsner> amalgamated sqlite is longer than 64k lines I think
20:32:12 <newsham> oh this is line count, not line length. ooops
20:36:41 <kmc> the longest source file in Linux 3.14-rc3 is 28,729 lines and has four comments (not counting "Copyright (c) 2010 Broadcom Corporation" at the top)
20:36:44 <kmc> https://github.com/torvalds/linux/blob/master/drivers/net/wireless/brcm80211/brcmsmac/phy/phy_n.c
20:37:13 <kmc> it has huge tables but it's at least 50% actual code
20:38:56 <FireFly> vim's sourcefiles are all like 10k
20:39:15 <FireFly> lines each.. and that's how they are "maintained"
20:39:41 <FireFly> They also use this horrible indentation alternating between four spaces and a single tab, for who knows what reason
20:41:50 <olsner> nice how the comments in that broadcom thing are all useless
20:42:08 <ais523> FireFly: that indentation's pretty common in older sources
20:42:37 <FireFly> ais523: is there any sensical reason behind it?
20:42:40 <kmc> there's a "correct" way to mix tabs and spaces but almost nobody can do it consistently
20:42:44 <ais523> FireFly: yeah, saves bandwidth
20:42:57 <ais523> because the standard is that tabs are 8 characters
20:43:06 <ais523> at the start of a line
20:43:21 <ais523> so it's a compressed form of 4-space indentation that looks right on anything but a badly misconfigured editor
20:43:21 <FireFly> Yes, sure. But still, the indentation is somewhat negligible compared to the actual code, isn't it?
20:43:34 <fizzie> kmc: Welp, I took a picture of the screen of my (2012) Nexus 7, and one Nexus-pixel is approximately 140 image pixels wide. The screen is nominally 216 ppi, so... 140*216 = 30240 image pixels/inch -> 0.84 µm/pixel. Though it's really impossible to judge how much actual detail I could get, since all that light is just blobs.
20:43:46 <ais523> FireFly: I'm not so sure
20:43:58 <ais523> the average length of a line of code isn't that long, especially if in deeply nested indentation
20:44:01 <ais523> and the indentation precedes every line
20:44:30 <FireFly> Btw, I've seen that abused in python golfing
20:44:49 <ais523> I thought Python refused to compile code that mixes tabs and spaces?
20:44:52 <FireFly> i.e., use spaces for the first level of indentation and tabs for the next
20:45:08 <FireFly> I think it either sees tabs as a hard eight spaces, or applies the regular expansion rule
20:54:10 <fizzie> https://dl.dropboxusercontent.com/u/113389132/Misc/20140218-art.jpg
20:54:26 <olsner> vt100 lets you place the tab stops freely
20:56:16 <olsner> not sure if it has a maximum number of tabs though or if you could place one in every column if you wanted to
21:15:16 <FreeFull> At least, if displayed on a TV
21:27:28 <FireFly> tabs(1) allows you to configure tabstops too
21:28:37 -!- AnotherTest has quit (Ping timeout: 248 seconds).
21:29:58 <newsham> [10:46] < ais523> I thought Python refused to compile code that mixes tabs and spaces?
21:30:09 <newsham> there's a -t option to warn and a -tt option to error on mixed tabs.
21:30:24 <newsham> but otherwise it has a rule to treat tabs like a seq of spaces
21:31:45 <newsham> (it uses tab stops of 8 spaces)
21:51:12 -!- Sprocklem has joined.
22:09:09 -!- Sellyme has quit (Excess Flood).
22:11:02 -!- Sellyme has joined.
22:17:36 -!- MoALTz_ has quit (Ping timeout: 252 seconds).
22:18:14 -!- Toade has joined.
22:19:26 -!- Sprocklem has quit (Ping timeout: 264 seconds).
22:19:56 -!- Toade has quit (Client Quit).
22:20:11 -!- Toade has joined.
22:30:29 -!- Tritonio has joined.
22:31:45 -!- shikhout has joined.
22:34:13 -!- shikhin has quit (Ping timeout: 248 seconds).
22:34:15 -!- shikhout has changed nick to shikhin.
22:38:38 -!- thrasos has joined.
22:44:22 -!- oerjan has joined.
22:46:53 <HackEgo> thrasos: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: <http://esolangs.org/wiki/Main_Page>. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
22:47:48 -!- Phantom_Hoover has joined.
22:50:03 -!- Tritonio has quit (Ping timeout: 252 seconds).
22:51:34 -!- Tritonio has joined.
22:57:52 -!- tertu has joined.
23:04:58 -!- nooodl_ has joined.
23:05:20 -!- ais523 has quit.
23:07:38 -!- nooodl has quit (Ping timeout: 252 seconds).
23:10:02 -!- tertu has quit (Disconnected by services).
23:10:04 -!- ter2 has joined.
23:16:46 -!- Tritonio has quit (*.net *.split).
23:16:48 -!- fungot has quit (*.net *.split).
23:18:36 -!- Tritonio has joined.
23:18:36 -!- fungot has joined.
23:22:15 -!- esowiki has joined.
23:22:19 -!- esowiki has joined.
23:22:19 -!- esowiki has joined.
23:23:08 -!- esowiki has joined.
23:23:12 -!- esowiki has joined.
23:23:13 -!- esowiki has joined.
23:23:41 -!- esowiki has joined.
23:23:45 -!- esowiki has joined.
23:23:46 -!- esowiki has joined.
23:24:14 -!- esowiki has joined.
23:24:18 -!- esowiki has joined.
23:24:19 -!- esowiki has joined.
23:24:47 -!- esowiki has joined.
23:24:51 -!- esowiki has joined.
23:24:52 -!- esowiki has joined.
23:25:20 -!- esowiki has joined.
23:25:21 -!- glogbot has joined.
23:25:24 -!- esowiki has joined.
23:25:25 -!- esowiki has joined.
23:31:41 -!- boily has joined.
23:33:44 -!- Sprocklem has joined.
23:36:50 -!- Phantom_Hoover has quit (Ping timeout: 264 seconds).
23:37:20 -!- metasepia has joined.
23:39:45 <shachaf> elly is the hanks of `ello
23:42:41 * boily sings “Still alone in o-hell-o // See the deadly nightshade grow ♪”
23:45:35 <oerjan> is that like o-hi-o but with more sulphur
23:48:54 <boily> Ohio doesn't seem to be particularly sulphurous ← http://www2.ohiodnr.gov/Portals/oilgas/_MSDS/baker-hughes/CD-32.pdf
23:49:21 -!- Phantom_Hoover has joined.
23:49:42 <boily> except probably in http://en.wikipedia.org/wiki/Sulphur_Springs,_Ohio
23:59:14 -!- itsy has quit (Ping timeout: 260 seconds).