メモの日々


2003年08月03日(日)

リアクション

昨日ビデオカメラが来たときは、食事をしていたので料理を絡めたコメントをすればよかったなあ。教訓:リアクションする際は回りにあるものを上手く利用しよう。

[java] Javaの理論と実践: ハッシュの徹底 (developerWorks)

equals(), hashCode()メソッドの話題をメモ。equals()をオーバーライドするのって意外に面倒なんだよな。

[security] 無線LANのセキュリティに関する注意 (IPA)

www.textfile.orgより。無線LANを使う予定はないがPCにはその機能が付いているのでメモ。

やること

  • 電気カミソリを買う

2006年08月03日(木)

  • 昼夜逆転中。

[vim] 「異なる vim プロセスで yank/paste するプラグイン yanktmp.vim」 (川o・-・)<2nd life)

というわけで yank したときに tmp ファイルに内容を書き出し、paste するときにその tmp ファイルから paste することで、別プロセスの vim 同士でも簡単に yank/paste ができるプラグイン、yanktmp.vim を作ってみました。

試してみたいのでメモ。

(追記)

試した。便利便利。

[dev] 「Windowsで動くウェブ開発専用のSMTP・POPサーバ」 (こせきの日記)

テスト用のメイルサーバとしてApache Jamesを使う話をメモ。Jamesを使ったことは無いけど、色々なOSで使えるので確かにテスト用によさそうと思った。

[db] 「RDBアプリケーションのためのデザインパターン」 (オブジェクトの広場)

oosquare MLより。1999年の記事だが参考になる。5つのパターンが紹介されている。

やること

  • デザイン変更
  • 保険
  • ツールのDVDを観る
  • 単4乾電池

2012年08月03日(金)

  • 新しい仕事は皆Eclipseを使っているようなので、久しぶりにインストールしてみた。今のバージョンは4.2。フォントなど色々設定したのだけれど、Vrapperが未だに矩形選択をサポートしていないことに気づいて使う気が無くなってしまった。最初にそこをチェックすべきだった。
  • ので、NetBeansに戻る。今まで7.0.1を使っていたが、7.2をインストールしてみた。jViが使えるか心配だったんだけど、ちゃんと動いているようだ。

[java] システムアイコンの取得

UIManager.getIcon("OptionPane.questionIcon");

のようにして、既存のSwingコンポーネントが使用しているアイコンを取得できるということをメモ。でも、使用可能な名前に何があるかはわからない。

[サッカー] ロンドンオリンピック 女子 準々決勝 日本vsブラジル (カーディフ)

トーナメントの1回戦。日本の先発は初戦2戦目と同じ。ブラジルはマルタなど。解説は宮本。冷静でいいね。

開始すぐに大野の惜しいシュートがあったが、その後は一方的にブラジルが攻める。大儀見も今回はなかなかキープができない。コーナーキックを何本も蹴られた。危ないロングシュートなどもあったが何とか凌ぎ、20分過ぎからは日本も攻めることができた。ここから日本ペース。宮間がゴール前のチャンスで滑って持ち直してシュートしたり。そして、30分近く、澤の素早いフリーキックから大儀見がDFの裏へ抜け出し落ち着いてシュートを決めた!その後は一進一退。今日も澤がよくて、彼女のパスからチャンスを作っていた。

後半もブラジルが支配。日本は中盤で奪えずゴール前で跳ね返すことしかできない。ボールを取れたら前線の大儀見にロングパスを送るが、ブラジルの奪取力高くそうそううまくいくものではない。んが、後半またも30分近く、大儀見が左サイドでボールを受けてうまく相手の裏を取り、そこから素早く中央の大野へミドルパス。大野はダイレクトシュートのチャンスを逃しDFに詰められてしまうが、冷静にコースを見つけてシュート。これがGKの上を超えてバーに当たって入った!GKが届かない所への素晴らしいシュートだ。大野が点を取るのを観るのは久しぶりだなあ。よかった。その後大野を安藤へ、大儀見を高瀬へ交代。

その後もブラジルに攻められ続けるが、粘り強く守って勝った。ベスト4進出。


2020年08月03日(月)

[math] 巨大自然数Aが自然数Bの倍数かどうかを調べる

long型では表現できない大きな数AがBの倍数かどうかを調べるにはどうするか。

倍数かどうかを知るにはAをBで割った余りが0かどうかを調べればよい。Aが大きな数でもその余りはBより大きくならないので、余りさえ計算できればうまくいく。

例えば、Aを「11111111111111111111111111111111111111111111111111」のように1が連続した整数とする。このような数は1から始めて「10倍して1を加える」という操作を繰り返すことで生成できるので、剰余演算の等価性から得られる

(10a + 1) % b = (10a % b + 1 % b) % b
              = (((10 % b)(a % b)) % b + 1 % b) % b

という変換を繰り返すことで余りを求めることができる(「a % b」はaをbで割った余りを表すものとする)。

1が連続する整数のことをレピュニット数と言うようだが、120桁のレピュニット数は5964848081の倍数らしい。それを次のコードで確認できる。

#include <iostream>

int main()
{
  const long b = 5964848081L;
  long rem = 1;
  for (int n = 2; n <= 120; ++n) {
    rem = ((10 * rem) % b + 1) % b;
  }
  std::cout << rem << std::endl;
}
0

2023年08月03日(木)

[c++][windows] VC++で __FILE__ マクロの値を相対パスにする

Visual Studio 2019で次のコードをビルドすると __FILE__ マクロの値が絶対パスで出力される。

#include <iostream>

int main()
{
    std::cout << __FILE__ << "\n";
}
C:\Users\kenichi\source\repos\ConsoleApplication1\d1trimfile\main.cpp

コンパイルオプションに

/d1trimfile:"$(SolutionDir)\"

を追加すると、上記の結果が相対パスに変わることを知った。

d1trimfile\main.cpp

このコンパイルオプションについてのリファレンスは見つけることができなかった。言及しているページをメモ。