タグ

ブックマーク / kagamihoge.hatenablog.com (19)

  • リレーショナルデータベース入門―データモデル・SQL・管理システム - kagamihogeの日記

    RDBMSの知識不足を感じて以来、ここのところその勉強に力を入れている。学習方針は、 達人に学ぶDB設計 徹底指南書 初級者で終わりたくないあなたへ - kagamihogeのblog等の著書のミック氏が推奨している方法で、理論と実装の両面から進めている。俺の場合、後者は、Oracleで主にパフォーマンスの観点から基的原則を確認することをやり、前者は、書のような書籍を通して行っている。 書は、コンピュータサイエンス初年度の講義の教科書を想定して作られている。そのため、コンパクトながらもトピックの網羅性、それになにより各章が独立していながらも一冊を通してみると一貫性が保たれているのが素晴らしい。また、章から章への論理展開が極めて明快なので読みやすい。もっとも、これは俺がある程度の実務経験という下地と、まがりなりにもコンピュータサイエンスの学部経験があるからこそ、の部分もあるだろうけど

    リレーショナルデータベース入門―データモデル・SQL・管理システム - kagamihogeの日記
    yuiseki
    yuiseki 2013/07/02
  • リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック - kagamihogeの日記

    読みやすいコードとはどういうものか、について書かれた薄めの。非常に興味深い事に、コードの読みやすさについてに書かれていてなおかつ、日語で読みやすいとなっている。類書で俺個人の好みで言えばClean Code アジャイルソフトウェア達人の技 - kagamihogeのblogの方を推薦するのだが、いかんせんソレナリに分厚い上に長ったらしい。率直に言って、初心者にオススメできるものではない。 しかしながら、書は内容を絞りに絞り、そして、文体を口語のやわらかい口当たりにすることで、とても親しみやすい仕上がりになっている。200ページちょいなので昨今のラノベ一冊ぐらいの分量な気がする。テクニック的なことはさておき、読みやすいコードとはどういうもので、それがどのような価値を持つかをさっくりと学ぶには定番の一冊でしょう。といっても、webの反応見る限り既にそうなってるようだけど。 うすいから実

    リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック - kagamihogeの日記
    yuiseki
    yuiseki 2013/06/11
  • Play Frameworkさわる - kagamihogeの日記

    環境 jdk1.7.0_21 Eclipse 4.2.0 SR2 ojdbc6.jar Oracle Database Express Edition 11g Release 2 play-2.1.1 やったこと 新規アプリケーションの作成 playを解凍したディレクトリに移動して、下記のように play new [新規アプリケーション名]と打つ。 play new foobarWhat is the application name?はとりあえずそのままで良いので空のままEnter. 次は、ScalaJavaか選べ、と出てくるのでひとまず2のJavaを選ぶ。 これで、playのディレクトリに新規アプリケーションのfoobarのディレクトリが作成される。 Eclipseプロジェクトへの変換 サンプル動かす程度なら別にIDEの形式にする必要もないのだけど、気分的な問題なのでやる。 コマンド

    Play Frameworkさわる - kagamihogeの日記
    yuiseki
    yuiseki 2013/05/03
  • 自動車工場のすべて - kagamihogeの日記

    だいぶ前のことだが仕事で在庫管理系システムのプロジェクトに関わることがあった。倉庫で行われている実作業をある程度知らないとね、ということで一通りの業務をその倉庫の管理者の方に解説して頂いた機会に恵まれたことがある。まず、メーカーやサプライヤーから商品が荷受場に到着して積み下ろしされてくる。モノはサイズやら何やらが様々なので、荷解きをしたりバラしたりして入荷時の検査もする。そのあと、重量物はフォークリフトやらのいわゆるマテハン機器、軽かったり取り扱いがややこしいものは人力で倉庫に在庫の形で積み上げる。んで、クライアントから注文が来ると必要な商品を必要なだけピッキングしてきて、箱に詰める&出荷用の検品をする。あとは運送業者のトラックに積み込んで一通りの流れが終わる。この流れ自体はどこもこんな感じだと思われる。 そのとき印象深かったのは管理者のある一言だった。「倉庫の業務は、一見は在庫から商品を

    自動車工場のすべて - kagamihogeの日記
    yuiseki
    yuiseki 2012/12/06
  • 達人に学ぶDB設計 徹底指南書 初級者で終わりたくないあなたへ - kagamihogeの日記

    達人に学ぶ SQL徹底指南書 - kagamihogeのblog と同じ著者の一冊。前のSQLに焦点を深く絞っていたのに対し、今回はDB全般にまたがって概念や技術を広く解説している。書の結構な部分は、それなりの経験年数があればどこかで読んだことが書いてあることだと思う。しかし、だからといってこのが凡庸かというとそうでもない。むしろ、ごく当たり前のことがなぜ当たり前なのかをハッキリ記述させていくことや、この巻では様々なトレードオフを学ぶことになるが、これらのテキストからは非常に洗練されたスキルが感じられる。 このを読んですごく感心したと同時に感動した部分がまずある。それは、著者のDBに対する基的な態度の一つである、基礎理論疎かにするべからずというか(数学などの)理論によって裏打ちされた概念は強い、というもの。これは例えばこのでは正規化のあたりに強く出てきて、イマサラ正規化かよと

    達人に学ぶDB設計 徹底指南書 初級者で終わりたくないあなたへ - kagamihogeの日記
    yuiseki
    yuiseki 2012/07/11
  • 達人に学ぶ SQL徹底指南書 - kagamihogeの日記

    少し前に仕事で書いたSQLが爆発したこともあり、そろそろSQLをまともに勉強しなおす良い機会かと思いこのを買ってきた。書評とかを見ると、今風にSQLを学びなおすには丁度よさそうだったので書をチョイスしたのだが、丁度良い塩梅の難易度だった。SQLの基礎までは行かずとも再入門するには程よい難しさ、具体的なクエリ例を挙げてのSQLのテクニック紹介とその意義の解説に練習問題とで中々に実用的ではないかと思う。 初っ端はCASE式から始まるのだけど、CASE「式」なので、式が書ける場所ならどこでも書けるというのは中々に目から鱗だった。条件付きUPDATEはともかく、CHECK制約にもCASEが使えるとかは驚き以外の何者でもなかった。他にも印象深い箇所はタクサンあり、自己結合によって集合論の理解を深める手法であるとか、肯定と二重否定の変換だとか、なるほどなーとの感想ばかりだった。 俺はこのを読んで

    達人に学ぶ SQL徹底指南書 - kagamihogeの日記
    yuiseki
    yuiseki 2012/05/30
  • Eclipseのリモートデバッグ - kagamihogeの日記

    リモートデバッグとは、JavaVMプロセスとTCP/IP通信しながらデバッグを行う仕組みを利用したデバッグ手法を指します。 TCP/IP通信ですから、Eclipseが動作しているマシンとは別のマシンで動作しているJavaプロセスと通信してデバッグすることもできます。デバッグ対象は別OSでもいいですし、Eclipseが導入されている必要もありません。 より抜粋 俺は恥知らずなJava使いなので今までこの機能の存在知らなかった……ので、試す。書いてあることはEclipse wikiとほとんど同じことです。 こんな環境でやりました windows XP jdk 1.6.0_16 Eclipse 3.7 普通のJavaアプリケーション まずはEclipseでJavaプロジェクトを作って適当なクラスを作る。 public class Hello { public static void main(S

    Eclipseのリモートデバッグ - kagamihogeの日記
    yuiseki
    yuiseki 2012/01/21
  • Java: The Good Parts - kagamihogeの日記

    ここのところ若干 Java から離れ気味だったこともあり、若干出遅れ気味だが話題になっていたので手を取ってみた一冊。前書きにもあるとおり、書は Java のベストプラクティスや技術的な知識を提供する類のではない。どちらかというと、技術書というよりは読み物に近い部類と言える。ページ数も 200 たらずでサクッと読める。知ってる部分については飛ばし飛ばしでいけば、半日か、早い人なら数時間足らずで読み終えらるんでないでしょうか。 さて書の内容はというと、タイトル通り Java 言語の良いところとは何か、について書いてある。Java を数年使用したことある人ならば、そのほとんどはごく当たり前のことしか書いて無いことに拍子抜けするんじゃないか、と思うくらい、フツーのことが書いてあります*1。ざっくり言ってしまえば、我々 Java 使いが普段フツウに享受している Java の言語機能が良いパーツ

    Java: The Good Parts - kagamihogeの日記
    yuiseki
    yuiseki 2011/04/04
  • 教育で何かを教えることは出来ないのかも - kagamihogeの日記

    先日、美容院でかなり頭を唸らせられる事態に陥った。美容院のアシスタントさんにマユゲ処理してもらってたとき、話の流れである質問をされたが、返答に相当な困難を要した。その質問とは、 「インターネットってどうして見れるんですか?」 こちらがプログラマというコンピュータにはフツーの人よりかは詳しいだろう、というのを見越しての質問である。ひとえにプログラマといっても専門分野があってですね、詳しい分野と詳しくない分野があるんですよぅ、などという言い訳は利かない。コンピュータに普段から触ってる人種なら、コンピュータにかかわってるっぽいことならなんでも分かるだろう、ぐらいの感覚で尋ねてくるのだ。いやまぁ、わからんものはわからんって言えばいいのだけど、なんか負けた気分になるという妙なプライド様がお邪魔なさるのですよね。 それはさておくとして「インターネットのヤフーが勝手にエロサイトになっちゃってー」とか言っ

    教育で何かを教えることは出来ないのかも - kagamihogeの日記
    yuiseki
    yuiseki 2010/02/12
  • アジャイルレトロスペクティブズ 強いチームを育てる「ふりかえり」の手引き - kagamihogeの日記

    このエントリは該当書籍の感想ではないです。何を書いているかというと、書を読んで思い出したこと・感じたことです。なので、書で何が書かれているかについては触れていません。その辺知りたい方は申し訳ないですが別の書籍感想を当たって下さい。 子育てレトロスペクティブ ここ数年、俺が実家に帰省して母親と話すとき、どういうわけか高確率で話題になるトピックがある。そのトピックは、子育てについて。母が俺に対して、俺という息子をどう育てたか・どのような教育を施したか、ということを話すのです。 母が息子である俺に対し「私はあの時こういう想いであなたに対してこういう態度や言動を取った。その結果、あなたにどういう影響が出て、どういう風に育ったのか。また、その時あなたは何をどのように感じたか」というようなことを聞いてくる。まぁ実際はこんな詰問調じゃないけどw 文章にまとめるとこんな感じです。 で、その質問というか

    アジャイルレトロスペクティブズ 強いチームを育てる「ふりかえり」の手引き - kagamihogeの日記
    yuiseki
    yuiseki 2009/07/31
  • ネットワーク超入門講座 保守運用管理編 - kagamihogeの日記

    ネットワーク超入門講座 - kagamihogeのblog の続編というか姉妹の位置づけにあたる。あちらはネットワーク技術の超入門で、こちらはネットワークを仕事としてる人たちの仕事内容がどういうものかを解説する超入門書。一般にネットワークの保守・運用といわれる仕事がどのようなものか、を概観しています。 俺はいわゆる「開発」の側の人間なので、ヘーとかホーとか言いながら読んでました。ネットワーク・インフラ屋さんがどんな感じの仕事してるのか、ってのは意外と知らない分野なんですよね。なんとなくは分かってはいても、具体的なイメージはぜんぜん描けてなかったので、面白く読めました。 最近漠然と思うようになったことの一つに、開発の側にいる人間はもうちょっとネットワーク・インフラ屋さんの世界を知らないとイケナイんじゃないかなーと。仮想化とかクラウドとかの流れもあるし。Web アプリ作るときに Web ア

    ネットワーク超入門講座 保守運用管理編 - kagamihogeの日記
    yuiseki
    yuiseki 2009/07/21
  • ネットワーク超入門講座 - kagamihogeの日記

    書は、ネットワーク技術の構成要素はどういうものがあるのか、各要素はネットワーク技術全体でどのような位置づけにあるのか、それらを導入するとどいう恩恵があるのか、といった外部的な視点からネットワーク技術について解説している入門書。TCP/IP がどうとの内部的な話はほとんど出てきません。 「はじめに」より抜粋した対象読者層は以下の通り。 書は、これからネットワークの仕事に携わる初心者の方を主な対象としています。また、ネットワークエンジニアを管理する立場の方々にも、概念を理解するうえで最適です。 ネットワーク超入門講座 はじめに より抜粋 ネットワークエンジニア的な仕事をするかどうかはさておき、そうしたインフラ屋さんの仕事がどういうものかをとりあえず俯瞰するのに良い一冊です。スイッチやらルータやらの動作原理なんかには深入りせず、ネットワーク技術全体でそれらの要素がどんな役割を担っているか、ど

    ネットワーク超入門講座 - kagamihogeの日記
    yuiseki
    yuiseki 2009/05/26
  • RDBMS解剖学 よくわかるリレーショナルデータベースの仕組み - kagamihogeの日記

    おおよそ近年の Web アプリというか業務アプリは RDBMS の存在無くして語ることは出来ないケースがほとんどである。RDBMS ってのはホントーによくできていて、SELECT,INSERT,UPDATE,DELTE の 4 つの SQL を知っていればホントーにお手軽に永続化機構が利用できてしまう。 DB*1 の発展のおかげで、今でこそ「お手軽に永続化機構が利用できる」ことに違和感を感じなくなってしまっている。がしかし、ほんの数十年もさかのぼって固定長データ全盛の時代になると、この部分は標準的な手続きが整備されてなかったっぽいんだよね。物理的にデータがどう格納されるかを決定するのはプログラマーの責任だったみたいなのですよ。 おかげで 10-20 年くらい前のテーブル設計(構造化設計といったほうがいいか)の教科書を見ると、平気で「カラムには将来の変更に備え予約領域1,予約領域2,予約領域

    RDBMS解剖学 よくわかるリレーショナルデータベースの仕組み - kagamihogeの日記
    yuiseki
    yuiseki 2009/04/19
  • 自分のペースでゆったり学ぶTCP/IP - kagamihogeの日記

    ネットワークというか TCP/IP についての超入門書。最近、ネットワーク関連の知識不足を痛感しており、その辺を補強する書籍をいくつか選んでいるのだけど、書はホントーにホントーの基的なところからの解説なので、さすがにちょっとチョイスが甘すぎたかな、とw なのでばばーと流し読みしてしまいました。大雑把な感触ではあるのだけど、TCP/IP に関して基的なところはよくまとまっているんじゃないかな、という印象です。おおよそネットを使うというのはほとんどの人によってブラウザで Web 閲覧するかメール使うかぐらいだろうけど、書を読むことで少なくとも、ブラウザで URL 打ち込むと Web サイトが見れるのはどういう原理なのか、電子メールはどのように流れてるのか、の初歩的な理解は得られるかと思います。 自分のペースでゆったり学ぶTCP/IP (絵でラクシリーズ) 作者: 網野衛二出版社/メーカ

    自分のペースでゆったり学ぶTCP/IP - kagamihogeの日記
    yuiseki
    yuiseki 2009/04/19
  • IID 世田谷ものづくり学校 - kagamihogeの日記

    IID 世田谷ものづくり学校|アドレス変更のお知らせ 昨日今日で行ってきた場所じゃないんだけど。そこを訪れたときに、琴線に触れたメッセージがあったのをメモしたのが出てきたのでソレを全文引用しておく。 「学ぶ」ことは自分自身に向かい合い、自らの成長を目指すことに他なりません。そして、それはすなわち、より良く「生きる」ということでしょう。 スクーリング宣言 より抜粋 「ものづくり」に向き合っている人が斯様なメッセージを発することがどうやら俺の琴線を刺激しまくったようですね。 ところでこの施設は何なの? というと、ちょっと極端に言うと来の用途として使われなくなった旧池尻中学校の校舎を好きなよーに使っていーよに開放しているところ。建築、映像、アート、ファッションなんかのデザイナーさんが各教室に入居してものづくり活動に励んでおられます。外来の見学は無料・自由。上記の引用文は、見学中にどっかのスペー

    IID 世田谷ものづくり学校 - kagamihogeの日記
    yuiseki
    yuiseki 2009/02/16
  • RESTful Webサービス - kagamihogeの日記

    REST っていう考え方は、すんごく大雑把に言うと「せっかくだから俺はこの Web をもっと活用するぜ」というもの。来の REST の思想は Web とは無関係で、もっと抽象的な、書の言葉を借りれば「アーキテクチャスタイル」と呼ばれるもの。ただ、全国的に Web という上手くいってる実例があるから、REST は Web の上にのっかちゃえばいいじゃん、と言った現実主義的な側面もある。この辺の定義や各概念の関係ってゴチャゴチャしてるんで、一回整理したり振り返りたくなった時に書を参照するとよさそう。 RESTful Web サービスというのを、自分なりにこれまた大雑把にまとめてみる。 まず、HTTP には GET,PUT,DELTE,POST,HEAD というメソッドがあるから操作はこれに限定すればシンプルになるよね、という統一インタフェース。他にも HTTP でいいじゃん的な思想は随所

    RESTful Webサービス - kagamihogeの日記
    yuiseki
    yuiseki 2009/01/31
  • 入門Subversion―Windows/Linux対応 - kagamihogeの日記

    Subversion まともに触ったことないんで、何か入門書読もうと思って手に取ってみました。書は、そもそもバージョン管理って何よ? 的なところから始まり、実際に Subversion のリポジトリ作ってインポートしてチェックアウトしてコミットして……という一連の流れを実際の手順を示しながら解説しています。Subversion の入門書としてはカナリ良く出来てるんじゃないでしょうか。 個人的には、Appendix D の CVS な人のための Subversion 講座がおもしろかったです。実際に使ってみた事のあるバージョン管理システムとの違いや対比が書かれてるんで、ここで理解できたことは多かったように思います。ブランチの違いとか。 あとは、やっぱ実際にさわってみるのって結構重要だなぁ、と。Subversion の trunk, branches, tag の違いとか良くわかってなかった

    入門Subversion―Windows/Linux対応 - kagamihogeの日記
    yuiseki
    yuiseki 2008/12/15
  • 大学の教育力―何を教え、学ぶか - kagamihogeの日記

    人によって、大学に何を期待しているかはかなり異なるだろうし、大学で何を身に付けられたかと思うか、はもっと異なると思う。今に始まったことではないけど、現代の大学は、全入時代やら大学のレジャーランド化やらと、ボロクソに言われがちではある。ソフトウェア開発の分野に限ってみても、大学で学ぶ価値なんてあるの? と素で言う人は多い。 俺は大学でコンピュータ・サイエンスなるものの片鱗を学び、今でこそ受託開発の分野と大学で学んだことの間に連続性を感じることが出来ている*1 が、どうやら俺はかなり幸運なケースのようだ。大抵の人にとっては、大学で勉強したことと、実際の仕事に関連性を見出すことが出来ない場合が大半なようだ。 大学での俺の恩師はこんなことを言っていたのを思い出す。 「大学では、自分の学習スタイルが身に付けられればそれでいい」 先生曰く、学部生に多量に課されるレポートには究極的には意味が無い、と。そ

    大学の教育力―何を教え、学ぶか - kagamihogeの日記
    yuiseki
    yuiseki 2008/10/01
  • プログラマーになれる人なれない人 - kagamihogeの日記

    http://anond.hatelabo.jp/20070523230747 どういう理屈なのかはわからないけど、プログラミングを出来るようになれる人とマッタク出来ない人はハッキリと分かれてしまう。 俺がコンピュータサイエンス学科に居た頃と Teaching Assistant として一年生の面倒見てた経験から言うと、プログラミングが出来ない人はホントに最初の段階から出来ない。 例えば、 int a = 10; というのを習うと 50 人中 4,5 人は脱落する。変数という概念がどうしても腹の中におちていかないらしい。 あと今でも強烈に覚えてるのは、 int main(int argc, const char **argv) { if (a == 10) { } 「カッコは対応させないとダメだよ」と手を変え品を変え何回も何回も教えてもマッタク理解出来ない人とかもいた。 プログラミングのキ

    プログラマーになれる人なれない人 - kagamihogeの日記
    yuiseki
    yuiseki 2007/05/26
  • 1