メモの日々


2001年02月27日(火) 毎日iアプリ

SimCityばかりしている。

[java][mobile] F503iのJava.util.Calendarは変?

カレンダーのように表示しようとして時間を食った。

F503iの実機だとJava.util.Calendarクラスに対してset(Calendar.DAY_OF_WEEK, Calendar.SUNDAY)を実行するとArrayIndexOutOfBoundsExceptionが発生する。エミュレータだと大丈夫なのに。なんでや。バグかな。後日きちんと調べよう。

時間的に完成はしないな。あーあ。


2002年02月27日(水) あまりメモらなかった日

会社

  • 22:50 遅くなったな。操作履歴の出力部分はほぼできたつもり。あとは検索だ。明日作らねば作るときが無いぞ。頑張れ。

テレビ/本

  • 日経コンピュータ2.25号やっと読み終わった。

2003年02月27日(木) 山陽新幹線で運転手が居眠り?

会社

  • (9:30)出社。またまた遅刻。
  • なんだか今日はブラウザの文字が小さすぎて落ち着かない。なんでやねん。
  • メモリースティックと電卓を交換。
  • ノートPC用の鞄を貰った。
  • 白黒の社内報数冊を、捨てるためにパラパラ読んだ。名残惜しいが取っておいても仕方ない。載っている顔写真で昔はみな大きなメガネをしていたのがわかる。

[windows] SoapClient30のタイムアウト

タイムアウトエラーが出るというのでずっと調べさせられた。原因わからず、etherealをインストールしてパケットを見ていたところ、サーバが応答を返す数秒前にクライアントがコネクションを切断しているようだった。ので、クライアントのタイムアウト時間を延ばそうとしたのだけれど、どこを設定すればいいのかさっぱりわからない。

でも結局わかって、結論は、SoapClient30のインスタンスscに対し

sc.ConnectorProperty("Timeout") = 60000

などと設定するとタイムアウト時間が60秒になる、ということだ。

情報源はニュースmicrosoft.public.msdn.soaptoolkit内の

など。SoapClient30のリファレンスがあればいいんだけどどこにあるのかわからない。

[windows] .NETでのログ出力

あと、ログ出力の方法も調べたんだけど、こっちは最後までよくわからなかった。Traceオブジェクトを使ってログ出力処理を書いてWeb.config内のtraceセクションでログ出力のオンオフを制御しtrace.axdにアクセスすればブラウザ上でログを見れるようだったがうまく動かなかった。

この辺もはっきり書いてある所があればいいんだけどな。

[dev] 正規表現メモ

正規表現さっぱり身につかないのでメモ。お笑いパソコン日誌より。例えばtDiaryのリンク元置換リストを設定するときなどに便利なはずだ。

[soft] Virtual PC

ぐは、Virtual PCはマイクロソフトに買い取られていたのか。知らなかった。中村正三郎のホットコーナー見て知りました。Linuxを使うためにVirtual PCを買おうと思っていたのだよ。PCもらえたからやめたけど。

うー、またZDNet繋がらない...

[hard][mobile] エッジ値下げ

お、これで月200円値下げのようだ。わーい。

が、同時に新機種発売のニュースが。ブラウザ搭載かよー、いーなー。

[soft] PDFの最適化ツール「PDF Cleaner」v0.97

窓の杜のレビュー。作者さんのサイトにはPDFを扱うツールがほかにも色々あった。


2004年02月27日(金)

  • Doxygen1.3.6を使ってみた。便利なんだけど、デフォルトのスタイルシートがあまり見やすくないと思う。もっとかっこいいやつあるのかな。
  • 異常に天井が低い店での飲み会に参加。忍者屋敷みたいで面白い。

[unix] fileutils

NetBSDにfileutilsのパッケージをインストールしようとしたらなかなか見つからなくて手間取った。

pkgsrc/sysutils内にあるみたいなんだけど、PC内を見てみるとそこには無い。ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-current/tar_files/ からpkgsrc.tar.gzを取り直してみてもやっぱり無い。ftp://ftp.jp.netbsd.org/pub/NetBSD/packages/pkgsrc/sysutils/README.html からバイナリパッケージを取得しようとしたらそこにも無い。で、ftp://ftp.jp.netbsd.org/pub/NetBSD/packages/1.6.1/i386/sysutils/ にはあったのでそこから取得させて頂きました。

[link] IMS アイデアマラソンシステム - 初心者向けトピック

アイデアマラソンというのがあるんだな。毎日「発想」をメモしていくと頭によいということのようだ。毎日のように日記書いているわけだからここでチャレンジしてみよう。でもおれ発想って苦手だ。できるかなあ。はてなより。

[etc] テンションを上げる方法

同じはてなの質問にあったテンションを上げる方法をもう少しメモ。

時間を細かく区切ってやってみるというのはいかがでしょう?「5分勉強する」「10分で会議を終わらせる」などとにかく細かくするのです。

おれには受験勉強で1時間毎に教科を変えて勉強したのがなかなか良かった思い出がある。それに似ていると思うのでこれはよさそうなのだ。でも細かくやることを決めていくのって大変なんだよな。

簡単にテンションを上げる方法として腹式呼吸はいかがでしょうか?全身の血の巡りが良くなり頭もすっきり・・ぜひお試し下さい。

ほんとかなあ。おれは眠れないときに無理やり腹式呼吸しているといつの間にか眠れたりするのですが、ということは眠くなってしまう気がする。

あと、参考になるかわかりませんが、テンションが下がってきたら、こっそりトイレに行って、前屈の姿勢(あまのはしだてを見る時の姿勢)をして、しばらくすると頭に血が上るので、そこで元の姿勢をとると、立ちくらみがして目が覚めます。ふらふらする時もありますが、頭はすっきりすると思います。

今度試してみます。天地転倒の景色が楽しめる「股のぞき」は、松並木が空中に浮かんだように見えることでも有名ですということを知らなかった。知らないことばかり。

[ims] 1 発想のメモ方法

発想できたら携帯から自分にメイルを出すようにしよう。

やること

  • 決算
  • 家賃
  • 定期タイマどうするか
  • 定期券を買う
本日のツッコミ(全1件) [ツッコミを入れる]

樋口健夫 [こんにちわ。アイデアマラソン発想法の考案者の樋口健夫です。アイデアマラソンにご関心を持たれたようですね。ぜひともがん..]


2005年02月27日(日)

  • 回転寿司を食べた。

[book] 壬生義士伝 (浅田次郎)

新選組隊士吉村貫一郎について色々な人物が語る話。各人が語りの名手で、もうどんどん話に引き込まれていく。壬生義士伝〈上〉(浅田 次郎) 壬生義士伝〈下〉(浅田 次郎)

この小説を通勤電車内で読んでしまったのは失敗だった。人目があるから涙を流せないじゃないか。瞳を潤ませる程度でこらえて読了。満足した。5点。

[book] 生命保険のカラクリがわかる本 (中村芳子)

新版 図解 生命保険のカラクリがわかる本―行列ができる“保険相談室”本日開設!(中村 芳子) 2003年の本。期待せず読んだけど、意外といい本だった。書かれていることは理にかなっていると思う。ちょっとメモ。

  • 終身保険が必要なのは相続税がかかる人だけ。年齢が進めば死亡保障は必要なくなる。
  • 「転換」は損な場合が多い。保障を増やすなら転換するのではなく買い足すべき。転換を勧めてくる保険会社は要注意。
  • 保険は掛け捨てにして保険料を安くし、浮いた分を貯蓄に回すのが賢い。保険は必要経費と割り切る。
  • 医療保険で入院1泊目からの保障は必要ない。保険金が必要になるのは入院が長引く場合だけだ。だから給付限度日数は長いものの方がよい。

[soft][work] やよいの青色申告05を使った

スクリーンショット

1月2月分を入力してみた。まだ使いこなせてないけど、伝票から入力できるし科目は追加できるし帳票もあるし入力の手間を省く工夫も色々あってなかなかよい。満足した。

さらばあきんど会計。

やること

  • リンク元のスリム化
  • tDiaryバージョンアップ
  • FSWikiバージョンアップ
  • オーブンレンジ用べんり棚
  • ブラウンの安い電動歯ブラシ買う

2006年02月27日(月)

[life] 歯医者で水がしみると伝えた

冷たい水を飲んだときなどに前回ガリガリやられた箇所にしみて痛むことを伝えた。見ても何もなっていないらしく、噛み合わせがよくないのが原因ではないかと判断され、「調整をしておきましょう」と言われた。

調整って何のことだか分からなかったが、歯を削って噛み合わせをよくすることのようだ。少し削られた。

費用は1000円くらい。また一ヵ月後に行く。

[life] 図書館へ行く

その前に銀行へ行ったら大行列。すごい集客力だ。儲かるはずだよ。現金を引き出した。

続いて文房具屋へ行きノートを買った。5冊セットで売っているのが安そうだったのでそれを買ってしまったが、よく考えると5冊も要らない。失敗した。カレンダーが少しだけ売っていたので見たが、ろくなものはなかった。

更に郵便局へ。混んでいるが銀行ほどではない。現金を預け入れ、健康保険料を納付した。

そして図書館へ。

  • 松本人志 愛 (松本人志)
  • 天才数学書、株にハマる (ジョン・アレン・パウロス)
  • Quick Japan Vol.61 「矢沢あいの時代」
  • サッカーマガジン 2006.1.3 「小野伸二の浦和復帰はあるのか」

を借りた。

[work][life] 確定申告に行く 2006

いつもと一緒で、並んで紙を出しておしまい。去年より混んでだ。

Q22 所得税の申告書を提出する際に必要な書類はどのようなものですか。に、

なお、(15)〜(19)については、申告の際に提示していただいても結構です。

とあるので、控除の証明書類は提示するだけにしようと思っていたが、おっちゃんに見せたらそのまま申告書にホチキスどめされてしまった。うむむ。文句を言っても良かったけど、後ろに人がたくさん並んでいたのでやめておく。イラつきながら税務署を出た。

やること

  • カレンダーを買う
  • 家賃
  • 健康保険

2009年02月27日(金)

  • Javaの仕事はほぼ終了。
  • 次はまたC++だと予想していたら、プログラミングではない仕事を受注。テスト作業のような仕事。作業にはツールが必要なので、それをRubyで実装中。
  • 久々のRubyは楽しい。RSpecを初めて使ってみた。specを日本語でバリバリ書くぞ。

2019年02月27日(水)

[tdiary] tDiaryを5.0.11へバージョンアップ

tDiaryを5.0.11へバージョンアップした。前回のバージョンアップは4年前。いつものように色々メモ。

トップディレクトリ

  • 旧バージョンから次をコピーする。
    • .htaccess
    • index.rdf
    • mimetex.xcg
    • tdiary.common.conf
    • tdiary.conf
  • index.rbとupdate.rbをそれぞれindex.cgiとupdate.cgiという名前のファイルにコピーする。スレッドメモから参照されるので.rbの方も残しておく必要がある。
  • 次のファイルに実行権限を付与する。
    • index.cgi
    • update.cgi
    • mimetex.xcg

プラグイン

  • 旧バージョンの misc/plugin/ から次をコピーする。
    • jdate.rb
    • mimetex.rb
    • refedit2.rb
    • section_permalink.rb
    • section_permalink_anchor.rb
    • title_anchor.rb
  • プラグインの設定画面で、category.rb ではなく category-legacy.rb を使うようにする。(categoryプラグインは新しい実装に切り替わっていた。でも、新版は旧版と振る舞いが異なるので旧版を使う。)
  • category-legacy.rbに、新しい順表示にする修正を行う。修正内容は以前のメモを参照せよ。

2020年02月27日(木)

[dev][math] 累乗を高速に計算する

累乗の計算はバイナリ法(繰り返し二乗法)と呼ばれるアルゴリズムで高速に計算できる。

再帰で考えるとわかりやすいのでそれをメモ。

\[ \ a^x = \begin{cases} 1 & (x = 0) \\ (a^2)^{\frac{x}{2}} & (\text{$x$が偶数}) \\ a \cdot a^{x-1} & (\text{$x$が奇数}) \end{cases} \]

が成り立つので、これをそのままコードに書けばよい。

素朴な実装と繰り返し二乗法の実行時間を比較するコードを示す。計算結果は巨大な数になるため、1000000007 で割った余りを計算するようにしている。

#include <chrono>
#include <iomanip>
#include <iostream>
#include <string>

// 素朴な実装
long mod_pow0(long a, long x, long m)
{
  long result = 1;
  for (long i = 0; i < x; ++i) {
    result = result * a % m;
  }
  return result;
}

// 繰り返し二乗法
long mod_pow(long a, long x, long m)
{
  if (x <= 0) return 1;
  return x & 1
      ? a * mod_pow(a, x - 1, m) % m
      : mod_pow(a * a % m, x >> 1, m);
}

// 時間計測をする
template<typename F>
void measure(const std::string& name, F f)
{
  namespace ch = std::chrono;
  const auto s = ch::steady_clock::now();
  const auto result = f();
  const auto e = ch::steady_clock::now();
  const auto d = ch::duration_cast<ch::duration<double>>(e - s).count();
  std::cout << std::fixed
      << name << " = " << result
      << " (" << d << " sec)"
      << std::endl;
}

int main()
{
  constexpr long m = 1000000000 + 7;
  long a, x;
  std::cin >> a >> x;

  measure("mod_pow0", [a, x, m]() { return mod_pow0(a, x, m); });
  measure("mod_pow ", [a, x, m]() { return mod_pow(a, x, m); });
}

手元の環境だと、素朴な実装でもxが10**8までなら1秒程度で計算できるが、10**9になると10秒以上かかる。繰り返し二乗法は速い。

$ ./a.out
2 10000000
mod_pow0 = 255718402 (0.128632 sec)
mod_pow  = 255718402 (0.000001 sec)

$ ./a.out
2 100000000
mod_pow0 = 494499948 (1.274563 sec)
mod_pow  = 494499948 (0.000001 sec)

$ ./a.out
2 1000000000
mod_pow0 = 140625001 (13.117252 sec)
mod_pow  = 140625001 (0.000002 sec)