- news, blogs, comprehensive
- Wolfram: @WolframResearch
- Wolfram Japan: @WolframJapan
- Wolfram China: @WolframChina
- Wolfram Education: @WolframEdu
- Wolfram Careers: @WolframCareers
- Stephen Wolfram: @stephen_wolfram
- Conrad Wolfram: @conradwolfram
- Wolfram NKS: @WolframNKS
- Wolfram Blog
- Stephen Wolfram Blog

- Wolfram Language / Mathematica
- MathematicaTip: @MathematicaTip
- Mathematica SE: @StackMma
- Tweet-a-Program: @wolframtap, archive on Tumblr
- Mathematica Cookbook: @salmangano
- Wolfram Tip: @WolframTip
- Sina Weibo:
- 面向教育的Mathematica: @面向教育的Mathematica
- Mathematica_李想: @Mathematica_李想
- Mathematica 中文使用者: @Mathematica中文使用者
- Wolfram 语言编程珠玑: @WolframTip

- Mathematica StackExchange community blog

- Wolfram|Alpha
- Wolfram|Alpha: @Wolfram_Alpha
- Wolfram Fun Facts: @WolframFunFacts
- Wolfram|Alpha Can't: @wacnt
- WolframAlpha queries: @WA_queries
- Wolfram_Alpha: @Wolfram_Alpha
- Wolfram|Alpha Tumblr
- Wolfram|Alpha blog

Some interesting Web sites to check out on this very special day -- Pi day:

In Wolfram Language / Mathematica, there are the following
escaped characters that end with `Space`

:

```
$WhiteSpaceCharacters = {
"\[AutoSpace]",
"\[COMPATIBILITYKanjiSpace]",
"\[InvisibleSpace]",
"\[LetterSpace]",
"\[MediumSpace]",
"\[NegativeMediumSpace]",
"\[NegativeThickSpace]",
"\[NegativeThinSpace]",
"\[NegativeVeryThinSpace]",
"\[NonBreakingSpace]",
"\[RawSpace]",
"\[ThickSpace]",
"\[ThinSpace]",
"\[VeryThinSpace]"
}
```

These can be found by evaluating `?\[*Space]`

in a
Mathematica notebook.

To actually obtain these in copiable text was not
straightforward for me as I did not find a programmable way to
generate the above list. Instead, I copied the cell expression out
(by selecting the output cell, pressing
`Ctrl`+`Shift`+`E`, and copying out the
text), and then run `ack`

to extract any strings that
start is sandwiched with `\[`

and `]`

:

```
17:09:43 meng@meng2maclap:~/Temp$ ack -o "\\\\\\\\\[.*Space\]" cellexpr.txt | sort | uniq
AutoSpace
COMPATIBILITYKanjiSpace
InvisibleSpace
LetterSpace
MediumSpace
NegativeMediumSpace
NegativeThickSpace
NegativeThinSpace
NegativeVeryThinSpace
NonBreakingSpace
RawSpace
ThickSpace
ThinSpace
VeryThinSpace
```

Curiously, only `\[AutoSpace]`

,
`\[NonBreakingSpace]`

, `\[RawSpace]`

satisfy
```
StringMatchQ[#,
RegularExpression["[[:whitespace:]]"]]&
```

.

See the CDF file for details.

I usually use Bash for fairly trivial and/or ad-hoc tasks. But
sometimes when a Bash program become complex, leveled logging can
be useful for debugging and monitoring program states. By leveled
logging, I mean printing messages grouped by different tags such as
`DEBUG`

and `INFO`

and controlling which of
the groups are printed by a "level" parameter. This is roughly
what's supported by
`java.util.logging.Level`

and
`org.apache.log4j.Level`

in Java.

To do this in Bash, I simply defined a set of level constants that is the union of the two schemes given above:

`LEVEL` |
`java.util.logging.Level` |
`org.apache.log4j.Level` |
---|---|---|

9 | (off) | (off) |

8 | n/a | `FATAL` |

7 | `SEVERE` |
`ERROR` |

6 | `WARNING` |
`WARN` |

5 | `INFO` |
`INFO` |

4 | `CONFIG` |
n/a |

3 | `FINE` |
`DEBUG` |

2 | `FINER` |
`TRACE` |

1 | `FINEST` |
`ALL` |

and define a `mengLog`

function that print a message
if the message's logging level is same or higher than a global
logging level `$mengLOGGING_LEVEL`

. So the logging level
can be understood as an indication of priority, the higher the
level is, the higher the priority. For instance, when
`$mengLOGGING_LEVEL=6`

, messages with level equal or
higher than `6`

has an enough priority or even higher
priority to be printed, and therefore, WARNING/WARN, SEVERE/ERROR,
FATAL messages are printed in the example
`leveled-logging_example.sh`

.

Code: