nDiki : FAQ

1999年5月18日 (火)

プログラミング言語演習I第4回

今回は、scanf による入力と if 文の学習。

本日の課題

「年齢を入力させ、その値から車の免許が取れるかどうかと酒を飲めるかどうかのメッセージを出力するプログラムを作れ。」

学生から受けた質問等

  • muleが起動しない: mule-nw とスペースを開けていないのが原因。
  • scanfした後どうすればいいの: 課題の内容を再確認し、処理の流れを考えてもらう。(2件)
  • gcc でエラーがでた: gcc のエラーメッセージの見方を説明
  • getchar() を使ったが期待した値が入力できない: 似たプログラムがテキストにあって、ここでは getchar() を利用しているのでそれを真似た。ところが、getchar() では文字として入力しているので、入力した数値の最初の文字の文字コードが得られており期待通り動いていない。とりあえずここでは scanf を使うように説明。
  • コンパイラエラー: ';' 抜け。(3件)
  • どうみてもおかしくないのだが、コンパイラエラー: コメント開始と終了が /* ... */ ではなく \* ... *\ となっている。
  • よく意味のわからないコンパイルエラー: 変数宣言の前に printf で出力を行ってしまっている ... 変数宣言は関数(ブロック)の先頭でなければならないことを説明。(2件)
  • ソースファイルがない: gcc puro1.c -o puro1.c で上書きしまっている。ご愁傷さま。
  • gcc で No such file: kadadi4.c というファイル名で編集しているのに、kadai4.c だと思って gcc していただけ。
  • ファイルを保存しなかった: *scratch* バッファに入力。残念ながら mule 終了済み。カットアンドペーストもうまくいかず。ご愁傷さま。彼は本日同じことで2度ソースファイルを失い、これで3度目の入力だとか。
  • if (a == '18'): 数はシングルクォートする必要なし。複数文字をシングルクォートすると warning もでる。参照しているテキストが、getchar() で文字を入力し if で文字と比較している例なため、勘違い。
  • if ('a' == 18): 変数名をクォートしてしまっている。構文的にはエラーではないが、意図しない結果に。
  • gcc のやり方は: もう今日は第4回なのに。忘れちゃったかな。演習の進め方をまとめてある Web ページを説明し、参照してもらう。
  • warning: return type of 'main' is not 'int': main の返り値の型について。これも FAQ。すでに演習 Web ページに説明あり。上記メッセージを見て、main 関数の関数名を int にしたがうまくいかないという学生。ちょっとメッセージの読み違えですね。
  • parse error before character 033: なぜか目にみえない変なコードがソースファイルにまぎれてしまっている。mule であたりをつけて削除。
  • mail の見方: mail コマンドを説明

コメント

質問の内容が、操作からコンパイルエラーについてに変わってきた。 やっと、学生も操作になれてきたということか。 まだ、プログラム内容についてはついてきているようだ。 そのうち、どうプログラムを組んでいいかわからなくなってくる学生が増えてくるところか。

変数宣言が関数(ブロック)の先頭になければならない事は授業で説明されただろうか。指定のテキストでは明確にその点について記述されていないため、学生が間違えるのもしかたないか。

「MA1(えむえーわん)」と呼ばれている人がいたが彼は一体?

スポンサード リンク
[ 5月18日全て ]

2004年3月2日 (火)

[ Perl ] Log::Log4perlのはまりどころ

WiKicker / DiKickerLog::Log4perl 対応作業。

  • www.naney.orgApache の VirtualHost としてエラーログも個別に吐かれている
  • エラーログは自分のホームディレクトリに吐かれるものの、root 所有である
  • ディレクトリは自分に所有権があり、エラーログが肥大化したら消す事もできるのだが、Apache をリスタートする権利がないので(週に1度のシステム側のローテーションが起きるまで)二度とエラーログが見れなくなる。

ということで、warn -> Apacheエラーログに流れている警告メッセージも、Log::Log4perl の方に流して、好きに消せるようにしておくことにする。

Log::Log4perl->init_once

SpeedyCGI 下で動かす事を想定して初期化は、init_once で行うようにする。 可能な限り早く初期化すべきなので、設定ファイル名/設定文字列はプロパティファイルに記述しておくのではなく、CGI プログラムで最初に生成する Controller オブジェクトの初期化パラメータで指定するように。

$SIG{__WARN__} を設定

$SIG{__WARN__}を設定して、warn のメッセージを Log::Log4perl に送る。 最初はほぼ FAQ の例のまま、以下のように記述。

 use Log::Log4perl qw(:easy);
 BEGIN {
   $::SIG{__WARN__} = sub {
     local $Log::Log4perl::caller_depth = $Log::Log4perl::caller_depth + 1;
     WARN(@_);
   };
 }

しかし期待していた通りに動かず悩む。原因は前述する init_once との絡み。 use Log::Log4perl qw(:easy) した時点でデフォルトの初期化が行われてしまうため、初期化済みになってしまって init_once での設定処理がスキップされていたのが問題。

 use Log::Log4perl;
 BEGIN {
   $::SIG{__WARN__} = sub {
     local $Log::Log4perl::caller_depth = $Log::Log4perl::caller_depth + 1;
     if (Log::Log4perl->initialized) {
       Log::Log4perl->get_logger->warn(@_);
     }
   };
 }

と修正。 get_logger も暗黙的に初期化を行うので、init_once する前に warn されるとやはりデフォルトの初期化がおこってしまう。 それではまずいので initialized が真(=初期化済み)の時のみロギングするようにする。 ただしこれだと init_once する前の warn メッセージが失なわれる(STDERR あたりに print するようにすればいいかもしれない)。

CGI::Carpとの絡み

CGI::Carp も $SIG{__WARN__} を上書きするので同時に使えない。 以前に use していたのが残っていてはまる。

Log::Log4perl::Appender::Synchronized で core dump ?

NaneyOrgWikinDiki でロギングしはじめたところ、CGI プログラムの処理はきちんと成功しているもののその後(?) speedy_backend が core dump してしまう事があるようだ。 最初は $::SIG{__WARN__} の設定あたりに問題があるのかと思ったが、Log::Log4perl::Appender::Synchronized を使わないようにしたところ core を吐かなくなった。

IPC::ShareableIPC::Semaphoreなんて使っているしやっぱりこれが怪しい。 とりあえず外しておくことにする。

しかし何らかの方法でシンクロしておかないとログファイルが壊れるはずだから、本当はどうにかしなければならないな。 もっと簡単に flock とかで排他制御する Appender とか無いのかな。 自分で書くしかない?

[ 3月2日全て ]

2004年9月13日 (月)

Template Toolkit + PAR

今回のプロジェクトに Template Toolkit を本格的に適用しようかと。 問題となるのは PAR にした時に、どのようにテンプレートを取得するか。 (PARでない場合は)テンプレートはモジュールと同じ位置にインストールしておき @INC から探すようにするつもり。

ということで泥臭いが「起動時に一時ディレクトリに展開してしまう」という方法を選択。 %PAR::LibCache を舐めて拡張子が 'tt2' であるものを、File::Temp で作ったディレクトリに放り込んで、Template の INCLUDE_PATH に指定する (実際には上記の処理を行うオブジェクトを作って INCLUDE_PATH で指定)。 Daemon 系ならこれで十分。

で、順次 Perl モジュールに散財していたHTML出力をテンプレートベースに変更。 コードがかなりすっきりしてきて気持ちいい。

今回の作業で @INC にサブルーチンリファレンスやら、オブジェクトやらを渡せることを初めてしった。実際 PAR で利用している。 CODE の混ざった @INC をそのまま Template の INCLUDE_PATH に渡すとエラーが起きるので除外したものを渡すように。

[ 9月13日全て ]

2006年5月26日 (金)

面接・会社説明

転職希望者と面接

以前作成した面接メモを使用したのだが、今回のケースには使えないと感じて省略した質問もあって改訂の必要性を感じた。 逆質問に対する FAQ も準備しておく必要があるな。

[ 5月26日全て ]

2009年2月23日 (月)

PARDLL ファイルをロードできなかったら大文字小文字を疑え

PDL を使っている Perl プログラムを、昨日構築した今ごろの環境で PAR を使って実行可能ファイル化したんだけれども、実行してみたら

 Can't locate loadable object for module PDL::Core in @INC ...

というエラー。 実行時のキャッシュディレクトリを見ると core.dll が同梱されていない模様。 なんでだー。

いろいろやってみたところ、もしやと思ってインストール済みの core.dll を Core.dll という名前に変えたらエラーが出なくなった(正確には次のモジュールで同様のエラーが出た)。

ファイル名の大文字・小文字が問題だったらしい。 PARFAQ には「Win32::Perms の Perms.DLL でこのエラーが出たら、Perms.dll にしてね」と書かれている。 最初これ拡張子の問題だけだと思っていた。 ベース名でも同様のようだ。

以前は問題なかったから、比較的新しい PAR で発生するようになったと思われる。 これ絶対はまる。

[ 2月23日全て ]

2009年12月29日 (火)

今日のさえずり - 過去の未使用年賀はがきが累積で41枚

2009年12月29日

  • 08:41 ん? 会社のサーバにつながらない。
  • 08:55 @as_tone つぎの水やりいつですか?
  • 11:04 きりたんぽ鍋の残りで朝雑炊。ウマウマ。
  • 11:06 @as_tone もしオフィスに行ったら ADSL モデムルータ RTX1100 リセット(電源オンオフ)お願いしたいです。
  • 11:21 過去の未使用年賀はがきが累積で41枚たまっていた。切手に交換するか。
  • 11:30 2000年のお年玉くじつき切手11枚でてきた。
  • 11:35 以前未使用年賀はがきから交換してもらったと思われる黄ばんだ5桁はがきが23枚、7桁はがきが13枚、それと5桁往復はがき2枚も発見。
  • 11:36 41円・62円・72円・500円と使い勝手の悪い切手も出てきた。
  • 11:39 @as_tone ADSL モデムは電源抜いて入れてください。ルータ RTX1100 は裏にスイッチがあるので一旦切って数十秒してから再度電源オンにしてください。お願いします。
  • 11:41 @as_tone もし時間があれば PC から社内 Wiki など見られるか確認してもらえますか? 駄目なら ADSL モデム/ルータの問題ではなくてサーバ自体が落ちている可能性があります。
  • 13:09 近所にフードコート欲しい。
  • 13:10 RT @himanainu_kawai: スターバックスに長時間いて勉強して下さってもいいです。それで頭がよくなって下されば社会貢献ですよ。(スタバ岩田社長/日経MJ)
  • 13:34 @as_tone よろしくお願いします。
  • 16:18 久しぶりにケータイを忘れた外出から帰宅。電話メール気にならないけど tweet できないと息苦しくてツライ。
  • 16:55 マウカメドウズ FAQ 「スタッフの方が着用しているユニフォームは店舗で販売していますか。」 http://bit.ly/5Ikcxi
  • 18:51 「年明けうどん」って明らかに業界がうどん売りたいっていう魂胆がみえみえで嫌だな。っていうかそばアレルギーな自分は基本年越しうどんなワケだが。
  • 24:15 宛名面に文面を印刷するという失態を乗り越えてまず5枚年賀状印刷
  • 25:14 さくらのレンタルサーバ SSH つながらないなあ。
  • 25:26 @junjun_ Web は問題ないので SSH が Connection timed out するということは sshd が busy なだけなんでしょうか。最近さくらのレンタルサーバ使い始めたばかりで、そのあたりの塩梅がまだよくわからなくて。
  • 25:58 2009年12月25日の歩行: 5244歩、4.02km、45分、5.27km/h、消費 203.0kcal、脂肪燃焼 29.0g、2.9エクササイズ。
  • 25:59 2009年12月26日の歩行: 0歩、0.00km、0分、0.00km/h、消費 0.0kcal、脂肪燃焼 0.0g、0.0エクササイズ。
  • 26:00 2009年12月27日の歩行: 6378歩、4.85km、59分、4.91km/h、消費 244.0kcal、脂肪燃焼 34.9g、3.4エクササイズ。
  • 26:01 2009年12月28日の歩行: 8241歩、6.27km、77分、4.86km/h、消費 319.2kcal、脂肪燃焼 45.6g、4.4エクササイズ。
  • 26:03 2009年12月29日の歩行: 3118歩、2.35km、30分、4.60km/h、消費 117.5kcal、脂肪燃焼 16.8g、1.6エクササイズ。
[ 12月29日全て ]

2010年3月16日 (火)

今日のさえずり - 紫のハンドタオルを口に当てた人が電車から下りてきた

2010年03月15日

  • 09:33 JR 3月13日にダイヤ改正したんだっけ。先週とちょっと電車の時間が違ってあれって思った。
  • 09:53 ヨドびの公式サイトができたって。 (@ ヨドバシカメラマルチメディアAkiba) http://4sq.com/77WGwe
  • 15:01 CoTweet サインアップしてみた。
  • 15:02 ヨドびも Twitter やってるんだ。 RT @yodobi: @Naney わーい!ヨドびちゃんも仲間入りです。よろしくお願いします!
  • 17:25 お茶 103円。 (@ ファミリーマート神田佐久間町店) http://4sq.com/biJuCj
  • 20:17 あー、今日の夜何食べるかまだきまらない(会社で食べるつもりだったけど予想外にキリがついたので退社済み)。
  • 20:20 隣の人が15分以上、中古 CD のシールを剥がして残った糊を猿のようにペタペタやってる。
  • 20:25 ちょっと雨。さぼてんにした。 (@ アトレ大井町) http://4sq.com/8jv27N
  • 23:10 おサイフケータイ対応ゴールドポイントカード削除。
  • 23:20 おサイフケータイ Edy のサービス登録削除。
  • 23:34 何もしていないブログマーケットを退会しようと思ったが、退会機能がない。FAQ によると問い合せフォームを使えと。
  • 24:36 Gmail の特定のラベルに対応する Mew 上の IMAP ディレクトリを howm-search-path に指定しておけばウハウハじゃんと思ったが検索できなかった。そうか charset が違うんだよな。惜しい。

2010年03月16日

  • 09:33 紫のハンドタオルを口に当てた人が電車から下りてきて目を丸くした。
  • 09:36 もしかしてクーラーかかってる? この京浜東北線
  • 09:43 @junjun_ あ、やっぱりクーラーかかってますか。上着きていると暑いぐらいなので、クーラー入っていると確かに快適です。
  • 09:44 RT @miyawaki: みんなでブログ更新しましょう方式って、だいたいうまくいかないよね。なんでだろう?
  • 12:13 オーブントースター見にきた。 (@ ヨドバシカメラマルチメディアAkiba) http://4sq.com/77WGwe
  • 12:24 オーブントースター第1候補はサンヨー SK-CW12 かな。3月19日まで3310円。
  • 12:34 ビッグマックセット(昼食) 590円。 (@ マクドナルド秋葉原昭和通り店) http://4sq.com/cVnVl2
  • 13:29 Evernoteノートブックの共有ってもしかして「閲覧のみ」だとデスクトップには(read only とかで)同期されないの?
  • 16:18 C++ ソースコードUncrustify したら、1行コメントの次の行のコードまでコメントアウトされていて驚愕した。
  • 16:41 やばし。スコッティ切れた。
  • 21:03 I'm at 秋葉原駅 (秋葉原駅, 千代田区) w/ 6 others. http://4sq.com/68fhHr
  • 21:33 ヤマダ電機 3480円だった。
  • 23:59 Evernote への転送/ラベル設定用 Gmail フィルタ・コンタクト設定をした。
  • 25:02 Evernote プレミアムにした。
[ 3月16日全て ]

2010年7月9日 (金)

今日のさえずり: 裏秋葉原ってどこ?

rimage:/nDiki/Flickr/4788552833.jpg

2010年07月09日

  • 10:07 缶コーヒー 100円。
  • 10:29 たまにしか使わないのにスタートアップ時に起動する設定になっていた PostgreSQL を停止。
  • 12:09秋葉原ってどこ?
  • 12:34 浅草橋特集の「散歩の達人」 579円。 (@ 有隣堂 ヨドバシAKIBA店) http://4sq.com/4zEmzV
  • 12:40 「男性・メンズ専門ネイルサロン」のティシューもらった。男性とメンズの違いがよくわからない。
  • 12:42 別に男性専門でなくていいけど。
  • 12:47 和風牛丼 350円。 (@ なか卯 神田佐久間町店) http://4sq.com/9tdwTs
  • 13:10 風邪薬は今日の朝まででおしまい。
  • 13:14 さっき買ったの。「散歩の達人 2010年 07月号 柳橋 浅草橋 蔵前 馬喰町」 http://amzn.to/9e6Nq4
  • 13:25 @Meg_mama 自分は今回はガッと熱が出てすっと後腐れなく良くなったのですが、まわりでは長引いている人多いですね。は用心して長めに飲んでました。
  • 17:32 Gmail の送信取り消し機能で助かった。
  • 17:56 Google Apps のログイン画面で「ユーザー名」でよいところを「ユーザー名@ドメイン名」を入力して入れないのって FAQ になりつつある。
  • 18:09 公認アカウントでつぶやけ指令をいただいた。
  • 18:09 待っておりました。
  • 18:35 RT @lrcomm: ぐるぐるアイコンの lrcomm です。お待たせいたしました。生産準備業務向けソフトウェアの新バージョン GP4 Manufacturing 2010 Rev.2 をリリースいたしました! http://bit.ly/9Zbof4
  • 19:26 チーズクロワッサン 125円。この時間に弁当食べると確実にやる気がなくなるので。
  • 19:40 バジルの恥ずかしい部分が露出。 http://movapic.com/...
  • 21:49 あ、これからどこで夜御飯食べようかな。マクドナルド以外。
  • 21:59 なぜこのタイミングで Amazon.co.jp は「デスマーチ」 http://amzn.to/cYwKbR を薦めてくるのか?
  • 22:17 「土俵ガール」と「ゆうパック」の広告が並んでいるのはどうなのか。 (@ 秋葉原駅 w/ 7 others) http://4sq.com/68fhHr
  • 22:21 今日 Norton Internet Security 2010 注文。週末にインストールできるといいな。
  • 22:41 スーパーきたけど、これといったものがない。
  • 22:49 富士そばでミニカレーセット 470円。
  • 23:03 @_kojihiro 日高屋か、いいですね。行動範囲にあるので次はそこも候補にします。
[ 7月9日全て ]

2012年2月6日 (月)

今日のさえずり: 「嫁 Auth」って authorization の方だよね。認証とか言ってる人夫婦関係ヤバすぎ。

2012年02月06日

  • 09:33 もう雨降ってるじゃない。 @ 渋谷駅 (Shibuya Sta.)にタッチ! http://t.co/UdUQW5UT
  • 10:39 昨晩、Android 用テキストエディタとして Jota Text Editor インストールしてみた。Dropbox コンボでしばらく使ってみる。
  • 11:32 「嫁 Auth」って authorization の方だよね。認証とか言ってる人夫婦関係ヤバすぎ。
  • 15:10 referral marketing っていう言葉があるんだ。
  • 15:46ネットサービスに問い合わせしたら、X-Mailer: TECHNOMARK MAIL v1.90 なメールで回答をいただいた。
  • 15:51 テクノマークのサイトの導入事例に「株式会社はてな様」が掲載されていたので伏せる必要無かった。はてなさんテクノマークメール使ってるんだ。
  • 15:53 そういえばコールセンター/CRM デモ&コンファレンス2011 in 東京(第12回)で「テクノマークFAQ」を見たんだけれど、その時は普通のツリー型の FAQ システムだなっていう印象だった。
  • 21:24 DVD コンポの MD 部がイカれかけてるみたい。もう MD 修理とかねー。他各所調子悪くなってきてるし。あ、コンポジットAVケーブル買って iPad 2 つなげば、まだしばらくいけるかも。
  • 22:15 iPhone用 コンポジットAVケーブルがタイムセールで 1,780円か。 http://t.co/aZYfdc8Q
  • 22:19 注文した! RT @Naney: iPhone用 コンポジットAVケーブルがタイムセールで 1,780円か。 http://t.co/aZYfdc8Q
  • 23:16 QuickSSHd 起動して XperiaSSH 接続。build.prop をオリジナルに戻す。
  • 23:38 ウホ、ようやくソフトウェア更新できた。1バイト書き換えただけでも駄目だったのね。
  • 24:02 root 残ってたので、そのまま再度 build.prop いじってシャッター音無音化。めでたしめでたし。
[ 2月6日全て ]

2012年10月31日 (水)

今日のさえずり: 「次の電車もご利用ください。」って放送の後に大崎止まりが入線してきた時の品川駅員に対する感情。

2012年10月31日

  • 09:13 「続いて電車まいります。次の電車もご利用ください。」って放送の後に大崎止まりが入線してきた時の品川駅員に対する感情。
  • 09:19 CIAL鶴見、明日オープンか。つるみカミンでアルバイトしていたので感慨深い。
  • 09:47 まずは昨日のメール処理等々から。 (@ 株式会社ミクシィ (mixi, Inc.)) http://t.co/aZgd0G6F
  • 09:53 レーザーブレードを @sseze よりいただいていた。THX. これで夢の二刀流生活。
  • 10:22 ちょっと液晶モニタの輝度とコントラスト下げてみた。これで目に優しくなるかな。
  • 13:38 Chrome リモート デスクトップ、Android 端末を操作できるようにならないかな。
  • 14:06 口座解約方法「三菱東京UFJ銀行 Q&A検索で見つかった」「みずほ銀行 FAQ で取引店以外での解約について見つかった」「りそな銀行・みずほ銀行・Citibank 見つけられなかった」 三菱東京UFJ銀行が良心的。
  • 20:10 Catch の共有スペースってノート自体は他の人が書いたの編集できないのか(コメントはできる)。Evernote とは違うモデル。
  • 24:52 なんだろう、このモヤモヤ感は。週次レビューをガシッとやった方がいいのかもなー。
[ 10月31日全て ]

About Me

Naney Naney (なにい)です。株式会社ミクシィで SNS 事業の部長をしています。

nDiki1999年1月に始めたコンピュータ日誌を前身とする NaneyWeb 日記(兼パーソナルナレッジベース)です。ちょっとしたノートは nNote にあります。

※内容は個人的見解であり所属組織とは関係ありません。

月別インデックス
Process Time: 0.234431s / load averages: 0.50, 0.40, 0.43
nDiki by WATANABE Yoshimasa (Naney)
Powered by DiKicker