タグ

ブックマーク / nippondanji.blogspot.com (28)

  • その選択、ちょっと待った!NoSQLデータベースへ乗り換える前に検討すべき3つのポイント

    最近、どうも安易に「NoSQLにすれば厄介なDB設計から開放される」と考えている人が多いように思えて仕方がない。だが待って欲しい。当にNoSQLと呼ばれるデータベースを使えばアプリケーションの開発・運用の苦しみから逃れられるのだろうか。もちろん「そんなことは無い!!絶対にだ!!」と私は考える。今日はその理由について語ろうと思う。 トランザクション先日、リレーショナルデータベースにおけるDB設計についてセミナーで解説したばかりだが、リレーショナルデータベースにおけるデータの整合性は何もDB設計だけが担保しているわけではない。リレーショナルモデルと同じかそれ以上に欠かせないのがトランザクションだ。 トランザクションがあるおかげで、トランザクション終了後のステータスは「成功」か「失敗」の2つしかないということが保証される。すなわちオール・オア・ナッシングだ。もしトランザクションの途中で何らかの

    その選択、ちょっと待った!NoSQLデータベースへ乗り換える前に検討すべき3つのポイント
    shiumachi
    shiumachi 2013/12/01
    “世の中に銀の弾丸はない” どちらかというと、RDBMSが銀の弾丸扱いされてきた時代がずっと続いてたという方が正しいと思う。RDBMSがメインストリームなのは今後も変わらないんじゃないかなあ
  • 書評:「統計学が最強の学問である」→ はい。

    このを手に取ったのは単に売れているという理由からではない。むしろ話題になっても「なんかミーハーなタイトルだなー」ぐらいにしか思わず、あまり興味がわかなかった。 ところが、先日同僚の木村氏に誘われて参加した飲み会で、なんと著者の西内氏と話すという幸運な機会に恵まれた。西内氏は話が非常に上手で、ユーモアのセンスや頭の回転の速さ、そして匂い立つリア充臭を醸し出していた。著者に興味がわけば、著書にも興味がわくのが人情である。そして読んだ結果、とても面白いだったので皆さんに紹介しようと思う。 統計学のいろはが分かる書はミーハーなタイトルとは裏腹に、ストーリーに沿ってとても上手に「統計学のエッセンス」を伝えてくれる。専門書ではないので統計学のディテールには踏み込まないものの、要点を的確にピックアップしており「統計学ってどんなもの?どんなふうに使うの?」というクエスチョンに見事に答えている。一般向

    書評:「統計学が最強の学問である」→ はい。
    shiumachi
    shiumachi 2013/08/15
    "データがデカければ適切にサンプリングすればいいだけの話" サンプリングの切り口や粒度を後から変えるためには全データが必要です。ビッグデータは統計を使う前段階の話
  • 書評:「7つのデータベース 7つの世界」

    訳者、角 征典氏より献御礼。「7つのデータベース 7つの世界」はそのタイトルの通り、7種類のデータベースソフトウェアについて解説したNoSQLの道標とも言うべき書籍である。7種類のデータベースとして紹介されているのは、PostgreSQL、Riak、HBase、MongoDB、CouchDBNeo4j、Redisである。書は非常にそそるタイトルであり、わくわくしながらページをめくった。だが、第2章「PostgreSQL」で期待感は打ち砕かれることになる。 正直なところ、この書籍について書評を書くのはどうしようか迷ってしまった。なぜならば、第2章の説明がかなり間違っているからである。そのため、書評を書こうとするとどうしても辛口にならざるを得なかった。献して頂いた角氏にその旨を伝えたところ、それでも良いと快く了承して頂いた。当に辛口になるのでその点は容赦して頂きたい。 何が問題なのか

    書評:「7つのデータベース 7つの世界」
    shiumachi
    shiumachi 2013/04/10
    "NoSQLの利用は今後増えていくと考えている。だが、それはRDBMSにとって代わるのではなく、RDBMSと併用することが多くなるだろう" / 漢(オトコ)のコンピュータ道: 書評:「7つのデータベース 7つの世界」
  • なぜリチャード・ストールマンはオープンソースを支持しないか

    「リチャード・ストールマンはオープンソースを支持しない。」なんていうと、オープンソースにあまり詳しくない人はギョッとするかも知れない。ギョッとした人は是非このエントリを読んで欲しいと思う。 我らがリチャード・ストールマン(敬称略)はGNU宣言を発表してフリーソフトウェア運動を始めた偉人である。そう、リチャード・ストールマンが支持するのはフリー(自由な)ソフトウェアであってオープンソースではないのだ。なんだか似たような感じがするし、恐らくオープンソースとフリー(自由な)ソフトウェアを明確に区別している人はほとんど居ないだろう。オープンソースと言う語をはじめて公式に発表したブルース・ペレンズも「フリーソフトウェアとオープンソースは実質的に同じものを指す」なんて言っちゃってるぐらいだ。だけどリチャード・ストールマンは二つを明確に区別し、あくまでもフリー(自由な)ソフトウェアを支持する立場を貫いて

    なぜリチャード・ストールマンはオープンソースを支持しないか
    shiumachi
    shiumachi 2011/06/18
    "「じゃあMySQLとPostgreSQLはどちらが優れているか?」ということについて話をしだすと最終的に拳で語り合うしかなくなる"むしろそれを見たい
  • 優れたMySQL DBAを見分ける27+3の質問

    「優れたPerlプログラマを見分ける27の質問」の日語訳というエントリが人気だったので、MySQL版をやってみた。題して、「優れたMySQL DBAを見分ける27+3の質問(漢バージョン)」。腕に覚えのある人はぜひ試してみて欲しい。 MySQLのサーバープロセスはいくつある? rootユーザーのパスワードを忘れたときの回復手順 MySQLをオンラインバックアップする方法を3つ。(もっとでも可) InnoDBのデータファイルが作成可能な場所はどこか。 InnoDBのデフォルトの分離レベルは? ネクストキーロックについて説明せよ。 ロールバックセグメントにはどのようなデータが格納されるか? InnoDBでデッドロックが発生したときの挙動、および詳細な状態を確認する方法。 MyISAMがサポートしている特殊なインデックス2つ。 MySQLにおけるテーブル1行あたりの最大サイズ。 構成可能なレプ

    優れたMySQL DBAを見分ける27+3の質問
  • LinuxデスクトップをOSX風 漢(オトコ)のコンピュータ道: CompizとGlx-Dockを極める!LinuxデスクトップをOSX風にカスタマイズしよう。

    Compizというソフトウェアをご存知だろうか。PC UNIX向けの3Dデスクトップマネージャであり、筆者は愛用している。「日男児たるもの、GUIなどに頼ってはいかん!だから3Dなデスクトップなど邪道!」という声が一部から聞こえて来そうな気がするが、Webブラウザを常用するようになった今、その指摘は的を射ていないように思う。ならばGUIの使い勝手を改善して作業効率を高めようではないか!と思ったとき、Linuxで真っ先に行き着く先はCompizだろう。 Compizはそれほど新しいソフトウェアではなく、解説しているサイトはあるが、情報が少し古かったり、あまり詳細な解説がなされていなかったりするように思う。そこで、今日はCompizのカスタマイズ方法について解説しよう。実は、筆者はカスタマイズすることによってMac OS X風の使い勝手、すなわちExpose(&Spaces)風の動作にしてい

    LinuxデスクトップをOSX風 漢(オトコ)のコンピュータ道: CompizとGlx-Dockを極める!LinuxデスクトップをOSX風にカスタマイズしよう。
  • サポートエンジニアが経験から語る、論理的文章によるコミュニケーションのススメ

    俺はこれまで一貫してIT業界エンジニアとしてのキャリアを進んできたのだが、これまでのキャリアでもう一つ一貫していることがある。それは、ずっとサポートエンジニアであるということだ。実はサポート職というのはかなり論理的なコミュニケーションを必要とする職種であり、如何に論理的な文章を上手に書くかということが、如何に良い仕事をするか(短い時間で成果=顧客満足度を得られるか)ということに繋がるという側面がある。(もちろん高い技術力が必要なのは言うまでもないが。)サポートエンジニアはメールや報告書という形で日々論理的な文章を書かなければならないので、サポートの経験を重ねることによって論理的にコミュニケーションをする能力というのは徐々に磨かれよう。しかし、論理的にコミュニケーションをするというのは意外と皆出来ているようで出来ていないし、筋が悪いといつまで経っても身につかないこともあり、上手にお客さんを

    サポートエンジニアが経験から語る、論理的文章によるコミュニケーションのススメ
    shiumachi
    shiumachi 2011/02/03
    "ユーザーの運用を理解する""技術(製品)についてよく理解する""よく聞かれる質問についてはテンプレートとしてまとめておく"
  • Android vs. iPhone が Windows vs. Macにならない理由 〜 オレオレバージョン 〜

    NexusOneで毎日ウハウハしている俺様がやって来ましたよ!現在のAndroidiPhoneがかつてのWindowsMacになるというのはよく言われる比喩である。かつて栄華を誇っていたMachintoshがどのベンダーでも自由にOSを搭載できるマイクロソフトの戦略に敗れ去ったことになぞらえて(そこッ!「右クリックがなかったから」などと言わないように!)、クローズドなiPhoneはオープンなAndroidに(少なくともどのベンダーでもOSを採用できるという意味で)負けるだろうというものだ。そんな恐ろしいシナリオはアップルファンにとって快くないため、あの手この手でそのシナリオを否定しようとするエントリが登場する。 Perlハッカーとしてだけでなく、アップルファンとしても名高い@dankogai氏も例外ではなく、次のようなエントリを投稿されている。 話の展開にかなり怪しくなっているので脊髄

    Android vs. iPhone が Windows vs. Macにならない理由 〜 オレオレバージョン 〜
    shiumachi
    shiumachi 2010/11/30
    "注目したいのはAndroid端末を出荷している企業、すなわちHTC、Samsung、Motrola、Sony Ericssonなどは儲かっているということ。大事なので2度言うが、すでに儲かっているのだ"
  • 漢(オトコ)のコンピュータ道: モダンなMySQLの開発環境の構築方法

    遅ればせながら モダンな Perl の開発環境の構築方法 モダンなPHPの開発環境の構築方法 モダンなPythonの開発環境の構築方法 モダンな Java の開発環境の構築方法 に続いてみる。MySQLは言語じゃないけど。 コンパイラ等MySQLをソースからビルドするのでなければコンパイラ等は必要ないけど、どうせアプリ開発に必要なので「MySQLなんかいつでもハックしてやるぞ!」という意気込みを示すために入れておこう。OSXならXcode、LinuxならGCC。最新のソースコードじゃないとヤダ!という粋な人にはBazaarのインストールもお勧めしたい。Bazaarは言わずと知れた分散バージョン管理システムであり、MySQL開発チームも採用している。最新のソースコードは次のコマンドでゲット可能だ。 shell> bzr branch lp:mysql-server/5.1 mysql-5.1

    漢(オトコ)のコンピュータ道: モダンなMySQLの開発環境の構築方法
  • オープンソースでお金を稼ぐ方法いろいろ。

    オープンソースソフトウェア(以下OSS)が広く使われるようになって久しい。ご存じの通りOSSは無償で入手できるものばかりであるため、多くの人が疑問に思うことがひとつある。それは、「OSS開発者はどこから収入を得ているのか?」ということだ。収入源の実体がよく分からないために「霞をって生きているのか?」などと揶揄されることもある。実際OSS開発者は「どうやって収入を得るか?」ということについて色々と悩んでいる場合も多かったりするのだが、実はOSSには様々なビジネスモデルも存在する。そんなわけで、今日はOSSを活用して収入を得る様々な方法について詳解しよう。OSS開発者になることに躊躇している人の背中を後押しすることが出来れば幸いである。 プロプラエタリソフトウェアのビジネスモデルまずはおさらいである。OSSのビジネスモデルについて考える前に、プロプラエタリソフトウェアのビジネスモデル(特にラ

    オープンソースでお金を稼ぐ方法いろいろ。
    shiumachi
    shiumachi 2010/05/11
    タイトルが誤解を招く気がする。このタイトルなら "オープンソースにフリーライドしてWebサービスを作る" ビジネスモデルなども含める必要があるかと。記事の内容はあくまで"技術者"としての内容。
  • 貧乏だってプロファイリングは出来る!! - poor man's profiler

    従来より、プロファイリングのためのソフトウェアと言えば高価なものが中心であった。もっと安く、お金を掛けずに、簡単に、早くプログラムのボトルネックを探し出す方法はないのか?!ということで編み出されたプロファイリングテクノロジーがある。その名も、「poor man's profiler」だ。 poor man's profilerの全容は、次のページで知ることが出来る。 Poor Man's Profiler http://poormansprofiler.org/ poor man's profilerは、現Facebook(元MySQL ABのサポートエンジニア)のDomas Mituzasによって開発されたプロファイリングテクノロジーである。以下が、その全ソースコードである。 #!/bin/bash nsamples=1 sleeptime=0 pid=$(pidof mysqld) f

    貧乏だってプロファイリングは出来る!! - poor man's profiler
  • MySQLレプリケーションを安全に利用するための10のテクニック

    MySQLのレプリケーションは非常に簡単に使える割には応用の幅が広いので非常に人気のある機能の一つである。レプリケーションの応用分野は例えば、 バックアップ 参照系の負荷分散 HA(高可用性) ディザスタリカバリ(サイト間レプリケーション) BI(レポーティングetc) という風にとても多くのバリエーションがある。このブログを読んで頂いている皆さんの中にもレプリケーションを使っている方は多いのではないだろうか。ご覧の通りMySQLのレプリケーション機能はミッションクリティカル分野でも利用されているが、レプリケーションの使い方が適切でないとシステムの安定稼働に支障を来してしまってDBAやシステム管理者の肉体的、精神的負担が増大してしまう。逆にレプリケーションを堅牢に運用することが出来ればマクラを高くして眠れるというものだ。レプリケーションはMySQLの代表的な機能であるので、レプリケーション

    MySQLレプリケーションを安全に利用するための10のテクニック
  • MySQLコミュニティ騒然!MySQL 5.5.4が与えるインパクト。

    先週、MySQL Conference & Expo 2010が開催され、盛況のうちに終了した。カンファレンスに合わせる形で、MySQL 5.5.3および5.5.4がリリースされたのだが、これが目を見張るような進化を遂げている。特に性能面での進化には目を見張るものがある!Jeremy ZawodnyやMark Calleghanといったコミュニティの重鎮たちも「非常にエキサイティングなリリースだ!」などと表して歓迎の意を表している。 というわけで、日はMySQL 5.5.3/5.5.4の新機能および変更点についてレビューしてみよう! おさらい。 〜 MySQL 5.5の既存の機能 〜MySQL 5.5が登場したとき、その新機能については以前にもエントリで紹介したが、ここで改めておさらいしてみよう。MySQL 5.5は、正確にいうと現在最新バージョンであるMySQL 5.1の「次の次」のバ

    MySQLコミュニティ騒然!MySQL 5.5.4が与えるインパクト。
  • 勝手に図解するmemcached

    先日、Brian Akerとミクシィの前坂氏によるmemcachedのセミナーがあった。 実践で使用する上での話や開発最前線の話が聴けたため、セミナーは非常に盛況であった。筆者にとっても非常に勉強になる内容だった。セミナーの資料はBrian Aker氏のサイトから入手できるのでセミナーに参加出来なかったひとはこの資料を読んで自習して頂きたい。 が、いかんせん氏のスライドはパッと見ただけではなんとなく分かりづらいように俺は思う。なぜだろうか?それはきっと図がないからだ・・・と勝手に想像する。オトコたるもの、時には勝手な憶測で突き進むのもアリだ。ちなみにBrianのスライドはほとんど要点の箇条書きになっている。これでは解説がないと、特に新規にmemcachedやMySQLを学習している人たちには分かりづらいだろう。 というわけで氏に代わり、memcachedがどのように既存の仕組みを置き換える

    勝手に図解するmemcached
  • memcachedの驚愕の事実。

    MixiやFacebook、Wikipediaなど、大規模なサイトでmemcachedを利用する例が増えている。マイコミジャーナルのレポートでFacebookの事例紹介があるのだが、なんとmemcached用のサーバは805台で、メモリ容量は15TBにもなるそうだ。ディスクではなくメモリだけで15TB!である。アクティブユーザーの数は7000万人もいるそうだから、それを捌くとなるとハードウェアも凄い規模にならざるを得ないのである。 このように大規模サイトを支えるmemcachedであるが、そのプログラムの中身は一体いかなるものなのであろうか。memcachedはhttp://www.danga.com/memcachedでソースコードが配布されている。現時点での最新版は1.2.5である。ぜひダウンロードしてみてほしい。そしておもむろにファイルサイズを確認してみてほしい。するとあることに気づ

    memcachedの驚愕の事実。
    shiumachi
    shiumachi 2010/04/08
    1.2.5時点だが、小さいな
  • 漢(オトコ)のコンピュータ道: InnoDBでCOUNT()を扱う際の注意事項あれこれ。

    InnoDBを使うとき、MyISAMと比較して度々やり玉に挙げられるポイントとして「COUNT()が遅い」というものがある。確かにInnoDBにおいて行数を弾き出すのにはテーブルスキャンが必要なのだが、そもそもMyISAMのCOUNT()が速い(テーブルの行数を保持してる)のが特殊なのであって、InnoDBが遅いわけではないのである。とはいえ、高速なCOUNT()については需要が多く、この問題には多くの人取り組んでおられるようだ。しかしながら、COUNT()のチューニングについては未だ語られていない点があるように見受けられるので、今日はCOUNT()のチューニングについて解説しようと思う。 COUNT(*)、COUNT(col)、COUNT(1)の違い基的なことではあるが、COUNT(*)とCOUNT(col)では意味が異なるため、異なる結果が返される場合がある。COUNT(*)はフェッ

    漢(オトコ)のコンピュータ道: InnoDBでCOUNT()を扱う際の注意事項あれこれ。
    shiumachi
    shiumachi 2010/03/09
    "ではどうすればCOUNT(*)を高速化できるか?それにはセカンダリインデックスを活用するしかない"
  • 漢のソフトウェア特許廃止論

    最近は長いエントリしか書いてないので投稿の回数が減り気味なのだが、性懲りもなく今回も長文をぶちかますので皆さん時間があるときに読んでくださると幸いである。 コンピュータ産業において最も良くないものは何か?と聞かれると、俺は間違いなく「ソフトウェア特許こそ諸悪の根源であり、癌である!」と答えるだろう。コンピュータ産業はソフトウェア特許という癌に冒され、日々むしばまれ、やがて終焉に向かおうとしているように見える。一般的に、特許と言うと「産業を振興するとても良いもの」のように考える人も多いだろうが、そうではない。今ではあらゆる産業にとっての足かせにしかなっていないのだ!! 特許とは、アイデアを独占して他者によって勝手に利用されないようにブロックする仕組みであり、他者へアイデアの利用を許可することでライセンス料を徴収したり、ライバルがそのアイデアを利用するのを禁止したりするためのものである。特許は

    漢のソフトウェア特許廃止論
    shiumachi
    shiumachi 2010/03/08
    "あなたがアイデアを生み出すために利用した文明は、我々全員の共有財産である!アイデアの所有権を主張したければ一切文明の便益を享受するなかれ"
  • ウェブガイア仮説 〜 コンピュータと生物の不思議な類似点 〜

    Publickeyに「サーバは「単体」から「群体」へと進化中」という記事があったので、それに刺激されて筆をとってみた。稿は、以前書いた「コンピュータ業界の展望と多様性」というエントリの続きである。今回は、コンピュータシステムの形態(トポロジ)とトレンド、そして今後の展望について、生物とコンピュータシステムの類似性および両者の比較を用いて様々な側面から自分の見解を論じてみたい。かなりの長文エントリなのでその点はご容赦を。 細胞とコンピュータコンピュータ(もしくはコンピュータシステム)と生物には、驚くほどたくさんの類似点がある。改めてその類似点を比較してみると、それが偶然の一致ではなく、そこには必然性があるように思えてならない。生物はご存じの通り細胞から成るが、細胞と一台のコンピュータが同じレベルのものであると過程すると、コンピュータと生物の間はかなり多くの共通点が見えてくる。「複雑な構造を

    ウェブガイア仮説 〜 コンピュータと生物の不思議な類似点 〜
    shiumachi
    shiumachi 2010/02/22
    システム、ソフトウェア、ハードウェア、データ、著作権などなど、幅広い分野に言及した素晴らしい記事。
  • MySQL管理者最速マスター

    巷ではプログラミング言語の最速マスターが流行ってるので、MySQLも参戦。ただし管理者向け。 まずはダウンロードとインストールダウンロードサイト http://dev.mysql.com/downloads/ バイナリにはインストールパッケージ(Windows=MSI、Mac=DMG、Linux=RPMとか)とアーカイブ(*NIX=tar.gz/Windows=zip)があるけど、初心者は黙ってパッケージをチョイス。インストールはウィザードに従うだけ。英語だけどそこはガマン! パッケージリポジトリがあるOSを使ってるなら、リポジトリからインストールするのもありだ。例えば、 shell> sudo yum install mysqlとか shell$gt; sudo apt-get install mysqlとか。これは楽チンだけどMySQLのバージョンがちょっと古くなるので注意。 もちろん

    MySQL管理者最速マスター
  • ALTER TABLEを上手に使いこなそう。

    テーブル定義を変更したい。インデックスが壊れてしまったので再作成したい。そんな場合はALTER TABLEを使う。ALTER TABLEはテーブル定義を変更するお馴染みのコマンドであるが、その挙動は意外と知られていない。(エキスパートとおぼしき方々からも度々質問を受ける。)そんなわけで、今日はALTER TABLEについて解説しようと思う。 まず結論から言うと、なんとMySQLのALTER TABLEはテーブルのデータを全てコピーし直すのである。なんて無駄なことを!?と思うかも知れないが、テーブル定義(スキーマ)の変更を動的に行うには、ストレージエンジンによるサポートが必要であり、動的なスキーマ変更をサポートしているストレージエンジンはまだ少ないのである。(動的スキーマ変更をサポートしているのはMySQL Clusterぐらいだ。しかも追加だけ。)デフォルトで利用出来るMyISAMはInn

    ALTER TABLEを上手に使いこなそう。
    shiumachi
    shiumachi 2010/01/25
    "MySQLのALTER TABLEはテーブルのデータを全てコピーし直す"