code logs -> 2013 -> Thu, 26 Sep 2013< code.20130925.log - code.20130927.log >
--- 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
code logs -> 2013 -> Thu, 26 Sep 2013< code.20130925.log - code.20130927.log >

[ Latest log file ]