7,396 reputation
2348
bio website wolfram.com
location Chesterfield, MO
age 43
visits member for 2 years, 9 months
seen Oct 24 at 23:37

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.


Oct
24
comment FlipView can't handle CurrentValue[“MouseOver”]. Kernel crash
Fixed for 10.0.2.
Jul
28
comment Implementing efficient multiple undo
@jtbandes Thanks for the complaint (really!)...that's a pretty decent suggestion. It's odd that I've never tried that before despite the fact that I commonly do it in text editors.
Jul
15
comment How to get the new font in Mathematica 10?
@Szabolcs No. If you give a non-existent font, we let the operating system determine which font to use. The choice is entirely up to the operating system. But once we have a font (whether it matched or not), then we query it to see if it declares itself as being serifed or monospace, and use the appropriate Mathematica font with it. So, the behavior you're seeing is, in part, operating-system-dependent behavior that is outside of our control.
Jul
15
comment Implementing efficient multiple undo
@jVincent Speaking as someone who had to think about every aspect of the system, I'm always seeing lots of bugs and limitations, many of which might be rarely noticed outside of Wolfram. In some cases, things that should be undoable but aren't. In some cases, undo falls over and does the wrong thing (I have significant internal consistency checks that tend to prevent undo from causing harm, but it will stop and wipe the undo stack in such a case). But my own priority/embarrassment list might not match those found by users. So, we'll see what the community judgment is. :)
Jul
10
comment How to get the new font in Mathematica 10?
@Szabolcs I would be dropping nukes if you couldn't tell the difference between l/1/I and 0/O in code. I do wish the web font we're using did a better job of distinguishing l and I (there's a little curve on the bottom of the l, but it's pretty subtle).
Jul
10
comment How to get the new font in Mathematica 10?
Upvote if this describes you: Wait...are you suggesting that you're going to take away my Courier font? You'll have to pry it from my lifeless limbs. It was an inspired choice when Wolfram did it in 1988, and it's no less inspired today.
Jul
10
comment How to get the new font in Mathematica 10?
Upvote if this describes you: Proportional for coding? Are you insane? Do the people who thought this stinker up actually ever write code? There are so many great coding fonts out there today...let's modernize on one of those!
Jul
10
comment How to get the new font in Mathematica 10?
Upvote if this describes you: Proportional is totally the future, and a brilliant break from stodgy tradition! I'm so tired of being kicked around by pseudo-modern coding environments that can't even figure out modern typesetting!
Jul
7
comment How to wait until a Listen mode link gets connected to?
I can absolutely certify that the answer is correct (although incomplete...there is no timeout that I'm aware of). I'll add a bit more technical detail to the Community thread, where you ask slightly different questions and make a misleading assertion. But the answer as I now see it here is correct without qualification.
Jul
6
comment Evaluating an If expression inside Dynamic
@MichaelE2 The first argument of InputField can only be a settable lhs if it's inside of a Dynamic (and, of course, that Dynamic has a sensible setting function). Otherwise, what the FE receives is literally the evaluated argument of the InputField which, in this case, would be InputField[1, Number, Enabled->Dynamic[fuc == "1"]]. The a is long gone.
Jun
3
comment Manipulate: After Changing view of a Graphic, the sliders can't be used anymore
I received an internal bug report indicating that the underlying code was the same as referenced in this question. If so, this is not a bug. The code was something of the form Manipulate[Graphics3D[Cone[], ViewPoint -> RotationMatrix[t, {0, 0, 1}].{1.3, -2.4, 2}], {t, 0, 2 Pi}], and the report was that rotating the graphic causes the slider to be ineffective. If that's the problem here, then it's as designed. Rotating the graphic wipes the ViewPoint option, which breaks the connection with the slider.
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.
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...
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
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.
Sep
15
comment Manipulate and function definition
@Gabriel I'm thinking of Manipulate as a form of DynamicModule. DynamicModule does lexical scoping. It's generally a bad idea to assign a lexically scoped localized variable to a global symbol (as you are assigning h in terms of b). It's difficult to understand, it may not do what you want, and the behavior might change depending upon implementational details. Therefore, I would strongly prefer DynamicModule (and Module) variables to be passed directly as function arguments without side-effect assignments.
Sep
14
comment Module Inside ToBoxes or MakeBoxes
This is exactly what DynamicModule was designed to do, and it is exactly what I've warned against where Module is concerned. In 9.0.1, the code in your question would have colored red to warn you, except for a bug that causes it to not color for Dynamic@x (as opposed to Dynamic[x]).