- 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
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: