SQLについて調べていたら、すごく詳しい記事を書いてる方がいたのですの。
生島勘富さん、という方ですの。
「艦これ」についてのまとめ #艦これ
http://d.hatena.ne.jp/Sikushima/20131230/1388375483
初級シスアドはユーザ向けの試験で、プロはできて当然!
http://el.jibun.atmarkit.co.jp/g1sys/2009/07/csql-bbbb.html
どうも、キワな方が多いことで個人的に有名な@ITのエンジニアライフで、コメント欄を炎上させて執筆陣から除名になった方だそうですの。
あそこのコメント欄、過疎か炎上の二択しかないきがしますの。
さておき、SQLと、それを中心とした開発についての愛と知識は本物だと思うのですの。
いくつか記事を読んだ限り、この方が一番よく主張しているのは、
「SQLは、APサーバ側の言語(Java、C#など)からDBアクセスのために呼び出される添え物、ではない」ということのようですの。
DBMSを使う以上は、なるべくSQLで処理をするのが(ほとんどの場合)良い、と。
なぜかというと、そもそもDBMSを使う以上は、そこにデータを集めていくことになるので、データを扱う処理はすべてDBを通すことになるわけですの。
そういう状態で、処理の主体をAPサーバに置こうとすると、DB・APサーバの間で処理がぐるぐる行ったり来たりする非効率な構造が生まれやすいということですの。たぶん。
また、SQLは、それさえちゃんと書ければ、設計から開発までぜんぶ出来ると言ってもいいくらいの言語なのに、その割に教育がすごく手薄で残念、もっとみんなSQLを勉強するべき、、ということもよく書かれていますの。
わらわもSQL苦手なのですけど、そうやって丁寧に「むしろSQLこそがメイン」と言われると、そうかも、と思ってしまいましたの。
ほかにも、C#とか使ってて、DBとやり取りする部分のコードが綺麗に書けなくて、、っていうのは、けっこうみんな悩みどころだと思うのですけど、この方いわく「ストアドでDB側に置いてしまえば、そういう汚い混合コードを書かなくても済む」といわれていて、これもなんだか納得ですの。
ストアドを多用すると、処理の在り処が散らばってわかりにくくなる…と思っていたのですけど、主体がAP側っていう先入観を捨てれば、かえって全てDB側にまとまって見やすいかもですの。
それに上でも少し書いたように、構造上、AP側はDBを無視して完結することは出来ないけれど、DB側はそれ自体で完結することが出来るはずですの。それなら、処理をどちらかにまとめたい場合、DB側にまとめるのは悪くない筋だと思うのですの。たぶん。
5年以上前の話に今さら感はあるのですけど、
C#の型推論について調べていて、へぇーと思ったのでメモですの。
2010-09-29 C#のvarとtry~catchが糞すぎる
http://d.hatena.ne.jp/yaneurao/20100929
ものすごく大雑把に言うと、↓のようなコードをvarを使って書くとコンパイル通らない、という問題ですの。
var hoge = null;
とすると、コンパイルが通らないことですの。
var hoge;
でも同じく。
そこでC#の型推論が甘い、という話になるのですけど、
ただ、この書き方を許すということは、
コンパイル時に↓のようなコードを弾かなければいけなくなるということで、
var hoge = null;
if(てきとうな式){
hoge = 1;
}else{
hoge = "文字";
}
それって、すごく大変じゃない? と思ってこれを書き始めたわけなのですけど、元の記事からリンク貼ってあったページを見ると、
[C#][Nemerle]C#の型推論は怠けすぎ
http://d.hatena.ne.jp/akiramei/20100929/1285759272
関数型、あるいは関数型寄りの言語なんかでは、普通に実現できていることのようで、なんか型推論ってすごいんだなぁって、5年以上前の記事を読んで思ったのですの。
この辺りは、よくも悪くも、「よその言語のおいしいところを、つまみ食い」してるに過ぎないC#の限界なのかもしれないですの(ドヤ顔)
ちなみに、一行でこう書いても↓ダメでしたの。当たり前だけど。
var hoge = (true == false) ? 1 : "文字";
C#の型推論について調べていて、へぇーと思ったのでメモですの。
2010-09-29 C#のvarとtry~catchが糞すぎる
http://d.hatena.ne.jp/yaneurao/20100929
ものすごく大雑把に言うと、↓のようなコードをvarを使って書くとコンパイル通らない、という問題ですの。
HogeClass hoge = null;直接的な問題は、ここで、
try {
hoge = new HogeClass();
hoge.XXX();
} catch {
if (hoge!=null)
hoge.YYY();
}
var hoge = null;
とすると、コンパイルが通らないことですの。
var hoge;
でも同じく。
そこでC#の型推論が甘い、という話になるのですけど、
ただ、この書き方を許すということは、
コンパイル時に↓のようなコードを弾かなければいけなくなるということで、
var hoge = null;
if(てきとうな式){
hoge = 1;
}else{
hoge = "文字";
}
それって、すごく大変じゃない? と思ってこれを書き始めたわけなのですけど、元の記事からリンク貼ってあったページを見ると、
[C#][Nemerle]C#の型推論は怠けすぎ
http://d.hatena.ne.jp/akiramei/20100929/1285759272
関数型、あるいは関数型寄りの言語なんかでは、普通に実現できていることのようで、なんか型推論ってすごいんだなぁって、5年以上前の記事を読んで思ったのですの。
この辺りは、よくも悪くも、「よその言語のおいしいところを、つまみ食い」してるに過ぎないC#の限界なのかもしれないですの(ドヤ顔)
ちなみに、一行でこう書いても↓ダメでしたの。当たり前だけど。
var hoge = (true == false) ? 1 : "文字";
Arch Linuxのインストールでめげたので、
Bodhi Linuxをインストールしましたの。
インストール自体は簡単だけど、日本語化が微妙に大変だったので忘れる前にメモですの。 ただ、初心者がぐちゃぐちゃやりながらやったのを、思い出してまとめただけなので、本当にこの手順で上手くいくかは不明ですの。
試してみれば早いのですけど、そこまで元気が残ってなかったのですの。
なぜなら、Arch Linuxのインストールでめげたからですの。
●手順
OSをインストール。
コンソールから、Synapticをインストール。
(apt-get install synaptic)
次に、language-pack-ja(baseも)をSynapticからインストール…のはずが、リポジトリのレアな不具合に偶然あたってしまったようなので、コンソールから。
コマンドを残してくださった方がいたので、そのまま使用ですの。
Sickly Life Blog
Ubuntu 14.04.3でlanguage-pack-jaをアップデートできないバグに対応する
http://sicklylife.hatenablog.com/entry/2015/11/11/222340
次に、フォントとIME(iBus)をインストール。これはSynapticから。
フォントはIPAのセット(fonts-ipafont)と、VineLinuxの(fonts-vlgothic)をとりあえず。
iBusは、ibusとibus-mozc(google日本語入力)を。
それからコンソールで、
sudo dpkg-reconfigure locales
を実行して、いったんOSを再起動ですの。
次に、Settings Panelから言語とキーボードを設定ですの。
デフォルトでは設定項目自体が出てこないようになっているので、
Settings > Modules でModule Settingsを開いて、LanguageとかKeyboardをLoad。
(Languageタブ)Language Settings は、
日本語 > 日本 > UTF-8 まで選択してApplyですの。
日本語とか日本までだとメニュー類が日本語化されないようですの。
ここまでで、日本語表示は出来るようになっていると思いますの。
フォントは好みだけど、ぜんぶVLフォントにしてしまいましたの。 (IPAフォントもいれたのに。。)
最後に、
(Preferencesタブ)Keyboard Input Methods の、
Input Methodタブを開いて、English(US)とJapanese-Mozcをプルダウンから選んでリストに追加ですの。
これで日本語入力が出来るようになると思いますの。
日英の切り替えは、下のメニューか、Ctrl+スペースか、半角/全角キーで出来ると思いますの。
初心者(*1)ならではの困りポイントとしては、
Synapticがメニューの二箇所から起動出来るのですけど、Preferencesじゃない方から起動すると管理者権限がつかないみたいで、パッケージを選ぶことは出来てもインストールが出来なかったところですの。
起動時にeSudoの画面が出てきてパスワードを聞かれるほうが正解(?)ですの。
●参考
Bodhi Linux 2.3.0 日本語化
http://dtybyyde5.xiagao.info/2015/10/31/bodhi-linux-2-3-0-日本語化/
高難易度・・Bodhi linux 3.1.0リリース!
http://ameblo.jp/superjeter007/entry-12071215267.html
*1) LinuxとSynapticと英語がわからない三重苦。
Bodhi Linuxをインストールしましたの。
インストール自体は簡単だけど、日本語化が微妙に大変だったので忘れる前にメモですの。 ただ、初心者がぐちゃぐちゃやりながらやったのを、思い出してまとめただけなので、本当にこの手順で上手くいくかは不明ですの。
試してみれば早いのですけど、そこまで元気が残ってなかったのですの。
なぜなら、Arch Linuxのインストールでめげたからですの。
●手順
OSをインストール。
コンソールから、Synapticをインストール。
(apt-get install synaptic)
次に、language-pack-ja(baseも)をSynapticからインストール…のはずが、リポジトリのレアな不具合に偶然あたってしまったようなので、コンソールから。
コマンドを残してくださった方がいたので、そのまま使用ですの。
Sickly Life Blog
Ubuntu 14.04.3でlanguage-pack-jaをアップデートできないバグに対応する
http://sicklylife.hatenablog.com/entry/2015/11/11/222340
次に、フォントとIME(iBus)をインストール。これはSynapticから。
フォントはIPAのセット(fonts-ipafont)と、VineLinuxの(fonts-vlgothic)をとりあえず。
iBusは、ibusとibus-mozc(google日本語入力)を。
それからコンソールで、
sudo dpkg-reconfigure locales
を実行して、いったんOSを再起動ですの。
次に、Settings Panelから言語とキーボードを設定ですの。
デフォルトでは設定項目自体が出てこないようになっているので、
Settings > Modules でModule Settingsを開いて、LanguageとかKeyboardをLoad。
(Languageタブ)Language Settings は、
日本語 > 日本 > UTF-8 まで選択してApplyですの。
日本語とか日本までだとメニュー類が日本語化されないようですの。
ここまでで、日本語表示は出来るようになっていると思いますの。
フォントは好みだけど、ぜんぶVLフォントにしてしまいましたの。 (IPAフォントもいれたのに。。)
最後に、
(Preferencesタブ)Keyboard Input Methods の、
Input Methodタブを開いて、English(US)とJapanese-Mozcをプルダウンから選んでリストに追加ですの。
これで日本語入力が出来るようになると思いますの。
日英の切り替えは、下のメニューか、Ctrl+スペースか、半角/全角キーで出来ると思いますの。
初心者(*1)ならではの困りポイントとしては、
Synapticがメニューの二箇所から起動出来るのですけど、Preferencesじゃない方から起動すると管理者権限がつかないみたいで、パッケージを選ぶことは出来てもインストールが出来なかったところですの。
起動時にeSudoの画面が出てきてパスワードを聞かれるほうが正解(?)ですの。
●参考
Bodhi Linux 2.3.0 日本語化
http://dtybyyde5.xiagao.info/2015/10/31/bodhi-linux-2-3-0-日本語化/
高難易度・・Bodhi linux 3.1.0リリース!
http://ameblo.jp/superjeter007/entry-12071215267.html
*1) LinuxとSynapticと英語がわからない三重苦。
願いや悩みは、いつでも前提の上にありますの。
「つい嘘を付いてしまう癖を治したい」という人がいたとしますの。
それを治せるかどうかはわからないけれど、この人が「嘘をつくのは悪いこと」という前提を持っていることは、ほぼ事実ですの。
「頑張ってるのになかなか成功出来ない」という人は、「成功することは良いこと」という前提を持っているし、
「こんなにアタックしてるのに、あの人が振り向いてくれない」という人は、もちろん「あの人が振り向いてくれたら嬉しい」という前提がありますの。
いくら大事といっても優先順位はあるはずなのに、忘れていれば忘れているほど、それに気がつけず、無条件に行動を縛りますの。だって超大事なんだもん。
だから、ときどきは。特に、今やっていることがうまく行っていないときには、その行動が何を前提にしているのか思い出すことで、あらためて「その前提はそこまで大事なものだっけ?」と、再検討するのも大事かなと思いますの。
その前提を守ることの利益と、そのための行動が生むデメリットを天秤にかけて、必要なら前提の方を捨ててしまってもいいのかな、と思うのですの。
ちょっとくらい嘘ついてもいいし、成功しなくてもいいし、あの人じゃなくてその人でもいいかもしれないし。
「つい嘘を付いてしまう癖を治したい」という人がいたとしますの。
それを治せるかどうかはわからないけれど、この人が「嘘をつくのは悪いこと」という前提を持っていることは、ほぼ事実ですの。
「頑張ってるのになかなか成功出来ない」という人は、「成功することは良いこと」という前提を持っているし、
「こんなにアタックしてるのに、あの人が振り向いてくれない」という人は、もちろん「あの人が振り向いてくれたら嬉しい」という前提がありますの。
・嘘をつくのは悪いことこういう前提は大事だけれど、あまりにも大事すぎて、”超大事”みたいな、アバウトなラベルを付けて押入れにポイして忘れ去られる運命にありますの。
・成功することは良いこと
・あの人が振り向いてくれたら嬉しい
いくら大事といっても優先順位はあるはずなのに、忘れていれば忘れているほど、それに気がつけず、無条件に行動を縛りますの。だって超大事なんだもん。
だから、ときどきは。特に、今やっていることがうまく行っていないときには、その行動が何を前提にしているのか思い出すことで、あらためて「その前提はそこまで大事なものだっけ?」と、再検討するのも大事かなと思いますの。
その前提を守ることの利益と、そのための行動が生むデメリットを天秤にかけて、必要なら前提の方を捨ててしまってもいいのかな、と思うのですの。
ちょっとくらい嘘ついてもいいし、成功しなくてもいいし、あの人じゃなくてその人でもいいかもしれないし。
建設業界の人手不足を逆手に大流行り!文房具屋から脱皮したリノベーション企業
http://diamond.jp/articles/-/80043
言ってることはわかるけど、ものすごくもやもやしましたの。
何に引っかかったのか考えてみると、たぶんそれは、
「顧客と営業がノリノリで何かしてる」
という恐怖感でしたの。
これから書くことは、この会社がどうというよりも、そこから連想したITの世界の話ですの。だから、この会社はうまく行っていて、誰も泣いていないかもしれませんの。
さて、この嫌さを式に表すと、こうなりますの。
営業が過不足なくそれをまとめる場合(1)、
1×1で、仕事の大変さは最小(1)ですの。
一方、
ふわっとした頼み方をする顧客に(10)、
夢見がちな営業がついた場合(10)、
10×10で、仕事の大変さは100になりますの。
企業にとって仕事が増えるのはいいことなので、
ここまでは、本当は問題は無いのですの。本当は。
どこに嫌さが生まれるかというと、
顧客と営業(と経営者)は、上の式の掛け算のところを足し算で考えている節があることですの。
1×1=1に対して、2のコストで、
10×10=100に対して、20のコストで進めることになるので、
前者はいいとしても、後者は実作業を行う部署が死ぬことになりますの。
また、出来上がった仕事に正確性を保証する必要がある場合、大変さはさらに膨らんで、次の式のようになると思っていますの。
100×100=10000のコストが本来必要だということですの。
この大変さも、顧客と営業(と経営者)…つまり、実作業を行わない人たちは足し算(1.5~2倍くらい)で考えている節がありますの。
2倍で考えてもらえたとしても、40。
10000の大変さを持つ仕事を40のコストで進めるためには、
9960は不幸で埋めなくてはならないのですの。
それが
「顧客と営業がノリノリで何かしてる」
という恐怖感ですの。
http://diamond.jp/articles/-/80043
言ってることはわかるけど、ものすごくもやもやしましたの。
何に引っかかったのか考えてみると、たぶんそれは、
「顧客と営業がノリノリで何かしてる」
という恐怖感でしたの。
これから書くことは、この会社がどうというよりも、そこから連想したITの世界の話ですの。だから、この会社はうまく行っていて、誰も泣いていないかもしれませんの。
さて、この嫌さを式に表すと、こうなりますの。
顧客の自由さ×営業の節操の無さ=仕事の大変さ顧客がハッキリこれを頼むと言ってくれて(1)、
営業が過不足なくそれをまとめる場合(1)、
1×1で、仕事の大変さは最小(1)ですの。
一方、
ふわっとした頼み方をする顧客に(10)、
夢見がちな営業がついた場合(10)、
10×10で、仕事の大変さは100になりますの。
企業にとって仕事が増えるのはいいことなので、
ここまでは、本当は問題は無いのですの。本当は。
どこに嫌さが生まれるかというと、
顧客と営業(と経営者)は、上の式の掛け算のところを足し算で考えている節があることですの。
顧客の自由さ+営業の節操の無さ=仕事の大変さこの場合、
1×1=1に対して、2のコストで、
10×10=100に対して、20のコストで進めることになるので、
前者はいいとしても、後者は実作業を行う部署が死ぬことになりますの。
また、出来上がった仕事に正確性を保証する必要がある場合、大変さはさらに膨らんで、次の式のようになると思っていますの。
仕事の大変さ×仕事の大変さ=正確性を保証する大変さ10×10=100の仕事の正確性を保証するには、
100×100=10000のコストが本来必要だということですの。
この大変さも、顧客と営業(と経営者)…つまり、実作業を行わない人たちは足し算(1.5~2倍くらい)で考えている節がありますの。
2倍で考えてもらえたとしても、40。
10000の大変さを持つ仕事を40のコストで進めるためには、
9960は不幸で埋めなくてはならないのですの。
それが
「顧客と営業がノリノリで何かしてる」
という恐怖感ですの。
言葉って大切だなって改めて思ったのですの。
北斗の拳は、けっこうそういうシーンが多くて好きですの。そう、北斗の拳。
「北斗の拳」に学ぶ - 第12巻 P182~189 無抵抗主義の村 -
http://nokan2000.nobody.jp/hokuto/page02.html
画像が見やすかったから貼らせていただいただけで、特にこのページに対して何か意見があるわけでは無いですの。
このシーン、
A:「抵抗は相手の力を生みます、力は我われ弱い者からすべてを奪うでしょう」
がよく引用されてるようなのですけど、
ここで注目したいのは、直後の、こっちの台詞ですの。
B:「無抵抗は我われ弱者の自分を守るべき唯一の武器なのです」
Aだけなら、さすがのラオウさまも無傷では帰れなかったはずですの。
当然のことを言ってるだけで、つっこめる部分が無いからですの。
というか、言い方を変えれば「弱者は強者にすべてを奪われる」「戦いが実力を高める」と言ってるのと同じで、ラオウさまの理屈そのままですの。
でもBは違いますの。
「弱者が武器によって、自分を守ることが出来る」と言ってますの。
さらに言えば、
「この武器があれば、弱者も強者に負けない力を持てる」
と言ってるわけですの。
弱者は村人で、強者はラオウさまなので、つまりは、
ラオウさまの目の前で「俺たちはお前には負けねえ」って言ってるわけですの。
ここまで挑発されたら、ラオウさまじゃなくてもボコボコにすると思いますの。
で、じゃあどうすればよかったのかと言うと、
Bの台詞をこう言い換えたらよかったと思うのですの。
「我われ弱者は、強者にひれ伏すしかないのです」と。
たったそれだけで、村長は死ななくて済んだかもしれませんの。たぶん。
心の中とか、村人に説くときにどういう言葉を使おうが、それは自由ですの。でも、話す相手によって言葉は選ばないとトラブルになりますの。
という話ですの。
まあ、そもそも部下が困ってラオウさまを呼んだのは、「無抵抗でやりづらかった」からではなくて、「薄気味悪かった」からなので、その意味でも、軽々しく「これが理由さ!」なんて言ってしまうことは悪手だったと言えそうですの。
北斗の拳は、けっこうそういうシーンが多くて好きですの。そう、北斗の拳。
「北斗の拳」に学ぶ - 第12巻 P182~189 無抵抗主義の村 -
http://nokan2000.nobody.jp/hokuto/page02.html
画像が見やすかったから貼らせていただいただけで、特にこのページに対して何か意見があるわけでは無いですの。
このシーン、
A:「抵抗は相手の力を生みます、力は我われ弱い者からすべてを奪うでしょう」
がよく引用されてるようなのですけど、
ここで注目したいのは、直後の、こっちの台詞ですの。
B:「無抵抗は我われ弱者の自分を守るべき唯一の武器なのです」
Aだけなら、さすがのラオウさまも無傷では帰れなかったはずですの。
当然のことを言ってるだけで、つっこめる部分が無いからですの。
というか、言い方を変えれば「弱者は強者にすべてを奪われる」「戦いが実力を高める」と言ってるのと同じで、ラオウさまの理屈そのままですの。
でもBは違いますの。
「弱者が武器によって、自分を守ることが出来る」と言ってますの。
さらに言えば、
「この武器があれば、弱者も強者に負けない力を持てる」
と言ってるわけですの。
弱者は村人で、強者はラオウさまなので、つまりは、
ラオウさまの目の前で「俺たちはお前には負けねえ」って言ってるわけですの。
ここまで挑発されたら、ラオウさまじゃなくてもボコボコにすると思いますの。
で、じゃあどうすればよかったのかと言うと、
Bの台詞をこう言い換えたらよかったと思うのですの。
「我われ弱者は、強者にひれ伏すしかないのです」と。
たったそれだけで、村長は死ななくて済んだかもしれませんの。たぶん。
心の中とか、村人に説くときにどういう言葉を使おうが、それは自由ですの。でも、話す相手によって言葉は選ばないとトラブルになりますの。
という話ですの。
まあ、そもそも部下が困ってラオウさまを呼んだのは、「無抵抗でやりづらかった」からではなくて、「薄気味悪かった」からなので、その意味でも、軽々しく「これが理由さ!」なんて言ってしまうことは悪手だったと言えそうですの。
登録:
投稿 (Atom)