Time Nick Message 00:42 kahrl exio4, do you know any Haskell tutorial that doesn't use single-character variable names 00:42 kahrl I just realized that that is the part that always makes me want to stop continuing 00:43 AndroidKris What do you mean by library kahrl 00:43 kahrl AndroidKris: something you can write a program with to capture video from a webcam 00:44 AndroidKris hmmmmm....I have no idea how to write a program, but it sounds intriguing nonetheless. 00:45 AndroidKris If I had any experience, I might be tempted to try. Cause I would totally turn this thing into a nanny cam.lol 00:53 AndroidKris Yo, I think I need to look at installing ZoneMinder and getting a few more of these cheapo webcams to diy my home security system.lol 00:53 Hijiri kahrl: the single-letter variables thing is sort of a part of Haskell idioms - you will see them used in standard library functions, other real code, etc, at least where the meaning is clear or familiar ("xs" for lists of "x", "p" for predicate, etc.) 00:54 Hijiri I think part of the issue is that a lot of functions are generic enough that it's hard to find meaningful names to bind to 00:54 kahrl I wouldn't mind that much if it was only a few well-known idioms 00:55 kahrl it seems used for all kinds of special-purpose stuff everywhere though 00:55 kahrl maybe a lazy language just makes the programmers lazy in picking names :P 00:57 AndroidKris That makes a lot of sense actually. I don't think I would want to use, or even learn a "lazy language" as you so eloquently put it.lol 00:57 kahrl but yeah I see the point about abstraction, yet it seems a bit overdone often when better names could be used 00:58 Hijiri AndroidKris: Do you know what lazy means in this context 00:58 AndroidKris I'm assuming a sort of "short hand" 00:58 Hijiri Expressions in Haskell have non-strict evaluation 00:59 Hijiri Which means that values don't get evaluated just because they are bound, or are used as a function argument 00:59 Hijiri they get evaluated when they are pattern-matched on 00:59 Hijiri GHC uses a specific sort of nonstrict evaluation called lazy evaluation 00:59 Hijiri Which is nonstrictness + memoization 01:00 Hijiri In an imperative language or a functional language with side-effects mixed into evaluation, this would be a disaster because it's hard to know when or how many times something will be evaluated 01:01 Hijiri But since expression evaluation in Haskell doesn't cause side-effects, you're allowedto do this fairly safely 01:01 Hijiri So the comment about lazy language -> lazy naming is just a play on words 01:02 Hijiri A neat thing that lazy evaluation allows is the easy definition of infinite data structures 01:02 Hijiri For instance, "[1..]" will give you an infinite list of numbers counting up from 1 01:02 Hijiri and then you can get the head of the list, take a sublist, etc., without the program halting, since you don't evaluate the whole list at once 01:03 AndroidKris I see said the blind man. If I had known before hand, I would have laughed at the wordplay, instead of sounding like a moron with my comment.lol 01:03 AndroidKris I need to go back to college. 01:03 AndroidKris I regret dropping out. 01:04 AndroidKris :( 01:04 kahrl I don't think many colleges teach functional programming these days, be it Haskell or a subset of Racket or something else 01:05 Hijiri my college doesn't teach Haskell except in grad school 01:05 Hijiri I think a lot of european colleges do FP though 01:06 AndroidKris maybe not, but they have plenty of classes that can serve as a foundation to learning (or self-teaching, as it were), other languages and skills 01:06 kahrl the one I went to did (Scheme), they switched to Java and C recently though, I think 01:07 kahrl due to student complaints about how scheme isn't "useful in the job market" and the FP professor retiring :/ 01:08 Hijiri they could teach clojure, I think that's getting popular in some job places 01:08 Hijiri (I don't know clojure so I don't know how well that would go) 01:09 kahrl I don't see why freshman programming classes need to use a job market relevant programming language anyway 01:10 kahrl by the time one graduates, one has hopefully learned enough other languages on their own to be able to land a job 01:10 Hijiri maybe the school wants to loan its students out as interns? 01:10 Hijiri AndroidKris: If you want to try out Haskell, I recommend this guide: https://github.com/bitemyapp/learnhaskell 01:11 kahrl that wasn't a widespread practise when I was there, at least 01:11 Hijiri the haskell.org site also has a repl on the page that you can demo 01:11 AndroidKris Thanks for the link. I'll bookmark it and take a look at it in the very near future. 01:11 Hijiri kahrl: I don't know if it actually happens 01:11 AndroidKris (got kind of a full plate as it is) 01:11 kahrl of course any student could do that on their own, but it wasn't required for a degree 01:17 exio4 well, I sadly don't know any specific tutorial that doesn't uses short variable names kahrl :p 01:17 exio4 the idea is that the smaller the scope, the "shorter" the name 01:18 exio4 if it is a function that's unsafe, and is available at top level 01:18 exio4 it is called "unsafeDoSomethingVeryHardDon'tDoItAthome" 01:18 kahrl hehe 01:18 exio4 if it is bound by pattern matching and goes out of scope in the next recursion, you call it 'x' 01:18 jojoa1997 lol 01:19 exio4 if it is in the closure of a recursive function, like a function, you could use either 'f', 'g', 'h', ... too, or just if you are recursing there, it's basically that we don't want to write more than _we could write_, not more than enough 01:19 exio4 we're too lazy 01:20 exio4 if the function goes over a bigger scope, yet still not top-level, maybe calling it 'fn', 'func' or 'fun' are good names 01:20 exio4 (you already know this, I am just saying it :p) 01:21 exio4 if you find a top-level function named "f" though, it's a bad thing(tm) :p 01:22 kahrl I guess the problem is that I tend to try to understand programs top-down 01:22 kahrl first get a general idea of what each module does, then functions 01:22 kahrl (I'm ignoring OOP for now) 01:23 kahrl by looking at the names and, if it exists, the first sentence of the documentation 01:23 exio4 that's what I would try to use types for 01:23 exio4 kahrl: I guess you know about 'point-free' code, which doesn't even name the variables you use 01:23 kahrl then learn/guess what each parameter, again by looking at the name or docs 01:24 kahrl exio4: I don't 01:24 kahrl well, with haskell, I find that I need to understand each function bottom-up by looking at the implementation and internalizing it 01:24 AndroidKris As I read the info on Hascell at the github link, I saw the different install methods and my A.D.D. randomly brought up the fact that last week I was looking into switching from Xubuntu to a pure Debian environment, but never actually did anything about it. I guess my point is, Does anyone prefer one over the other? 01:25 exio4 kahrl: hm, well, pure functions are totally deterministic, and what isn't said by the code, is said by the type 01:26 Hijiri I prefer Debian over Ubuntu in general since it's easy to install only freedomware 01:26 Hijiri I haven't used Xubuntu, but I used to use XFCE and prefer xmonad now 01:26 exio4 I actually consider functions blackboxes that do "something" (this should be a comment, or having well-defined types which only let you do a restricted set of operators plus function names) 01:27 exio4 and if you need to look at a function, you consider it on its own, ignoring pretty much anything else, and considering the new functions you use as "smaller blackboxes" :p 01:27 exio4 this is what I do though, not what anyone should or could do 01:27 exio4 kahrl: how "far" are you in the haskell world? 01:28 kahrl not very far at all 01:28 exio4 well, you know how (lambda (x) (f x)) is the same as just "f"? 01:28 kahrl as I said, I usually stop with the tutorials 01:28 kahrl yeah I know lambda calculus 01:28 exio4 \x -> f x == f ; eta-reduction 01:28 kahrl ah, you mean that by point-free code 01:28 VanessaE kahrl: that reads like "I know kung fu" :) 01:29 exio4 yes, the idea is that you take even further 01:29 exio4 kahrl: have you heard/read of combinatory logic? 01:29 exio4 SKI combinators? 01:29 kahrl nope 01:30 exio4 well, nevermind then, I don't really know how to explain them without going down the rabbit hole :p 01:30 exio4 the idea is that there are things like 01:30 AndroidKris Hijiri: Isn't it convenient that xmonad is written in Haskell?lol 01:31 exio4 ap f g x = f x (g x) 01:31 exio4 i x = x 01:31 AndroidKris Actually, more accurately, it's ironic. 01:31 exio4 k x c = x 01:31 kahrl well I think I can deal with point-free code pretty well, since that's mostly like what you do in math when you consider biduals of vector/normed spaces, and so on 01:31 exio4 kahrl: well, yeah, the idea is that you pretty you avoid using variables, just function composition 01:31 Hijiri I'm pretty sure I came across xmonad because of haskell 01:32 Hijiri and then decided to use it because tiling WMs are for cool hackers 01:32 exio4 (+1) . (+2) == \x -> (+1) ((+2) x) == 1+2+x 01:32 exio4 this is nicer when considering things like map 01:32 exio4 map f . map g 01:33 kahrl ahh okay 01:33 exio4 the idea is that instead of doing 01:33 exio4 something x = map f (map g (map h x)) 01:33 exio4 you write 01:33 exio4 something = map f . map g . map h 01:33 AndroidKris *wants to be a cool hacker too. 01:33 kahrl why not map (f . g)? 01:33 * AndroidKris wants to be a cool hacker too. 01:33 exio4 psh, because that's even more nicer! 01:34 exio4 and yeah, instead of map (\x -> f (g (h x))), write map (f . g . h) :p 01:35 exio4 also, in names, it seems pretty obvious that things that are used "rarely" get longer names than those that are used a lot 01:35 exio4 and some things even get infix operators 01:35 exio4 like <$> for fmap, <*> for ap, >>= for bind, <> for monoid's mappend.. 01:36 exio4 kahrl: remember that thing you said about "carrying the state around"? 01:36 kahrl the thing is, when you stumble across such line noise (:P) it's hard to ixquick what it means 01:36 exio4 in pure functional code 01:37 exio4 kahrl: right, that's why using special things like hoogle/hayoo/etc seem to be really cool 01:37 kahrl ah, I didn't know about those, that's pretty cool 01:38 exio4 you can search by type, function name/operator, and other things 01:38 exio4 you can say "duh, what's this (<>) thing? where does it comes from?" 01:38 exio4 and search it in hoogle and get answers from which libraries, which type it has, etc 01:39 exio4 I think the biggest 'problem' with haskell is that, too 01:41 exio4 I should stop selling Haskell 01:41 exio4 people might start thinking my work is selling it! :p 01:43 exio4 I basically spend 4~ hours per week (irl), telling things that Haskell and more generally functional programming does differently 01:44 AndroidKris exio4: I think I have an understanding of what you mean by "functional programming", but could you more concisely define it? Is there a "dysfunctional programming"? 01:44 exio4 I think it's an 4/8 extra hours per week on irc too 01:45 kahrl yeah, that's pretty much approaching a part-time job :) 01:45 exio4 AndroidKris: functional programming is basically a not so cool name, but it is normally used to refer to languages where functions are "first-class" (I'll explain this in a bit) and where pretty much the way to abstract things is using high-order-functions (will explain, too) 01:46 exio4 "first class functions" means functions are just typical and normal values you can store in a variable, a structure, return them from a function, and what not 01:46 exio4 a "typical" example, would be a list of functions, or something similar 01:47 exio4 "high-order functions" are specifically functions that either take functions as arguments, return functions, or both 01:48 exio4 AndroidKris: a key thing that functional languages do differently, normally, is go with the a "immutable by default" (ML..) 01:49 exio4 AndroidKris: basically, when you say x is 1, it's never going to be 2, this helps for various things, one of those, is being able to reason about the correctness of the code in an easier manner 01:49 exio4 it also allows for reducing things that'd be "am I passing this by reference, or by value?" 01:49 exio4 because it doesn't matter! 01:50 exio4 some languages, such as ML/OCaml,... allow you to have unrestricted mutable data, but it getting it's own "special" reference type... wow rude 01:51 exio4 other languages, like Haskell, which tend to be called "pure", disallow mutable data, by forcing you to keep it in its own contexts, and limiting "side-effects" to self-contained functions, etc 01:51 exio4 (there are functional languages which do neither of this, though) 01:52 exio4 kahrl: yeah, but I wouldn't sell stuff I don't really like if it was my job :p 01:53 exio4 AndroidKris: network problems? :P 01:53 AndroidKris Isp throttled me 01:54 AndroidKris I'm running at a 512kbps satellite connection speed, with an overcast sky, at the moment. 01:54 exio4 your ISP seems to be not so cool, killing networks ain't nice! :p 01:54 AndroidKris :/ 01:54 exio4 oh well 01:55 exio4 AndroidKris: http://irc.minetest.ru/minetest/2015-04-30#i_4236478 01:55 AndroidKris I keep trying to tell them that. I even brought up the new FCC reclassification of ISPs to try to convince them that they couldn't throttle me any more. They just brought up the fact that I signed a two year agreement with them and they didn't have to change anything until the agreement was up. 01:55 AndroidKris lame 01:56 exio4 I see 01:57 AndroidKris I like the "wow rude" comment. 01:57 * AndroidKris nods 01:57 AndroidKris my bad 01:57 exio4 that was becuse you just had quit :p 01:57 exio4 while I was writing that 01:57 AndroidKris yeah, I know. It may happen a few more times tonight too.lol 01:58 AndroidKris I apologize in advance in case it does. 01:58 exio4 I'll be working on a few examples and demos of Haskell for the discrete math prof tomorrow 01:59 exio4 I showed a few small functions, and how basically the language does lots of things that look 'obvious' from a mathematical standpoint, and how it allows some kind of reasoning extremely easy, like induction :D 02:00 exio4 (which is the next topic we will learn) 02:00 exio4 I think the "last" one of this year is rings 02:00 exio4 last topic 02:03 AndroidKris My brain is starting to hurt.lol 02:04 AndroidKris No offense. It's actually very interesting. I just have to much blood in my alcohol stream to stay focused on this at the moment. 02:04 AndroidKris Besides that, I've been a stay at home dad for the past three weeks and it's draining me.lol 02:06 exio4 nah, don't worry 02:06 exio4 the concepts from the "FP world" feel and are extremely complex unless you're used a little bit to them 02:07 exio4 it's basically a new way to think problems, which needs you to rewire your neurons :P 02:07 kahrl it might actually be easier for you since you haven't done imperative programming yet 02:08 exio4 oh, sorry 02:08 exio4 I thought (s)he knew how to program in an imperative language :p 02:09 kahrl he, probably, considering the dad comment :P 02:09 AndroidKris I'm usually a pretty quick study, no matter the subject. I have a habit of "wiping the slate" when approaching a new subject, even ones that may be closely related. 02:09 AndroidKris And I'm a he...hence the "Stay at Home Dad" phrase.lol 02:10 exio4 oh 02:10 exio4 I am a bit tired, have been at uni for a few hours 02:11 AndroidKris Yes, I know...AndroidKris...If one assumes that Kris is my real name based on this nick, then one would probably also assume that I'm female due to the effeminate spelling of my name. 02:11 AndroidKris uni is what exactly exio04? 02:11 exio4 nah, I just said (s)he as some people don't seem to like being confused :p 02:11 exio4 university 02:12 kahrl AndroidKris: I thought you were a robot, because of the first part of the name :P 02:12 AndroidKris Lawls. Well, kahrl, that's a first. 02:12 exio4 I want a robot that writes code for me 02:12 AndroidKris but if I were a robot, wouldn't you think I would be at least a little smarter? 02:12 exio4 actually, not write but fix 02:12 exio4 because writing code is amazing 02:13 kahrl well the robots I helped construct in college were actually pretty dumb, heh 02:13 kahrl so you're already a lot smarter than them 02:13 exio4 anyway, I have a problem I can't really solve :( 02:13 exio4 I am solving the eight queens problem extremely naively 02:14 AndroidKris eight queens? 02:14 exio4 you have eight queens, in a 8x8 ('chess') board, you need to place them such that no queen can "directly eat" other queen 02:15 AndroidKris How does one queen eat another? 02:15 exio4 being in the same row / column / diagonal 02:15 exio4 https://en.wikipedia.org/wiki/Eight_queens_puzzle 02:15 AndroidKris ooooooo....I likey these kind of puzzles. 02:16 exio4 I have it generalized, for N queens in a NxN board, my problem is that if naively generate posibilites from the set of possible "free spaces", I am basically doing some work more than once 02:17 exio4 because [(1,1) , (2,3), (5,7)] is the same as [(1,1), (5,7), (2,3)], and [(2,3), (5,7), (1,1)] and ... 02:18 exio4 my first version, basically did that ^, so I had to "remove the duplicates" at the end, which was somewhat fast, but it generated lots of useless values 02:18 kahrl exio4: hmm, maybe generate them row by row? 02:18 kahrl exio4: so you only end up with sorted possibilities 02:19 exio4 kahrl: you mean generate [(1,x)] [(2,x)] ... and so on, and then "naively combine" those? 02:20 kahrl exio4: yeah, something like that. What's your current algorithm? 02:20 AndroidKris Well, I don't know the code, but I have a few "logical" insights if you would like my $0.02 02:21 exio4 AndroidKris: those are better than code :) 02:21 exio4 kahrl: let me finish :p 02:21 kahrl exio4: oh sorry, didn't think I interrupted, go ahead 02:22 exio4 I just thought "I could generate the posibilites, and then write down which ones are the ones that I already travelled" so I went with representing paths as ordered sets (binary trees, basically), and keep a binary tree with posibilites where I keep adding values 02:23 exio4 and then, "reduce" the solutions in every step to the ones that aren't in that set 02:23 exio4 the problem is that I now spend over 80% of the time in that binary tree 02:23 exio4 I'll post my actual code 02:24 kahrl exio4: not sure I fully understand it yet, but maybe instead of a tree, just use a list 02:24 kahrl exio4: and whenever you would insert a value that wouldn't be added to the ended in a sorted list, just abort that entire part of the computation 02:24 kahrl added to the end* 02:25 AndroidKris With over 4.4 billion arrangements on an 8x8 grid. (not solutions, just arrangements), that is a LOT of double checking for already traveled posibilities. 02:25 exio4 I think the biggest problem with my actual approach was trying "all" free posibilites naively 02:26 exio4 by the way, I tried with the naive algorithm at first, finding all solutions the to 8x8 grid, it took 20~ minutes on my laptop 02:26 exio4 using a single core of my netbook, 1.6ghz.. intel atom.. :P 02:26 kahrl what language? (I have a guess but... :P) 02:26 exio4 on* 02:26 exio4 kahrl: guess which language and I am pretty sure you'll have a correct answer 02:26 kahrl okay :) 02:27 exio4 oh, and half of the code is in spanish, and the other half in english, let me fix it 02:28 AndroidKris 4x4 is the smallest possible grid. A grid one quarter the size would cut out 3/4 of the work for a solution and simplify the coding...Then you expand the code to incorporate 5x5, then 6x6, etc. 02:29 sofar exio4: I wrote a solution in pascal in 1996 that generated all 12 unique results (plus all the symmetrical ones) in 8 minutes on a 80286 02:29 sofar exio4: too bad I don't have that code anymore, but it was rather simple.... 02:30 exio4 yeah, kahrl's approach seems to be the easiest for not doing too much work 02:31 sofar yup, I used a list to store previously found solutions 02:32 sofar it helps to make a recursive solver too, code gets really small 02:32 sofar anyway, it's a great CS major exercise :) 02:32 AndroidKris What is the ultimate goal of your coding here exio04? 02:32 sofar I once asked a guy in an interview to discuss how he would design it 02:33 exio4 heh 02:34 AndroidKris exio4, what does your code need to have produced when it completes it's task? 02:35 exio4 valid solutions to the problem 02:35 AndroidKris all of them? 02:35 exio4 http://dpaste.com/22W8BZ5 02:35 AndroidKris all 92? 02:36 exio4 AndroidKris: I basically wrote the code such that you can ask for n solutions 02:36 exio4 generating only n solutions is done automatically by exploiting lazyness 02:36 AndroidKris n would be based on the number of queens and grid size. 02:37 AndroidKris I keep saying 92 because that's how many solutions there are for 8x8 02:37 exio4 yes, I know :p 02:37 exio4 anyway 02:38 AndroidKris Sorry, speaking(typing) so I can keep it straight in my mind 02:38 exio4 having a queen on every row / column is a fact I could/show exploit 02:38 exio4 should* 02:38 exio4 lol, the code I pasted is the one before I pressed "save", so it's still in spanish, just realzied 02:38 AndroidKris It would reduce the number of possibilities dramatically 02:39 exio4 and would make my problem of repeated paths go away 02:39 AndroidKris yup 02:40 exio4 I might throw away the whole code and start again 02:40 exio4 yup, will do that 02:40 AndroidKris Nice code btw....especially the Punto = Reina 02:40 AndroidKris lol 02:40 exio4 it's spanish :P 02:40 AndroidKris Not sure if Reina is a person, or what, but I know what Punto means. 02:41 exio4 Reina is Queen 02:41 AndroidKris Ah, that's an interesting way of referring to a queen...as Punto. 02:41 AndroidKris lol 02:42 kahrl exio4: I haven't looked at your code yet, but this brute force thing I just whipped together seems to do pretty well: http://dpaste.com/2HSXV86 02:42 AndroidKris wow, fifteen minutes and kahrl has a solution.lol 02:42 sofar 92 is not divisible by 8, explain why there's only 92 and not 96 (which is 12x8) 02:43 exio4 right 02:43 AndroidKris sofar, duplicate solutions 02:43 sofar incomplete answer 02:43 kahrl sofar: some solutions are equal to their rotated/flipped counterparts? 02:43 sofar have you looked at why 11 solutions have 8 symmetries, but ONE has only 4? 02:43 exio4 some solutions only have two "duplicates" (rotated/flipped) 02:44 sofar incorrect as well 02:44 sofar 11 solutions have 7 symmetry siblings (lets call em that) 02:44 AndroidKris example: if two unique solutions have the same "mirror" the mirror for one is removed as a possible 02:44 AndroidKris possibility 02:44 sofar one of them is POINT-symmetric 02:44 sofar therefore, only 3 symmetry siblings 02:45 sofar so you have 11*8 + 1*4 02:45 exio4 kahrl: yes, the problem with my algorithm is that I naively repeat pathways 02:50 YvesLevier Hey :) - plz How can i separate a stack of MineCarts one by one using mesecon? You cant imagine the weirds solutions i tried... 02:51 AndroidKris YvesLevier: like connecting them similar to a train? 02:53 YvesLevier AndroidKris: kinda... I have transportation stations. I would want to replace a cart in the station when one goes. Easy... but they are all stacked in one pile. 02:54 YvesLevier Just cant manage that! 02:54 YvesLevier As soon they stack, i cant separate otherway than manually. 02:55 YvesLevier See? 02:55 AndroidKris Use powered rails and not gates...basically, when the entering cart crosses a certain rail, it flips a switch to turn on the rail that the next cart is resting on and sends it on it's way. 02:56 AndroidKris ^^Theoretically possible, not practiced, so don't hate me if it doesn't work 02:58 YvesLevier sure i tried to... even with pushable blocks, but all goes along since they are in only one pile... 03:01 YvesLevier Will try to randomly get them seperate using blinking flowers and hills 03:02 YvesLevier VanessaE: ^ are you active? ^ 03:07 AndroidKris And if the next cart needs a push, use pistons. 03:07 AndroidKris Sorry about the disconnect, crappy internet 03:11 AndroidKris YvesLevier, are you using this mod? https://forum.minetest.net/viewtopic.php?id=2451 03:12 exio4 wow rude 03:12 YvesLevier pistons dont destroy rails as in MineCraft. brb 03:12 AndroidKris me? 03:13 AndroidKris exio4^^ 03:13 YvesLevier AndroidKris: Yes im using this mod 03:15 exio4 welp, I am generating 94 solutions 03:16 AndroidKris Duplicates 03:17 exio4 oh wait, I am miscounting a few things 03:17 YvesLevier also node detector dont detect carts, even programmed for that. 03:18 YvesLevier It detects rails but not the cart on it 03:18 exio4 this is generating only 92 solutions 03:18 YvesLevier i tried under, side, over... 03:18 exio4 and it takes <0.02s 03:19 YvesLevier AndroidKris: What you mean "Duplicates"? 03:20 AndroidKris not you YvesLevier, sorry, I meant that to exio4 03:20 YvesLevier kk 03:23 YvesLevier In MineCraft, there was detect-rails that activate a redstone system. I found none of something similar in Minetest. Dont think i regret MineCraft. Just that im lost about detecting a cart without a passenger in. 03:25 exio4 kahrl, AndroidKris, http://dpaste.com/0VA1XAB 03:25 YvesLevier If so, i shall be able to keep them seperated. 03:27 AndroidKris Minetest is still a bit behind minecraft in a development sense YvesLevier, so the detect rails may not actually be there yet. 03:27 exio4 maybe I can microptimize now 03:27 AndroidKris exio4, you know that's going to look like gibberish to me right. 03:28 exio4 aw :p 03:28 AndroidKris Although, It is a LOT simpler (read: concise) than it was before. 03:30 exio4 you won't believe it, but finding the solutions is only 85% of the time 03:30 exio4 http://dpaste.com/1TNES2E 03:30 exio4 :p 03:34 exio4 ~80% of the time is spent reducing the set of solutions 03:34 ShadowBot exio4: Error: You must be registered to use this command. If you are already registered, you must either identify (using the identify command) or add a hostmask matching your current hostmask (using the "hostmask add" command). 03:34 exio4 the garbage collector overhead isn't that high, <10% of the time is spent on it 03:35 AndroidKris Pretty efficient. 03:35 exio4 and it keeps the memory usage pretty much "constant" (actually, it doesn't, you know, it keeps the solutions because I count them at the end, instead of doing that in-place and then discarding it but whatever :p) 03:36 AndroidKris lol, that last bit went so far over my head. 03:36 exio4 http://dpaste.com/1NGJHNX 03:36 AndroidKris I don't even want an explanation.lol. I just want to bring up netflix and watch daredevil 03:36 AndroidKris lol 03:37 exio4 it only allocated 21~gb of data 03:37 exio4 apparently 03:37 exio4 unless I am reading "21,389,982,272 bytes" wrong 03:38 exio4 and 6.13 out of 80 seconds in the garbage collector 03:38 exio4 that's a lot 03:39 AndroidKris 21 billion bytes is closer to 20gb than 21. 03:40 exio4 well, the difference between 20 and 21 gb of memory allocated isn't that bad is it! 03:40 AndroidKris excuse me, 2.1gb, not 21gb. 03:40 AndroidKris had to get out my calculator 03:40 AndroidKris lol 03:41 exio4 wow. amazing 03:41 AndroidKris there is a HUGE difference between 21gb and 2.1gb though.lol 03:41 exio4 what, really? 03:41 exio4 is it 2.x? 03:41 AndroidKris long url incoming 03:41 AndroidKris https://www.google.com/webhp?sourceid=chrome-instant&ion=1&espv=2&es_th=1&ie=UTF-8#q=bytes%20to%20gigabytes&es_th=1 03:41 AndroidKris lol 03:42 exio4 21,389,982,272 / 1000~ (bytes => kb) / 1000 (kb => mb) / 1000 (mb => gb) 03:42 AndroidKris wait...I read that wrong.. 03:42 exio4 /1000 is taking out three zeroes 03:42 AndroidKris didn't move the decimal enough.lol 03:42 AndroidKris it's 2.1e8... 03:42 AndroidKris which is 21 03:42 AndroidKris gb 03:43 exio4 :D 03:43 AndroidKris e7, would be 2.1 03:43 AndroidKris my bad 03:44 AndroidKris Okay, yeah, on that note. I'm off to watch Netflix 03:44 AndroidKris Night ppl 03:46 exio4 nice 03:46 exio4 GC time went down to 0.06s when changing a few things 03:46 exio4 like not keeping things alive :p 03:48 exio4 and the memory usage is now pretty much constant, nice 03:49 exio4 :D 04:00 YvesLevier Found something 08:40 Megaf Hi 08:42 OldCoder o/ 08:42 OldCoder z 08:46 Megaf Its been ages since my server crashed for the last time 08:46 Megaf That makes me very happy 08:46 OldCoder Ah 08:49 Megaf dont you like when your server doesnt crash? 08:51 Megaf hi book 08:52 Megaf I think the last update b4oke 3d armor 09:05 JamesTait Good morning all; happy Poem in Your Pocket Day! :-D 09:22 Jordach Megaf, 212 hours on my public server before it crashed 09:23 Megaf Jordach: oops 09:24 Megaf well. i quit adding new mods and im using a very conservative configuration where im exchanging performance for stability. 11:17 AndroidKris What light producing blocks produce enough light to trigger a solar panel? 11:18 ElectronLibre Torches should do that, also Mesecons' coloured light blocks, and glow glasses in Calinou's moreblocks mod. 11:23 AndroidKris ElectronLibre, I can't get any of those to work 11:23 ElectronLibre Oh. 11:23 ElectronLibre Even by placing them over the solar panel? 11:29 AndroidKris I got that part working now. I had a piece of mesecon missing, so it wasn't triggering, but the panel was sending the signal. 11:29 AndroidKris Now I need to block the light from the panel with a minecart.lol 11:32 AndroidKris It would seem, however, that minecarts allow light to pass through. 12:16 luizrpgluiz hi 14:47 YvesLevier Hola :) 14:48 ElectronLibre YvesLevier, who were you taling to? 14:49 YvesLevier Wondering if som1 made a texture in wich i can find... well "une calotte à l'envers" (tu peux traduire ça ElectronLibre?) 14:49 YvesLevier ElectronLibre: ^ 14:50 ElectronLibre ._. 14:50 ElectronLibre "A cap upside down"? 14:51 YvesLevier Looks like that 14:55 YvesLevier There is a kid who wants to join our server. I wanna bring him to move to Ubuntu (kind of a mission for me). I enumerated Minetest gifts im ready to offer to him if he does so. Accidentally i told "A cap upside down" to his parents. I fear im trapped now, sure that this will be their preference. 15:59 rubenwardy If I was to make a web control panel for Minetest, would it be better as a PHP or Flask(Python) Application? The advantage of a Python app is less overhead - no need for an apache webserver. The advantage for PHP is it is more widely available. But then MT servers are usually run on VPS and personal computers, so that probably isn't an issue. 15:59 rubenwardy And with a python app, you can run processes independent of the views (ie page loads) 16:06 exio4 I'd assume Yesod would be pretty cool 16:06 rubenwardy no thanks ;) 16:07 exio4 or maybe Happstack, or just Snap 16:07 exio4 who knows 16:12 Calinou rubenwardy, pleasenotphp.jpeg 16:12 Calinou Node.js! :D 16:12 rubenwardy Yeah 16:12 Calinou Python is OK too 16:12 Calinou so is Ruby 16:13 Calinou but PHP should probably be avoided, unless you use Laravel which makes it acceptable (or so I heard) 16:13 rubenwardy I won't mind Node.js, but I'm more confortable with Python 19:18 rubenwardy Well, basic framework is up: https://github.com/rubenwardy/minetest_web_panel 19:37 xenkey Hi