タグ

ブックマーク / gihyo.jp (16)

  • 第8回 Perlによる大規模システム開発・設計のツボ(1) | gihyo.jp

    連載では第一線のPerlハッカーが回替わりで執筆していきます。今回のハッカーはmixiの広木大地さんで、テーマは「大規模システム開発・設計のツボ」です。 仕事やOSS(Open Source Software)プロジェクトPerlを用いた多人数開発をするにあたって気をつけるべきことや、品質を維持するためのノウハウを、国内最大級のPerlシステムであるmixiの事例をベースに紹介します。コーディング上の命名に関する考え方から、大規模アーキテクチャの設計や品質の数値化まで、ミクロからマクロに至るポリシーやテクニックを駆け足で解説します。 なお、今回の内容は(⁠株⁠)ミクシィの2010年度の新卒エンジニア技術教育メニューからの抜粋になります。これからPerl をはじめとするLL(Lightweight Language、軽量言語)を仕事で使うというフレッシュエンジニアのみなさんにも、ぜひご一

    第8回 Perlによる大規模システム開発・設計のツボ(1) | gihyo.jp
    matuken
    matuken 2011/08/02
  • 第1回 バーストトラフィックの発見と対処 | gihyo.jp

    はじめに 初めまして、(⁠株)ミクシィの中野和貴です。私はシステム部運用部インフラグループネットワークチームという部署で働いており、ほかのメンバーと共にmixiのネットワーク部分全般に関して設計・保守・運用を行っています。ここでは『WEB+DB Press』Vol.50~55にて連載されていた「大規模Webサービスの裏側」で紹介しきれなかったエピソードや、その後のインフラ事情を紹介していきます。 日々大量のトラフィックが流れるmixiのネットワークですが、大きくなってくるとやはりいろいろな問題も出てきます。今回はそれらの問題の中で普段運用しているとなかなか気付きにくいバーストトラフィックに起因する問題事例を紹介します。 ミクシィのネットワーク構成と問題の発覚 mixiでは主要なネットワーク機材にはお金をかけていますが、サービス規模からどうしてもラック数が多くなってしまうため、エッジスイッ

    第1回 バーストトラフィックの発見と対処 | gihyo.jp
    matuken
    matuken 2011/06/27
    新機種の検証を行う前にまず,現状のエッジスイッチの性能を再度確認してみます。確認はスネークテストと呼ばれる手法で行いました。これは図3のようにうねうねとLANケーブルを繋いで全ポートに負荷をかける検証方法
  • 第176回 Rosegardenで作曲する | gihyo.jp

    今回は、Rosegardenを使って作曲する方法を紹介します。Rosegardenは連載の第169回と第170回で扱ったArdourと同じDAWソフトウェアですが、MIDIシーケンス機能に焦点をあてて開発されている点が異なります。 なお、今回の内容を執筆するにあたって作ってみた曲をニコニコ動画にアップロードしておきました。 ニコニコ動画:https://www.nicovideo.jp/watch/sm14745401 MIDIシーケンス機能とは MIDIシーケンス機能とは、演奏情報であるMIDI信号の記録と再生を行う機能のことです。この機能を備えたソフトウェアは、MIDIシーケンサーと呼ばれます。いわゆる「打ち込み」というのは、MIDIシーケンサーでさまざまなMIDI信号を記録・再生し、MIDI音源を鳴らして音声データ を作成することを指します。 Rosegardenとは Rosega

    第176回 Rosegardenで作曲する | gihyo.jp
    matuken
    matuken 2011/06/15
  • 第1回 Hadoopで広がるビジネス領域 | gihyo.jp

    はじめに 近年、「⁠Hadoop」というキーワードをよく目にします。もしかしたらこの記事を読んでいるあなたも、Hadoopというキーワードを目にしたり聞いたりしたことがあり、興味を持ってこの記事をご覧になっているのかもしれません。Hadoopとは何でしょうか?何ができるのでしょうか?今回から全5回にかけて、Hadoopの活用事例や活用のヒント、そしてこれからHadoopを活用しようと考えているエンジニアが知っておくべきことや、情報収集の仕方を解説します。 Hadoopって何? Hadoopとは何でしょうか。簡単に言うと、テラバイト、ペタバイトといった巨大なデータを処理するためのオープンソースの分散処理基盤で、Googleが検索エンジンのバックエンドに利用している技術のクローンです。Googleは2003年に大規模分散ファイルシステム「Google File System(GFS⁠)⁠」につ

    第1回 Hadoopで広がるビジネス領域 | gihyo.jp
    matuken
    matuken 2011/06/15
    New York Times社は,全米3位の発行部数を誇る日刊紙『The New York Times』を発行する新聞社です。同社は過去の掲載記事をPDFファイル形式でユーザに提供するサービスを展開しています。サービスを始めるに当たり,同社では約130
  • 第42回 PostgreSQL 9.0に見るSQLインジェクション対策 | gihyo.jp

    PostgrSQL 9.0から追加されたエスケープ関数から、SQLインジェクション対策を再度解説してみたいと思います。 SQLインジェクション対策の4原則 基的にはSQLインジェクション対策として以下の原則を守っていれば、SQLインジェクションに脆弱なアプリケーションを作ることはありません。 すべてのパラメータを文字列としてエスケープする すべてのパラメータをプリペアードクエリのパラメータとして処理する 文字エンコーディングの設定をAPIで行う パラメータとして処理できない文字列はバリデーションを行う 原則1と原則2は重複して適用する必要はありません。どちらかを行います。文字エンコーディングの設定やプリペアードクエリのエミュレーション・抽象化ライブラリのバグ等でSQLインジェクションが可能になる場合もありますが、通常であればこの原則を守っている限りSQLインジェクション脆弱性を作ることは

    第42回 PostgreSQL 9.0に見るSQLインジェクション対策 | gihyo.jp
    matuken
    matuken 2011/05/19
    SQLインジェクション対策の基本は「エスケープ」です。「プリペアードクエリ」ではありません。正しく「エスケープ」と「プリペアードクエリ」,「バリデーション」を利用してSQLインジェクションを完全に撲滅しましょ
  • 第6回 UNIXプログラミングの勘所(4) | gihyo.jp

    ファイルの保存 ここまでいくつかの見落としがちな処理を見てきましたが、最後にどんなプログラマでも必ず行う「ファイルの保存」についての注意点を考察してみたいと思います。 ファイルを確実に書き込むためには、どのようなコードを書けばよいでしょうか。「⁠fsync」を呼べばいい。それだけではありません。実際には、次の2点も必要になってきます。 (内容の差し替えだった場合に)書き換え途中の状態にならないこと ユーザに対して書き込み完了を返したあとは、ディスクがクラッシュしない限り、データが消えないこと UNIX系OSでこれらの要件を満たすには、まずテンポラリファイルに新しいデータを書いてディスクに同期し(①②⁠)⁠、(⁠必要ならば)古いファイルをバックアップファイル名を使っても参照できるよう別名を付与し(③⁠)⁠、次にテンポラリファイルのファイル名を差し替え対象になっているファイルの名前に切り替え(

    第6回 UNIXプログラミングの勘所(4) | gihyo.jp
    matuken
    matuken 2011/04/06
    ファイルを確実に書き込むためには,どのようなコードを書けばよいでしょうか。「fsync」を呼べばいい。それだけではありません。実際には,次の2点も必要になってきます。 (内容の差し替えだった場合に)書き換え
  • 2010年11月9日 UnityはXじゃなくWaylandで─Natty Narwhalはいったいどんなバージョンに? | gihyo.jp

    Linux Daily Topics 2010年11月9日UnityはXじゃなくWaylandで─Natty Narwhalはいったいどんなバージョンに? 来年4月にリリースが予定されている"Natty Narwhal"ことUbuntu 11.04、つい先日、ユーザインタフェースをGNOME ShellではなくUnityに変更するというアナウンスがなされたが、かのMark Shuttleworth氏はふたたびNattyに関する大胆な発表を行った。UnityはX Window SystemではなくOpenGLベースのディスプレイ管理システム「Wayland」で動くというのだ。 「Unity on Wayland」(Mark Shuttleworth Blog Archive Thursday, November 4th, 2010) URL:http://www.markshuttlewor

    2010年11月9日 UnityはXじゃなくWaylandで─Natty Narwhalはいったいどんなバージョンに? | gihyo.jp
    matuken
    matuken 2010/11/10
    来年4月にリリースが予定されている"Natty Narwhal"ことUbuntu 11.04,つい先日,ユーザインタフェースをGNOME ShellではなくUnityに変更するというアナウンスがなされたが,かのMark Shuttleworth氏はふたたびNattyに関する大胆な発表を行
  • 第1回 IDCフロンティアにみる和製クラウドの未来 | gihyo.jp

    先月「IIJ外気冷却コンテナ型データセンター実験に見る和製クラウドの未来」という記事を書きましたが、今度はIDCフロンティア ビジネス開発部サービス企画部長 粟田和宏氏に最近のデータセンター(ここではインターネットデータセンター/iDCを「データセンター」と表現しています)事情と、IDCフロンティアの取り組みを伺ってきました。伺った話は、データセンターの変化、消費電力削減取り組み、データセンターが郊外へ移転する可能性、ソーシャルアプリプロバイダとクラウドなどです。 粟田和宏氏 IDCフロンティアはデータセンター専業事業者の大手で、価格.comやpixivへのサービス提供を担っている会社です。 データセンター事業者の守備範囲が変わって来ている 今回は、私がデータセンター業界を知らないので、業界全体としての流れを含めつつ、IDCフロンティアで行われている活動を教えていただきました。 まず伺っ

    第1回 IDCフロンティアにみる和製クラウドの未来 | gihyo.jp
    matuken
    matuken 2010/10/08
    今後,データセンターが都内ではなく地方で増える可能性がある理由の一つとして,東京都環境確保条例が挙げられます。これまで努力目標であった二酸化炭素排出量の削減が義務化され,削減目標を達成できなければ排出
  • 第4回 JavaScriptの基礎知識#1 | gihyo.jp

    こんにちは、太田です。前回はクロスブラウザのパターンについてまとめました。今回はより具体的にJavaScriptの基礎的な部分からそこそこJavaScriptに慣れた方でも間違いやすいポイントを中心に解説します。 JavaScriptの背景知識 JavaScriptは(未だに)誤解されがちな言語です。まずはJavaScriptの背景から解説していきます。 (広義の)JavaScriptとはEcma Internationalによって策定されているECMA-262という規格(ECMAScript)を実装した処理系で実行される言語を指します。遠回りな表現になっていますが、これはJavaScriptのややこしさの一端を表しています。つまり、JavaScriptそれ自体に仕様があるわけではない、ということです。ECMAScriptと呼ばれる言語の仕様があって、その仕様に準拠した言語を(広義の)Ja

    第4回 JavaScriptの基礎知識#1 | gihyo.jp
    matuken
    matuken 2010/04/26
    (広義の)JavaScriptとはEcma Internationalによって策定されているECMA-262という規格(ECMAScript)を実装した処理系で実行される言語を指します。遠回りな表現になっていますが,これはJavaScriptのややこしさの一端を表しています
  • 2010年2月8日 Androidコードが次期Linuxカーネルから外れたワケは…? | gihyo.jp

    Novellに籍を置くGreg Kroah-Hartman氏は、Linuxカーネルの大物開発者として著名な人物である。同じくカーネルメンテナーのChris Wright氏とともに、ステージングサブシステム、USB、ドライバコア、Debugfs、カーネルサブシステム(sysfs)などをリードしている。同氏は2009年12月、カーネル開発者のメーリングリストに「Android関連のドライバはもう(ここでは)開発されない。(⁠Androidの)オリジナル開発者たちは開発を放棄しているようだし、メインラインのカーネルツリーで開発させたいとも思ってないようだ。とても悲しい」と投稿、Android(drivers/staging/android)のLinuxカーネルからの削除を発表した。 現在、iPhoneとともに最も注目されているスマートフォンOSのAndroidだけに、これがLinuxカーネルのメ

    2010年2月8日 Androidコードが次期Linuxカーネルから外れたワケは…? | gihyo.jp
    matuken
    matuken 2010/02/09
    では何故,LinuxカーネルからAndroidを外したのか。Hartman氏は「端的に言うと,誰もAndroidコードをケアしなくなったから」としている。カーネル開発においては「ステージングツリーにあるコードはメインカーネルにいずれマ
  • 第61回 「Ubuntuらしく」仮想マシンを使う:ubuntu-vm-builder | gihyo.jp

    Ubuntuで構築したデスクトップ環境を使っていく上で、どうしてもテスト的にソフトウェアをインストールしたいことがあります。こうした場合、常用環境を壊さないように、別のマシンで試してみたくなるはずです。ですが、そうそう多くの物理的なハードウェアを用意することはできません。 その際、仮想マシンを使うのが常套手段です。そこで今回は、(⁠多少ハードウェアを選ぶとはいえ)Ubuntuで手軽に仮想マシンを使う方法を説明します。 Ubuntuにおける仮想マシン 「仮想マシン」とは、ソフトウェアを用いて物理的なハードウェア(PC)をエミュレーションし、あたかも複数台のPCが存在するかのように扱うことができる技術のことを指します。古くから存在するVMwareなどが代表的な例ですが、Microsoft VirtualPC・VirtualBox・Xen・KVMなど、代表的なものだけでも多くの実装が存在します。

    第61回 「Ubuntuらしく」仮想マシンを使う:ubuntu-vm-builder | gihyo.jp
  • 第58回 ファイルのバージョンを管理する | gihyo.jp

    UbuntuをはじめとするUnixライクなOSでは、様々なシーンでテキストファイルを扱います。システムの起動に関わる処理はシェルスクリプトで記述されていますし、各種ソフトウェアの設定ファイルも多くがテキスト形式です。これらは簡単にテキストエディタで編集することができますが、編集前にバックアップを取っておくのが必須であることは言うまでもありません。 また場合によっては「特定のバージョンとの差分を取りたい」や「何世代前の状態に戻したい」という要求も発生するでしょう。しかしこのような場合、単純なファイルコピーによるバックアップでは対処が難しくなります。 今回はそのような場合に便利なバージョン管理ツールを紹介します。 RCSによるバージョン管理 Unix系のOSで古くから使われているのがRevision Control System(RCS)です。 Ubuntuではrcsパッケージとして提供されて

    第58回 ファイルのバージョンを管理する | gihyo.jp
  • 第2回 MRTGとは、どんなもの? | gihyo.jp

    今回は、連載のメイントピックである「MRTG」とはどんなものなのか、まずはツールの全体像を紹介します。 MRTGの出力例 ここでMRTGの出力例を見てみましょう。MRTGでルータのトラフィックを監視すると、図1に示したようなグラフで見ることができます。実際には日、週、月、年の期間を示す4つのグラフから構成されます。 図1 MRTGの出力例 ルータのトラフィックの状況がこのようなグラフで示されます。 MRTGの基プログラム MRTGは、いくつかのプログラムから構成されます。主なものは、以下のようになります。 ① 監視対象機器にトラフィック量等を問い合わせ、それをグラフ化するプログラム →mrtg、rateup ② 監視対象機器に問い合わせるときに使用するパラメータの雛形を作成するプログラム →cfgmaker ③ 複数の監視対象機器がある場合、それぞれのHTMLファイルが作られます。これ

    第2回 MRTGとは、どんなもの? | gihyo.jp
  • #16 UIEvolution/Big Canvas 中島 聡 | gihyo.jp

    今回のゲストは、Windows 95/98などのチーフアーキテクトなどを務めたことで知られる中島聡さんです。 左:中島聡氏、右:小飼弾氏(撮影:武田康宏) 自己紹介 弾:では、一応自己紹介からお願いします。 中:パソコン好きがそのまま大人になった(笑⁠)⁠、中島です。学生時代、アスキーでバイトをして、一瞬、間違ってNTTの研究所に行って(笑⁠)⁠。それから軌道修正をかけて、日Microsoftに行ってからアメリカMicrosoftに行って、トータル13年半くらいいて、2000年に退社。一瞬、ベンチャーキャピタルに行ったんですけど、UIEvolutionっていう自分の会社を作って、それを日のスクエニ[1]に買収してもらって、ちょっと奉公したあとに、最近、Big Canvas[2]っていう2つ目のベンチャー企業を始めました。 10年に1度のプロダクト 弾:一言で言うと、まさに好きを貫い

    #16 UIEvolution/Big Canvas 中島 聡 | gihyo.jp
    matuken
    matuken 2009/01/29
    中:ブラウザも,ものすごく悔しかった。大学3年の頃に「CANDY」(注5)を作って,卒業前にCANDY1,2,3と出して,次のバージョンではCANDYにハイパーリンクのシステムをつけて,画像の一部をクリックすると,別の画像に飛んで,ある部分が拡大されて見えるっていう,画像ベースで全部ベクターだったんだけど,ハイパーリンクシステムを作って,アスキーに持っていったんですよ。これ,CANDYの次のバージョンとして出したいって言ったら,こんなの売れないよって,却下されたんです。役に立たないのかなって思ってたらMosaicが出てきて。Mosaicのほうが文字だったから正しかったかもしれないけど,悔しかったですよ。あんなの別に簡単じゃん。でも,ほんとの答えは結構簡単なところにありますよね。HTTPやHTMLの簡単さに僕は憧れるし,嫉妬を抱く。誰かがものすごく複雑なアルゴリズムのプログラムを作っても,何これ,こんな複雑な,って全然感動しないけど。
  • 第1回 SNMPとMRTG-SNMPの仕組み、MRTGとは?- | gihyo.jp

    今回からスタートした「MRTGを使ったネットワーク監視技法⁠」⁠。連載では、MRTGを題材に、ネットワーク監視のノウハウを紹介します。第1回目は、ネットワーク監視の基となる技術「SNMP」を中心に解説します。 ネットワーク監視も重要な業務 ネットワークには、ルータなどの通信機器を経由して、サーバやクライアントなどのコンピュータがつながっています。このネットワーク環境を安定的に維持していくためには、ネットワークの状況がどうなっているのかを監視する体制が必要になります。資源管理という点では、サーバのディスクの空き容量やCPUの使用率などに目がいきますが、ネットワークも重要な資源であり、このネットワークを監視することもとても大切な運用業務です。 ネットワークの監視には専用のコンピュータが必要になります。この監視に使うコンピュータをマネージャと呼び、監視される個々のネットワーク機器をエージェン

    第1回 SNMPとMRTG-SNMPの仕組み、MRTGとは?- | gihyo.jp
  • 特集:Firefox 3とFirebugで始めるJavaScript開発|gihyo.jp … 技術評論社

    第3回Command Line APIとその活用、各タブからのデバッグ方法 堀邦明 2008-05-21

    特集:Firefox 3とFirebugで始めるJavaScript開発|gihyo.jp … 技術評論社
  • 1