タグ

ブックマーク / yakst.com (10)

  • オブジェクト指向プログラミングとは? : スティーブ・ジョブズの答え | Yakst

    スティーブ・ジョブズによる、オブジェクト指向プログラミングとは何かという非常に平易な言葉でのわかりやすい説明。 オブジェクト指向プログラミングに関するいい説明にはなかなか出会えていませんでした。正式なエンジニアリングの教育を受けたわけではないけれど、いつも技術やデザイン、芸術といったやることすべてに明確なアイディアを持って説明する、ある人の言うことを聞くまでは。 ここに挙げるのは1994年の「ローリングストーン」のインタビューの引用で、スティーブ・ジョブスがオブジェクト指向プログラミングとは何かを説明しているものです。 Jeff Goodell : そもそもオブジェクト指向ソフトウェアとは何か、簡単な用語で説明していただけますか? Steve Jobs : オブジェクトとは人間のようなものだ。生きていて、何をどうすべきかという知識を自分の中に取り込み、物事を覚えていられるようにメモリーを持

  • Redis作者Salvatore Sanfilippo氏へのインタビュー : シチリア島から才能と情熱を | Yakst

    Redisの開発者として知られるSalvatore Sanfilippo(antirez)氏へのインタビュー。彼のキャリア、渡米せずにイタリアを拠点に活動している理由、オープンソースと企業の関わりについての意見、若者達へのメッセージ。 メディアによって作られたあらゆるステレオタイプにも関わらず、シリコンバレーで開発者として成功するのは至難の業だ。価値ある人間関係を作り上げる事ができ、その努力を見える形にできた一握りの最高のプログラマ達だけが、トップの会社で高賃金の仕事を得たり、立ち上げた会社への投資を受けたりする事ができる。そんな困難を乗り越え、しかもこの素晴らしいイタリアのシチリア島から出ずに製品を作り上げ、それに伴う評判を得る事を想像してみて欲しい。それはほとんど不可能事に近い。しかし、Redisの作者であるSalvatore Sanfilippo(antirez)は、それをやってのけ

    Redis作者Salvatore Sanfilippo氏へのインタビュー : シチリア島から才能と情熱を | Yakst
  • Linuxカーネルハッカーになる4つの方法 | Yakst

    Linuxカーネル開発者になりたいと思っても、まず何から手をつけたらいいか分からず、始める前から挫折する人も多いだろう。すぐ始められる最初の一歩の例が、筆者の経験を交えて4つ挙げてある。 (これは、CUSECというイベントでの、カーネルは怖くないという話の続き) カーネルプログラミングを始めるにはどうしたらいいか、アドバイスを求めたことがある。その時は、こう回答があった。 仕事のためにカーネルを理解する必要がなくても、やってみたらどうだろう? Linuxカーネルメーリングリストに登録してみて、精一杯理解しようと頑張ってみよう。 メインのLinuxカーネルの一部にならないコードを書いているなら、時間の無駄だ。 これは私にとっては、全然、少しも役に立たなかった。そんなわけで、ここでは、あなたなりにOSやLinuxカーネルがどう働くか、楽しみながら理解していくための、いくつかの戦略について書いて

    Linuxカーネルハッカーになる4つの方法 | Yakst
  • MySQLインデックスの基礎 : ひとつのテーブルに対するクエリの最適化法 | Yakst

    MySQLのインデックスを効果的に使うにはどうしたらいいのかについての分かりやすい解説。そもそもインデックスの役割はとは何か、そしてどうすればその役割を果たしてくれるのかを説明する。 たとえ1つのテーブルだけに対して実行されるクエリでも、パフォーマンスが悪いというのはよくあることです。その理由は簡単で、インデックスの作り方がまずいため、実行計画がおかしくなってしまうのです。ここでは、1つのテーブルのみに対する色々なクエリを最適化するためのガイドラインを挙げてみたいと思います。 おことわり : あらゆる状況をカバーしようとはせず、一般的なガイドラインを提示するに留めるつもりです。ここで挙げたものがうまく適用できない例を簡単に見つけることができるのは間違いないでしょうが、ほとんどの場合はここに書いたことが十分なのも事実です。また、MySQL 5.6以上にあるIndex Condition Pu

    MySQLインデックスの基礎 : ひとつのテーブルに対するクエリの最適化法 | Yakst
  • mysqldiffでテーブル定義の違いをチェックする | Yakst

    MySQL Performance Blogの翻訳。MySQL Utilitiesに含まれるmysqldiffコマンドを使うと、サーバ間あるいは同一サーバ内でのテーブル定義の違いをチェックし、一致させるにはどうするべきかが分かる。使い方と簡単な仕組みの解説。 レプリケーション環境でデータの不整合が発生するのはよくあることでしょう。pt-table-checksumやpt-table-syncを使ってそういった問題を解決する方法を解説した記事はたくさんあります。多くの場合、データの整合性には気を使うと思いますが、サポート窓口では、以下のような質問を受けることもよくあります。 サーバ間でテーブル定義が一致しているか調べる方法は? レプリケーションをしていても、マスタスレーブ間で異なったテーブル定義にしておくことは可能です。例えば、スレーブでは参照クエリのためにインデックスが必要だけれども、マス

    mysqldiffでテーブル定義の違いをチェックする | Yakst
    tarchan
    tarchan 2017/04/10
    >OracleのMySQL Utilitiesに含まれているmysqldiffコマンドを使うと、こういった違いを発見しやすくなり、何を修正すべきかが分かります。
  • 私がデータベースを愛する理由 | Yakst

    モダンなデータベースに使われる各種技術や運用に必要な知識について、Squareのデータベースエンジニアである筆者の見解。データベースの内部構造や仕組みについての興味をかき立てる。 昨年、私はSquareで色々なデータベースの面倒を見る中で、こんなことをしてきた。 データベースのパフォーマンス問題の調査と解決 新しいアプリケーションの、データモデルのデザインやシャーディング戦略の立案 データベース新製品の評価と運用化 最初は必要に迫られてやっていた私は、それから徐々に、データベースの虜になっていった。データベースを学ぶことは、コンピュータサイエンスのあらゆるトピックを横断的に扱うことであり、その理論や実装は、洗練され、かつチャレンジングでもある。 しかし、こういった感覚は他のみんなにも一般的なわけではないということも分かってきた。私の同僚や友人の多くにとっては、データベースは魔法のブラックボ

    私がデータベースを愛する理由 | Yakst
  • 6万ミリ秒でできるLinuxパフォーマンス分析 | Yakst

    NetflixのシニアパフォーマンスアーキテクトであるBrendan Gregg氏による、Linuxサーバにログインして60秒でまず調べることのまとめ。 パフォーマンス問題でLinuxサーバーにログインしたとして、最初の1分で何を調べますか? Netflixには、多数のEC2 Linuxからなるクラウドがあり、そのパフォーマンスを監視したり調査したりするための数々のパフォーマンス分析ツールがあります。その中には、クラウド全体にわたる監視を行うAtlasや、オンデマンドにインスタンスの分析を行うVectorがあります。これらのツールは多くの問題を解決する手助けをしてくれますが、各インスタンスにログインし、標準的なLinuxパフォーマンスツールを実行する必要がある場合もあります。 この記事では、すぐ使えるはずの標準的Linuxツールを使いコマンドラインにおいて、最適化されたパフォーマンス調査を

    6万ミリ秒でできるLinuxパフォーマンス分析 | Yakst
  • LinuxとBitKeeperとGitの関係 | Yakst

    Linuxは過去にバージョン管理システムとしてBitKeeperを使用していて、それがGitに置き換えられた経緯について 「LinuxとBitKeeperとGitの関連について書かれたいい記事ってありますか?」という質問へのOscar Bonilla氏の回答 いい記事は見た事ないけど、どういうことがあったのか簡単に書いてみます。 90年台後半のLinuxプロジェクトは、問題を抱えていました。非常に多くの開発者が関係している一方で、彼らがハッピーになるようないいシステムは存在していませんでした。LinusはCVSについて調査しましたが、最悪という判断を下し、結局tarballとdiff、patchを使っていました。これは彼の取り巻きたちの間ではうまくいきませんでした。なぜなら、多数の開発者から送られてくるパッチをLinusが適用できるような巨大パッチに統合して、コンフリクトを見つけて、そして

  • Gitのリモート操作を5倍から50倍高速化するには | Yakst

    リモートからのgit pullなどの操作を、SSHのコネクション共有とリポジトリの自動ミラーを使って50倍高速化する方法。 注意 Gitサーバとの距離によって結果はまちまちだ。timeコマンドを使った全く科学的とは言えないベンチマークでは、以下の手順を実行した後はgit pullが、GitHubとシンガポールAWSのEC2で5秒以下から0.1秒以下になった。 なぜ? $ time git pull Already up-to-date. real 0m5.075s Gitリポジトリが最新だってことを表示するだけで5秒かかるって?あり得ない。 SSHコネクションの共有と永続化 シンガポールでは、github.comへの往復時間は250msほどだ。GitのオペレーションをするたびにSSHコネクションを張るのは、たくさんのやり取りが発生してしまう。しかし、~/.ssh/configに以下の行を書

    Gitのリモート操作を5倍から50倍高速化するには | Yakst
  • 私が他人のシェルスクリプトから学んだこと | Yakst

    私はシェルスクリプトの大ファンで、他人のスクリプトから面白い方法を学ぶのが大好きだ。最近、SSHサーバの2要素認証を簡単にするためのauthy-sshスクリプトに出会った。このスクリプト群を見まわしていて、みんなと共有したいたくさんのクールなことを見つけた。 出力に色付けする 出力文字列を、成功した時は緑に、失敗した時は赤に、警告は黄色に色づけしたいと思うことはたくさんあるだろう。 NORMAL=$(tput sgr0) GREEN=$(tput setaf 2; tput bold) YELLOW=$(tput setaf 3) RED=$(tput setaf 1) function red() { echo -e "$RED$*$NORMAL" } function green() { echo -e "$GREEN$*$NORMAL" } function yellow() { e

    私が他人のシェルスクリプトから学んだこと | Yakst
  • 1