--- Log opened Thu Sep 26 00:00:07 2013 |
--- Day changed Thu Sep 26 2013 |
00:00 | <&ToxicFrog> | <Namegduf> ToxicFrog: I think understanding structures built of blocks referencing each other and their attributes and being able to manipulate them and make new ones is pretty significant. |
00:00 | <&ToxicFrog> | Yes, but that's understanding structural abstraction and indirection |
00:00 | <&ToxicFrog> | Both of which, IME, are easier to teach without pointers getting in the way. |
00:00 | <&McMartin> | (cons a b) returns a list that aliases b. |
00:00 | <&McMartin> | 100% of the time. |
00:00 | <@Namegduf> | McMartin: Yes. Anything else, though, best read the documentation. |
00:00 | <@Namegduf> | Doesn't common lisp have "sharing" and "non-sharing" versions of various things? |
00:01 | <&ToxicFrog> | McMartin: Scala does, at least, and has things like Option[T] to deal with computations that may fail safely. |
00:01 | <&ToxicFrog> | "<Namegduf> Lisp arbitrarily shares parts of any list and you need to be sure to do copies to get rid of it." --- what? |
00:01 | <&McMartin> | Namegduf: IIRC even Common Lisp will at most do shallow copies. |
00:01 | <&McMartin> | And that's when you use constructors |
00:02 | <@Namegduf> | McMartin: Common Lisp has a stdlib. |
00:02 | <&McMartin> | Yes. |
00:02 | <@Namegduf> | McMartin: It is the functionality of that I am referring to. |
00:02 | <&McMartin> | Even there, AFAIK, you've got LIST and you've got CONS. |
00:02 | <&McMartin> | LIST is "new list, but arguments are directly incorporated and thus will be aliased" |
00:02 | <@Namegduf> | It has a stdlib which contains more than two things. |
00:02 | <&McMartin> | CONS aliases is arguments. |
00:03 | <&McMartin> | IIRC, there is no "do a deep copy" function even in Common LISP because it's poorly defined on circular structures. |
00:03 | <@Namegduf> | Which of those two constructs that the stdlib functions use is seemingly dictated by vague feelings of importance. |
00:03 | <@Namegduf> | I think. |
00:03 | <@Namegduf> | Or performance. |
00:03 | <&ToxicFrog> | Namegduf: re learning data structures (again) - in my experience data structures are a huge pain because people keep getting tangled up in pointers and copying when they meant to ref and reffing when they meant to copy and using too many *s. |
00:04 | <&ToxicFrog> | Teach them in Lua or Python or Lisp and things go a lot more smoothly. |
00:04 | <&ToxicFrog> | (I've never seen them taught in Java) |
00:04 | <&McMartin> | Namegduf: All I can say with that is "even in Common LISP I did not encounter this" |
00:04 | <@Namegduf> | ToxicFrog: My experience is that they get it working through trial and error faster but still are incapable of understanding or constructing their own data structures. |
00:05 | <&McMartin> | The general rule I'm familiar with is "anything that is passed as an argument will be aliased if encountered in the return value. You can ignore this for atoms, though, because atoms are immutable." |
00:05 | <@Namegduf> | ToxicFrog: Whereas people I know who have actually worked with pointers explicitly are generally actually able to visualise and work with structures. |
00:05 | <&ToxicFrog> | And I still have no idea what you're talking about WRT lists. |
00:05 | <&ToxicFrog> | But then, I haven't used Common Lisp; maybe this is something that doesn't arise in Scheme, elisp, or clojure? |
00:05 | <@Namegduf> | Shared mutable data is Bad. You keep it as isolated from everything else you can manage. |
00:06 | <@Namegduf> | Lisp does not help you with this and I think that is silly. |
00:06 | <@Namegduf> | Pretty much just that. |
00:06 | <&McMartin> | TF: It's *more likely* to bite you in Common Lisp because Common Lisp is a shitload more imperative in its idiomatic code. |
00:06 | <&McMartin> | This is a cultural thing, mostly. |
00:06 | <&McMartin> | Scheme has shared mutable data but the language is designed to discourage you from mutating things, so in practice it doesn't come up. |
00:06 | <@Namegduf> | That could be part of it. |
00:07 | <&McMartin> | When it *does* come up, you look to the JavaScript community, which is the largest one that wrestles with this, and whose function semantics are intentionally Scheme-like. |
00:07 | <&McMartin> | (minus first-class continuations) |
00:07 | <&McMartin> | Clojure provides Actually Immutable Data Structures. |
00:08 | <&McMartin> | As does ML. |
00:08 | <@Namegduf> | I found it much worse in CL than I did in C. It could be a familiarity thing, it could be that C's struct definitions and similar make it more explicit and comprehensible. |
00:08 | <&ToxicFrog> | Namegduf: right, so, my experience with Lisp is mostly Clojure and the rest is Scheme, which are way the fuck more in favour of immutability than C, which is all "fill in these structs, check these globals" all over the goddamn place. |
00:09 | <@Namegduf> | At any rate the relevant comparison isn't C, it's Haskell. |
00:09 | <@Namegduf> | Seeing as the context was use in a functional-based algorithms class. |
00:09 | <&McMartin> | Well |
00:09 | <@Namegduf> | Which I find sane. |
00:09 | <&McMartin> | 61A/SICP is not "funcitonal algorithms" |
00:09 | <&McMartin> | It's "grand tour of computing generally" |
00:10 | <&ToxicFrog> | I was responding to "Aside that I'm not a fan of Lisps for anything, weird action at a distance is silly", which didn't have anything to do with FP |
00:10 | <&McMartin> | And hits on functional, imperative, object-oriented, and logic programming |
00:10 | <&ToxicFrog> | And since you seem to be pro-C in general I was trying to reconcile that with a dislike of spooky action at a distance |
00:10 | <&McMartin> | (With the latter two being built as homework assignments) |
00:10 | <@Namegduf> | It's bad, and it's C's biggest flaw |
00:10 | <@Namegduf> | Well |
00:11 | <@Namegduf> | Okay I will retract that |
00:11 | <@Namegduf> | It's a big flaw of C |
00:11 | <&ToxicFrog> | (also, try Clojure, it owns~) |
00:11 | <@Namegduf> | Biggest is a claim I'm just not willing to make for any particular attribute |
00:12 | <@Namegduf> | This doesn't conflict with noticing that amateur/student programmers I know who did C early and intuitively grasp pointers seem to be able to construct data structures on the fly, see the use of 2D linked lists, and in general write data structures without fiddling around trying to get reference/copy behaviour right |
00:13 | <@Namegduf> | Whereas most of the rest who learned with the likes of Python and Java and did one data structures unit or something sort of struggled with it via trial and error, and then went back to writing largely trivial programs the rest of their degree |
00:13 | <&McMartin> | I can see a fairly strong case for making sure your data structures course isn't taught in a batteries-included language. |
00:14 | <&McMartin> | Since in large part a data structures class is "how to build batteries" |
00:15 | <@Namegduf> | I suspect these courses which start out with really strong algorithms theory and are aimed at people who are already somewhat knowledgeable probably run into the problem less. |
00:15 | <@Namegduf> | But elsewhere you get a lot of people who, say, have programming experience from screwing around in PHP |
00:15 | <@Namegduf> | Or JS |
00:16 | <&McMartin> | You could teach a hellaciously crunchy CS course in JS. |
00:16 | <&McMartin> | You *wouldn't* |
00:16 | <&McMartin> | But you *could* |
00:16 | <@Namegduf> | You could. |
00:16 | < Syka> | define crunchy |
00:17 | < Syka> | as in, you want your skull to do that, under a van? |
00:17 | <&McMartin> | Syka: Covering topics that people usually break out Lisp or ML to cover. |
00:17 | < Syka> | i have yet to study lisp at all |
00:17 | <@Namegduf> | There's a fairly large number of "not really a programmer but a techy person, what am I going to go study after A-levels, oh, I'll go for Computer Science programming sounds fun" people, and my experience is that after studying for a while they get some things but are just absurdly bad at memory layout |
00:17 | < Syka> | I do find it amusing, that people are like |
00:18 | <@Namegduf> | And C early on seems to mitigate |
00:18 | < Syka> | "Oh shit, this could use an algorithm" *fires up vim and lisp* |
00:18 | <@Namegduf> | So I think it is probably somewhat helpful for theoretical understanding of that. |
00:19 | < Syka> | i just push bits around in my python |
00:19 | < Syka> | memory layout is the interpreters job :D |
00:19 | | * Syka is everything wrong with computer science |
00:19 | <&McMartin> | Syka: Well, the trick here is "how to use the ability to return functions to implement object-oriented programming and data hiding without needing OO or data hiding in the language" |
00:19 | <&McMartin> | That's AIUI a live JS idiom, and it's very close to the way I learned to do the trick in Scheme |
00:19 | <&McMartin> | So, you know, a point to JS. |
00:19 | <@Namegduf> | McMartin: Under no circumstances must they find a modern ECMAScript specification |
00:20 | <&McMartin> | Hee |
00:20 | < Syka> | js is annoying |
00:20 | <&McMartin> | The problem with JS is that it operates within the DOM, and the DOM is awful |
00:20 | < Syka> | in that new ecmascript sort of doesnt suck |
00:20 | < Syka> | like, it has classes, or something |
00:20 | <@Namegduf> | McMartin: Well, I was referring to the new OO-related features |
00:20 | < Syka> | that don't be terrible |
00:20 | < Syka> | but nope |
00:20 | <&McMartin> | Namegduf: Right, so, you forbid them from using it and then you also look at the code they submit |
00:20 | <@Namegduf> | Yeah |
00:20 | < Syka> | we've got to stick with lowest common denominator javascript |
00:21 | <@Namegduf> | Does JS parse up front? |
00:21 | <&McMartin> | You push Python around; aren't you supposed to be saying "data hiding is bad"?~ |
00:21 | <@Namegduf> | I guess it does in any sensible VM. |
00:21 | < Syka> | McMartin: data hiding? |
00:21 | <&McMartin> | Namegduf: "Yes but" |
00:21 | <&McMartin> | Syka: private fields |
00:21 | < Syka> | McMartin: as in, private elements? |
00:21 | <&McMartin> | Yeah |
00:21 | < Syka> | McMartin: oh yeah |
00:21 | <@Namegduf> | Well clearly the solution is eval |
00:21 | < Syka> | that's what _ is for |
00:21 | < Syka> | :D |
00:21 | <@Namegduf> | Just do browser detection |
00:21 | <&McMartin> | Namegduf: Yeah, eval is the "but" |
00:22 | <@Namegduf> | Then eval a version of JS that suits it. :D |
00:22 | < Syka> | McMartin: tbh I actually like that bit of Python |
00:22 | <@Namegduf> | (This is a terrible idea, and also if you wrote the lowest common denominator thing you may as well use it, but amuses me for some reason) |
00:22 | | Vornicus [vorn@ServerAdministrator.Nightstar.Net] has quit [[NS] Quit: Leaving] |
00:23 | <&ToxicFrog> | The answer is to use a language that compiles to LCD javascript~ |
00:23 | < Syka> | McMartin: libraries should have nothing to hide from me and my monkeypatching |
00:23 | <&ToxicFrog> | Which reminds me, I should actually do some work on spellcast-web at some point |
00:23 | <&ToxicFrog> | And learn me some cljs |
00:23 | <@Namegduf> | Syka: Have you considered Ruby |
00:23 | < Syka> | Namegduf: I have considered ruby |
00:23 | <@Namegduf> | Syka: It makes that kind of horrible shit idiomatic |
00:23 | <@Namegduf> | XD |
00:23 | < Syka> | in a similar way that I considered suicide |
00:24 | < Syka> | man, ruby |
00:24 | < Syka> | I don't even get ruby, and why it is continually broken |
00:24 | < Syka> | I mean, like, 90% of python is broken at any one time |
00:24 | | You're now known as TheWatcher[T-2] |
00:24 | <@Namegduf> | I eventually managed to get someone to explain to me that the advantage of Ruby is that everything in it is similar to the way it works in other languages people like to know |
00:24 | < Syka> | pypi is down, or some library shits the bed, or python 3 screws up everything |
00:25 | < Syka> | but I can cope with that |
00:25 | <@Namegduf> | Or trying to do things the way the other language does is clearly erroneous |
00:25 | < Syka> | I /can't/ cope with Fucking Ruby |
00:25 | <@Namegduf> | So it is 'intuitive' in a narrow sense to them |
00:25 | <&ToxicFrog> | My experiences with Ruby have convinced me that it is the new Perl |
00:25 | <@Namegduf> | That's about as far as I got in terms of why someone would possibly want to use it |
00:25 | <&ToxicFrog> | I.e. it is very powerful and convenient and a complete goddamn mess. |
00:25 | < Syka> | isn't ruby also shockingly slow? |
00:26 | <&ToxicFrog> | (my experiences with the Ruby community have convinced me that they are all incredibly punchable) |
00:26 | <@Namegduf> | It used to be |
00:26 | <&McMartin> | I wasn't shocked |
00:26 | <@Namegduf> | Now it's only PHP slow |
00:26 | < Syka> | snrk |
00:26 | <@Namegduf> | No, seriously |
00:26 | <@Namegduf> | It was like three times worse |
00:26 | <&ToxicFrog> | Syka: it used to be, I'm pretty sure there have been improvements by e.g. compiling to bytecode rather than executing the AST directly. |
00:26 | <@Namegduf> | Before 1.9 |
00:26 | | * Syka considers benchmarkgame |
00:26 | < Syka> | http://benchmarksgame.alioth.debian.org/u32/ruby.php |
00:26 | <&McMartin> | Speaking of games |
00:26 | <@Namegduf> | I mean, speed, maintainability, simplicity, pick none |
00:26 | <&McMartin> | UQM is on git now! |
00:26 | <&McMartin> | In related news, I have a question about git. |
00:26 | <&ToxicFrog> | Huzzah! |
00:27 | <&ToxicFrog> | Proceed. |
00:27 | <@Namegduf> | "Why is it so shit?" |
00:27 | <&McMartin> | If I'm working on a branch and want to rebase it before I merge, it complains. |
00:27 | | * Namegduf likes git |
00:27 | <&McMartin> | What should I be telling it to do? |
00:27 | <@Namegduf> | Hmm. |
00:27 | < Syka> | define complains |
00:27 | < Syka> | git complains in many ways |
00:27 | <@Namegduf> | I have to ask: Why are you rebasing? |
00:27 | <@Namegduf> | If you're merging anyway? |
00:27 | < Syka> | also that |
00:27 | <&ToxicFrog> | Yes, both of those questions. |
00:28 | <&McMartin> | Merging back in the fixup commits, as is my wont. |
00:28 | <&McMartin> | Er |
00:28 | <&McMartin> | Squashing them, rather. |
00:28 | <@Namegduf> | Ah. |
00:28 | | Vorntastic [Vorn@Nightstar-7959812a.sub-70-211-15.myvzw.com] has joined #code |
00:28 | < Syka> | squashing commits, hm |
00:28 | <&ToxicFrog> | So, you have, say, master branch, fixup branch divergent from master, you want to squash fixup into master? |
00:28 | <&McMartin> | No |
00:28 | < Syka> | isn't that rewriting history? :S |
00:28 | <&McMartin> | Syka: Haven't pushed. |
00:28 | <@Namegduf> | Rebase is rewriting hitory |
00:28 | < Syka> | I prefer to just merge with --no-ff |
00:28 | <&ToxicFrog> | Ok, what do you want to do then? |
00:28 | <&McMartin> | OK |
00:28 | <&McMartin> | Branched from master |
00:28 | <@Namegduf> | Using it to squash commits is not too unusual |
00:29 | <&McMartin> | Made three commits in that branch |
00:29 | <@Namegduf> | I think |
00:29 | < Syka> | because then you get the history + one big squash commit in the merge target |
00:29 | <&McMartin> | Want to squash two of those commits together before the branch is remerged back into master |
00:29 | <@Namegduf> | Okay, so, near as I can tell the merge you're planning later is incidental |
00:29 | <&McMartin> | Correct. |
00:29 | <@Namegduf> | You have a branch, it contains two commits in history, you are trying to squash them and it's having none. |
00:30 | <&McMartin> | But the command I'm used to using for this - a raw "git rebase -i" - seems to think I want to rebase against master or do a merge or similar. |
00:30 | <&McMartin> | Which makes sense, because that's what rebase is nominally for. |
00:30 | < Syka> | ...are you specifying what you're rebasing against? |
00:30 | <&ToxicFrog> | McMartin: without telling it what commit to rebase onto, it assumes the head of the branch you forked from. |
00:30 | <&McMartin> | Aha. |
00:30 | <&ToxicFrog> | I think you want "git rebase -i <sha1 of the commit where the branches diverged>" |
00:30 | <&McMartin> | So do I tell it the... aha, OK. |
00:31 | < Syka> | or you can tell it the branch |
00:31 | <&McMartin> | (At this point a merge would be a fast-forward, but that may not be true by the time I'm actually ready to merge) |
00:31 | < Syka> | if the branch's head is where you want to rebase that to |
00:31 | <&ToxicFrog> | Syka: the thing is, he doesn't want to rebase onto the branch head |
00:31 | < Syka> | yes i know |
00:31 | <&McMartin> | I want to stay a branch |
00:31 | < Syka> | but for completeness |
00:31 | | Derakon is now known as Derakon[AFK] |
00:31 | <&ToxicFrog> | He wants to rewrite the history of the branch but keep the same divergence point. |
00:31 | <@Namegduf> | He just wants to zip through history in i mode |
00:31 | <&ToxicFrog> | McMartin: er. It stays a branch in either case. |
00:31 | <&McMartin> | I want to stay a *nontrivial* branch |
00:32 | <&ToxicFrog> | If you don't actually care about the exact point of diversion and just want to keep it a separate branch, you can rebase -i master and then merge --no-ff |
00:32 | < Syka> | is it just me, or is fast forwarding /the worst/ default |
00:32 | <@Namegduf> | I like fast forward |
00:32 | < Syka> | I like my branch history |
00:32 | <&McMartin> | Let's see here |
00:32 | | * McMartin takes a diff first, just in case. =P |
00:32 | < Syka> | also, it lets me know when I merged branches |
00:32 | < Syka> | rather than nuking it |
00:33 | | You're now known as TheWatcher[zZzZ] |
00:33 | <&ToxicFrog> | McMartin: even if you horribly screw everything up, the original commits are still intact and can be recovered from the reflog (or by recording the sha) |
00:33 | < Syka> | i read that as reflog |
00:34 | < Syka> | uh. |
00:34 | < Syka> | re-flog |
00:34 | < Syka> | like that priest guy from the da vinci code |
00:34 | < Syka> | "i must not overwrite commits *THWAP* i must not overwrite commits *THWAP*" |
00:35 | <&McMartin> | Success! Cheers |
00:36 | <&McMartin> | (What I wanted was git rebase -i {commit that was master's value at the time I branched} |
00:36 | <&McMartin> | ) |
00:36 | <&McMartin> | In other news, I now have a working implementing of the last feature I cared about in UQM. |
00:36 | <@Namegduf> | Last common commit, yeah |
00:36 | <&McMartin> | *implementation |
00:36 | <@Namegduf> | That sounds good. |
00:36 | <&McMartin> | It is not, however, an *acceptable* one. |
00:39 | <&ToxicFrog> | McMartin: "last common commit" is a much better description for it, thanks. |
00:39 | <&McMartin> | That was Namegduf |
00:39 | <&McMartin> | Is there a shorthand way of specifying "last common commit"? |
00:39 | <&ToxicFrog> | Right |
00:39 | <@Namegduf> | Not that I know offhand. |
00:39 | <&McMartin> | I just used the sha1 prefix after looking at the log |
00:39 | <&ToxicFrog> | ...maybe. But not that I know. |
00:39 | <&McMartin> | Also, woo, Ivybridge! |
00:40 | <&ToxicFrog> | merge-base! |
00:40 | <&McMartin> | I can run UQM in Fancy mode and have it perform acceptably on the Linux lappy. |
00:40 | <&ToxicFrog> | 'git merge-base <list of refs>' gives you the last common commit of all those refs. |
00:41 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has quit [Ping timeout: 121 seconds] |
00:41 | <&ToxicFrog> | In particular, 'git merge-base HEAD <other branch>' gives you the last common commit between your current branch and the other branch. |
00:53 | | himi [fow035@Nightstar-b080711b.in-addr.csiro.au] has joined #code |
00:53 | | mode/#code [+o himi] by ChanServ |
01:13 | | Derakon[AFK] is now known as Derakon |
01:13 | | Reiv [NSwebIRC@Nightstar-95746c1f.kinect.net.nz] has quit [Ping timeout: 121 seconds] |
01:14 | | Reiv [NSwebIRC@Nightstar-95746c1f.kinect.net.nz] has joined #code |
01:14 | | mode/#code [+o Reiv] by ChanServ |
02:01 | <@Azash> | Hrng |
02:01 | <@Azash> | Friend asks if I saw some parsing regexp of his |
02:01 | <@Azash> | Say no and he shows me |
02:01 | <@Azash> | Now I know how the nazis felt in the ark scene in Raiders of the Lost Ark |
02:02 | <@Azash> | URI_REGEXP = re.compile(r"""(?i)\b((?:https?://|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}/)(?:[ ^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\))) *\)|[^\s`!()\[\]{};:'".,<>?«»ââââ]))""") |
02:07 | <&McMartin> | Violence is the answer |
02:08 | | himi [fow035@Nightstar-b080711b.in-addr.csiro.au] has quit [Ping timeout: 121 seconds] |
02:11 | | himi [fow035@Nightstar-b080711b.in-addr.csiro.au] has joined #code |
02:11 | | mode/#code [+o himi] by ChanServ |
03:14 | < Syka> | Azash: heh eevee was complaining about that too |
03:15 | < Syka> | apparently that regex came from gruber :p |
03:16 | <@iospace> | YOUR FACE CAME FROM GRUBER |
03:16 | <@iospace> | i mean |
03:16 | <@iospace> | hi ^_^ |
03:18 | < Syka> | hi |
03:23 | <&McMartin> | man, now I'm trying to remember the techno remix of the guy swearing constantly |
03:23 | <&McMartin> | ... The Terrible Mr. Grimshaw |
03:35 | | Reiv [NSwebIRC@Nightstar-95746c1f.kinect.net.nz] has quit [Ping timeout: 121 seconds] |
03:36 | | Reiv [NSwebIRC@Nightstar-95746c1f.kinect.net.nz] has joined #code |
03:36 | | mode/#code [+o Reiv] by ChanServ |
03:42 | <&Derakon> | Hey, any of you have any ideas for a good way to find the position of a sub-image within an image? |
03:43 | <&Derakon> | In particular I'm trying to locate the '@ in an Angband screenshot, and I have a cropped screenshot of the '@' handy for comparison. |
03:43 | <&McMartin> | Oof. |
03:43 | <&McMartin> | I'm not seeing easy ways to do it outside of linear search |
03:43 | <&McMartin> | Though at least it should be giving up quickly in most circumstances. |
03:46 | <@Reiv> | Is the image in color? |
03:46 | <&Derakon> | It is, but for this search I can always just ignore two channels. |
03:46 | <@Reiv> | And is the @, and possibly its background, in a consistent color? |
03:46 | <@Reiv> | No, colours are good. |
03:46 | < [R]> | Are they A) Both non-lossy B) both the same format? |
03:47 | <@Reiv> | What compression algorathm is the image using?~ |
03:47 | <&Derakon> | PNG; I'm using PIL to load the images into Python. Non-lossy. |
03:47 | <&Derakon> | Consistent background, consistent font, etc. |
03:48 | <@Reiv> | ... I am now trying to remember the encoding algorathmn for PNG. |
03:48 | <&Derakon> | You're not gonna be able to find a substring in the file, if that's what you're wondering. :p |
03:49 | | Turaiel[Offline] is now known as Turaiel |
03:50 | <@Reiv> | No, I was hoping you'd be able to detect a pattern. |
03:50 | <@Reiv> | AKA that the top of the @ is X many bytes of white. |
03:51 | <@Reiv> | If you can tell that, you can start the actual comparison there. |
03:51 | <&Derakon> | Mm, that's a trifle manual for my tastes... |
03:51 | <@Reiv> | There again you can just check every Y pixels per row, every Z rows anyhow. |
03:52 | <@Reiv> | Keep going till you hit a white one, then check. |
03:52 | <@Reiv> | Which is linear, but a pretty quick linear. >_> |
03:54 | < [R]> | If you can make assumptions like "the screenshot's (X,Y) of (0,0) is the (0,0) of the first character." (IE the screenshot is a perfect inner-window shot of the game from a terminal) then you can just cut up the image. If you can't, but you can find the offet you can do the same. |
03:54 | | * Derakon nods. |
03:55 | <&Derakon> | That could be a helpful optimization. |
03:56 | <&Derakon> | The eventual goal here, theoretically, is to write some scripts to auto-crop/center screenshots of Angband for a hypothetical LP. |
03:57 | < [R]> | Otherwise, use a modified string searching algo and find the top line of the '@' with the same pattern, then start checking the next lines in the same byte range. |
03:58 | <&Derakon> | Hmph, a per-pixel search doesn't seem to work, or else I implemented it badly. |
03:59 | | Vornicus [vorn@ServerAdministrator.Nightstar.Net] has joined #code |
03:59 | | mode/#code [+qo Vornicus Vornicus] by ChanServ |
04:00 | <@Reiv> | Derakon: If this is for your own work... |
04:01 | <@Reiv> | Are you able to customise the Angband files? |
04:01 | <&Derakon> | I could, yes. |
04:01 | <@Reiv> | Then modify the @'s colour: 255,255,254 is visually identical to 255,255,255 etc |
04:01 | <@Reiv> | But very noticable during a pixel search. |
04:01 | <@Reiv> | "Hey, found the color boss!" |
04:01 | <&Derakon> | Hm, could work. |
04:02 | <&Derakon> | I do wonder why the per-pixel search failed, though. If something about the screenshot process is creating lossiness then subtle color variations aren't going to help. |
04:02 | <@Reiv> | (I am assuming the @ is white, or whatever. Tweak to taste.) |
04:02 | <&Derakon> | E.g. if subpixel rendering somehow shows up here. |
04:02 | <&Derakon> | Doesn't font rendering do funky things to get smoother-looking fonts? |
04:02 | | Vorntastic [Vorn@Nightstar-7959812a.sub-70-211-15.myvzw.com] has quit [[NS] Quit: Bye] |
04:02 | <@Reiv> | ... ssssorta yes |
04:03 | <~Vornicus> | Among those is antialiasing |
04:03 | <@Reiv> | But there should be *some* of the solid colour. |
04:04 | <&Derakon> | Well, but that color could also show up elsewhere. |
04:04 | | * Derakon examines the pixel data of his '@' screenshot. |
04:04 | <&Derakon> | Out of 77 pixels, I have 53 unique colors. |
04:04 | <&Derakon> | There's 14 black pixels. |
04:04 | <&Derakon> | So yeah, that's problematic; I may not be able to rely on exact search algorithms. |
04:04 | < [R]> | Oh yeah, AA would fuck things up, hmm |
04:05 | < Syka> | isn't there a thing for this |
04:05 | < Syka> | like |
04:05 | < Syka> | neural network stuff |
04:05 | <~Vornicus> | What are the other colors? How are they distributed as far as hue & saturation? |
04:05 | <&Derakon> | There should be a way to do signal analysis on the images, but I can never remember how to do it properly. |
04:05 | < Syka> | there was something on coursera that was doing this exact thing |
04:05 | <&Derakon> | Vorn: they're all various shades of grey. |
04:05 | < Syka> | i think, anyway |
04:05 | <&Derakon> | The @ screenshot could be losslessly converted to B&W. |
04:05 | <&Derakon> | Er, grayscale. |
04:07 | <~Vornicus> | Okay, so. You can get, since your bg is black, the brightest pixel in each thing; this will have as close to the right color as you can get. |
04:07 | <&Derakon> | Thing? |
04:07 | <~Vornicus> | Uh, character tile/ |
04:08 | < [R]> | OCR? |
04:08 | <&Derakon> | Mm, if I'm going that route then the simplest way to go would probably be to take the absolute value of the difference of each tile from the @ and take the tile with the smallest difference. |
04:08 | <&Derakon> | Or OCR, yeah. |
04:08 | <&Derakon> | OCR would be handy anyway for transcribing the game messages. |
04:11 | <@Reiv> | OCR may be the way to go. |
04:11 | <@Reiv> | Without AA, my method would have been classy. >_> |
04:12 | <&McMartin> | Heh |
04:13 | | Kindamoody[zZz] is now known as Kindamoody |
04:27 | <&ToxicFrog> | Syka: the approach I used was threshold to get black and white, then apply gOCR |
04:27 | <&ToxicFrog> | Er |
04:27 | <&ToxicFrog> | Derakon: the approach I used was threshold to get black and white, then apply gOCR |
04:28 | | VirusJTG [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has quit [Connection reset by peer] |
04:30 | <&Derakon> | Good to know, TF. Thanks. |
04:34 | | * Derakon chops his screenshot up into tiles, ...s as he creates over 15000 images. |
04:36 | <&ToxicFrog> | Oops? |
04:36 | <&Derakon> | Well, they're all tiny, but yeah. |
04:37 | <&ToxicFrog> | Also, I mentioned gOCR specifically because it is trainable; you can tell it to start from a blank slate and then teach it the font for whatever game you're OCRing. |
04:37 | <&ToxicFrog> | Also it's command line and thus scriptable. |
04:37 | <&Derakon> | Nice. |
04:37 | <&Derakon> | This is not a hard OCR target. |
04:37 | <&Derakon> | White text on a black background using a system font. |
04:38 | <&ToxicFrog> | I ended up with a pipeline that automatically detected images with dialogue in them, cropped them down to just the dialogue text, thresholded it, and then OCRd the result, asking me about characters it didn't recognize. |
04:46 | | * Derakon eyes PIL, wonders why it's claiming every tile has no non-black pixels. |
05:01 | < Syka> | your fault: expecting PIL to work |
05:01 | < Syka> | you have not wrangled with it for the requisite two hours |
05:09 | | Derakon is now known as Derakon[AFK] |
05:13 | < [R]> | A: "There is one problem: for historic reasons, most distributions install Gnome by default. This needs to be fixed, badly." |
05:13 | < [R]> | B: "Well, it seems the folks over at GNOME are trying as hard as they can to get it fixed..." |
05:14 | <@Reiv> | snrk |
05:14 | < Syka> | theres a gnome 3.10 preview |
05:14 | < Syka> | it looks amazing |
05:19 | | Turaiel is now known as Turaiel[Offline] |
05:35 | < [R]> | Syka: they removed middle-click paste apparently. |
05:36 | < Syka> | yay |
05:41 | | RichyB [RichyB@D553D1.68E9F7.02BB7C.3AF784] has quit [[NS] Quit: Gone.] |
05:44 | | RichyB [RichyB@D553D1.68E9F7.02BB7C.3AF784] has joined #code |
06:19 | | ErikMesoy|sleep is now known as ErikMesoy |
06:33 | < [R]> | I'm begining to suspect this "cellular map generator" just plays the game of life. |
06:34 | < [R]> | Which is interesting, the default configuration seems to eventually stabilize though. |
06:35 | <&McMartin> | Game of Life tends to go periodic under random input. |
06:39 | < [R]> | "go periodic"? |
06:40 | <@froztbyte> | End at a set of circumstances that are repeatable |
06:42 | < [R]> | Ah. |
06:42 | < [R]> | Starting to hate the documentation for this library. |
06:43 | | Kindamoody is now known as Kindamoody|afk |
06:43 | < [R]> | "Yes, the function takes xin and yin, why did it return something that's E-11?" (Noise generator with a default "gradient" of 256) |
06:46 | < [R]> | > [n.get(0,0), n.get(2, 4), n.get(4, 2), n.get(4, 0), n.get(0, 3), n.get(0, 4)].join(' ') |
06:46 | < [R]> | '0 -0.4006056372032872 0.0007457993169579564 -0.10636417890184266 9.225595802028347e-16 0' |
06:47 | < [R]> | Not entirely sure how I'm going to use them numbers there... |
06:47 | < [R]> | (n is the noise generator. .get(xin, yin) is the /only/ method) |
06:51 | < [R]> | Looks like the coords are supposed to be -1->1 |
06:51 | < [R]> | Thanks for indicating a range asshat. |
06:52 | < [R]> | Nope, I still get a very random number in a range I don't know. |
06:52 | < [R]> | Ugh. |
06:53 | < Syka> | so |
06:53 | < Syka> | who wants to be incredibly sad |
06:54 | < [R]> | No-one really |
06:54 | < Syka> | this is the error i got out of a client's financials system |
06:54 | < Syka> | http://pb.codehash.net/wakomahu.txt |
06:55 | < [R]> | Yay... multi-line SQL thrown into a single-line error |
07:17 | | celticminstrel is now known as celmin|sleep |
08:43 | | Syka_ [the@Nightstar-29675739.iinet.net.au] has joined #code |
08:43 | | Syka [the@Nightstar-38afacc8.iinet.net.au] has quit [Connection reset by peer] |
08:53 | | AverageJoe [evil1@Nightstar-4b668a07.ph.cox.net] has joined #code |
09:20 | | You're now known as TheWatcher |
10:39 | | AverageJoe [evil1@Nightstar-4b668a07.ph.cox.net] has quit [[NS] Quit: Leaving] |
11:40 | | himi [fow035@Nightstar-b080711b.in-addr.csiro.au] has quit [Connection reset by peer] |
11:53 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has joined #code |
11:53 | | mode/#code [+o himi] by ChanServ |
12:02 | | VirusJTG [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has joined #code |
12:42 | < ErikMesoy> | "Which of the following is not a quality characteristic listed in ISO 9126 Standard? a) Functionality b) Usability c) Supportability d) Maintainability." |
12:42 | < ErikMesoy> | Am I a terrible person for not only being clueless but actively disinclined to learn the content of the ISO 9126 Standard? |
12:44 | <~Vornicus> | Something tells me, ErikMesoy, that this 'certification' will only be looked upon positively by places you really don't want to work. |
12:45 | <@TheWatcher> | Frankly, anything in the ISO9K range is madness and spiders. |
12:47 | < ErikMesoy> | Vornicus: That's my thought too. It's asking about such incredibly sophistical definitions that I think anyone depending on it is mad. |
12:47 | < ErikMesoy> | Another example: Does "quality" consist in working as designed or following requirements? |
12:47 | | * TheWatcher blink |
12:48 | < ErikMesoy> | To which I say: 1) YES, you are fuckwitted sophists engaged in redefining words to insist it's one and not the other, and: 2) If those are divergent enough to be worth mentioning, something has already gone terribly wrong elsewhere. |
12:49 | < ErikMesoy> | Personally I think the reasonable answer is more like "neither, the design and the requirements might have both been produced by non-technical people. quality consists in doing what the user needs/wants" |
12:49 | < ErikMesoy> | "and there's no guarantee that either the design or the requirements have captured this" |
13:03 | < ErikMesoy> | Are test cases designed during test specification or test planning? Does the Holy Spirit proceed from the Father, from the Son, or from the Father and the Son? |
13:04 | < ErikMesoy> | I'm sure the test writers and certifiers have an opinion on the correct answer. I just have no idea why I should take their answer as authoritative or even meaningful for any other purpose than group membership designation. |
13:08 | | gnolam_ [lenin@Nightstar-f7705974.cust.bredbandsbolaget.se] has joined #code |
13:08 | | gnolam is now known as NSGuest5610 |
13:09 | | gnolam_ is now known as gnolam |
13:09 | | mode/#code [+o gnolam] by ChanServ |
13:11 | | NSGuest5610 [lenin@Nightstar-f7705974.cust.bredbandsbolaget.se] has quit [Ping timeout: 121 seconds] |
13:18 | < RichyB> | ErikMesoy, it doesn't actually matter because your options are all wrong anyway. |
13:19 | < RichyB> | ErikMesoy, you see it's actually the Son and the Father. ;) |
13:22 | | * ErikMesoy demands RichyB burned for heresy |
13:22 | < ErikMesoy> | Also Batman can totally beat up Superman. |
13:22 | < ErikMesoy> | And emacs is the best editor. |
13:23 | | alone [stranger@42F7BC.9BBC8B.57A861.DC4ABF] has joined #code |
13:46 | < ErikMesoy> | Wow. After I forwarded my complaints about the ISTQB certification process to my manager, he's been very understanding. |
13:46 | | alone [stranger@42F7BC.9BBC8B.57A861.DC4ABF] has quit [[NS] Quit: ] |
13:46 | < ErikMesoy> | TL;DR he agrees that this is essentially techno-theology and the test marks you as a techno-priest, but swears that the market for techno-priests is so huge that I really should get this qualification anyway. |
13:56 | < RichyB> | Heh |
13:56 | < RichyB> | That's the answer that I would expect. :) |
14:03 | < Xon> | ErikMesoy, http://en.wikipedia.org/wiki/International_Software_Testing_Qualifications_Board <- this article basicly manages to say /utterly nothing/ |
14:04 | < Xon> | that isn't exactly a good sign for ISTQB |
14:10 | < ErikMesoy> | RichyB: I had been expecting something along the lines of "the very smart and important people who wrote this test probably know better than you, stop raging" except more diplomatic. |
14:13 | < ErikMesoy> | Xon: I think the statement that ISTQB has multiple-choice tests says something. But other than that, yeah, much generic information-free content. (There's accreditation? Really) |
14:13 | < Xon> | ErikMesoy, ok I'm wrong; that article on says bad thing s=p |
14:23 | | Vornicus [vorn@ServerAdministrator.Nightstar.Net] has quit [[NS] Quit: Leaving] |
14:37 | < Attilla> | "The International Software Testing Qualifications Board (ISTQB) is a software testing qualification certification organisation that operates internationally." possibly the most tautological sentence |
14:37 | < Attilla> | just as well the ISTQB does what its name says it does |
14:49 | < ErikMesoy> | Attilla: surely the name should be ISTQCB according to that sentence? |
14:49 | < ErikMesoy> | the name doesn't say certification! :P |
14:52 | < Attilla> | certification is implied! |
14:55 | <@froztbyte> | <ErikMesoy> TL;DR he agrees that this is essentially techno-theology and the test marks you as a techno-priest, but swears that the market for techno-priests is so huge that I really should get this qualification anyway. |
14:55 | <@froztbyte> | the fact that be believes the latter part of that should also be something worth noting... |
14:56 | <@froztbyte> | in fact, that he /still/ believes it... |
15:01 | | celmin|sleep is now known as celticminstrel |
15:09 | | ErikMesoy is now known as ST |
15:14 | | Turaiel[Offline] is now known as Turaiel |
15:24 | | Reiv [NSwebIRC@Nightstar-95746c1f.kinect.net.nz] has quit [Ping timeout: 121 seconds] |
16:13 | | Turaiel is now known as Turaiel[Offline] |
16:56 | | Turaiel[Offline] is now known as Turaiel |
17:14 | | ST is now known as ErikMesoy |
17:26 | | celticminstrel [celticminst@Nightstar-5d0169f9.dsl.bell.ca] has quit [[NS] Quit: And lo! The computer falls into a deep sleep, to awake again some other day!] |
17:39 | | Turaiel is now known as Turaiel[Offline] |
17:53 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has quit [Ping timeout: 121 seconds] |
18:05 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has joined #code |
18:05 | | mode/#code [+o himi] by ChanServ |
18:17 | | * AnnoDomini proceeds with raspi server setup attempt #2: the new router. |
18:18 | < AnnoDomini> | Good things: It's a somewhat more popular model, and this one doesn't just give you information about the network for so much as finding its IP. |
18:19 | < AnnoDomini> | Bad things: It has WPS (luckily with option to disable), and it doesn't support the silly proprietary DSL TV thing the other one had. |
18:20 | < AnnoDomini> | :D |
18:20 | < AnnoDomini> | It works! |
18:21 | < AnnoDomini> | Right. With DMZ turned on and aimed at the raspi, I am automatically routed there when trying to get to the router's IP. |
18:29 | < AnnoDomini> | Scratch that "not working with TV". Apparently, it can, it just needs a bit of config. |
18:43 | < AnnoDomini> | http://painbot.no-ip.org/ <- Can anyone tell me which web server's default page this is? |
18:44 | <@froztbyte> | apache 2.2.22 |
18:44 | <@froztbyte> | hageshii% curl -s -LI http://painbot.no-ip.org/ | grep Serv |
18:44 | <@froztbyte> | Server: Apache/2.2.22 (Debian) |
18:45 | < AnnoDomini> | That's a WTF. I had thought I unistalled apache2. |
18:45 | <@froztbyte> | dpkg -l 'apache*' |
18:46 | <@froztbyte> | you probably have -mpm or -prefork around still |
18:47 | <@Pandemic> | Question: I need to look at an assembled windows program in linux. What is the best hex editor or disassembler to do this with? |
18:48 | < AnnoDomini> | Yeah, there's a bunch of ii packages and a bunch of un packages. |
18:48 | <@froztbyte> | AnnoDomini: all the 'ii' is installed |
18:48 | <@froztbyte> | dpkg -l 'apache*' | grep '^ii' | awk '{print $2}' | xargs sudo aptitude -q -y purge |
18:49 | < AnnoDomini> | So I should... remove all the metal boxes? |
18:49 | <@froztbyte> | ^ banhammer |
18:49 | < ErikMesoy> | * hambanner |
18:50 | <@froztbyte> | ErikMesoy: that works too |
18:52 | | * AnnoDomini genocides the apache tribe. |
18:52 | < AnnoDomini> | OK. Now, how do I put nginx in its place? |
18:53 | <@froztbyte> | sudo aptitude install nginx |
18:56 | | * AnnoDomini uninstalls it first. |
19:01 | < AnnoDomini> | This still ain't working. How do I start the server? |
19:01 | <@Tamber> | sudo /etc/init.d/nginx start |
19:01 | <@Tamber> | (Presumably.) |
19:02 | < AnnoDomini> | Will it start automatically after a reboot? |
19:02 | <@Tamber> | I think so. |
19:04 | < AnnoDomini> | Good. |
19:04 | < AnnoDomini> | Thank you. |
19:07 | | Kindamoody|afk is now known as Kindamoody |
19:32 | <&ToxicFrog> | Pandemic: if IDA has a linux version, I'd say use that. |
19:32 | <&ToxicFrog> | If it doesn't, I'd say use that in Wine. |
19:52 | | Kindamoody is now known as Kindamoody[zZz] |
19:53 | <@Pandemic> | Well thats just it,I don't want to exicute the file |
19:53 | <@Pandemic> | I just want to look at it |
19:53 | <@Pandemic> | Thanks ToxicFrog |
19:56 | < [R]> | Only hexeditor I use is xxd+vim |
19:57 | < [R]> | Might help if you explained what exactly you were after here. |
20:00 | <@Pandemic> | A file some how got through our defenses, it is a windows executable. I am reasonable sure it is hostile thus I do not want to execute it. I would however like to look at it in some form other than binary so that I can examine it for educational purposes. |
20:03 | <@Pandemic> | I /think/ I have found the hole it used to crawl in and plugged it so snoething else would ever be able to use the same trick |
20:03 | <@Pandemic> | nothing* |
20:03 | <@Pandemic> | but I'd still like to see if I could figure out what this thing was suposed to do with out risking any thing in the process |
20:10 | <&McMartin> | IDA is your best bet for that, then. You want a disassembler, not just a hex editor. |
20:10 | <&McMartin> | (I use hexdump -C and less for perusing binaries without disassembly) |
20:18 | <@Pandemic> | thanks McMartin |
20:24 | | * AnnoDomini makes with the second attempt at turning his laptop into a boob tube. |
20:28 | <&ToxicFrog> | Pandemic: by "that in wine" I mean "run IDA in wine, and load the program you're reverse engineering in it" |
20:29 | <&ToxicFrog> | You could also spin up a network-isolated VM and execute the file in that. |
20:31 | <@Pandemic> | I might run an issolated VM. I have one at home |
20:33 | < [R]> | Because those are so hard to make. |
20:34 | < AnnoDomini> | Hmm. It seems the problem is the supplied tiny antennas being complete shit. |
20:34 | < AnnoDomini> | Maybe. |
20:35 | < AnnoDomini> | The (new) gizmo correctly finds a bunch of free channels when I connect it to a satellite-fed cable. |
20:36 | < AnnoDomini> | But only finds some for-pay, encoded channels with the microantenna. Just like the old gizmo. |
20:48 | < AnnoDomini> | Ah, I see. I was incorrect. This cable IS from a terrestrial antenna. |
20:58 | | * AnnoDomini is a little WTF at the amount of channels. |
20:59 | < AnnoDomini> | 25 channels, including two in HD? Man. |
20:59 | < AnnoDomini> | When I left for Norway, it was five channels. |
21:09 | <@Namegduf> | My TV doesn't have channels. |
21:10 | <@Namegduf> | Just Netflix. |
21:10 | <@Namegduf> | Cheaper than paying for a TV license. |
21:10 | <@Namegduf> | Better. |
21:13 | <&ToxicFrog> | TV where you are must be pretty shit that Netflix is a better option~ |
21:14 | <@Namegduf> | Really? |
21:15 | <@Namegduf> | The worst thing you'd possibly choose to watch on demand is above average for what you watch when you have to choose whatever cheap shit shows they have on. |
21:15 | <&ToxicFrog> | Well, here, it doesn't have anything you want to watch, and if they somehow screw up and it does, it doesn't actually work in any browser<->os combination, and if you can find a black goat to sacrifice to get it to work, the quality is shit and it buffers randomly even on a 25Mb connection. |
21:16 | | * Namegduf has never had any technical problems with it. He has a good Internet connection, though. |
21:16 | <@Namegduf> | I think the problem is that you mean 25Mb* connection. |
21:16 | <@Namegduf> | Where * means "will randomly do |
21:16 | <@Namegduf> | *do whatever it likes" |
21:17 | <&ToxicFrog> | With TV you are limited to whatever they are currently broadcasting, but if by chance they are broadcasting something you want to watch you can actually watch it |
21:17 | <@Namegduf> | I have never had any technical problems with Netflix whatsoever. |
21:17 | <&ToxicFrog> | No, it's a consistent 25Mbps connection to everything that isn't Netflix. |
21:17 | <&ToxicFrog> | Well, Netflix or Google Play. Other video streaming services work fine, bittorrent hits 2-2.5MBps with complete regularity, etc |
21:17 | <@Namegduf> | There are a number of ISPs in the world which severely downgrade Netflix traffic because they want to charge Netflix for delivery to their customers. |
21:17 | <@Namegduf> | I think your ISP is ripping you off. |
21:17 | <@Namegduf> | I get line rate here. |
21:18 | <&ToxicFrog> | Hahahahahahahaha |
21:18 | <&ToxicFrog> | line rate here, according to my modem, is 75MBit symmetric |
21:18 | <@Namegduf> | And yet it's still shit. |
21:19 | <&ToxicFrog> | But that's never happening because it would require backend infrastructure upgrades by Bell, or it would require an independent ISP with enough money to run their own lines and pay off the CRTC |
21:19 | | * Namegduf thinks Netflix should pay the ISPs, and then charge the ISP's customers a premium |
21:20 | <&ToxicFrog> | Anyways. I'm confident that TSI doesn't throttle. Bell ostensibly doesn't (and you'd think if they did they'd throttle bittorrent and youtube as well), but realistically, even though they aren't allowed to, if they were they would suffer no repercussions whatsoever |
21:20 | <@Namegduf> | It's not something to do with throttling. |
21:20 | <@Namegduf> | It's something to do with congestion. |
21:20 | <&ToxicFrog> | <@Namegduf> There are a number of ISPs in the world which severely downgrade Netflix traffic because they want to charge Netflix for delivery to their customers. |
21:20 | <@Namegduf> | Right. That doesn't mean "throttling". |
21:20 | <@Namegduf> | That means "deprioritisation". |
21:20 | <@Namegduf> | And in actual form often consists of simply failing to upgrade links. |
21:22 | <@Namegduf> | http://bgr.com/2013/07/29/isp-video-streaming-disputes/ <- This is a brief summary of some of the more dramatic cases. |
21:22 | <@Namegduf> | But the problem isn't Netflix being congested at their end of a connection to Level3 or whoever. |
21:23 | <@Namegduf> | My ISP's links are good, though, and so I have under a half second buffering before it starts, then none. |
21:23 | <@Namegduf> | Consistently. |
21:24 | <&ToxicFrog> | tbqh considering all the other problems with the client software I am not at all convinced that the buffering problems were network problems and not client problems. |
21:25 | <@Namegduf> | It doesn't support Linux, but aside that I've not had any troubles with it. |
21:25 | <@Namegduf> | Is the OS X version shaky or something? |
21:25 | <&ToxicFrog> | I don't use OSX. |
21:25 | <&ToxicFrog> | Wine-in-linux didn't work at all, Windows native was a complete trainwreck. |
21:26 | <@Namegduf> | WINE on a Silverlight thing? |
21:26 | <@Namegduf> | No kidding it didn't work. |
21:26 | <&ToxicFrog> | We ended up abandoning netflix entirely and torrenting the stuff we wanted to watch, which was faster, easier, and higher quality. |
21:26 | <@Namegduf> | Well, I guess if you couldn't figure out how to get it to work that's reasonable. |
21:27 | <@Namegduf> | The steps are something like: 1) Install Chrome 2) Go to Netflix website 3) Install Silverlight as prompted 4) Refresh (maybe reopen if you had to reboot) |
21:28 | <@Namegduf> | I also use it in Firefox, never tried it in IE. |
21:28 | <&ToxicFrog> | Yeah, see, those steps didn't actually work, it would just crash Chrome outright. |
21:29 | <&ToxicFrog> | FF would use up huge amounts of memory and then crash. |
21:29 | <@Namegduf> | I guess maybe your Silverlight install is broke? |
21:29 | <@Namegduf> | Chrome's not supposed to crash no matter what, but maybe a buggy Silverlight plugin could do it. |
21:29 | <&ToxicFrog> | Eventually, I don't remember how (maybe we used IE?) we got it working, resulting in the quality problems I mentioned above, and at that point the torrent I'd started five minutes earlier was done so why waste further time on it? |
21:29 | <&ToxicFrog> | I mean the Chrome tab/subprocess crashed, not the entire browser. |
21:29 | <@Namegduf> | Ah. |
21:29 | | * Namegduf shrugs |
21:30 | <@Namegduf> | Your technical issues are not everyone's. |
21:30 | <&ToxicFrog> | I guess Silverlight could be broken. I mean, Netflix is the only goddamn thing I've ever seen that uses it, so it's not like I'd know. |
21:30 | <@Namegduf> | LoveFilm also does, in the UK. |
21:30 | <&ToxicFrog> | True. OTOH, the laughably terrible selection is everyone's, at least in Canada. |
21:30 | <@Namegduf> | It seems to have been popular for video streaming briefly. |
21:30 | <@Namegduf> | Oh, Canada's even newer an offering than the UK, right? |
21:31 | <@Namegduf> | Selection seems to come in chunks. |
21:31 | <&ToxicFrog> | No, it's been here since fall 2010. |
21:31 | <@Namegduf> | Huh. |
21:31 | <@Namegduf> | It launched initially with crap all here and is still kind of bad. I use my US proxy to get the US selection now and then. |
21:31 | <&ToxicFrog> | To be fair, they have expanded their selection somewhat. |
21:31 | <&ToxicFrog> | As early as last year it was actually possible to find one movie on it we wanted to watch. |
21:31 | <&ToxicFrog> | No TV shows, though. Or other movies. |
21:32 | <@Namegduf> | I find that odd. |
21:32 | <&ToxicFrog> | So that's an increase from when it launched, when it had basically nothing. |
21:32 | <@Namegduf> | I'm currently watching through Breaking Bad, at the times of my choosing. |
21:32 | <@Namegduf> | I watch them with someone else remotely in hour or so slots they get free. |
21:32 | <@Namegduf> | Torrents are the only real competitor, and they're the fallback. |
21:33 | <&ToxicFrog> | Yeah, and that's the thing. We've tried Netflix and Google Play. As of last month, torrents are faster, much easier, more reliable, higher quality, and have a much better selection. |
21:33 | <@Namegduf> | Google Play for music or for videos? |
21:33 | <&ToxicFrog> | Videos. |
21:33 | <@Namegduf> | Okay. |
21:34 | <@Namegduf> | I don't find torrents faster or easier- I just type "movies." into the URL bar, autocomplete, pick, and I click the one I want and it goes. |
21:34 | <@Namegduf> | They are more reliably available, though. |
21:34 | <@Namegduf> | So I use them as a fallback. |
21:34 | <&ToxicFrog> | type "b <movie name>" into URL bar, click magnet, get notification 5-10 minutes later that the movie is available in the media library. |
21:36 | <&ToxicFrog> | At which point either of us can play it from any device in the house. |
21:40 | < AnnoDomini> | (Debian/Raspi.) I have an external hard drive plugged in via a USB contraption. Where would I find this? It's not in /media. |
21:41 | < RichyB> | AnnoDomini, can vary by distro. "mount | grep '/dev/sd'" will almost certainly tell you |
21:41 | <@Namegduf> | If you have a GUI, open the file browser and pray it's in there, unmounted. |
21:41 | <@Namegduf> | It's common to not automount by default. |
21:41 | <@Namegduf> | And instead for it to be done via integration with such programs, which ask for mounting when you try to open it. |
21:41 | < RichyB> | *assuming an auto-mounter already picked it up. |
21:41 | < RichyB> | *which I have yet to see a linux desktop environment that doesn't do. |
21:42 | <@Namegduf> | RichyB: My experience is that they usually don't "automount" per se, they have the file browser program mount when you open it. |
21:42 | < AnnoDomini> | No GUI. I'm using SSH to talk to it. |
21:42 | <@Namegduf> | RichyB: Which is a largely transparent distinction, presuming you're using the file browser. |
21:43 | <@Namegduf> | Try RichyB's suggested grep command. If it doesn't show up, you'll need to manually mount and for the future install or configure an automounting thing. |
21:43 | < AnnoDomini> | RichyB: That command yields nothing. There are sda and sda1 in /dev. |
21:43 | < RichyB> | AnnoDomini, USB devices will usually show up as /dev/sdb* /dev/sdc* and so on. |
21:44 | <@Namegduf> | They will show up as /dev/sd<letter after your last HDD>, usually. |
21:44 | < RichyB> | If there's nothing like that around, `dmesg | tail` to see if the USB subsystem picked it up. |
21:44 | <@Namegduf> | On an RPi I could expect sda to be its storage. |
21:45 | < RichyB> | Namegduf, uh, maybe you've configured something differently to out-of-the-box? Gnome2 and Gnome3 will immediately mount any USB disk I plug in and pop up a copy of "Nautilus" pointing at it. |
21:45 | < RichyB> | I'm pretty sure that that's a default setting because I didn't configure it. |
21:45 | < RichyB> | Since, like, forever. At least 2008. |
21:45 | <@Namegduf> | RichyB: On my own machine I run XFCE, so yeah. I vaguely recalled Ubuntu LiveCD behaving similarly, though. |
21:45 | < AnnoDomini> | Hmmmm. dmesg has mentions of 'Hitachi', and the drive is made by the company, so I guess it sees it. |
21:46 | <@Namegduf> | That could be because internal HDDs don't have a "plug in" event, though. |
21:46 | < RichyB> | So⦠there should be a new node somewhere in /dev/? |
21:46 | < AnnoDomini> | I don't know about new. The Rpi rebooted for some reason when I plugged it in. |
21:49 | < AnnoDomini> | Hmm. /mnt is empty. |
21:49 | <@Namegduf> | That's not uncommon. |
21:49 | <@Namegduf> | Things in /mnt are rarely autocreated. |
21:50 | <@Namegduf> | /media seems to be accepted as the place for automatically created mount points. |
21:50 | <@Namegduf> | What sd* stuff is there in /dev? |
21:51 | <@Namegduf> | Or hd*? |
21:51 | < AnnoDomini> | sda and sda1. dmesg tells me it attached the Hitachi thing to sda. |
21:51 | <@Namegduf> | Huh. |
21:51 | <@Namegduf> | I wonder where your built-in storage is. |
21:51 | < AnnoDomini> | Me too. :P |
21:51 | < AnnoDomini> | By built-in, you mean the SD card? |
21:51 | <@Namegduf> | Yeah. |
21:53 | | celticminstrel [celticminst@Nightstar-5d0169f9.dsl.bell.ca] has joined #code |
21:53 | | mode/#code [+o celticminstrel] by ChanServ |
21:54 | < AnnoDomini> | Is there some way to tell mount to try to autodetect what filesystem it is mounting? |
21:54 | < AnnoDomini> | I'm almost sure it's NTFS, but not 100%. |
21:57 | < AnnoDomini> | Aha! |
21:57 | < AnnoDomini> | It was actually under sda1, not sda. |
21:58 | < AnnoDomini> | Awright. I have read and write. |
21:58 | < AnnoDomini> | Now to figure out how to automount this. |
22:02 | < AnnoDomini> | relatime? |
22:05 | < AnnoDomini> | OK. |
22:05 | < AnnoDomini> | That should do it. |
22:07 | | Reiv [NSwebIRC@Nightstar-95746c1f.kinect.net.nz] has joined #code |
22:07 | | mode/#code [+o Reiv] by ChanServ |
22:14 | < AnnoDomini> | Hmmm. I want to point nginx and vsftpd at the external drive. |
22:17 | <@Namegduf> | The standard notation is sda for the drive, sda1 for its first partition, sda2 for the second, etc. |
22:18 | <@Namegduf> | It gets more complicated with drives wtihout partition tables, which might just have the drive itself. |
22:27 | < [R]> | Lazy way: ln -s /mnt/ /srv/http/; ln -s /media/ /srv/http/ |
22:27 | < [R]> | Then mount as normal. |
22:28 | < [R]> | (Assuming you're adhering to proper and recent standards and the web root is in /srv/http/ |
22:28 | < AnnoDomini> | That IS a lazy way. :P |
22:45 | < AnnoDomini> | [R]: This solution brings me error 403: Forbidden. |
22:45 | < AnnoDomini> | I've tried changing owners from root, but that did not help. |
22:49 | < [R]> | Whatever you mounted isn't allowing reads from other, so uhh, I'm not entirely sure how you want to go about fixing that. There's a few ways though. |
22:51 | < [R]> | 1) make everything owned by the httpd/ftpd (presumably you've already set them up to have a common group at least) 2) chmod -R o+r /{mnt,media}/*/ 3) Add the ftpd/httpd users into a read-allowed ACL for the files (assuming the FS supports and is configured for ACLs) |
22:51 | <@TheWatcher> | Uh |
22:52 | <@TheWatcher> | Is nginx set up to allow symlinks? |
22:52 | < AnnoDomini> | I don't know. |
22:52 | < AnnoDomini> | I don't know how to use it. |
22:53 | | ErikMesoy is now known as ErikMesoy|sleep |
22:55 | <@TheWatcher> | Hm, apparently the "default" is "disable_symlinks off" (which should follow symlinks), but you might want to check that isn't set to something more restrictive in the config |
22:55 | < AnnoDomini> | Which config is this? |
22:57 | <@TheWatcher> | Dunno, never used nginx, but I'd guess something in /etc/nginx/ |
23:10 | < AnnoDomini> | There is an nginx.conf, but that looks very unhelpful. |
23:10 | < AnnoDomini> | Nothing I can see that would be instantly modifiable to achieve my ends. |
23:10 | < AnnoDomini> | Anyone know nginx around here? |
23:21 | < [R]> | I do |
23:21 | < [R]> | nginx.conf is what you want |
23:23 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has quit [Ping timeout: 121 seconds] |
23:25 | < AnnoDomini> | But what do I write in there? |
23:35 | <&McMartin> | Tsk. |
23:35 | <&McMartin> | Bill Gates apologizes for one of the few Good and Necessary designs in Windows |
23:35 | <&McMartin> | http://www.cnn.com/2013/09/26/tech/innovation/bill-gates-control-alt-delete/ |
23:39 | | Vornicus [vorn@ServerAdministrator.Nightstar.Net] has joined #code |
23:39 | | mode/#code [+qo Vornicus Vornicus] by ChanServ |
23:43 | | You're now known as TheWatcher[T-2] |
23:52 | | * AnnoDomini pokes [R]. |
23:54 | | You're now known as TheWatcher[zZzZ] |
--- Log closed Fri Sep 27 00:00:54 2013 |