code logs -> 2014 -> Wed, 22 Jan 2014< code.20140121.log - code.20140123.log >
--- Log opened Wed Jan 22 00:00:28 2014
00:05 Orth [Orthia@Nightstar-5m8.1ee.224.119.IP] has quit [Connection reset by peer]
00:05 Orth [Orthia@Nightstar-5m8.1ee.224.119.IP] has joined #code
00:05 Orth [Orthia@Nightstar-5m8.1ee.224.119.IP] has quit [Connection reset by peer]
00:05 Orth [Orthia@Nightstar-5m8.1ee.224.119.IP] has joined #code
00:06 Orth [Orthia@Nightstar-5m8.1ee.224.119.IP] has quit [Connection closed]
00:06 Orth [Orthia@Nightstar-5m8.1ee.224.119.IP] has joined #code
00:35
<@gnolam>
http://stackoverflow.com/questions/21186724/have-i-tattooed-a-syntax-error-on-my -arm
00:43 Turaiel[Offline] is now known as Turaiel
00:45 Derakon[AFK] is now known as Derakon
00:59
<@simon_>
gnolam, I'd prefer my tattoos to be sh-compatible.
01:03 You're now known as TheWatcher[T-2]
01:08 You're now known as TheWatcher[zZzZ]
01:36
< JustBob>
I recommend this tattoo: http://i.imgur.com/PtppuKp.png
01:37 Turaiel is now known as Turaiel[Offline]
01:37
<@Shiz>
if you're a smug elitist prick, sure
01:37
< JustBob>
Oddly enough, I am.
01:37 Turaiel[Offline] is now known as Turaiel
01:37
<@simon_>
I prefer not to bash on people who suck at math :)
01:37
< JustBob>
Oh, and an arrogant member of the establishment, too.
01:38
<@simon_>
lim_{1->2} = 2
01:38
< JustBob>
The only thing that would perfect my trifecta of awesomeness would be to be white.
01:38
< JustBob>
And even then, being yellow is a good substitute.
01:38
<@simon_>
I always put that limit on the blackboard at home to annoy my flatmate :)
01:39
<@simon_>
it's like the "2 + 2 = 5, for very large values of 2"
01:40
< JustBob>
Well, 1 + 1 = 10, as we all know.
01:40
< JustBob>
Of course, logically, 2 + 2 = 5.
01:41
< JustBob>
After all, if you double one side, you must halve the other. ¬.¬
01:42
<@Reiv>
... what
01:42
< JustBob>
The principle of reprocipical equality.
01:42
<@simon_>
the principle of mixing base-2 with base-a, rather?
01:43
< JustBob>
The principle of using poorly constructed logic to justify why 1 + 1 = 10 means 2 + 2 = 5.
01:46
<@Reiv>
Right.
01:48 * JustBob absently has this mental image of a factory in China, with thousands of workers hunched over abaci, computing cryptocurrency equations. One moment, rebooting perspective of the world.
01:49
<&ToxicFrog>
I read a short story about that.
01:51
< thalass>
Graphics cards used for bitcoin mining are filled with tiny little people?
01:51
<@simon_>
well, when GPU mining becomes too expensive, the chinese will take over.
01:52
<&ToxicFrog>
It's become too expensive already. Everyone moved to ASICs a while ago except people on fixed utilities.
01:52
<@simon_>
right.
01:53 * simon_ did a benchmark of a Windows Azure instance and found out its memory performs really poorly. I wonder why.
01:58 AbuDhabi1 [AbuDhabi@Nightstar-1q2q7e.tmi.telenormobil.no] has joined #code
02:00 AbuDhabi_ [AbuDhabi@Nightstar-1q2q7e.tmi.telenormobil.no] has quit [Ping timeout: 121 seconds]
02:08
<@simon_>
http://stackoverflow.com/questions/21263354/memory-benchmarks-on-azure
02:12 Orth [Orthia@Nightstar-5m8.1ee.224.119.IP] has quit [Connection closed]
02:12 Orth [Orthia@Nightstar-5m8.1ee.224.119.IP] has joined #code
02:37 Turaiel is now known as Turaiel[Offline]
02:47 Turaiel[Offline] is now known as Turaiel
02:57
<@Reiv>
How long will ASICs last?
03:01 Orth [Orthia@Nightstar-5m8.1ee.224.119.IP] has quit [Connection reset by peer]
03:01 Orth [Orthia@Nightstar-5m8.1ee.224.119.IP] has joined #code
03:02 Orth [Orthia@Nightstar-5m8.1ee.224.119.IP] has quit [Connection closed]
03:02 Orth [Orthia@Nightstar-5m8.1ee.224.119.IP] has joined #code
03:16
<@Shiz>
https://github.com/Tinty/Tokdo/blob/master/src/Library.java
03:16
<@Shiz>
I'm sorry.
03:17
<@Shiz>
I'm so sorry for linking this.
03:30 Kindamoody[zZz] is now known as Kindamoody
03:44
<@simon_>
one can not have too many dimensions of strings.
03:44
<@simon_>
;-)
03:47 VirusJTG_ [VirusJTG@Nightstar-6i5vf7.sta.comporium.net] has quit [[NS] Quit: Program Shutting down]
04:25
<@celticminstrel>
What? Code that uses an array of more than three dimensions? Astounding!
04:39
<~Vornicus>
Someone on the network used a 6-dimensional array for doing analysis on D&D characters. I told him he was being silly
04:43
<@celticminstrel>
I find it hard to imagine an array of dimension greater than 3 not being silly.
04:44
<@celticminstrel>
Maybe if you're doing something strange like mapping out a tesseract.
04:46 OrthDroid [Orthia@Nightstar-5m8.1ee.224.119.IP] has joined #code
04:46 Orth [Orthia@Nightstar-5m8.1ee.224.119.IP] has quit [Connection reset by peer]
05:01 Orth [Orthia@Nightstar-5m8.1ee.224.119.IP] has joined #code
05:01 OrthDroid [Orthia@Nightstar-5m8.1ee.224.119.IP] has quit [Connection closed]
05:01 Red_Queen [Z@Nightstar-484uip.cust.comxnet.dk] has joined #code
05:04 Derakon is now known as Derakon[AFK]
05:09 macdjord [macdjord@Nightstar-c0i1dq.cable.rogers.com] has quit [[NS] Quit: "Too long have night and day warred, their false dichotomy plaguing this land. No more. I come now to put them both down, to usher in a new era of balance and peace. For now is the time of... /Twilight/. *And the Dusk shall Reign Eternal.*"]
05:20 macdjord [macdjord@Nightstar-c0i1dq.cable.rogers.com] has joined #code
05:25 ErikMesoy|sleep is now known as ErikMesoy
05:42 Reiv [NSwebIRC@Nightstar-q8avec.kinect.net.nz] has quit [Ping timeout: 121 seconds]
05:43
< JustBob>
http://i.imgur.com/dAtcCfH.gif <- Well, this brought back nightmares of QBasic snake.
05:44 Harlow [harlow@Nightstar-9hnfdm.il.comcast.net] has joined #code
05:46
<&McMartin>
Nice
05:52
< Harlow>
What would be a good name for a new checksum method?
05:55
< thalass>
Bob: I refuse to believe a human is capable of that.
06:09 celticminstrel [celticminst@Nightstar-mhtogh.dsl.bell.ca] has quit [Connection closed]
06:09 celticminstrel [celticminst@Nightstar-mhtogh.dsl.bell.ca] has joined #code
06:09 mode/#code [+o celticminstrel] by ChanServ
06:09 RichyB [RichyB@Nightstar-c6u.vd5.170.83.IP] has quit [[NS] Quit: Gone.]
06:13 RichyB [RichyB@Nightstar-c6u.vd5.170.83.IP] has joined #code
06:15 Kindamoody is now known as Kindamoody[zZz]
06:35 Turaiel is now known as Turaiel[Offline]
06:43 Harlow [harlow@Nightstar-9hnfdm.il.comcast.net] has quit [[NS] Quit: Leaving]
06:55 celticminstrel [celticminst@Nightstar-mhtogh.dsl.bell.ca] has quit [[NS] Quit: And lo! The computer falls into a deep sleep, to awake again some other day!]
07:10 Erik [8f610223@Nightstar-obfcgl.mibbit.com] has joined #code
07:30
<~Vornicus>
thal: I won snake several times
07:31
<~Vornicus>
Usually though I'd left adhoc paths behind long before that though so it was just muscle memory
07:32
<~Vornicus>
celmin: simple 5d array: minecraft regions.
07:32
<~Vornicus>
2 dimensions of chunks, each with 3 dimensions of voxels
09:04
< Erik>
I feel like a kid swinging around a lightsaber trying to learn itertools
09:07
< Erik>
Even the documentation involves explaining how it works by means of other elegant weapons from a more civilized age, like **kwargs
09:10 You're now known as TheWatcher
09:17
<~Vornicus>
It's a rare module of mine that doesn't import itertools
09:17
<~Vornicus>
This might be because I do strange things, but I think it more likely that it's simply because itertools does all sorts of cool things
09:22
< Erik>
So far I have figured out how to use itertools.product() to replace a nested for-loop of the form "for i in range(5): for j in range(10):" etc, which iterates over an array or the like. Next, I want to figure out how to use product() for arbitrarily deep loop nesting.
09:25
<~Vornicus>
use repeat
09:25
<~Vornicus>
or, if you have varying sizes (but known beforehand), use product(*sizes)
09:26
<~Vornicus>
well, no, have to fix that
09:26
< Erik>
They are varying sizes that are not known beforehand. But one step at a time. >_<
09:26
<~Vornicus>
it's something like product(range(size) for size in sizes)
09:26
<~Vornicus>
okay that is outside of product's realm
09:28
< Erik>
http://pastebin.starforge.co.uk/617 <-- This is the 4-deep case, I am trying to write an N-deep case that will go through the right amount of for-loops programmatically.
09:28
< Erik>
Also, since doc_A is an iterator variable, this means that LinkIndex[doc_A] will change repeatedly, which is why doc_B is going through something of varying sizes not known beforehand.
09:37
< Erik>
Strictly as an existence proof of the possibility of doing this, I could do it by generating for loops out of strings (for char in 'ABCDEFGHIJKL'[0:N] create string "for doc_"+char) and using eval(), but I promise not to use eval().
09:41
<~Vornicus>
An undirected graph has a cycle if and only if a depth-first search (DFS) finds an edge that points to an already-visited vertex (a back edge).[2] Equivalently, all the back edges, which DFS skips over, are part of cycles.[3] In the case of undirected graphs, only O(n) time is required, since at most n â 1 edges can be tree edges (where n is the number of vertices).
09:41
<~Vornicus>
Use depth-first search; any back edge is part of a cycle.
09:43 OrthDroid [Orthia@Nightstar-5m8.1ee.224.119.IP] has joined #code
09:43 Orth [Orthia@Nightstar-5m8.1ee.224.119.IP] has quit [Connection closed]
09:44
< Erik>
But this is a directed graph.
09:45
<~Vornicus>
Doesn't matter.
09:46
<~Vornicus>
DFS works on both.
09:46
<~Vornicus>
Only the complexity analysis depends on whether the graph is directed or not.
09:48
< Erik>
I'm trying to list the cycles; it sounds like you're telling me how to check for the presence of cycles.
09:49
<~Vornicus>
Hm, let me show you an example.
09:49
<~Vornicus>
let's say there's a graph that goes a-b-c-d-e-b
09:51
<~Vornicus>
you start with A, since A doesn't have anything that refers to it. A talks about B, so you put in your edge dictionary B: A; then B talks about C, so C: B; then D: C, then E: D... and then the next one would be B: E but that doesn't work, because there's already a B in the links dictionary.
09:52
<~Vornicus>
So you go back through the (backwards) links dictionary, until you find B: E -> D -> C -> B. Thus, B C D E is a cycle.
09:55 * Vornicus thinks at it, because he feels like he might have missed something that would prevent this from listing at the very least some large set of cycles
09:55
< Erik>
What if the graph goes a-b-c-d-e-b-b?
09:57
<~Vornicus>
So that e links to b, and b links to both b and c?
09:57
< Erik>
I'm worried that it'll either not list both of (BCDE, B) or else start spouting nonsense like (B, BB, BBB, BBBB... BCDEB, BCDEBB, BCDEBBB...)
09:57
< Erik>
Vornicus: Yes.
09:57
<~Vornicus>
Give me a few moments to think at it; you would never actually /follow/ a backlink, though, so the nonsense wouldn't happen
09:58 * TheWatcher pokes forlornly at the Twitter API
09:59
< Erik>
If the links dictionary is copied separately to each path in the depth-first search... or deleted on backtracking to try a new path...
09:59
<~Vornicus>
Give me a moment to write some code.
10:04
< Erik>
Here are cases of what I want to generalize for N=3,4,5: http://pastebin.starforge.co.uk/618
10:05
< Erik>
The sheer redundancy suggests to me there must be a general form; it just seems to require a very powerful generator
10:06 Syka [the@Nightstar-pup.b2h.151.1.IP] has joined #code
10:06
<~Vornicus>
Maintain your own stack; that's currently what I'm up to writing.
10:06
<@TheWatcher>
Godsdamnit, they don't expose the autocomplete stuff
10:07
< Erik>
I'm not sure how to interpret "Maintain your own stack".
10:07
< Erik>
Are you literally suggesting that I use a stack in my program, or are you telling me that I should leave off pestering you to write my code?
10:09
<~Vornicus>
Let me finish writing my own and I'll show you.
10:10
<~Vornicus>
reading that code: why do you insist that the cycles be in strictly ascending order?
10:12
< Erik>
To help eliminate duplicates. A cycle will only be printed starting with its greatest element.
10:12
< Erik>
It also weeds out 1-cycles posing as longer cycles (B-B-B-B fails the B > B test)
10:14
<~Vornicus>
Yes but --
10:14
<~Vornicus>
neh, I'll just code mine and see what happens.
10:15
< Erik>
Oh, I see the "but" now. It won't find cycles of the form 1-4-2-3 because they can't be rotated into order.
10:21 * TheWatcher eyes this
10:21
<@TheWatcher>
"disincluded"
10:21 * TheWatcher twitch
10:22
<@TheWatcher>
That's in the official bloody twitter api docs, gah
10:22
< Erik>
The gamification (luded) was not (dis) done by a corporation (inc) like Zynga any more? :p
10:24 * TheWatcher twitch
10:25
<~Vornicus>
http://pastebin.starforge.co.uk/619
10:26
<~Vornicus>
This outputs, for me, "cycle b" and "cycle e, b, c, d"
10:26
<@TheWatcher>
Anyway, it looks like I can just periodically slurp api.twitter.com/1.1/friends/list and api.twitter.com/1.1/followers/list into a local cache, and do autocomplete on usernames myself... but that leaves hashtags. Ugh.
10:29
<~Vornicus>
Note that this can take a while; you're looking at O(nodes * edges) for this method.
10:29
< Erik>
Yeah, that's going to be several million in my case.
10:34 * Erik gets to adapting anyway; that's going to be interesting to use regardless
10:34
<~Vornicus>
There are of course major improvements that can be made; since we're insisting on only marking cycles when the king node is highest, we can skip edges that would take us to higher nodes
10:38 OrthDroid [Orthia@Nightstar-5m8.1ee.224.119.IP] has quit [Connection reset by peer]
10:43 * Vornicus thinks
10:48
<~Vornicus>
You could ignore the king node requirement and that could potentially reduce it a lot but there's some potential issues in missing some cycles.
10:52
< Erik>
Fuuuuck. Fuckety-fuckety-fuck. I think I found out what's been making some of the calculations seem so loopy, and given me a hard time identifying or counting duplicates properly.
10:52
< Erik>
Some of the nodes have more than one path directly to another node.
10:53
< Erik>
If there are two paths from A to B, one path from B to C, and two paths from C to A, then "A-B-C" is going to appear four times in the cycle list.
10:53
<~Vornicus>
Like you have a: [b, b]? Or you have a: [b, c], b: [d], c: [d]
10:53
< Erik>
a: [b,b]
10:53
<~Vornicus>
That shouldn't be a problem with my code.
10:54
< Erik>
Welp, your code is returning duplicates (same as my did, one of the things that vexed me endlessly) and I checked several of the duplicate cycles and found that a node in each had duplicate paths to the next.
10:54
<~Vornicus>
That surprises me greatly.
10:54
<~Vornicus>
oh, wait, no it doesn't.
10:55
<~Vornicus>
list(set(pile)) is pile with duplicates removed; it does not however preserve order.
10:55
<~Vornicus>
(my program requires an indexable to work; it can probably be changed to an iterable but not in my mental state)
10:56
< Erik>
I swear I'm reimplementing half of graph theory as I realize just how much of a degenerate, ill-behaved graph I'm dealing with.
10:56
< Erik>
Cyclic paths. Nodes with paths to themselves. Nodes with duplicate (and equal-length) paths to other nodes.
10:57
<@TheWatcher>
I propose an alternative solution:
10:57
<@TheWatcher>
Accidental EMP event.
10:57
< Erik>
And of course the paths to "V".
10:57
< Erik>
TheWatcher: Considering the degree of incompetence that's been hanging around in this system previously...
10:57
<@Azash>
Where do I vote TheWatcher for president?
11:00 * Erik experiences a brief fit of morbid laughter from the stress.
11:01
< Erik>
Vornicus: "That surprises me greatly." "oh, wait, no it doesn't." http://www.bash.org/?950581
11:02
< Erik>
Anyway, I think I can fix this by punching INDEX and leaving the rest of the code intact.
11:02
< Erik>
*LINKS.
11:03
<~Vornicus>
Yep
11:05
< Erik>
LINKS is currently a defaultdict(list), and is built with append(). Obvious first pass is to convert it to defaultdict(set) and build with add(). Any traps I'm missing here?
11:06
< RichyB>
One potential trap to be aware of. If you iterate the members of a set, you'll get them in hash order. In recent Python versions, the hash order will change on *every program run*.
11:06
<~Vornicus>
The big one is I index it like a list or tuple
11:07
<~Vornicus>
You can't index a set
11:07
<~Vornicus>
you will have to replace the indexes with iterators and nextify them appropriately.
11:07
< Erik>
hmm, bah
11:07
< RichyB>
So when you switch from list() to set(), you need to be careful to make sure that your program does not care about the order that it walks any given adjacency list, unless it sorts it itself.
11:09
< Erik>
Plan B: I pipe the output of cycle listings via a set.
11:09
<~Vornicus>
In this case we don't care aout hash order
11:10
<~Vornicus>
oh, plan c: instead of target.append(thing): if thing not in target: target.append(thing)
11:11
<~Vornicus>
Increases complexity based on size of target
11:13
<~Vornicus>
but something tells me that segment is io-bound anyway
11:14
< RichyB>
target.append(thing) is O(1), "thing not in target" is O(len(target))
11:14
< RichyB>
not a big deal if len(target) never gets interestingly big
11:21
< Erik>
Eh, it runs in minutes here.
11:21 * Erik has found an 18-cycle as the longest cycle of unique nodes in this mess.
11:21
< Erik>
Second longest 12.
11:23
<~Vornicus>
hooray, it worked on a non-toy dataset
11:25
< RichyB>
pfft
11:26
< RichyB>
All data sets are toys except for atmospheric re-entry sensor readings. ;P
11:30
<~Vornicus>
anyway, bedtime. Have fun, erik
11:30
< Erik>
thanks
11:32 Vornicus [Vorn@Nightstar-sn7kve.sd.cox.net] has quit [Connection closed]
11:41
< Erik>
I'm not sure what's awesome of the hand-aligned HTML tables bulging with &nbsp; or the fake-links to places like "v" and "http://v".
11:42
< Erik>
*awesomer
11:42
< Erik>
This place is full of Fun.
11:42
< RichyB>
Definitely the latter
11:42
< RichyB>
wait, no, the former
11:42
< RichyB>
what?
11:43
<@TheWatcher>
...
11:43
< RichyB>
HTML <table>s are fucking easy to set up grid layouts with. They even let you center objects horizontally or vertically with no fuss. Why would anyone need to insert runs of &nbsp;s to hand-align things on top of that?
11:43
<@TheWatcher>
:watman:
11:43
<@TheWatcher>
RichyB: Incompetent People.
11:45
< Erik>
Computer-illiterate people, more like.
11:46
< Erik>
They're probably competent at their primary job of raising squeezles or mining unobtainium or whatever.
11:47
< Erik>
To clarify: there is no <table> tag. The &nbsp; are the only alignment thing, they aren't "on top of" a <table>.
11:47
< RichyB>
Erik, this is a fair point for anything that isn't commercial software.
11:48
< Erik>
When I say "hand-aligned HTML tables" I mean pretty columns of text and numbers in HTML.
11:49
<@TheWatcher>
...
11:50
< Erik>
RichyB: I'm not at a commercial software company, I'm contracting for the record-keeping department of an international unobtainium company.
11:53
< RichyB>
Erik, right, so we are in agreement that this is a good place to merely facepalm rather than waving accusations of idiocy around. :)
11:56
< Erik>
RichyB: I would like to reserve some accusations of idiocy for the person who decided that a document should contain multiple hyperlinks to itself.
11:57
< Erik>
A Word document, that is.
11:59
< RichyB>
Now that depends. Is this a person who is actually idioticâ¦
11:59
< RichyB>
â¦or a person who is merely incompetent at document archival, because their competence lies elsewhere in, say, writing words for putting into documents? âº
12:00
< Erik>
It takes a measure of competence to acquire a document's URL and correctly paste that address into the document (rather than pasting V because you released Ctrl), so...
12:01
< Erik>
I just work here, man. *shrug*
12:32 Syka [the@Nightstar-pup.b2h.151.1.IP] has quit [Ping timeout: 121 seconds]
12:35 Syka [the@Nightstar-pup.b2h.151.1.IP] has joined #code
12:46 * Erik suddenly realizes the use of lambdas!
12:47
< RichyB>
confusing the fuck out of people!
12:47
< Erik>
Sorting on items that I can't refer to directly.
12:47
< RichyB>
or actually, defining functions, but whatever. :)
12:47
< Erik>
And confusing the fuck out of people. :P
12:48
< Erik>
Sorting a list of items: list.sort(key = lambda item:item.count(","))
12:48
< RichyB>
e.g. some_list.sort(key=lambda element: element.some_property) # is clear
12:48
< Erik>
I couldn't figure out how to refer to "item" inside there otherwise.
12:48
< RichyB>
def get_some_property(element): return element.some_property
12:48
< RichyB>
some_list.sort(key=get_some_property)
12:49
< RichyB>
# splitting that over two (or three, depending on how you feel about indentation) lines just ruins it.
12:49
<@TheWatcher>
# And people bitch about perl~
12:51
< RichyB>
Erik, but yes, lambdas and function arguments let you pass in a bit of behaviour (like "how to pick the attribute by which this list will be sorted").
12:51
< Erik>
I found it very handy to use sort(lambda) to get nonobvious attributes.
12:52
< RichyB>
That's explicitly what it's there for.
12:52
< Erik>
Being inside sort()?
12:53
< RichyB>
Anything that resembles sort().
12:53
< Erik>
When I first encountered lambda in Python, I don't recall that being mentioned, and I though "oh, it's just a funny way of defining a function for people who are anal about line counter".
12:53
< Erik>
*thought
12:54 * TheWatcher is actually being serious here, not facetious, so:
12:54
< RichyB>
e.g. @cache(cache_key=lambda request: (request.url, time.time() % 3600)) # kind of thing
12:55
<@TheWatcher>
So they're essentially like the block in ' @sorted = sort { $a -> some_property cmp $b -> some_property } @unsorted; '?
12:55
< RichyB>
Yes.
12:55
<@TheWatcher>
Neat, good to know, thanks.
12:56
< RichyB>
Python's sorted() and list.sort() take either of two kwargs: (key=lambda element: element.sort_on_me), or (cmp=lambda e1 e2: e1 - e2).
12:56 Syka [the@Nightstar-pup.b2h.151.1.IP] has quit [Ping timeout: 121 seconds]
12:57
< RichyB>
Usually the key extraction function is simpler than the comparison function.
12:58 Syka [the@Nightstar-55n.6ub.126.1.IP] has joined #code
13:52 AbuDhabi1 [AbuDhabi@Nightstar-1q2q7e.tmi.telenormobil.no] has quit [Connection closed]
13:55 AbuDhabi_ [AbuDhabi@Nightstar-dpjndf.bb.online.no] has joined #code
14:06 AbuDhabi_ [AbuDhabi@Nightstar-dpjndf.bb.online.no] has quit [Ping timeout: 121 seconds]
14:20 AbuDhabi_ [AbuDhabi@Nightstar-dpjndf.bb.online.no] has joined #code
14:35 Erik [8f610223@Nightstar-obfcgl.mibbit.com] has quit [[NS] Quit: Going home.]
14:39 AbuDhabi_ [AbuDhabi@Nightstar-dpjndf.bb.online.no] has quit [Ping timeout: 121 seconds]
14:39 AbuDhabi1 [AbuDhabi@Nightstar-1q2q7e.tmi.telenormobil.no] has joined #code
15:31 Syka [the@Nightstar-55n.6ub.126.1.IP] has quit [[NS] Quit: lol 3g]
15:59 Red_Queen [Z@Nightstar-484uip.cust.comxnet.dk] has quit [Ping timeout: 121 seconds]
16:25 Red_Queen [Z@Nightstar-ro94ms.balk.dk] has joined #code
17:37 Turaiel[Offline] is now known as Turaiel
18:01 Turaiel is now known as Turaiel[Offline]
18:40 iospace is now known as io\interview
19:02 Kindamoody[zZz] is now known as Kindamoody
19:31 Vornicus [Vorn@Nightstar-sn7kve.sd.cox.net] has joined #code
19:31 mode/#code [+qo Vornicus Vornicus] by ChanServ
19:54
<&McMartin>
Wow. I've heard bad things about Seagate in the past, but this is pretty dramatic
19:54
<&McMartin>
http://arstechnica.com/information-technology/2014/01/putting-hard-drive-reliabi lity-to-the-test-shows-not-all-disks-are-equal/
19:56
<&McMartin>
(Though as the article notes, even with this in RAID situations it's still cost-effective)
20:04
<@Namegduf>
Low power drives which aggressively spin down have hideous failure rates under load in general.
20:04
<@Namegduf>
I've heard some Western Digital ones had awful reliability for another server provider.
20:04
<@Namegduf>
I wonder if Backblaze had any WD low power (Green?) drives.
20:05
<@Namegduf>
Oh, they mention their WD 3TB drives were one of the two along with the Seagate LP drives to suck.
20:07
<@Namegduf>
Apparently only some, though?
20:09
<@Namegduf>
Yeah, the Extremetech article is better.
20:09
<&McMartin>
Do you have a link to that?
20:10 * McMartin is kind of a babe in the woods with this stuff in terms of non-anecdotal things
20:10
<@Namegduf>
Ars links it in the first paragraph.
20:10
<@Namegduf>
http://www.extremetech.com/extreme/175089-who-makes-the-most-reliable-hard-drive s
20:10
<@Namegduf>
It says WD Green 3TB drives suck, but gives good performance for WD 3TB as a whole, so they presumably aren't most of their WD 3TB drives total.
20:10
<@Namegduf>
"Backblaze also notes that some drives (the Western Digital Green 3TB and Seagate Barracuda LP 2TB) start producing errors as soon as theyâre slotted into a storage pod. They think this is due to the large amounts of vibration caused by thousands of other hard drives. "
20:11
<@Namegduf>
"(They also think that their aggressive spin-down setting, which is ostensibly to save power, causes a lot of wear to the drive.)"
20:11 * Namegduf wouldn't ever buy a WD Green.
20:12
<@Namegduf>
Probably they didn't put any of either in production. If I dig deeper to http://blog.backblaze.com/2014/01/21/what-hard-drive-should-i-buy/ they say they test a pod full of the drives first, and given that reported issue I guess they probably never actually used them.
20:13
<@Namegduf>
Ah, and it lists that they were excluded as just too shit.
20:13
<@Namegduf>
So the terrible Seagate performance is unrelated to LP drives.
20:14
<@Namegduf>
Haha.
20:15
<@Namegduf>
"Annual Failure Rate: 120%"
20:15
<@Namegduf>
Seagate apparently gives you really, really crap drives as warranty replacements.
20:16
<@Tamber>
Yeouch.
20:31 Vornicus [Vorn@Nightstar-sn7kve.sd.cox.net] has quit [Connection reset by peer]
20:35
< thalass>
...
20:41 io\interview is now known as iospace
20:55 Kindamoody is now known as Kindamoody[zZz]
21:25 celticminstrel [celticminst@Nightstar-mhtogh.dsl.bell.ca] has joined #code
21:25 mode/#code [+o celticminstrel] by ChanServ
21:40 Red_Queen [Z@Nightstar-ro94ms.balk.dk] has quit [Ping timeout: 121 seconds]
22:05 Turaiel[Offline] is now known as Turaiel
22:06
< ErikMesoy>
Is there a special place in hell reserved for people whose pixel art threatens to overheat the CPU?
22:07
<@gnolam>
Yes.
22:07
< ErikMesoy>
I am slightly outraged that this indie pixel art game is taxing the computer significantly harder than Dungeons&Dragons Online.
22:07
<@gnolam>
But it's on one of the upper levels. It's not like the hell that awaits people who do layout in javascript instead of CSS, for example.
22:09
<&McMartin>
ErikMesoy: Erm
22:09
<&McMartin>
Modern 3D games are lighter on the CPU than anything that's truly doing pixelwork
22:10
< ErikMesoy>
McMartin: http://i.imgur.com/DaAO3Nk.png
22:10
< ErikMesoy>
The monster in the background is animated with a two-frame animation.
22:11 Turaiel is now known as Turaiel[Offline]
22:11
< ErikMesoy>
This shouldn't be "work".
22:11
<&McMartin>
Lots of things aren't work but are charged as such
22:12
<&McMartin>
I can think of a one-line change that will change something like that (or even a completely static image) from 0.5% CPU to 100% CPU.
22:13
< ErikMesoy>
Lemme guess, something like failure to vsync or aggressively redrawing at maximum possible speed?
22:13
<&McMartin>
Those would work, but I was thinking of spinlocking instead of sleeping while waiting for the next frame
22:13
< ErikMesoy>
Either way, these "special" graphics are completely failing to do one of the things where they should have an incredible amount of advantage: NOT TAXING THE COMPUTER.
22:13
<&McMartin>
Even there, you might be surprised
22:13
<&McMartin>
"the" computer being the sticking point
22:14
<&McMartin>
Actually handcrafting your pixels is more expensive than just submitting geometry. UQM costs more CPU in "pure framebuffer" mode than it does in OpenGL mode.
22:14
<&McMartin>
It doesn't matter that many of the pixels are the same. (In fact, if they're rescaling it every frame, it's going to cost more, another major place GPUs Just Win)
22:15
<&McMartin>
A distressing number of framebuffer libraries also require you to do a complete redraw every frame even if nothing has changed
22:15
< ErikMesoy>
McMartin: Oh, it's heating up the GPU too.
22:16
<&McMartin>
I'd guess Vsync or similar issues then
22:17
<&McMartin>
(Probably not literally vsync)
22:17
< ErikMesoy>
This two-frame-battle-animation indie game is managing to eat an entire core while simultaneously cranking the GPU up by an amount that I can't directly measure, but results in +20C on the GPU temp.
22:17
<&McMartin>
Yeah, that's almost certainly "let's run at 8,000 FPS"
22:18
<&McMartin>
But the terrible graphics aren't an issue anymore; rendering that with optimum efficiency costs exactly as much as rendering a photograph
22:19
<&McMartin>
While an NES emulator would bump that up because SuperSaI and cubic audio interpolation are genuinely expensive.
22:19
< ErikMesoy>
What, do we assume it's using .bmp files where every pixel is stored individually?
22:19
<&McMartin>
Um, no, I'm assuming that Windows is saying "here is an 800x600 array for you to fill with color values"
22:19 himi [fow035@Nightstar-v37cpe.internode.on.net] has quit [Ping timeout: 121 seconds]
22:20
< ErikMesoy>
Aha
22:20
<&McMartin>
And that Windows is also saying "and I'm not handing you the last thing you handed me, so recopy everything plox"
22:21
<&McMartin>
Which is a "feature" because alt-tabbing out of a direct-graphics program tends to reset the state of things, and nobody handles that right~
22:21
<&McMartin>
(My vague understanding is that as of Vista they changed some of their usermode APIs to make this less devastating than it used to be for 3D stuff)
22:22
<&McMartin>
But if the GPU is heating up for what is basically "here is one quad with a big old texture" that implies to me that it's doing it too frequently, so some mix of "no vsync" or "never sleeps" seems the most likely
22:23
<&McMartin>
(Animation speed is kind of less of an issue because slow animations will need periodic redraws anyway because you might have been occluded by some other window or w/e. Any update speed below about 20Hz can be noticable to desktop users, if I remember my rules of thumb)
22:23
<&McMartin>
(By which I mostly mean 'dicking around with GameMaker')
22:30 ErikMesoy is now known as ErikMesoy|sleep
22:45 Turaiel[Offline] is now known as Turaiel
22:49 Reiv [NSwebIRC@Nightstar-q8avec.kinect.net.nz] has joined #code
22:50 mode/#code [+o Reiv] by ChanServ
22:52 Turaiel is now known as Turaiel[Offline]
22:58 Turaiel[Offline] is now known as Turaiel
22:59 Turaiel is now known as Turaiel[Offline]
23:01 Turaiel[Offline] is now known as Turaiel
23:17 Turaiel is now known as Turaiel[Offline]
23:27 VirusJTG [VirusJTG@Nightstar-6i5vf7.sta.comporium.net] has joined #code
23:48 himi [fow035@Nightstar-q9amk4.ffp.csiro.au] has joined #code
23:48 mode/#code [+o himi] by ChanServ
--- Log closed Thu Jan 23 00:00:44 2014
code logs -> 2014 -> Wed, 22 Jan 2014< code.20140121.log - code.20140123.log >

[ Latest log file ]