再びTeXの条件分岐

今回は,

\ifcase
\ifnum

の二つ.

\ifcase

いわゆる case 文.

\ifcase <var> <var=0のとき>\or <var=1のとき>\or <var=2のとき>\fi

とにかく 0 から順番に並べて,必要なだけ書いたら

\fi

で閉じるだけ.簡単.数値指定できない (?) のが少し面倒だけど.

\ifnum

数値の比較をしたいとき.

\ifnum <num1> > <num2> <処理>\fi

とか.
分かりにくいけど,間の > は不等号ですよ?

Eclipseでデフォルトassertion

assert を十分に使いこなせていない人なので,
使いたくなったときに,いちいち実行ダイアログを開いて引数に -ea と書く,なんてことをしてきたのだが,
流石に面倒になってきたので,デフォルトに追加しておく.
別に実行速度を突き詰めている訳でもないし,たぶん困ることはないはず.

  1. [ウィンドウ > 設定 > Java > インストール済みのJRE] で,使っている jdk/jre を選んで編集.
  2. デフォルトのVM引数に -ea と追記.

まあ assert 文を書く習慣付けないと意味ないけど.
何を使って日本語化したのかもう忘れてしまったから,ひょっとすると単語が微妙に違ったりするかもしれないねえ.

今更Loggingメモ

ふと思い立って,java.util.loggingを使ってみることにした.
という訳で,初心者による初心者のためのメモ書き.

検証を怠っている部分があるので,誤解に基づく間違いが含まれる可能性が大いにあり得る.あまり信用しないように.

一番基本的な使い方

public static void main(String args[])
{
  Logger logger = Logger.getLogger(Logger.GLOBAL_LOGGER_NAME);
  logger.config("Config.");
  logger.info("Info.");
  logger.warning("Warning.");
  logger.severe("Severe.");
}

デフォルトの設定にもよるけど,Config が表示されなかったりするはず.

設定ファイルを使う

グローバルなLoggerを使う場合
handlers=java.util.logging.ConsoleHandler
.level=ALL
java.util.logging.ConsoleHandler.level=ALL

のような形のファイルを保存.名前は何でも良いが,ここでは

logging.properties

としておこうか.
(グローバルな設定ファイルと名前がかぶるので,そういうのが嫌いな人は変えるべき)
その上で,

public static void main(String args[])
{
  try {
    InputStream in = new FileInputStream("logging.properties");
    LogManager.getLogManager().readConfiguration(in);
    in.close();
  } catch (IOException e) {
    e.printStackTrace();
  }
  Logger logger = Logger.getLogger(Logger.GLOBAL_LOGGER_NAME);
  logger.config("Config.");
  logger.info("Info.");
  logger.warning("Warning.");
  logger.severe("Severe.");
}

今度は全部表示されるはず.

名前付きのLoggerを使う場合

設定ファイルに

mypackage.level=WARNING

と追記して,

  ...
  Logger logger = Logger.getLogger("mypackage");
  ...

と変更すると,Warning と Severe だけが表示される.

Loggerの親子関係

mypackage という名前の Logger は,mypackage.subpackage という名前の Logger の親のようなものである.
子は親の設定には逆らえない.
例えば,

mypackage.level=WARNING
mypackage.subpackage.level=ALL
  ...
  Logger logger = Logger.getLogger("mypackage.subpackage");
  ...

としても,Warning 以上しか表示されない.
逆に,親の許可する設定を更に絞ることはできて,

mypackage.level=WARNING
mypackage.subpackage.level=SEVERE

とすると,Severe しか表示されなくなる.

名無しの Logger (グローバル?) は最も上位の親であり,

.level=SEVERE

と設定すると,全てのLoggerにおいて Severe しか表示できなくなる.

ペイント使ってポスター印刷

ポスター作ったのは良いけど,印刷業者に頼む余裕がない!
そんなとき.
Microsoftペイントで描こう!中級編(3) ペイントで大判ポスターを作ろう [CG・画像加工] All About
を参考に,ポイントを書き出すと,

  1. PowerPointVisioなどで,ポスターをBMPで出力.サイズはA0を仮定しておこう.
  2. Windowsの [スタートメニュー > アクセサリ > ペイント] から,ペイントを起動.
  3. ペイントの [ファイル > ページ設定] を開く.
  4. サイズとしてA3 (A3対応プリンタがない場合はA4) を選択.
  5. 右下の [拡大縮小 > 適合] を選んで,分割サイズを決める.A0縦ポスターをA3で印刷するなら,2x4.(用紙の向きは横)

あとは,印刷プレビューで確認し,大丈夫そうなら印刷.

逆流性食道炎?

症状

  • のどが詰まる感じがしたり,食べてないのにゲップが出たりする.

原因

  • 胃酸の逆流による炎症
  • ゲップが出るのは,食道のアルカリ性部分に胃酸がかかることによる

対処

  • 胃酸の分泌を促進しないように,辛いものや油の多いものの摂取は避ける
  • 満腹になるまで食べないで,腹八分目でやめておく
  • 食後2時間は横にならないようにする
  • 胃酸の分泌を抑える薬剤が効果的だが,比較的高価です