John Robertson

North Salt Lake, UT

john.jersdesk.com

Age: 43

I am a software developer. I am particularly fond of the areas:

  • artificial intelligence, computer vision & machine learning
  • high end graphics & image processing
  • games

As stackoverflow changed their icon in celebration for several days when the US Supreme court unlawfully legislated to make gay marriage legal, I will in turn address the matter in my stackoverflow profile. That is the only way I can, in good conscience, continue to participate in stackoverflow.

I stand by the bible's teachings on the matter of homosexuality. I am a member of the Church of Jesus Christ of Latter-Day Saints, also known as a Mormon. That means I consider homosexuality and related immorality to be a perversion. By contrast I consider marriage to be sacred. The court has no more right to redefine the family than government can change the fact that men are born with God given inalienable rights.

I am also a mathematician.
I quite like interesting games and enjoy playing them with those of my many wonderful children who are old enough. We will often edit what we might find to be sleazy in a game without altering the game play, which quite widens the range of games we can play while staying within what we consider to be gospel standards.

13h
comment Ribs in Slow Cooker, then finished on BBQ?
This is probably grilling blasphemy, but I don't own a grill and I am curious what will be lost if I simply cook them in my oven at 225-275 degrees?
1d
comment Is Mana Weaving ok if it's followed by a thorough shuffle?
Having had a bit more to think about it, if anything, an undershuffled deck that had its mana all in a clump is more likely to have evenly distributed mana than one that had mana spread throughout. That is because randomness is NOT evenly distributed. So much so that facing real randomness, people often attribute the extremely uneven results to "good luck" or "bad luck". Shuffling works by doubling gaps between cards. Until the gaps between mana cards are doubled to the point that they are "lapping" the thickness of the deck the distribution of mana will be more uniform than true randomness.
1d
comment Is Mana Weaving ok if it's followed by a thorough shuffle?
I'm quite dubious that if the shuffle is a tiny bit short of perfect than starting with a mana woven deck offers any meaningful advantage. Shuffling works by roughly doubling the space between cards. Where that gets interesting is as the gaps exceed the thickness of the deck and small differences in initial card position are all over the place. (Shuffling, effectively, uses a form of the butterfly effect to achieve its randomization - with the caveat that new perturbations are added with each shuffle)
Jul
17
comment Javascript mousemove event queue
The 1/10 of a second estimate depends on what you are doing. Human motions that take 1/10 of a second, say in athletics, are visible to a person and are noticeable when missing. A 1/10 second drag behind a moving mouse will be quite noticeable I think. Human speech involves all sorts of bits that are less than 1/10 of a second and that stand out when omitted.
Jul
17
comment How to do time-lapse photography without intervalometer using Nikon D3300?
@martinerk0 Would it be easy to do this from an android phone? That seems far more portable. Taking a quick look at google play I see some wireless intervalometers for android. I don't know if there is a cabled one in there as well (as d3300 doesn't have wireless by default)
Jul
8
comment Is $\frac{\textrm{d}y}{\textrm{d}x}$ not a ratio?
dy/dx is a ratio. It is a ratio of differentials. A differential is a function on vectors, not a function on points.
Jul
6
comment Is $\frac{\textrm{d}y}{\textrm{d}x}$ not a ratio?
Tangent manifold is the tangent bundle. And what it means is that dy and dx are both perfectly well defined functions on the tangent manifold, so we can divide one by the other giving dy/dx. It turns out that the value of dy/dx on a given tangent vector only depends on the base point of that vector. As its value only depends on the base point, we can take dy/dx as really defining a function on original space. By way of analogy, if f(u,v) = 3*u + sin(u) + 7 then even though f is a function of both u and v, since v doesn't affect the output, we can also consider f to be a function of u alone.
Jul
2
comment Precise rules for MTG
No, we bought a box of MTG cards. It is a common starter type box. It came with a fold out set of rules. They were incredibly vague. It was what came with the game, so to speak.
Jun
25
revised How do I select an inline svg by id using d3
added 2 characters in body
Jun
25
asked How do I select an inline svg by id using d3
Jun
24
awarded Famous Question
Jun
23
comment Is there a trick to separate an old photo moisture-fused to glass?
The glass had cracked on one photo, and we recovered quite a bit more near the crack and photo edges. We also went way, way past 20 minutes allowing the edges to fray, as the center was more important. Cracking the glass intentionally poses obvious risks. But I kind of wonder if breaking the glass more before soaking might have actually worked better. Maybe, maybe not, and no way to know offhand.
Jun
23
comment Is there a trick to separate an old photo moisture-fused to glass?
I think it was our best hope and very clever, but we still had a lot that wouldn't separate from the glass.
Jun
22
asked How is depth of field usually measured and how can I get depth of field measurements for a lens
Jun
21
awarded Popular Question
Jun
15
comment How to ensure method calls in a returned object literal use the intended "this"
@cdhowie, Are you sure. I was pretty sure that if I called a function with new then the returned value of the function was ignored UNLESS it was an object, in which case, new will elect to return the object the function returns instead of the object created by the invocation of new. (So, yes, the object initially created by new is actually left for garbage collected)
Jun
15
revised How to ensure method calls in a returned object literal use the intended "this"
added 33 characters in body
Jun
15
revised How to ensure method calls in a returned object literal use the intended "this"
added 209 characters in body
Jun
15
comment How to ensure method calls in a returned object literal use the intended "this"
@cdhowie So I create a number of instances of this object via "new". Call one of them X. Then I want to use X.methodA as a mouse event handler, e.g. I have jquery code that attaches mouseup on a dom element to X.methodA. But that looks like $("#domElementId").mousemove(X.methodA) But when mousemove is called, the "this" variable used in methodA no longer points to X as I understand. Feel free to correct me if I am wrong. Specifically, calls within method A to, say, method B will fail because they have do be done using this.methodB and "this" points to the global object.
Jun
15
comment How to ensure method calls in a returned object literal use the intended "this"
@JamesMontagne .Great clarifying question. I want it to point to the returned object. I suppose I thought that was the typical scenario for this sort of code, and didn't recognize the ambiguity. My fault. I have used javascript all of a month and a half so still sorting things out.
1 2 3 4 5