Net

プログラミングの質問掲示板で回答しないくせに説教たれる人をどうにかして欲しい

2008-08-28

まぁ,昔からいるんですけど,例えばこういう書き込み。

C++には、VBのように標準では日付型の変数がなく単純な型変換で解決できそうに ないので、困っています。

もしかすると簡単な事なのかもしれませんが、解決法を教えて頂けないでしょうか?

簡単な事というか、これがわからないということは他の部分でも相当苦労しているのではないかと 想像するのですが...(よくC/C++で話題になる"ポインタ/配列/文字列の理解"とか大丈夫?)

これからも似たような仕事をしなければならないのならば、"Visual"でない(Win32APIだの
MFCだの.NETだのの使い方じゃなくてもっとプリミティブな処理についての)C/C++等言語の
例題付きの本を一冊こなしておくぐらいしたほうがいいのではないでしょうか。
#K&RやStroustrupとはいわないけど、「独習C++」とかあんな程度の。

C++での日付の扱い - Insider.NET

この書き込みだけじゃなくて,他の掲示板でもこゆ人いますよね。「他の部分」なんて聞いてねっつの。しかも,質問では「C++のコンソールアプリケーションでDBの更新を行うバッチプログラム」としているわけで,Win32API とか MFC とか .NET とかは関係がない。一応,「本を読んで調べなさい」(説教)という解決はあるけれど,それだったら,引用するなりページを示すなりすべきだと思う。「独習C++」を読めば書いてあるのか?あんな程度ってどんな程度?

こういう掲示板って,質問する側も回答をもらって勉強になるけれど,回答する側も実は勉強になってたりするんですよね。質問を解決するテクニックなりノウハウなりを知っていることと,それを教えることは別物といったところか。中途半端な職人気質の人には,「そんなもんは自分で勉強しろ」とか言う人もいるわけですけど,そんなこと言うだけだったら来るな,と。

まぁ,昔からいるんですけどね。ここ数日調べ物をしていたんですけれど,連チャンで説教レス(スレ)に当たっちゃったもんで(あたしが質問したわけじゃない),なんだかゲンナリしちゃったというわけです。ストレス溜まってるな,こりゃ。

Posted by AIAN at 00:07 [Parmalink] [Trackback (0)]
Random Thoughts

プログラミングメモ - プログラミング基礎体力テスト

2008-08-26

ちょっと前に周りの人にやってもらった実装関連の基礎体力テストをご紹介します。

基礎体力というのは,定番アルゴリズムや実装テクニックをすぐに引き出しから取り出して,不具合なく一発で実装できる能力です。特異な処理を実行するプログラムでも,特異なアルゴリズムそのものが使われる場所ってのは,プログラム全体の中でもかなり少なかったりします(全部特殊な処理をしているプログラムももちろんあるけれど)。大抵のプログラムでは,よくあるアルゴリズムやテクニックが大半を占めていたりする。

で,おそらく,実装の効率ってのは,そういった軽い処理をどれだけ卒なくこなせるか,にかかってると思うんですね。そういう処理を,ウンウンうなってやっとこさ作る,とか,コンパイルエラーを出しまくって作ってるようじゃ,結果は同じでも困りもんです。肝心な「特異な処理」に割くべきリソース(時間とか考える労力とか)を,つまらない処理に回してしまうことになるからです。

ということで,軽めの処理をどこまで一発(コンパイルエラーなし,バグなし)で実装できるか,試してもらったというわけです。

言語はC言語を想定しています。他の言語にも対応しようと思ったんですけど,難易度が均一にならなかったので(簡単になりすぎたり難しくなりすぎたりする),今回はC言語だけ。

[more ...]
Posted by AIAN at 22:54 [Parmalink] [Trackback (0)]
Random Thoughts

今時「技術的なすごさ」って求められてないんだと思う

2008-08-25

こちらの話から。「凄い技術がウケるわけではない」ということでは共通しているので,下記引用に代表させてもらいます。

技術が凄ければユーザは勝手についてくる」という発想に出会う事があります。 それは、正しい場合もあれば正しくない場合もあると感じています。 最近は、得てして「技術だけ」ではあまり成功しないような気がしてきました。

Geekなぺーじ : エンジニアが見落としがちなこと

おそらく,今時「技術的なすごさ」ってのは求められていなくて,ユーザの生活から見て使い易いかどうか(身近な技術でありうるか),ってなところが重視されている気がします。昔はというと,「○○の技術を知らない(使えない)なんてオックレッテルゥー!」とか言えたわけで,つまり,「ある技術を扱えないのは技術が悪いのではなくて,あなたが悪い」とか,普通に言えてたんですけれど,こういうことを言えてた時代を知っているのは,あたしの世代でギリギリなんじゃないかと思います。

今時は,技術に人間が付いていくのではなくて,良い意味でも悪い意味でも,人間に技術がついていくのが善とされている気がする,と。「人間がある技術を使えないのは,人間ではなく技術が悪い」と。

[more ...]
Posted by AIAN at 00:42 [Parmalink] [Trackback (0)]
Random Thoughts

ActionMapping クラスっぽいことを C++ でやってみる

2008-08-24

C++ で Struts みたいなことをやってみよう企画。地味に続いています。今回は ActionMapping みたいなことをしてみよう!です。

Struts の ActionMapping は,FrontController パターンで一括して受理したリクエストを,各 Action クラスに振り分ける作業をします。具体的には,HttpServletRequest オブジェクトと事前に定義した XML ファイルを突き合わせて,投げ先のコントローラ(Action)を決定します(※Action クラスは Model だろ,というウワサもあるんですけど,コントローラとして考えた方が都合がいいので,コントローラとしておきます)。

で,このマッピングの作業なんですけど,要するに,文字列をキーにして,それに対応するオブジェクトを作ることが目的だったりします。この点,Java の場合は,あまり細かいことを考えなくても,リフレクションを使えば簡単に文字列からオブジェクトを作ることができちゃうんですけれど,C++ ではなかなか難しい。RTTI なことはそれなりにできるけれど,メタプログラミングって,そもそもあまり得意じゃないんですよね……。

[more ...]
Posted by AIAN at 23:17 [Parmalink] [Trackback (0)]
Book

夏休みマンガ一気読み - 『獣王星 (1)-(5)』

2008-08-23

夏休みをもらったから,マンガを買い込んで一気読み。『獣王星』はアニメで見たから,スジは知ってたんですけど,原作は原作ならではの魅力があってグッドでした。

獣王星 (第1巻) (Jets comics (415))
樹 なつみ
白泉社
おすすめ度の平均: 4.5
5 ワイルド!!ワイルド!
4 なつみワールド全開!ただ少し……?

この作品。ストーリーは少しレトロな SF 調だし,どの登場人物も魅力的だし,ってなことで,あたしのツボにはばっちりはまっています。死刑囚が送られる星「獣王星」は,実はほげほげのための星であり,主人公はほげほげのために送り込まれた云々……といった,レトロ SF の筋書きをしっかり踏襲しているので,安心して読むことができます。皮肉じゃなくて,こういう筋書き好きなんです。

キャラクターの話で言うと,トール(主人公)とティズ(ヒロイン)の成長譚を含んでいるところもあって,キャラクターとしての魅力を引き立てています。少女マンガだから,本来的な読者(女性)がどう読むのか,あたしゃ想像つかないんですけど,個人的には,ティズの一途で飾りっ気のない相棒っぷりにグッとくるもんがあったりして。成長譚の中でも,この一途っぷりだけは変わらないので,ヒロインとしてとても安定しているし,めまぐるしく変わる状況の中でもキャラクターの配置全体に安定感をもたらしている気がします。

男性キャラは男前だし,男の子キャラは(色々な意味で)かわいいしで,割と多方面から愛される作品なんじゃないかと思います。

Posted by AIAN at 02:10 [Parmalink] [Trackback (0)]
Random Thoughts

夏の日の思い出から倫理の話をつらつら

2008-08-22

いまだに思い出す,子供の頃のシチュエーションがあります。大体,季節は今くらいの時期。8月6日9日あたりになると,毎年小学校の体育館がプチ原爆資料館みたいになっていたのでした。「はだしのゲン」の上映会なんてのもあった。別に,広島や長崎とゆかりのある土地柄ってわけでもないんですけどね。

原爆資料館を訪れた方はご存知かもしれませんけど,とにかく刺激の強い写真が多いもんで,プチ資料館もそんな感じでした。で,夏休みでややアッパーだった気分は,あっという間にダウナーモードに。「はだしのゲン」の上映後,小学校のプール解放があったんですけれど(子供はそれを目的に来ていた),「原爆投下後,川(元安川)に飛び込んでなくなった方が多かった」なんて話を聞いた後でははしゃぐこともできず,微妙な気持ちのまま水に浸っていました。

で,ですね,まぁそれはそれでただの思い出で,小学校なり町内会なりの政治的立ち位置とかも,今にして思えばそれなりにあったんでしょうけれど,それもとりあえずどうでもいいです。

なんつかですね。政治的な意図の有無に関わらず,そういった悲しいシチュエーションを提示されたときに,思うことっつのはあるわけで,そゆもんは一定の倫理的な命題の形に落ち着くんだと思うんですね。倫理的命題というのは,例えば「○○しなくちゃいけない」とか「○○であるべきだ」とかいった,ある程度具体的なお題目(行為規範や価値概念)です。で,そういったお題目を内的に形成することが,多分「空気を読む」ということなんだと思うわけです。

[more ...]
Posted by AIAN at 13:26 [Parmalink] [Trackback (0)]
Random Thoughts

ウェブアプリが返すレスポンスヘッダのステータスコード問題についてつらつら

2008-08-22

随分昔の話なんですけれど,こちらの話から。EC サイトで「商品がないよ」というとき,HTTP のレスポンスヘッダに何を設定すべきか,といった話です。

オリジナルのWebアプリでも出来合いのWebアプリでも企業が構築した高度なWebサイトであっても、データ層(DBとか)からの取得結果がゼロ件なら「その商品/記事はありません」を表示する、といった仕様は当たり前のように実装されている。しかし、HTTPステータスコードまできちんと考慮されているケースは実は驚くほど少ない。

ステータス200なのに「その商品はありません」

これって実は結構根が深くって,単純に「商品が見つかりませんでした」のときに 404 を返せばいいってな話でもないんですよね。以下のコメントで,「商品がない」を 404 にすべきだと言っているわけではない,とあるんですけど,それはその通りなんだと思います。

筆者のかたは、
「商品がない」は「404」にすべき。
と言っているわけではないですよね。

人間には「えらー」とか「ページがありません」しか見せていないのに、
機械には「200」と返している矛盾が問題だと行っているのだと思います。

ステータス200なのに「その商品はありません」[しげさんのコメント]

けれど,この見方も少し考えると微妙です。HTTP のレスポンスヘッダは,ボディの「内容」とはあまり関係がない。つまり,「人間には『えらー』とか『ページがありません』しか見せていないのに、機械には『200』と返している」ことを「矛盾」ととらえるかは,そのウェブアプリの例外ポリシーに依存する話なんだと思います。

[more ...]
Posted by AIAN at 02:12 [Parmalink] [Trackback (0)]
Book

週末読んでたマンガ - 『ネガティブハッピー・チェーンソーエッヂ (2)』

2008-08-19

この巻で完結です。Amazon レビューでは,1巻がひどい書かれ方されてたんですけど,どこが疳に障ったんだろ。単純に滝本ファンが怒ってるだけなんだろうか。

ネガティブハッピー・チェーンソーエッヂ (2) (角川コミックス・エース 114-4)
佐伯 淳一 滝本 竜彦
角川グループパブリッシング
おすすめ度の平均: 4.0
4 1巻よりも満喫できました。

それはともかく,こちらのサイトでは,1巻をこんな風にレビューしていたのでした。

あのですね。あたしゃ思うんですけれど,この作品は,マンガ的リアリティとか,それを求めるオタク諸氏に対する滝本氏なりの批評-批判だと思うんです。(snip)

と,まあそんな意味を含めて読むと,本作品は,かなりメタ的な視点で書かれている。本書の表紙は,金網フェンスを隔てて,主人公がヒロインを眺めているシーンが描かれているんですけれど,そこら辺の描写も象徴的だと思ったりします。

qune: 週末読んでた漫画 - ネガティブハッピー・チェーンソーエッヂ(1)

1巻のレビューでも書いたんですけれど,この作品で特筆すべきなのは,登場人物に入っているはずの主人公が,登場人物としてまったく演じ切れていない気持ちの悪さです。で,仮に主人公に感情移入なり立場を移すなりして考えると,チェーンソー男にまつわる「物語(一般)」と,「主人公=私」の関係ってのは,あらかたそんなもんなんでね?という話だったのでした。

一方で,この「メタ的視点」というのは,あたしが勝手に解釈したことなんですけれど,本巻によるとあながち間違っていたわけでもないみたい。

原作執筆時の意図としては『メタ物語、地味かつ深い文学性、そういうのをキャッチーでポップでファニーなお話にしたい!』という熱い想いがあったような無かったような……。

「漫画版『ネガティブハッピー・チェーンソーエッヂ 』を読んで思ったこと」(滝本竜彦,角川書店,『ネガティブハッピー・チェーンソーエッヂ (2)』,2008年)

本巻では,能登と主人公の関係,それと,チェーンソー男と主人公の関係を通じて,「物語」と「私」の関係が,もう少し深められています(いるように読めます)。

[more ...]
Posted by AIAN at 22:21 [Parmalink] [Trackback (0)]
Book

今読んでる本 - 『CakePHP ポケットリファレンス』

2008-08-19

買い物に行ったのはいいけど,目的の本は見つからず。なんとなく買ってみました。

CakePHP ポケットリファレンス (Pocket Reference)
株式会社ブルーオーシャン 岡田 佳典
技術評論社
売り上げランキング: 11066
おすすめ度の平均: 5.0
5 いま発売されているcake系書籍で一番良いです

CakePHP は PHP の RAD フレームワークです。データベースを作って,必要なところをちょちょっと作り込めば,それっぽくウェブアプリができるので,手早く作るには便利です。あたしゃ,某アプリのモックアップ用にちびっとしか使ったことがないんですけど,特別な権限がなくてもインストールできるのはグッドでした。

もっとも,あたしの場合,本書を読んで Cake をいぢろうとはあまり思っていなくて,単に仕様を調べているだけだったりします。先日もちょっと書いたんですけど,C++ のウェブアプリをゴニョゴニョ考えているもんで,Struts だけじゃなく,RAD フレームワークの仕様をあちこち見て回っているんです。仕様を調べてるだけなので,チュートリアル本よりは,本書のようなリファレンス本の方が,手っ取り早くて都合がいいです。

じゃ,初めて Cake を扱う向きにとって本書はどうなのかというと,うーん……人によりそうです。

本書はフレームワークのリファレンス本なので,過去に Struts なり Rails なり Seaser なりといったフレームワークを扱った向きにとっては,便利に使えるんだと思います。けれど,フレームワークってなんなのさ?って向きにはあまりオススメできません。まぁ,リファレンス本ってそゆもんなんでしょうけどね。「モデル」とか「ビュー」とかいったフレームワーク用語が何の注釈もなしに出てくるので,知ってる人向き。いくつかフレームワークを見てきてて,「アレって Cake ではどうやるんだろ?」ってなときに使うもんなんだと思います。リファレンス本としてはよくできている方だと思う。

Cake は Struts なんかと比べると作りがシンプルなので,フレームワークの基本的な機能を概観するには,割と都合がいい気がします。ただ,LL のフレームワークを見ていていていつも気になるのが,ちょっと凝ったことをしようと思うと,Model に SQL を直書きしなくちゃいけないこと。J2EE のデザパタからフレームワークに入ったあたしとしては,ここら辺に違和感があるわけで,永続化レイヤ(DAO)とビジネスレイヤ(Bean とか)がゴッチャになったような気持ち悪さがあったりします。これって,ちゃんとカプセル化できるんだろうか……まさか業務アプリの開発で SQL の直書きはないと思うけど。

Cake みたいな仕組みってのはきっと,マスタ管理みたいな O/R マッピング向きのアプリには向いてるんだと思います。けど反面,いちいちトランザクション単位で処理する(1回のビジネスメソッドであちこちのテーブルを書き換える)アプリにはきついんじゃないか,と,想像してしまいます。実際あまりいぢってないからよく分からないんですけどね。

ともあれ,まだ読み終わってないので,もうしばらく読む。

Posted by AIAN at 00:23 [Parmalink] [Trackback (0)]
Random Thoughts

プログラミングメモ - LL Golf Hole 5 を C で書く

2008-08-17

やってみた。

与えられた自然数までの数え上げを行います。ただし、繰り上がりが起こったときは最上位の桁のみを数え上げます。また、与えられる自然数には0以外の桁が2回以上登場してはいけません。[例は省略]

LL Golf Hole 5 - 最上位の桁を数え上げる どう書く?org

やってみたんだけど,あまり短くならないなぁ……。クルクル回しすぎだし,変数も無駄遣いしているし。

#include <stdio.h>
#include <string.h>

void
count(int a)
{
    int e, d, i;
    for (e = d = 0; !(a % 10); a /= 10, d = e++);
    while (e--)
        for (i = 1; i <= (e ? 9 : a); i++)
            printf("%d%s\n", i, memset(stdin, 48, d - e));
}

int
main(int argc, char *argv[])
{
    count(300);
    return 0;
}

お題にある Ruby の例では,再帰を使ってるんですけど,C で再帰を使うと却って長くなっちゃう気がします。デフォルトの仮引数を使えたり,文字列と数値を楽に行き来できないと,再帰を使うのはなかなかきつい。個人的には,mattsan さんの増分を変えていく方法が, C/C++ 系では無難できれいな感じがします。

あたしの方法は……あまりやっちゃいけませんね。memset(3) の書き込み先に stdin を間借りしてるんですけど,これってできるんだ。自分でやっててちょっとウケた。

Posted by AIAN at 23:32 [Parmalink] [Trackback (0)]
About
Search This Site
Categories
Recent Entries
Ads
Log Archive
Syndicate This Site
Info.
クリエイティブ・コモンズ・ライセンス
Movable Type 3.36
Valid XHTML 1.1!
Valid CSS!

© 2003-2008 AIAN