7,321 reputation
2348
bio website wolfram.com
location Chesterfield, MO
age 42
visits member for 2 years, 7 months
seen yesterday

I've been with Wolfram Research in some capacity since 1993, and have worked on the Mathematica front end since 1996. While Wolfram tolerates and even occasionally encourages my appearances in user forums like this one, my words (especially the stupid ones) are my own, and I don't speak for Wolfram in an official capacity.

Fun facts: I also like games of all sorts, and I'm a competitive Scrabble® player. I've written various sorts of crossword game-related utilities (some fun, some dead ends, some serious) in Mathematica, and consulted briefly on Wolfram|Alpha's word game content. I also contributed UI code to an open source crossword game simulator called Quackle which is quite the thing in the competitive player community.


May
4
awarded  Outspoken
Apr
29
comment What it is the best way to enforce that only one CreateDialog window can be created?
The issues with Deinitialization timing were just stupid bugs. Which, I believe, are now all fixed in v10. But I don't think the statement about deinitialization only being performed if initialization has been performed is that mysterious. As you know, dynamics may never evaluate. E.g., if they're never scrolled onscreen, or forever live inside of a closed cell group, they might never get resolved. Which means they would never get initialized. Which, the documentation is explaining, means they would never get deinitialized.
Apr
29
comment Effect of Block[] on iterators in Manipulate[]
FYI, I think I've fixed all of the issues with the wonky timing of Deinitialization (for Dynamic, DynamicModule, and all derivative constructs such as Manipulate) for v10.
Apr
10
awarded  Nice Answer
Jan
30
awarded  Yearling
Dec
25
awarded  Enlightened
Dec
25
awarded  Nice Answer
Dec
6
awarded  Nice Answer
Dec
5
awarded  Enlightened
Dec
5
awarded  Nice Answer
Nov
2
answered Add text before TraditionalForm
Nov
2
answered Time constraints on KernelExecute commands or MenuItems?
Oct
29
comment Frontend coloring of Table[x, {x, 0, x}]
That having been said, I do think that the coloring of the DynamicModule case in the answer above is correct. Yes, the code might be correct, but it is confusing and potentially error-prone. A little-understood fact about syntax coloring is that it never colors red illegal code (except after a Shift+Enter syntax fail). Take a look. Every red coloring is legal Mathematica code. But, if we've done our jobs correctly, red coloring is an indication of buggy code on the user's part. I.e., red means you hit an antipattern which often results in the code performing not as you intended.
Oct
29
comment Frontend coloring of Table[x, {x, 0, x}]
FWIW I think that we should be capturing these comparatively minor end-cases. Using the current feature set, though, implementation on WRI's end is time-consuming...too much so for the limited reward per case we capture. But I'm thinking two and three versions ahead, and I'm already laying out plans...
Oct
25
awarded  Necromancer
Oct
22
answered Notebook vs. DocumentNotebook; display a Notebook inline, like a DocumentNotebook
Sep
27
comment FrameLabel and OverTilde
@Szabolcs and et al., I find it bizarre that, with two answers up as I write this comment, one leapt straight to linear syntax/boxes and the other to fixing up ToString. Both answers are correct and sufficient, but surely a solution involving Row is easier to understand and apply to other similar problems.
Sep
17
awarded  Necromancer
Sep
17
comment Convert ImageSize to FieldSize
If you're working with Grid, then for the love of all that is good and holy, don't do it this way. Use Pane to define your constraints, and let Grid just snap itself to the Pane elements.
Sep
15
comment Module Inside ToBoxes or MakeBoxes
Incidentally, I've fixed the lack of proper syntax highlighting on Dynamic@x. In my development version, the non-DynamicModule version now highlights the x red in all appropriate places.