タグ

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

  • 第1回 "IAって何するの?" がわかる「IA One Sheeter」 | gihyo.jp

    「IA」という言葉が、Web業界の中で皆さんに認知されるまでにはまだまだ時間がかかりそうです。ここで言うIAとは「情報アーキテクチャ」のことを指します。 Webサイトを構築する上で、欠かせないのがこの情報アーキテクチャだと言われてます。簡単に言うと、Webサイト全体の設計図であり方針です。その設計図や方針を具現化するためには、やはり伝えるための手段が必要になります。 この連載では、伝えるための手段としてのツール紹介や、伝えるために必要なヒントを中心に、Webサイト構築に関わる方々に有益な情報をお届けします。 IAについて 「IA」そのものについての説明は割愛しますが、ひと口に「IA」と言っても以下の2つの意味があります。 Information Architecture:情報アーキテクチャ(分野) Information Architect:インフォメーションアーキテクト(スキル) とくに

    第1回 "IAって何するの?" がわかる「IA One Sheeter」 | gihyo.jp
  • PFIとNTTレゾナント、Hadoopに関する解析資料を公開 | gihyo.jp

    Preferred Infrastructure(PFI)とNTTレゾナントが共同でHadoopに関する調査を行い、その報告書がPDFにて公開されています。 HadoopはGoogleMapReduce(編注)をJavaで実装したオープンソースプロダクトで、報告書ではGoogleが持っている機能をHadoopではどう実装されているのかを、該当ソースのポインタを含めて記載しています。 Googleの分散ファイルシステムであるGFS(Google File System)は、HadoopではHDFS(Hadoop DistributedFile System)にて実現しています。GFSが提供しているファイルシステム機能のほとんどはHDFSでも提供しています。ただし、調査を行ったHadoop0.16.4では「ファイルのランダム書き込み」と「ファイルのアトミックな追記」は実現できていません(後者

    PFIとNTTレゾナント、Hadoopに関する解析資料を公開 | gihyo.jp
  • 第1回 memcachedの基本 | gihyo.jp

    株式会社ミクシィ 開発部 システム運用グループの長野です。普段はミクシィのアプリケーション運用を担当しております。今回から数回にわたり、最近Webアプリケーションのスケーラビリティの分野で話題になっているmemcachedについて、弊社開発部 研究開発グループの前坂とともに、使い方や内部構造、運用について解説させて頂きます。 memcachedとは memcachedは、LiveJournalを運営していたDanga Interactive社で、Brad Fitzpatrick氏が中心となって開発されたソフトウェアです。現在ではmixiやはてな、Facebook、Vox、LiveJournalなど、さまざまなサービスでWebアプリケーションのスケーラビリティを向上させる重要な要素になっています。 多くのWebアプリケーションは、RDBMSにデータを格納し、アプリケーションサーバでそのデータ

    第1回 memcachedの基本 | gihyo.jp
  • 第2回 memcachedのメモリストレージを理解する | gihyo.jp

    株式会社ミクシィ 研究開発グループの前坂です。前回の記事でmemcachedは分散に長けた高速なキャッシュサーバであることが紹介されました。今回はmemcachedの内部構造がどう実装されているのか、そしてメモリがどう管理されているのかをご紹介します。また、memcachedの内部構造の事情による弱点も紹介します。 メモリを整理して再利用するSlab Allocationメカニズム 昨今のmemcachedはデフォルトでSlab Allocatorというメカニズムを使ってメモリの確保・管理を行っています。このメカニズムが登場する以前のメモリ確保の戦略は、単純にすべてのレコードに対してmallocとfreeを行うといったものでした。しがしながら、このアプローチではメモリにフラグメンテーション(断片化)を発生させてしまい、OSのメモリマネージャに負荷をかけ、最悪の場合だとmemcachedのプ

    第2回 memcachedのメモリストレージを理解する | gihyo.jp
  • 新しいプログラミング言語を習得するための15の方法 | gihyo.jp

    海外のフォーラムで投稿された内容を翻訳したものです。元はPrashant N Mhatre氏が書いたもので、プログラミング言語を学ぶ際、簡単なチュートリアルと文法、コンパイラやデバッガの使い方を習得したあとに行う練習問題を挙げています。 無限ループ内に1、2、3、...を出力させ、このループを特定のキー入力で止める テキストファイルをオープンし、中身のテキストをHTMLファイルに変換する 配列の開始、中間、最後にアイテムを追加・削除する など文字列操作を中心に全部で15題あります。解答した人の中には、Rubyで実装して公開している人もいます(注2⁠)⁠。 似たようなアプローチでPragmatic Programmer(達人プログラマー)で知られるDave Thomas氏が考案した「Code Kata」(⁠注3)がありますが、こういった練習問題をいくつかストックしておくとプログラミング言語版

    新しいプログラミング言語を習得するための15の方法 | gihyo.jp
  • これから15分でErlangを始めるための資料 | gihyo.jp

    Erlangは並列処理を得意とするプログラミング言語です。コミュニケーションサイト「Twitter」のメッセージングシステムがErlangで書かれていることなどから一躍注目を集め始めました。 昨今、CPUの高速化が限界に近づき、並列化へと移行していっています。そんな背景の中パフォーマンスを高めるためのアプローチの一つとして、並列をサポートしたプログラミング言語の使用が注目されています。Erlangは言語レベルで並列をサポートしていますので、ほかの言語に比べてプログラマが並列を意識することなく並列処理を実現できます。 ただ、Erlangはオブジェクト指向言語ではなく関数型言語であり、(⁠少なくとも筆者にとっては)記法が独特でかなり馴染みづらい印象を受けます。たとえばErlangでは、Hello Worldプログラムをリストのように書きます。 記事では、自習用の資料として、数多くのErlang

    これから15分でErlangを始めるための資料 | gihyo.jp
  • 第1回 Ajaxとクロスサイトスクリプティング | gihyo.jp

    初回はWeb2.0の中核技術ともいえるAjaxを見ていきたいと思います。 Ajaxのセキュリティについて考えていきますが、その前にAjaxについて簡単におさらいしてみましょう。 AjaxとはAsynchronous JavaScript XMLの略であり、一言で言えばJavaScriptとXMLを使って非同期に通信するということです(XML以外の形式が使われることも多くなりました⁠)⁠。通信を非同期にすることで、何か処理をする場合にいちいち待たなくても次の処理に移ることができます。その結果、ユーザを待たせずに多くの処理を行えるようになりました。また、画面全体を再読み込みする必要がなくなったことも、使い勝手の向上した理由です。 Ajaxの動作 それでは簡単なサンプルコードでAjaxの動作を見ていきたいと思います(リスト1⁠)⁠。これらはAjaxの入門サイトや書籍で一番最初に出てくるコードです

    第1回 Ajaxとクロスサイトスクリプティング | gihyo.jp
  • 第8回 クロスサイトスクリプティング対策の落とし穴 | gihyo.jp

    今回は熟練したWebアプリ開発者なら常識のクロスサイトスクリプティング対策の落とし穴を紹介します。 JavaScriptを排除しているつもりで排除に失敗?! 最近はSanitize(サニタイズ)という言葉の代わりにValidation(検証)という言葉をよく聞くようになったと思います。Sanitizeの意味を辞書で調べると「汚れている物をきれいにすること」とされています。この意味の通り汚れた変数をきれいにして使えば安全に利用できるとする考え方に基づくのがサニタイズ手法です。典型的な例は、「⁠テキストを出力する前に"<"と">"を取り除く」方法があります。 例1 "<"と">"をereg_replaceで取り除く $safe_text = ereg_replace($_GET['text'], '[<>]', ''); この$safe_textを <a href="/script.php?t

    第8回 クロスサイトスクリプティング対策の落とし穴 | gihyo.jp
  • 第11回 スクリプトインジェクションを防ぐ10のTips | gihyo.jp

    前回はスクリプトインジェクションがなくならない理由を紹介しました。それをふまえて今回はスクリプトインジェクションを防ぐ10のTipsを紹介します。 デフォルト文字エンコーディングを指定 php.iniには、PHPが生成した出力の文字エンコーディングをHTTPヘッダで指定するdefault_charsetオプションがあります。文字エンコーディングは必ずHTTPヘッダレベルで指定しなければなりません。しかし、デフォルト設定ではdefault_charsetが空の状態で、アプリケーションで設定しなければ、HTTPヘッダでは文字エンコーディングが指定されない状態になります。 HTTPヘッダで文字エンコーディングを指定しない場合、スクリプトインジェクションに脆弱になる場合あるので、default_charsetには“⁠UTF-8⁠”を指定することをお勧めします。サイトによってはSJIS、EUC-JP

    第11回 スクリプトインジェクションを防ぐ10のTips | gihyo.jp
  • 1