メモの日々


2001年02月21日(水) W-TCP

W-TCPの説明を聞いた。


2002年02月21日(木) 駄目な日

会社

  • 9:35 多分今日は駄目だな。はー。今相澤くんがKメンテナンス中。がんばれー。
  • 今日のGoogleは狐がスピードスケート。
  • 17:00 銘柄名での検索はほぼできた。後はPC側で並びを調整してくれることに期待しよう。次は絞込み解除を30分で作る。そして帰ろう。眠すぎる。
  • 17:20 絞込み解除は20分で実装できた。ふう。次はついに地域での絞込みだ。憂鬱。帰るんだけど。

[java] International Components for Unicode for Java

JavaでのUnicodeの扱いを便利にしてくれるのかな?IBMのICU4J。JavaHouse Brewersより。

[java] Java Generics 概説 - Java への型総称性の導入

平鍋さんによるJava Genericsの紹介記事。oosquare MLより。

テレビ/本

  • なんもない。電車は眠るためにある。

2003年02月21日(金) Fマリノス下川肉離れ、せっかくチャンスだったのに

会社

  • (12:50)出社。午前中休暇。
  • 相澤くんのサポート。
  • 相澤くんと引継ぎの打ち合わせその2。
  • (16:00〜17:00)みんなで打ち合わせ。来週の予定を決めていた。
  • 障害票がやっと上がってきたので見るだけ見る。直すべきか微妙な障害が多いなー。
  • (18:30)退出。

[dev] キャッシュサーバ運用技術

Internet Week 2000でのプレゼン資料。JCFUG MLより。プレゼン資料だけど詳しく載ってそう。

[book] 陰の季節 (横山秀夫)陰の季節(横山秀夫/著)

読了。せっかく読んだのにアマゾンに書影が無いようだ。ちぇ。

評価高いがまたまたぼくにはそれほど面白く感じませんでした。地味なんだよな。読みやすく、つまらなくはありませんでしたけど。

本日のツッコミ(全3件) [ツッコミを入れる]

あいざわ [自分も横山秀雄「半落ち」「動機」を読みましたが、「動機」についてはそれほど感銘を受けませんでした。「動機」「陰の季節..]

しみず [今「動機」を読み中、更に「陰の季節」は私が読む[前]にお貸ししたもの。2人して面白くないって言うんだもんなぁ。まだ読..]

小川 [面白くないことはないです。それほど面白くないのです。]


2004年02月21日(土)

[java] [JavaHouse-Brewers:12961] Re: StringBuffer.toString() (Re: How to convert..)

無闇にtoString()を使うべきではないと風間さんが語っているスレッドをメモ。StringBufferをStringに変換する。あなたなら、どっち?!より。このメイルへのフォローに出てくるフレーズは良く覚えている。

JavaHouseの過去記事閲覧システムはとても見やすくて素晴らしい。この見せ方がもっと広まるべきだ。

[java] 第7回 EclipseによるSWTアプリケーションの作成 (@IT)

チューニングの話まで書かれていて参考になる。でも1万行で7秒も掛かってしまうのだ。Eclipse3でちょっとは速くなるのかなあ。

[dev] various xplanner Wiki

こんなサイトあったのかー。メモメモ。

このプロジェクトでは、XPのプロジェクト管理ツールである、XPlannerの情報を提供します。基本的に、XPlannerの普及することを目的とします。

[book] 立花隆秘書日記 (佐々木千賀子)

立花隆秘書日記(佐々木千賀子/著) メモしてから9ヶ月経ちやっと読んだ。オペラの話もちゃんと読みましたよ。オペラって何が楽しいのだろうか。

立花隆ってオウムに呼ばれて会いに行く寸前までいっていたのか。知らなかった。って、自分は立花隆を読んだことなくて何も知らないことに気付いた。一冊くらい読まないと。

文章読みやすいし面白いエピソード色々出てくるが後半ちょっと飽きた。立花隆好きな人には楽しめるだろう(当たり前だ)。知らないおれが悪い。3.5点。

やること

  • 決算

2006年02月21日(火)

  • 職場に学生のアルバイトが来た。アルバイトと仕事するの初めて、と思ったけど、IWSくんがいたな。元気かしら。

[php] Smartyのcounter関数の結果が出力されなくなった

該当部分のプログラムは変更していないのだけれど。

原因は、これより前に呼び出される別のテンプレートファイル内でassign属性を付与してcounter関数を使っていたからだった。counter関数は変数へassignするようにすると結果が画面には出力されなくなる。

name属性を付与せずにcounter関数を使っていたのがいけない。counterのスタート値は再設定できるので名前を付けずに使っても問題が起こっていなかったが、別テンプレートの書き方によってはこういう副作用が起こることがある。

[howto] Screenでウィンドウを強制的に閉じる

Screenを使っていると、あるウィンドウだけ操作ができなくなることがある。そのときにどのように操作したらいいのかを覚えられないのでメモしておく。

C-a :kill

と入力すればカレントのウィンドウを強制的に閉じられる。

また、

C-a :quit

でScreen自体を強制終了できる。

やること

  • 決算
  • カレンダーを買う
本日のツッコミ(全4件) [ツッコミを入れる]

takano32 [C-a kでも:killと同じ意味になりますよ :quitはC-a \でもいいようですね]

小川 [手元の環境だとC-a kとC-a \が動作しないんですよねえ。以前は使えていた気がするのですが。 でも、誤ってC-a..]

takano32 [もしかしたら,C-a K(大文字のK)にバインドされているのかもしれません 違ってたらすみません]

小川 [C-a Kは動きました。いきなり終了するのではなく、「Really kill this window [y/n]」と..]


2007年02月21日(水)

  • 朝の6時過ぎまで眠れなかった。仕方ないから起きるか、と思ったら眠ってしまったようだ。

[ruby] Ruby on Railsを使ってみた

次の仕事で使えるかもしれないので試してみた。15分でサクッと動かせるのかと思ったら、全然スムーズにいかない。

インストール

Fedora Core 5にインストールした。RPMにはなっていないようなので、RubyGemsを使ってインストールする。

$ sudo yum install rubygems

としてRubyGemsをインストールし、

$ sudo gem install rails

としてRailsをインストールした。依存するパッケージのインストールに存外に時間がかかった。Railsはバージョン1.2.2がインストールされたようだ。

アプリケーションの作成

とりあえず、WEB+DB PRESS vol.28に載っていたRuby on Rails入門の最初に書かれていることをやってみようと思った。

$ mkdir ~/rails
$ cd ~/rails
$ rails gagaga

とすると色々とファイルが作られた。これだけでブラウザからアクセスはできるとのこと。

$ cd gagaga/script
$ ./server

でウェブサーバを起動しブラウザでポート3000にアクセスするとWelcome画面が表示された。

データベースの作成

ここでつまずいた。config/database.ymlを編集せよとのことなので開いてみたが、書かれているのはmysqlの設定だけ。SQLiteを使いたいのだけれど、どう書けばよいのかわからない。勘で修正して先に進んでみたが、結局うまく動かなかった。

検索するとまちゅダイアリー

-d オプションでデータベース (sqlite3) を指定している。

という記述を見つけた。むむ、そうなのか。

アプリケーションの作成からやり直す。

$ cd ~/rails
$ rails -d sqlite3 uma

これでconfig/database.ymlはSQLite用の設定になった。特に編集すべき所はなさそうなので、続いてsqlite3コマンドを使って db/development.sqlite3 ファイルにusersテーブルを作った。

アプリケーションのscaffoldを生成

次はgenerateコマンドを実行せよとのこと。

$ cd uma
$ script/generate scaffold user

を実行する。が、

      exists  app/controllers/
      exists  app/helpers/
      create  app/views/users
      exists  app/views/layouts/
      exists  test/functional/
  dependency  model
      exists    app/models/
      exists    test/unit/
      exists    test/fixtures/
      create    app/models/user.rb
      create    test/unit/user_test.rb
      create    test/fixtures/users.yml
Couldn't find 'user' generator

とエラーになってしまう。謎のエラーで困ったが、同様のエラーで困っている人へのアドバイスを読んでsqlite3-rubyパッケージがインストールされていないのが原因だと分かった。

気を取り直してsqlite3-rubyをインストール。なにやらSWIGが無いとうまく動かないという情報も得たので、

$ sudo yum install swig
$ sudo gem install sqlite3-ruby

を実行した(Fedoraにはruby-sqlite3というRPMファイルが用意されていたがこれは使わずRubyGemsからインストールした)。

これで再度 script/generate コマンドを実行すると今度はエラーなく完了。

ブラウザからアクセス

これでブラウザからusersテーブルを更新できるようになっているとのことなので http://hostname:3000/users/ のようにしてアクセスしてみたが

`/users/' not found.

とエラーになってしまう。

これはウェブサーバの起動方法を間違えていたのが原因。上に書いたようにscriptディレクトリの中でserverコマンドを実行してしていたが、これでは駄目なようだ。

$ cd ~/rails/uma
$ script/server

として起動するとうまく動いた。わーい。

今日はここまで。

参考サイト

まだRailsのことは全然分かってない。参考になりそうなページをちょっとメモ。

やること

  • 年金
  • 税務署へ行く
  • PDF生成

2009年02月21日(土)

[life][work] 確定申告書と青色申告決算書を作った

最近は事務作業が面倒で仕方がない。どういうわけか苛々する。昔はこういうの好きだったんだがなあ。

税額が確定。なんでこんなに払わねばならぬのか。

個人型確定拠出年金の保険料控除は「小規模企業共済等掛金控除」欄に書くのだということを知った。送られてきた掛金払込証明書にそう書いてあった。去年は「社会保険料控除」欄に加算してしまっていた。

サボっていた今年分の帳簿付けも捌いた。ふー。


2023年02月21日(火)

[c++] OpenMPの処理結果をスレッド番号順に並べる

先日書いたOpenMPの例は、作られるvectorの要素の順序が毎回変わってしまう。毎回同じ結果を得るにはどうしたらいいか。

の回答を見てなるほどと思った。スレッド数分だけループして、#pragma omp orderedで順番に処理させている。

先日の例に適用してみる。「schedule(static,1)」は指定してもしなくても同じだと思うので指定していない。

#include <iostream>
#include <vector>

#include <omp.h>

std::vector<int> make_vector(int size)
{
  std::vector<int> result;

  #pragma omp parallel
  {
    std::vector<int> local;

    #pragma omp for nowait
    for (int i = 0; i < size; ++i) {
      if (i % 2 == 0) local.push_back(i);
    }

    #pragma omp for ordered nowait
    for (int i = 0; i < omp_get_num_threads(); ++i) {
      #pragma omp ordered
      result.insert(result.end(), local.begin(), local.end());
    }
  }

  return result;
}

int main()
{
  const auto max_threads = omp_get_max_threads();
  std::cout << "max_threads = " << max_threads << std::endl;

  const auto v = make_vector(max_threads * 10);

  std::cout << "v.size = " << v.size() << std::endl;
  for (auto e : v) {
    std::cout << e << ", ";
  }
  std::cout << std::endl;
}
max_threads = 6
v.size = 30
0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58,