タグ

ブックマーク / codezine.jp (52)

  • Elasticsearchを用いた日本語検索システムの理論と設定

    連載は、対話インターフェースを利用して新しい形の検索システムを体験してもらうことを目的としています。今回は日語検索システムでよく用いられるElasticsearchを紹介します。Elasticsearchは大規模なデータに対しても適用可能な検索機能を提供している全文検索エンジンです。特徴としてスケーラブル、検索速度の速さ、検索結果の分析のしやすさ、開発者にとって使いやすいRESTfulなAPIが挙げられます。今回の記事はElasticsearchを用いた日語検索システムの仕組みから設定の部分までを記述し、次回の記事で実際に動作させてもらいます。 連載の内容 連載で紹介予定の内容は次のとおりです。 Step1:Elasticsearchを用いた日語検索システム 対話型の検索システムを作成するためのStep1として、Elasticsearchを用いた日語検索システムの構築方法を紹

    Elasticsearchを用いた日本語検索システムの理論と設定
  • ドメイン駆動設計のメリットと始め方 ~ 1章「DDDへの誘い」

    はじめに ドメイン駆動設計(DDD)とは、2003年にエリック・エヴァンス氏が『Domain-driven design』という書籍にて提唱したソフトウェア開発手法です。DDDを簡単に説明すると「顧客と開発者が業務を戦略的に理解し、共通の言葉を使いながらシステムを発展させる手法」です。具体的には、チームの共通言語である「ユビキタス言語」を用いて「ドメインモデル」を構築し、それをコードとして実装します。また大規模で密結合なシステムにならないように「ドメイン」と「境界づけられたコンテキスト」にてシステムを分割し、「コアドメイン」という最重要領域に集中して開発を行います。 ソフトウェア開発の課題とDDDが解決すること DDDの登場から10年以上が経ち、DDDは着実に普及しつつあります。DDDが普及してきている背景として、システム開発がますます多機能/複雑になり、ビジネス的にも敏速な変更が求められ

    ドメイン駆動設計のメリットと始め方 ~ 1章「DDDへの誘い」
    ji_ku
    ji_ku 2016/08/03
  • RubyKaigiとDroidKaigi、2つの開発者Kaigiの運営から学ぶチームの作り方

    まずは、達人出版会代表であり、RubyKaigiオーガナイザーの高橋征義氏による講演。「RubyistのRubyistによる、Rubyistとそうでない人のためのカンファレンス」であるRubyKaigiは、2006年に初めて開催された。2011年には一旦終了し、2013年からは国際色の強いカンファレンスとして再開された。高橋氏は2006年から2011年までは実行委員長、2013年以降はオーガナイザーとして関わっている。 高橋氏は、開発者Kaigiのチームについて述べる前に、まず「開発者Kaigi」とは何かについて整理した。開発者KaigiとはITエンジニア(開発者)向けのイベントで、「勉強会」「ミートアップ」「ハッカソン」「セミナー」「ハンズオン」「カンファレンス」などさまざまな形式がある。期間も数時間から数日間、有償/無償なものと仕様もさまざまだ。 これら開発者Kaigiは、勉強・知識の

    RubyKaigiとDroidKaigi、2つの開発者Kaigiの運営から学ぶチームの作り方
  • Apache Cordovaでスマホアプリ開発を始める前の環境設定

    対象読者 JavaScriptの開発者 Androidアプリ開発者 iOSアプリ開発者 Windowsアプリ開発者 Cordova開発環境の概要 Apache Cordovaでは、開発するアプリのOS毎に必要な環境の構築とCordova自身をインストールする必要があり、必要なツールが多々あります。 通常はコマンドなどを使ってインストールすることになりますが、Visual Studio 2015では必要な環境も含めてすべてインストールしてくれるので簡単です。今回は、コマンドを使ってのMac OS Xでの開発の流れと、Windows 10でのVisual Studio 2015を使った開発の流れを紹介します。 Visual Studio 2015の場合には、準備も含めてすべて自動で行われるのでコマンドでのインストールの作業は必要ありませんが、実際にどのような環境が必要なのかを知っておくことは大

    Apache Cordovaでスマホアプリ開発を始める前の環境設定
  • カメラプラグインを使って、Apache Cordovaのサンプルアプリを作ってみよう

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    カメラプラグインを使って、Apache Cordovaのサンプルアプリを作ってみよう
  • DeNA南場智子氏がサービス開発の悟りを講演「UXをまず作り込む。ビジネスモデルやマーケティングは後でいい」

    アプリ・サービスのUIデザイナーが集うコミュニティ「UI Crunch」は、若手が成長できる場の提供を目的として、25歳以下限定のコミュニティ「UI Crunch Under25」を設立。その第1回イベントを9月26日、東京・渋谷にある株式会社ディー・エヌ・エー(以下、DeNA)の社員堂「サクラカフェ」で開催した。基調講演には、DeNA会長の南場智子氏が登壇。「何故いまデザインなのか?」と題し、多くの失敗から導き出したという、いわばヒットサービスを開発するための「悟り」を披露した。開発者にも大変参考になる内容なので、稿でお伝えする。 【関連リンク】 UI Crunch Under25 | UI Crunch この日は若手デザイナーに向けてということもあってか、南場氏のトークは大変気さくでノリがよく、語り口はロックスターのMCのようであった。文字では伝わりにくいが、その楽しさ・雰囲気を少

    DeNA南場智子氏がサービス開発の悟りを講演「UXをまず作り込む。ビジネスモデルやマーケティングは後でいい」
    ji_ku
    ji_ku 2015/10/06
  • GitHub製エディタ「Atom」で日本語を扱いやすくするために必要な設定

    記事は、技術同人誌サークルDevLOVE Pubの同人誌『Far East Developer Review デブサミ2015特別号』から、編集部員が寄稿した記事を加筆修正したものです。編集部員の近藤が普段編集作業で使用している、GitHub製エディタの「Atom」で、日語を扱うために必要な設定をご紹介します。(編集部) はじめに みなさん、エディタは何を使っていますか? プログラミング用途では情報が豊富なテキストエディタですが、筆者は文章の執筆・編集用途で使いたかったため、ほしい情報があまりまとまっておらず、何を使えば効率よく作業ができるか、しばし悩んでいました。稿では、IT技術記事の新人編集者である筆者が、比較的新しめのエディタ「Atom」で、日語を執筆・編集するために行った環境構築について解説します。日語をエディタで快適に扱いたいというエンジニアの方にお役に立てるものと

    GitHub製エディタ「Atom」で日本語を扱いやすくするために必要な設定
    ji_ku
    ji_ku 2015/08/04
  • もうすぐリリースされるAngularJS 1.4の機能を先取りチェックしよう

    対象読者 AngularJSを使っている開発者 JavaScriptのフレームワークの動向などに興味を持っている方 必要な環境 この記事では、AngularJSを使用し、Chrome(42.0)、IE11、Firefox(37.0)、Safari(8.0.4)の環境にて確認を行っています。 バージョン1.4では何がかわるのか バージョン1.4での大きな特徴として、以下の変更がある予定です。 新しいRouter機能(ngNewRouter) より柔軟なクッキー機能($cookies) $parseや$compileのパフォーマンス改善 $httpサービスにおけるパラメータシリアライズ方式の柔軟性強化 ICU MessageFormatに対応したAngularJS式の利用 基的には過去のソースコードが動かなくなるような変更はあまりなく、内部ハックをしているような開発者を除けば、既存のソースコ

    もうすぐリリースされるAngularJS 1.4の機能を先取りチェックしよう
  • フリーのVM環境を使って、ビッグデータ分析の学習環境をすばやく構築する

    はじめに Hadoopを使って大規模データを蓄積し分析するのは、もはや当たり前になってきた昨今ですが、大規模データ分析の環境を試すのは、なかなか難しいというのが現状です。確かに、Hadoop単体やSQLエンジン単体なら、Amazon EMRやGoogle BigQueryなどを使うことで体験することは可能でしょう。しかし、大規模データの分析基盤では以下のようなことを行っていく必要があります。 RDBMSからデータをHadoopにインポートする SQLを使って、大規模データを高速に分析する アクセスログなどの大量の非構造化データを分析する 大量のデータに対し、リコメンドに利用するための高度な分析処理を行う 大量のデータを全文検索できるようにする これらすべてを試す環境を構築するのは、たとえクラウド環境を使ったとしても困難です。また、(検証環境としては)意外と高額な費用がかかってしまい、永続化

    フリーのVM環境を使って、ビッグデータ分析の学習環境をすばやく構築する
    ji_ku
    ji_ku 2015/05/07
  • コンテナ仮想化ツールDockerをつかったコードによるWebアプリケーション実行環境の構築

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    コンテナ仮想化ツールDockerをつかったコードによるWebアプリケーション実行環境の構築
    ji_ku
    ji_ku 2015/04/20
  • Web作成の定形作業を自動化できるJavaScriptタスク実行環境Grunt

    はじめに HTMLJavaScript開発に限らず、一般にプログラミングの作業ではコンパイルや自動テスト、デプロイなど、開発の質にあまり関係のない定形作業が発生します。これらの定形作業を自動化できれば、プログラマは処理内容の検討やコーディングなどの質的な作業に集中でき、作業効率のアップが期待できます。また定形作業を手動で行うことによるケアレスミスの低減も期待できます。 プログラムのビルドに使われるMakeやJava環境で利用されるAntのように、定形作業を自動化するツールは様々な開発言語や環境で提供されています。記事ではタスクをJavaScriptで記述するタスク実行環境Gruntを紹介します。Gruntを使うとHTMLJavaScript開発で必要となる、以下のような定形作業を自動化できます。 ファイル操作(移動、コピー、削除、名称変更、結合) ネットワーク通信(FTP、SSH

    Web作成の定形作業を自動化できるJavaScriptタスク実行環境Grunt
    ji_ku
    ji_ku 2015/04/03
  • いま最も注目のライブラリ「React.js」でシングルページアプリケーションを作ってみよう! 【後編】

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    いま最も注目のライブラリ「React.js」でシングルページアプリケーションを作ってみよう! 【後編】
    ji_ku
    ji_ku 2015/03/31
  • Ruby開発者・まつもとゆきひろ氏の新言語「Streem」のソースコードを読んでみよう! ~ 文法と構造を規定する「lex.l」と「parse.y」

    まつもとさん自身によるStreemについての解説は、今後日経Linuxで順次掲載されるようです。まつもとさんがStreemについて解説する内容は、おそらく、プログラミング言語設計に関する高レベルなものとなるのではないでしょうか。 記事はそれとは無関係に、2015年1月に公開されているStreemについての低レベルな解説、つまり現時点のStreemのソースファイル(の一部)の読み解き方を示します。具体的には、GitHubのStreemリポジトリにある「lex.l」と「parse.y」という2つのソースファイルについて解説します。 Streemのソースファイルは、https://github.com/matz/streemからダウンロードできます。画面右下にある[Download ZIP]ボタンをクリックしてください。 lex.lとparse.y ダウンロードしたStreemソースファイルの

    Ruby開発者・まつもとゆきひろ氏の新言語「Streem」のソースコードを読んでみよう! ~ 文法と構造を規定する「lex.l」と「parse.y」
    ji_ku
    ji_ku 2015/03/26
  • SEO検証! GoogleはAngularJSを正しくクロールするのか?(2015年2月版)

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    SEO検証! GoogleはAngularJSを正しくクロールするのか?(2015年2月版)
  • いま最も注目のライブラリ「React.js」でシングルページアプリケーションを作ってみよう! 【前編】

    対象読者 JavaScriptフレームワーク・ライブラリの選定に悩んでいる方 格的にJavaScriptを触るのが初めてという方 jQueryでの大規模なフロントエンド開発に限界を感じている方 必要な環境 Node.jsがインストールされていることが推奨です。 React.jsとは何か React.jsは最近注目を浴びているFacebook製のライブラリで、MVCアーキテクチャでいうViewにあたる機能を提供します。 前提として、JavaScriptの世界でMVCのVといえば、紛れもなくDOM(Document Object Model)のことを指します。特に何も意識しないで作った場合、都合の良いDOMからデータを引っ張り出しては別のDOMを書き換えるといった、行き当たりばったりな作りになりがちです。そこで、MVCの考え方を導入することにより、データを画面とは独立した構造体として切り出し

    いま最も注目のライブラリ「React.js」でシングルページアプリケーションを作ってみよう! 【前編】
    ji_ku
    ji_ku 2015/03/23
  • これだけ押さえておけばあらゆるAPIを呼び出せる! Google APIを使用するための基本

    対象読者 GoogleのサービスやAPIに興味のある方、悩んだことがある方 Google Cloud Platformに興味のある方 GoogleではないAPIの経験がある方(推奨) 必要な環境 Googleアカウント Webブラウザ サンプルコードを実行する場合は、Javaの開発環境 Google APIの基礎知識 Googleが提供する大抵のプラットフォームやサービスは、それらのリソースへアクセスするためのAPI(以下、Google API)を提供しています。まずは、Google APIを理解するための基礎となる事項を押さえておきましょう。 APIとの通信方式とDiscovery Document Google APIと通信する方式には次の2つがあります。 OAuth1でアクセス許可を得て、ATOM書式で通信する OAuth2でアクセス許可を得て、JSON書式でhttpsを使って通信す

    これだけ押さえておけばあらゆるAPIを呼び出せる! Google APIを使用するための基本
    ji_ku
    ji_ku 2015/03/18
  • Fluentdで始めるリアルタイムでのログ有効活用

    はじめに Fluentdは、ログを収集し格納するためのログ収集基盤ソフトウェアです。Fluentdにインプットされた、すべてのログをJSONに変換し、アウトプットします。インプットとアウトプットはモジュール化されており、モジュールを追加することでインプット元とアウトプット先を追加できるようになっています。 Fluentdは急速に知名度を高め、多くのWebサービス会社で実際に使用されるようになりました。従来のログが抱えていた問題も、Fluentdが適切な解決策となっていると認知され、かつ簡単に導入・スモールスタートできるミドルウェアであったことが大きかったと思います。 稿では、Fluentdの簡単な仕組みと導入方法、シンプルな動作事例について紹介します。 対象読者 システム管理者 データサイエンティスト 必要な環境 UNIX系OS Ruby 1.9 ログを出力する理由 システム運用を始める

    Fluentdで始めるリアルタイムでのログ有効活用
  • フロントエンド開発が捗るHTTP通信モニタリングツール「Charles」を使いこなす

    はじめに 「Charles」はHTTPのプロキシ・モニタを行えるGUIのツールです。似たようなツールとしてはFidllerが代表的ですが、CharlesはUIや操作性がシンプルです(その分機能は限定的です)。「HTTPをモニタする」というとなんだか取っ付きにくそうに感じるかもしれませんが、Charlesを使うことでその認識は大きく変わります。今回はこのツールのさまざまな使い方をWebフロントエンドの開発視点から紹介していきたいと思います。その便利さから弊社のWebフロントエンド開発チームにはなくてはならないツールとなっています。 Charlesとは Charlesは公式サイトの説明にもある通り、HTTPプロキシ/HTTPモニタを行うツールです。機能を大きく分類するとできることはその2点だけですが、かゆいところに手が届く細かな機能を多く持っています。公式サイトから引用すると、機能としては以下

    フロントエンド開発が捗るHTTP通信モニタリングツール「Charles」を使いこなす
    ji_ku
    ji_ku 2015/02/23
  • AngularJSでMVCプログラミングをはじめよう

    対象読者 jQueryなどを使っているJavaScript開発者 JavaScriptを使った複数人でのプロジェクトに参加している方 JavaScriptを使ってサーバ等と連携したフロントエンドの開発をしている方 必要な環境 この記事では、AngularJSを使用し、Chrome(36.0)、IE11、Firefox(31.0)、Safari(7.0.5)の環境で確認を行っています。 サンプルアプリケーションの概要 今回作成するアプリケーションは、単純な「タスク管理」のアプリケーションです。次のような3つの画面を作ります。 タスク(件名とメモ)を登録する画面 登録したタスク一覧を表示する画面 登録したタスクを参照する画面と、削除する為の画面 ページ遷移はシングルページアプリケーション形式で作成します。シングルページアプリケーションとは、jQuery Mobileなどでも使われている方式であ

    AngularJSでMVCプログラミングをはじめよう
  • 初めてのCatalyst入門(9) Catalystのテスト関連モジュール

    はじめに 前回まででCatalystの主要コンポーネントについては一通りの紹介が終わりました。記事では、Catalystで用意されているテスト関連のモジュールについて紹介していきます。 対象読者 Perlで簡単なスクリプトを作成したことのある方 Webアプリケーションの基的な仕組み(HTTPリクエスト、レスポンスなど)についての知識のある方 これまでの連載 初めてのCatalyst入門(1) PerlによるWebフレームワークCatalystとは? 初めてのCatalyst入門(2) Catalystアプリはどのように作るのか? 初めてのCatalyst入門(3) 処理の入り口はアクション 初めてのCatalyst入門(4) URLパスとリクエストパラメータ 初めてのCatalyst入門(5) フロー制御とChainedアクション 初めてのCatalyst入門(6) Perlのオブジェ

    初めてのCatalyst入門(9) Catalystのテスト関連モジュール