blog.toxn

あしあと

SQLアンチパターンその4 キーレスエントリ(外部キー嫌い)

SQL

SQLアンチパターンは全部で25章あるので、毎日書いても1ヶ月かかる内容だった。 なので、今後はそんなにがっつり書かずにポイントだけ。 キーレスエントリ(外部キー嫌い)とは 外部キー制約を使わない いつ起こるのか テーブル間で参照をするとき 何をして…

ファイル内の重複行削除

ファイル内の重複している行を削除する。 fileRowDeduplicator LinqのDistinctメソッドを使うとキレイにできる。 追記: kotyさんに教わった部分を入れてみて、FileUtility2.csとして投稿。かなりスッキリ Enumerable.Distinct(TSource) メソッド (IEnumerab…

SQLアンチパターンその3 IDリクワイアド(とりあえずID)

SQL

IDリクワイアド(とりあえずID)とは 名前のまま、「とりあえずID列作っておこうぜ」ということ いつ起こるのか 主キーを作るルールがあるとき 何をしてはいけないのか(アンチパターン) どんなテーブルに対しても「ID」という名前の列(サロゲートキー)を…

SQLアンチパターンその2 ナイーブツリー(素朴な木)

SQL

ナイーブツリー(素朴な木)とは 「素朴な」という訳がぴんとこなかった… 「単純、未熟な」(思慮から生まれる)ツリー構造。 いつ起こるのか 表の構造で、ツリー(階層)構造を格納しようとするとき 何をしてはいけないのか(アンチパターン) 階層として「…

SQLアンチパターンその1 ジェイウォーク(信号無視)

SQL

ジェイウォーク(信号無視)とは (例えば)カンマ区切りで複数の値を持つ列を作ること。 例:アカウントのテーブル。このアカウントは複数のグループに所属できる。 (account_id, name, group_id) --------------------------- (1, "hoge", "1,2,36,103") (…

SQLアンチパターン読み始めた

SQL

仕事でDBを触る機会が増えました。 転職前はSQLもうろ覚えだったんですけど、割と慣れてきました。 いざ使いはじめると業務が持つデータ量の多さにビビります。 あとは、アプリ開発していく中で既存のテーブルをメンテナンスしたり、自分で必要なテーブル作…

会社でjQuery使ったら無能上司に怒鳴られたんだがwwwww - IT速報 を読んで思ったこと

会社でjQuery使ったら無能上司に怒鳴られたんだがwwwww : IT速報 会社でjQuery使ったら無能上司に怒鳴られたんだがwwwww : IT速報 「何でこんなことも知らないの?老害なの?」と仕事しながら思ってる人はそれなりに居ると思うし、私でSIerとして…

新年だしパスワードについて考えた

あけましておめでとうございます。 2014年は人生のひとつのターニングポイントでした。 ちょっと元気無くしてたり途方に暮れてたりしましたが、今は元気にやっております。 2015年もどうぞよろしくお願いします。 年末年始とお盆くらいしか実家に帰らないわ…

On Error Resume Nextなコードを駆逐するためには

構造化例外処理があるいま、On Error Resume Nextなんて構文にお目にかかるのは、 Excelマクロくらいのもん そんなふうに考えていた時期が俺にもありました。 On Error Resume Nextとは Vishal Basicだけにある構文で、名前からも分かるようにエラー処理に使…

VB.netのIIf関数とIf演算子について

C#で使える三項演算子がVB.netには無い。 代わりに、IIf関数とIf演算子というのがある。使い方とか注意点について… 結論 If演算子使うべき。 VB.net使うべきではない。(言い過ぎか) 理由とか まずは、使い方↓ gist717fda61cb882f349687 よくありそうな、Te…

hubotでslackに妖精さんを召喚した

最近といってもだいぶ前から、仲間内のコミュニケーションツールがSkypeからslackへと移行してきた。 他サービスと連携ができてエンジニアが好みそうというか、エンジニアにしか流行らなそうな。。。 んで、hubot & heroku & slackの連携をさせてみた。 殺伐…

SECCON 2014 長野大会に参加してきた

今更感あるけど、書いてる途中ではてブロが停止して消えたのd(ry SECCON 2014 長野大会 DNS Security Challenge SECCON 2014 長野大会 DNS Security Challenge チーム「/dev/null」で参加してきました。総合3位でした。惜しい。 クイズで積極的に押して…

javascriptオブジェクトのこと

よく分かってなかったけど最近覚えたこと。 javascriptで扱うオブジェクトの最上位にあるのが「window」オブジェクト。 window.open("http://www.google.co.jp/", "Open sesame."); とかやって使うオブジェクト。開いているwindow自体を指している。 window…

ID管理について

以前AAAについて書いたけど、もう一度。