Entries

社会人の技術レベル その2

社会人の技術レベル のつづきへにかさんのコメント:> ある程度枯れたソースを流用したほうが、トラブルが少ない、という理由> かも知れません。ごもっともです。 - コピペによる短期的な修正量削減・リスク軽減をとるか - コピペをせずに中・長期的な修正量削減tと、美しい設計による保守コスト削減をとるかという話なわけで、どちらにするかはそのときの状況判断次第です。しかし「コピペをせずにすむ技術力を持ちつつ、状況次...
このエントリーをブックマークに追加 ブックマークに追加する

perl+DBI プログラムの鉄則 - SQL 文の書き方

perl+DBI プログラムの鉄則 のつづき。鉄則その4.  my $sql =    "SELECT ".    "   hoge, ".    "   fuga ".    "  FROM table1 ".    " WHERE foo = ?"; SQL 文の可読性を高めるため、必ずインデントを付けること。SQL はプログラムとデータベースの界面である。プログラム...
このエントリーをブックマークに追加 ブックマークに追加する

PHP の嫌なところ

変数のタイプミス耐性がない。つまり perl で言うところの use strict 相当の機能がない。無精なプログラマとしては許せない。いちいちテストしないと怖くて使えないではないか。だから仕事では使わない。...
このエントリーをブックマークに追加 ブックマークに追加する

正規表現における文字クラス内のドット

今日 30分はまったこと。Perl の正規表現で、ドットの部分を改行コードにもマッチしてほしくて m/[.\n]/とし書いたが、全く意図どおりに動かなかった。なぜなら文字クラス [〜] の外にあるドットは「改行以外の任意の一文字」という意味だが、文字クラスの中にあるドットは ただのドットだから (Perl に限らず、あらゆる正規表現にあてはまる)。よって、if ( 'abc' =~ m/[.]/ ){ print "OK!\n";}はマッチしない。...
このエントリーをブックマークに追加 ブックマークに追加する

社会人の技術レベル

# 注意: ここで言う技術レベルとは、あくまでコンピュータ関連の技術的# レベルであって、管理スキルやコミュニケーションスキルは含まない。学生時代、fj や UNIX 関係のメーリングリストを見ていて、社会人というのは何と技術的なレベルが高いのだろうか、こんな恐ろしいところでやっていけるのだろうか、と思っていた。就職するときは少しでも技術力のある会社に行きたいと思い、1990年代前半あたりまで UNIX (本物の UNIX ね) ...
このエントリーをブックマークに追加 ブックマークに追加する

Perl の「裸のブロック」と next

今日 Perl で はまったこと。 foreach (1..5){    {      if ( $_ == 3 ){ next; }    }    print "$_\\n"; }の結果は、1,2,4,5, ではなく 1,2,3,4,5 となる。ラクダ本曰く 「ブロックは、意味的には、1回だけ実行されるループと等価」とのこと。知らなかった。わたしは変数のスコープを狭くするために {    my $tmpbuf = &func($hoge);    $tmpbuf =~ ...
このエントリーをブックマークに追加 ブックマークに追加する

flag と Boolean

flag について悩む の コメントより名前というより、データ型をBOOLEAN NOT NULLにしたら、2値ということでいいんでないでしょうか。そうでなければ、2値以外もありえる、たとえそのときは選択肢が2つしかなくとも、設計者は増える可能性を考えていた(仕様変更含め)、という認識で、データ型重視で。もちろん、『is_admin』なんて項目に、「管理者/保守ユーザ/一般ユーザ」なんて値が設定可能だったら、「なんでそんな名前やね...
このエントリーをブックマークに追加 ブックマークに追加する

「flag」について悩む

2ch プログラマ板の DB 関連のスレッドで (どのスレかは忘れた)、 「hoge_flag という項目名をつけるのであれば、とりうる値は 2種類で  あるべき。flag は旗なんだから、上げるか下げるかのどちらかだ」という趣旨の書き込みを見たことがある。そのときは何となく納得して、2値の場合は hoge_flag、3値以上の場合はhoge_code や hoge_type などと命名するようにしたが、本当に旗は上げるか下げるかのどちらかなのだろうか。た...
このエントリーをブックマークに追加 ブックマークに追加する

label 要素のススメ

「あらゆるラジオボタン・チェックボックスに label 要素をつけよう運動」を今日から推進します。たいていのブラウザにおいて、ラジオボタンやチェックボックスのサイズは非常に小さいです。わずか数ドットしかない狭い領域をクリックしなきゃならないようなインタフェースは腐っています。このようなインタフェースを放置するのは利用者を馬鹿にした行為といっても過言ではありません。というわけで、label 要素をつければ入力が...
このエントリーをブックマークに追加 ブックマークに追加する

Oracle、オープンソースソフト企業のInnobase買収

http://www.itmedia.co.jp/news/articles/0510/08/news012.html より。米Oracleは10月7日、フィンランドのオープンソースソフト企業Innobase OYの買収を発表した。買収条件は非公開。MySQL 的に一番嫌なのは、これにより InnoDB の開発が停滞し、現在注力しているエンタープライズ分野への進出がストップしてしまうこと、だろうか。とりあえずいつでも PostgreSQL に切り替えられるように、MySQL の方言は極力使わないようにしてお...
このエントリーをブックマークに追加 ブックマークに追加する

MySQL と RaiseError とサーバサイド prepare

昨日から今日にかけて はまったこと。DBI + DBD::mysql + MySQL で、RaiseError が効かない。 use DBI; my $dbh = DBI->connect( 'DBI:mysql:dbname', 'user', 'password', {AutoCommit => 0, RaiseError => 1, PrintError => 0} ) || die; my $sth = $dbh->prepare("select * from not_exist_table"); $sth->execute;上記のように、存在しないテーブルやカラムに対して DML を発行しようとすると、RaiseE...
このエントリーをブックマークに追加 ブックマークに追加する

3値論理――神のいない論理

以前、DB 歴 10年目くらいの人が  「あれ、NULL が入っている行って『カラム名 = NULL』で SELECT できるんじゃないの?」 とわたしに言った。情けない。 と嘆いたところで業界から不勉強な人が減るわけでもないので、カラムには極力 NOT NULL をつけましょう。 NULL を嫌悪する者として、いろんなところで宣伝してまわっているのが以下のページ。 3値論理――神のいない論理 NULL撲滅委員会 世の中のカラムに NOT ...
このエントリーをブックマークに追加 ブックマークに追加する

perl+DBI プログラムの鉄則 - fetchrow_arrayref を使え

perl+DBI プログラムの鉄則 のつつき。 鉄則その3.   while ( my $arr_ref = $sth->fetchrow_arrayref ){      my ($hoge, $fuga) = @$arr_ref;       ...   }SELECT 時は上記のように fetchrow_arrayref を使うこと。そして必ずスカラーに代入すること。せっかく fetchrow_arrayref を使っていても   while ( my $arr...
このエントリーをブックマークに追加 ブックマークに追加する

perl+DBI プログラムの鉄則 - eval で例外処理

perl+DBI プログラムの鉄則 のつつき。 鉄則その2.DB に接続したらすぐに別の関数に飛ばし、そこですべての処理を行う。main 部分は    my $dbh = DBI->connect(...) || die "$!";    eval {       ...       $dbh->commit;       $dbh->...
このエントリーをブックマークに追加 ブックマークに追加する

perl+DBI プログラムの鉄則 - RaiseError と AutoCommit

perl+DBI プログラムの鉄則 のつつき。鉄則その 1.     my $dbh = DBI->connect($dsn, $user, $password,          {RaiseError => 1, PrintError => 0, AutoCommit => 0 });connect 時にするべきこと。RaiseError は ON にする。そうすれば DB の処理でエラーが発生したときに勝手に die してくれる。いちいちエラーチェックをする必要もなくなるし、エラーチェック漏れも起こりえない。楽で...
このエントリーをブックマークに追加 ブックマークに追加する

perl+DBI プログラムの鉄則

68user 的 perl+DBI プログラムのルール。初心者に教育するときはこのサンプルプログラムを渡すこと。重視すべきなのは、バグの入り込まないコーディングスタイルであることと、可読性を重視すること。速度はその後でよい。まずはサンプルプログラム。解説は後ほど。#!/usr/bin/perluse strict;use DBI;my $dbh = DBI->connect($dsn, $user, $password,      &n...
このエントリーをブックマークに追加 ブックマークに追加する

長すぎる部分が勝手に隠れるテーブル

Gmail の吐いた HTML と 2時間も格闘して得た技。http://x68000.q-e-d.net/~68user/bugnote/bugindex.php?projectid=1ウィンドウサイズを小さくすると、「要約」の列のみが勝手に隠れる。その他の列は隠れない。Firefox・IE6 で確認。...
このエントリーをブックマークに追加 ブックマークに追加する

はじめての blog

blog とかいうものに手を出してみた結果、fc2 のシステムはダメだということがわかった。> 希望パスワード (できるだけ類推されにくいパスワードにしてください。)> (4〜10文字 半角英数小文字) 例:aaaa最小 4文字は少なすぎ。最大 10文字も少なすぎ。なぜ英大文字や記号が使えないのか。ダメすぎ。> ブログタイトル (ブログ上で表示するブログのタイトルです。)> (全角1〜40文字)なぜ全角なのか。本当は 68user's blog にしたか...
このエントリーをブックマークに追加 ブックマークに追加する

Appendix

プロフィール

Author:68user
http://X68000.q-e-d.net/~68user/

ブロとも申請フォーム

この人とブロともになる

ブログ内検索

Powered By FC2ブログ

Powered By FC2ブログ
ブログやるならFC2ブログ