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より。プレゼン資料だけど詳しく載ってそう。
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自体を強制終了できる。
■ やること
- 決算
- カレンダーを買う
2007年02月21日(水)
- 朝の6時過ぎまで眠れなかった。仕方ないから起きるか、と思ったら眠ってしまったようだ。
■ インストール
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のことは全然分かってない。参考になりそうなページをちょっとメモ。
- HowtoUseSQLite (RoR Wiki 翻訳Wiki)
- 簡単なウェブアプリケーションフレームワークを始める易しい方法 (Rails' Wiki)
- Railsでソーシャルブックマークを作ってみようか(第2回) (坊やがゆく)
■ やること
- 年金
- 税務署へ行く
- PDF生成
2023年02月21日(火)
■ [c++] OpenMPの処理結果をスレッド番号順に並べる
先日書いたOpenMPの例は、作られるvectorの要素の順序が毎回変わってしまう。毎回同じ結果を得るにはどうしたらいいか。
- openmp ordering critical sections (Stack Overflow)
の回答を見てなるほどと思った。スレッド数分だけループして、#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,
● あいざわ [自分も横山秀雄「半落ち」「動機」を読みましたが、「動機」についてはそれほど感銘を受けませんでした。「動機」「陰の季節..]
● しみず [今「動機」を読み中、更に「陰の季節」は私が読む[前]にお貸ししたもの。2人して面白くないって言うんだもんなぁ。まだ読..]
● 小川 [面白くないことはないです。それほど面白くないのです。]