タグ

ブックマーク / atmarkit.itmedia.co.jp (16)

  • TDD/BDDの思想とテスティングフレームワークの関係を整理しよう

    TDD/BDDの思想とテスティングフレームワークの関係を整理しよう:いまさら聞けないTDD/BDD超入門(2)(1/3 ページ) TDD/BDDの思想に触れ、フレームワークとしてxUnit、JBehave、xSpec、Cucumber、Turnip、TestDoxを紹介する。 前回の「テスト駆動開発/振る舞い駆動開発を始めるための基礎知識」でも紹介があったように、さまざまなテスティングフレームワークがあります。例えばTDD自体は、Kent Beck(ケント・ベック)氏が著書『テスト駆動開発入門』(ピアソンエデュケーション刊)の中で述べているように、「分析技法および設計技法であり、実際には開発全てのアクティビティを構造化するための技法」です。 TDD(テスト駆動開発)/BDD(振る舞い駆動開発)を実践することと、特定テスティングフレームワークを採用したり開発したりすることを分けて考えておかな

    TDD/BDDの思想とテスティングフレームワークの関係を整理しよう
  • グリー技術者が聞いた、fluentdの新機能とTreasure Data古橋氏の野心

    fluentdのほかにもバイナリシリアライゼーションフォーマット「MessagePack」の開発などで知られる古橋氏だが、学生時代からその技術力の高さには定評があり、注目され続けてきたスーパーエンジニアでもある。 今回、fluentdのユーザーでもあり、古橋氏とは旧知の仲でもあるグリー 開発部 リーダーの森田想平氏がインタビュアーとなり、fluentdにまつわるトピックや、トレジャーデータでの開発、オープンソースへの想いなどを訊いている。稿では、その模様をお伝えしながら、“エンジニア・古橋貞之”の魅力に迫ってみたい。 fluentd v11の注目ポイント 森田 まずは、グリーでも大変お世話になっているfluentdについて、いろいろ聞かせてください。開発中の新バージョン(v11)では、かなり大きな変更や機能追加があると伺っていますが、注目ポイントをいくつか教えてもらえますか。 フィルタ

    グリー技術者が聞いた、fluentdの新機能とTreasure Data古橋氏の野心
    restartr
    restartr 2013/10/08
  • Git管理の神ツール「Gitolite」なら、ここまでできる!

    「Git」使ってますか? 近年、分散バージョン管理システム「Git」が急速にシェアを伸ばしています。筆者は、チケットシステムやバージョン管理の勉強会などを開催したりしていますが、Gitユーザーがかなり増えてきていると感じます。 しかしながら、そのような勉強会でアンケートを取ってみると、実案件では半分以上の人がSubversionを利用しており、Gitの導入はまだまだ進んでいません。移行コストが掛かったり、プロジェクトマネージャ層への知名度がまだまだ低いというのもありますが、理由の1つとして、ユーザー管理が煩雑であったり、アクセス制御に関する情報が不足しているということもあると思います。 そういうわけで稿では、Gitリポジトリのユーザー管理やアクセス制御を簡単に行う「Gitolite」を紹介します。 なお、稿ではGitの利用方法については紹介しませんので、Git自身の使い方については改め

    Git管理の神ツール「Gitolite」なら、ここまでできる!
    restartr
    restartr 2011/10/11
    「Gitolite」は、Gitで共有リポジトリのユーザー管理やアクセス管理を行うためのツールで、GitHubで公開されています。リポジトリの管理とリポジトリにアクセスするユーザーの管理、リポジトリ・ブランチ・ファイル/ディ
  • C#/Scala/Python/Ruby/F#でデータ処理はどう違うのか?

    ■概要 以前、C#でのデータ処理について解説した。今回は、同様のデータ処理を、C#以外のプログラミング言語ではどうしているのか、(C#も含めて)以下の5つの言語を比較しながら説明していく。 C# Scala Python Ruby F# 結果としてできることは似ているのだが、その内部的な実装方法は言語ごとにさまざまである。 ■データ処理のおさらい 概念的には、「データ処理」というのは、Figure 1に典型例を示すように、条件選択や変換など、小さな処理単位に分けて、それをつないでいく形を取る。

    C#/Scala/Python/Ruby/F#でデータ処理はどう違うのか?
  • 実践! 「MapReduceでテキストマイニング」徹底解説

    青空文庫」をテキストマイニング! 前回の「いまさら聞けないHadoopとテキストマイニング入門」では、Hadoopとテキストマイニングの概要や構成、MapReduceの仕組み、Hadoopの活用場面などを解説し、Hadoopの実行環境を構築しました。今回から、Hadoopを使い、テキストマイニングのMapReduceプログラムを作成していきます。 「青空文庫」というサイトをご存じでしょうか。青空文庫は、著作権が切れた日の文学作品を掲載しているWebサイトで、青空文庫の全データをDVDや、BitTorrentによる配信で入手できます。今回は、このデータを使ってテキストマイニングを行いましょう。 前回、テキスト分類で、著者の性別、年齢、地域、職業などの属性も推定できると書きましたが、青空文庫は、他のデータにはない、著者属性があります。青空文庫の作品は、著作権が切れて、作者がなくなっている場

    実践! 「MapReduceでテキストマイニング」徹底解説
  • そのWebサービスで“対価”をもらえますか?

    Java News.jp(Javaに関する最新ニュース)」の安藤幸央氏が、CoolなプログラミングのためのノウハウやTIPS、筆者の経験などを「Rundown」(駆け足の要点説明)でお届けします(編集部) インターネットは無料が当たり前? インターネットを利用するための料金は、十数年前と比べると大変安価になりました。無線LANのホットスポットなど、限りなく「無料」に近い形で利用できる場合も多くなってきています。 そして日々、皆さんが1人の利用者として使うWebサービスには、どんなものがあるでしょうか? ほとんどのサービスは無料、もしくは広告が入ることによって無料で使えるものが多いでしょう。その一方、企業向けの比較的高価なWebサービスを専門的に利用している人もいるでしょう。 またWebサービスを提供する側としては、「無料で提供されるのが当たり前のようになっているWebサービスを、いかにユ

    そのWebサービスで“対価”をもらえますか?
  • Trac Lightningで始めるチケット式開発「電撃」入門

    “泥”開発に対する最終兵器「Trac」とは? 誰もが必ず1度はイライラしたことがある「情報の囲い込み」問題 情報の共有はプロジェクトを円滑に進めるうえで重要な課題です。極端な例ですが、例えば、図1の例で見てみましょう。 分かりやすいよくある例で示すと、各開発者の作業状況はメールや手帳上に記されています。検討やヒアリングした結果は、メールでほかの人に問い合わせたならメールボックス上にたまっていきます。打ち合わせなどで相手に会ってヒアリングしたなら、手帳やノート上にメモとして残っていきます。こうして、各開発者が自分のタスクの情報をメールやメモ、あるいは頭の中で“囲い込み”ながら開発が進んでいきます。 ここで、開発者がある機能を実装するために、「別の作業の状況や進捗(しんちょく)を把握したい」とします。 「誰が情報を持っているのか分からない」 まず、誰が情報を持っているのか分からないので、ヒアリ

    Trac Lightningで始めるチケット式開発「電撃」入門
  • Flex/AIR開発でデザイナとの協業を楽にする「yui」(1/3) - @IT

    Flex/AIR開発でデザイナとの 協業を楽にする「yui」 特集:デザイナとプログラマを“結”ぶオープンソース(前編) クラスメソッド株式会社 渡邊 佳一 2008/10/1 RIA開発におけるデザイナとプログラマの協業問題 昨今、Web開発では高品質なアプリケーションを短期間で開発することが求められるようになっています。またRIA開発においては、昔のWeb開発のようにプログラマが主となる状況ではなく、そのアプリケーションの性質上、デザイナの役割が重要になってきます。 これらはさらにWeb開発を難しいものにしています。デザインはプログラマにとって敷居が高く、一朝一夕で身に付くものではありません。しかも状況に輪を掛けるかのように、RIAに期待を持ったクライアントの仕様は膨らむばかりです。 それから、RIA開発においては「デザイナとプログラマの協業」というものが叫ばれてきました。「デザインと

  • GoogleのMapReduceアルゴリズムをJavaで理解する

    GoogleMapReduceアルゴリズムをJavaで理解する:いま再注目の分散処理技術(前編)(1/2 ページ) 最近注目を浴びている分散処理技術MapReduce」の利点をサンプルからアルゴリズムレベルで理解し、昔からあるJava関連の分散処理技術を見直す特集企画(編集部) いま注目の大規模分散処理アルゴリズム 最近、大規模分散処理が注目を浴びています。特に、「MapReduce」というアルゴリズムについて目にすることが多くなりました。Googleの膨大なサーバ処理で使われているということで、ここ数年の分散処理技術の中では特に注目を浴びているようです(参考「見えるグーグル、見えないグーグル」)。MapReduceアルゴリズムを使う利点とは、いったい何なのでしょうか。なぜ、いま注目を浴びているのでしょうか。 その詳細は「MapReduce : Simplified Data Proc

    GoogleのMapReduceアルゴリズムをJavaで理解する
  • Sambaサーバ構築、5つのべからず:2008年版(1/2)

    - 若葉マーク管理者に捧げる - LinuxやUNIXをWindowsのファイルサーバ/プリントサーバとしてしまうことができる「Samba」は、手軽にファイル共有環境を構築することができ、サーバ管理入門にもぴったりです。インターネット上の関連情報も豊富ですが、しっかり出所を確かめないと誤った設定を招く恐れがあります。 オープンソース・ソリューション・テクノロジ株式会社 代表取締役 チーフアーキテクト 小田切 耕司 2008/4/22 Windowsとのファイル交換を手軽に実現するSamba Sambaは、LinuxやUNIXをWindowsのファイルサーバ/プリントサーバとしてしまうことができるオープンソースソフトウェア(OSS)です。Sambaの導入によって、LinuxWindowsが混在する環境で、手軽に情報共有を行えるようになります。 Sambaは、大きく以下の4つの機能を提供しま

  • ソート処理時間、選ぶアルゴリズムでこんな差が! ― @IT自分戦略研究所

    ソート処理時間、選ぶアルゴリズムでこんな差が!:いまから始めるアルゴリズム(2)(1/2 ページ) 連載第1回「『+1』だけで四則演算をするには?」に引き続き、プログラミングにおけるアルゴリズムの重要性と面白さを紹介したいと思います。例としてプログラミングで頻繁に使われる並べ替えと検索のアルゴリズムを取り上げ、それぞれがどういった処理を行っているのか考えてみましょう。 同じ問題でも解き方(アルゴリズム)によってかなりの速度の違いが出てくる可能性があることは、前回紹介したとおりです。今回は代表的な並べ替えのアルゴリズムを基にプログラムを作成し、実行にかかった時間を測定して、具体的な処理速度の違いをお見せしようと試みています。 プログラミング言語では、すでに並べ替えの仕組みが用意されていることが多いので、このアルゴリズムをあまり意識していない人もいるのではないでしょうか。しかし、すべてのプログ

    ソート処理時間、選ぶアルゴリズムでこんな差が! ― @IT自分戦略研究所
  • 第4回 JavaScriptでオブジェクト指向プログラミング ― @IT

    JavaScriptが、いま注目を浴びている。 JavaScriptがこれだけの注目を浴びた理由の1つとして、Ajax技術の登場とも相まって、JavaScriptに対する確かな理解の必要性が高まったという事情は否定できない。しかし、それだけでは説明できない急速な注目の理由として、もう1つ、JavaScriptという言語そのものが持つユニークさが開発者の目を引いたという点は看過できないだろう。 もっとも、このユニークさは同時に、多くの開発者が感じているJavaScriptに対する苦手意識と同義でもある。これまでVisual BasicやC#、Javaといった言語でオブジェクト指向構文になじんできた開発者にとって、JavaScriptのオブジェクト指向構文はいかにも奇異なものに映るのだ。ようやくクラスという概念を理解した開発者が、JavaScriptという言語の背後にたびたび見え隠れする「プロ

    第4回 JavaScriptでオブジェクト指向プログラミング ― @IT
  • 辞書不要の形態素解析エンジン「マリモ」とは − @IT

    2007/08/15 検索サービスを提供するベンチャー企業のムーターは8月1日、辞書を必要としない形態素解析エンジン「マリモ」の提供を開始した。従来、形態素解析では品詞情報を含む日語辞書を用意するのが常識だったが、マリモでは、そうした辞書を不要とした。新技術のアプローチと特性について、開発元のムーターに話を聞いた。 統計処理で単語部分を推定 形態素解析とは、与えられた文を、文法上意味のある最小の単位(形態素)に区切る処理。「今日は晴れています」なら、「今日(名詞)/は(助詞)/晴れ(動詞)/て(助詞)/い(助詞)/ます(助動詞)」と分ける。検索エンジンをはじめ、さまざまな自然言語処理の場面で必要となる基礎技術だ。 形態素解析を行うには、あらかじめ品詞情報が付加された数十万語からなる辞書を用意する必要がある。また、新語や造語、専門用語に対応するには、個別に人力で単語を登録する必要がある。

    restartr
    restartr 2007/08/16
    ブログ解析とかに有効ですか?
  • Webアプリケーションを作る前に知るべき10の脆弱性 ― @IT

    Webアプリケーションが攻撃者に付け込まれる脆弱性の多くは、設計者や開発者のレベルで排除することができます。実装に忙しい方も、最近よく狙われる脆弱性のトップ10を知ることで手っ取り早く概要を知り、開発の際にその存在を意識してセキュアなWebアプリケーションにしていただければ幸いです。 Webの世界を脅かす脆弱性を順位付け OWASP(Open Web Application Security Project)は、主にWebアプリケーションのセキュリティ向上を目的としたコミュニティで、そこでの調査や開発の成果物を誰でも利用できるように公開しています。 その中の「OWASP Top Ten Project」というプロジェクトでは、年に1回Webアプリケーションの脆弱性トップ10を掲載しています。2004年版は日語を含む各国語版が提供されていますが、2007年版は現在のところ英語版のみが提供さ

    Webアプリケーションを作る前に知るべき10の脆弱性 ― @IT
  • アッカ、携帯電話向け動画SNSサイト「zoomeモバイル」開設 - @IT

    2007/06/05 アッカ・ネットワークスは6月5日、動画SNSサイト「zoome」(ズーミー)を携帯電話から利用できるモバイル版、「zoomeモバイル」を開設した。PCから投稿した動画は、携帯電話での視聴に適したフォーマットに自動変換されるため、投稿と同時にPC、ケータイの双方から閲覧できるようになる。また、ユーザーごとに設定されるマイページには、ユニークなQRコードが割り振られるため、携帯電話のQRコードリーダーで読み込むことで、特定ユーザのマイページを見ることができる。

    restartr
    restartr 2007/06/06
    PCからUPした動画を携帯用に最適化して配信。1ファイルあたり300KBなので軽めだけど、HSDPA対応端末でないとDL速度厳しいからストレス溜まりそう。
  • Linuxをいまから学ぶコツ教えます ― @IT自分戦略研究所

    世間一般で広く利用されるLinuxを、効率良くしっかりと学ぶコツを教えよう。いまから始めて、応用の利くLinuxエンジニアを目指せ! なぜいま、Linuxを学ぶのか? 一昔前まではPCでUNIXを利用したいマニア向け(?)のOSとして親しまれていたLinuxですが、次第にサーバとしての利用価値が認められ、一般的にもサーバOSの選択肢に含まれるようになりました。 その後クライアントとしての用途が広まり、いまでは組み込み機器のOSとしても広く利用される状況になっています。 さらにLinuxには、インターネット上に豊富な情報が存在するという特徴があります。Linuxはインターネット上の有志により改良され発展してきました。そしてLinuxを開発、利用する人たちが得た情報をインターネット上に公開し、その情報を利用した人々がまた新たな情報を公開するという形で、情報量は増加していきました。このような豊富

    Linuxをいまから学ぶコツ教えます ― @IT自分戦略研究所
  • 1