タグ

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

  • 第11回 線形回帰を実装してみよう | gihyo.jp

    前回の掲載からしばらく間が空いてしまいましたが、今後は中谷の方で連載を進めていくことになりました。理論編と実践編を交互に進めていくスタイルは継続していきますので、引き続きよろしくお願いします。 線形回帰の復習 今回は連載第8回と第9回で紹介した線形回帰を実装してみる実践編です。 まずは簡単に復習しましょう。 回帰とは、与えられたデータに適した(データを上手く説明できる)関数を求める手法です。点の近くを通る曲線を見つけるときにも用いられます。中でも、基形として選んだ関数の線形和(式1)から関数を探すのが線形回帰です。 (⁠式1) ここでφ(x)=(φm(x))を基底関数といい、何か適切な関数を選んで固定します。その選び方によってモデルの性能や得られる関数の形などが決まるので、基底関数は解きたい問題にあわせて選ぶ必要があります。 しかし今はわかりやすさを優先して、シンプルな多項式基底(式2)

    第11回 線形回帰を実装してみよう | gihyo.jp
  • 第5回 NOXを使って独自のOpenFlowコントローラを実装してみよう! | gihyo.jp

    はじめに 前回は、オープンソースとして提供されているNOX(OpenFlowコントローラ)とOpenFlowSwitch(OpenFlowスイッチ)を用いて、OpenFlowが動作する環境を構築しました。OpenFlowの特長は、NOXにロードするNOXモジュール(前回は単に「モジュール」と表記)をユーザが実装することで、OpenFlowスイッチの動作を自由にカスタマイズできる点にあります。 今回は、簡単なNOXモジュールの作成方法を説明し、NOXモジュールに記述されたロジックどおりにOpenFlowスイッチが動作することを示します。また、OpenFlowコントローラとOpenFlowSwitch間でやりとりされるOpenFlowプロトコルや、NOX上で発生するイベントについても説明します。 NOXとNOXモジュールの関係 NOXは起動時にNOXモジュールを読み込み、そのモジュールに実装さ

    第5回 NOXを使って独自のOpenFlowコントローラを実装してみよう! | gihyo.jp
  • 第20回 Javaアプリケーション向けの認証フレームワーク「Apache Shiro」 | gihyo.jp

    使いやすい認証機構を実現する「Apache Shiro」 今回取り上げる「Apache Shiro」は、Javaアプリケーション向けに開発された認証と承認のためのオープンソースのフレームワークです。Shiroを使うことで、ログインなどの認証の仕組みや、アクセス管理、セッション管理などといった機構を、容易にアプリケーションに付け加えることができるようになります。 JDKにはJAAS(Java Authentication and Authorization Service)という認証・承認サービスが用意されていますが、JAASで提供されるAPIはあまり使い勝手が良くなく、わかりにくいという意見が大多数を占めていました。ShiroはJAASよりも理解しやすく、簡単に利用できる認証・承認の仕組みを提供する目的で開発されました。Shiroを利用するメリットとしては次のようなものが挙げられています。

    第20回 Javaアプリケーション向けの認証フレームワーク「Apache Shiro」 | gihyo.jp
    lanius
    lanius 2011/11/04
  • 第19回 Javaプログラムから外部プロセスを起動するための「Apache Commons Exec」 | gihyo.jp

    Apache Commons Execとは Javaプログラムから外部プロセスを実行する一般的な方法としては、標準ライブラリに用意されているjava.lang.ProcessBuilderクラスや、java.lang.Runtime.exec()メソッドがあります。しかしこれらのクラス/メソッドによるサポートは限定的であり、あまり使い勝手が良くないことでも知られています。「⁠Apache Commons Exec」(⁠以下、Commons Exec)は、そのような標準的な方法に変わる外部プロセスの起動手段を提供してくれるオープンソースのライブラリです。特にプロセスに対する適切な入出力処理が、比較的簡単に記述できるようになっている点が大きなメリットです。 Commons Execはこのページよりダウンロードできます。稿執筆時点での最新版はバージョン1.1です。ダウンロードしたファイルを解凍

    第19回 Javaプログラムから外部プロセスを起動するための「Apache Commons Exec」 | gihyo.jp
    lanius
    lanius 2011/10/19
  • #4 アプリケーションに関する講演、LT、PSFメンバーミーティング、まとめ | gihyo.jp

    前回はCPythonの講演とPyPyの講演を紹介しました。今回は、Pythonで開発されたフレームワークやライブラリといったアプリケーションに関する講演を紹介します。 Application:アプリケーション Beyond Python Enhanced Generators:Python拡張ジェネレーターの先へ 動的にシーケンスを生成するものとしてジェネレーターがあります。講演を紹介する前にPythonのジェネレーターについて簡単に紹介します。ジェネレーターは、関数を定義してreturnの代わりにyieldというキーワードを使うことで作成できます。 >>> def f(): ... for i in range(3): ... yield i >>> g = f() >>> g.next() 0 >>> g.next() 1 >>> g.next() 2 >>> g.next() Tr

    #4 アプリケーションに関する講演、LT、PSFメンバーミーティング、まとめ | gihyo.jp
  • #2 CPythonについてのハンズオン、講演 | gihyo.jp

    前回は基調講演とカンファレンスの全体像について紹介しました。今回と次回ではPythonそのものの講演について紹介したいと思います。 今回はCPythonというC言語で実装されたPythonの講演(一般的にPythonというときはCPythonを指します)について紹介します。 CPython CPythonの講演で紹介するのは、すべてRaymond Hettinger氏が発表されたことについてです。Raymond氏の講演は、Pythonでコーディングする上でのテクニックや考え方など、どれも示唆に富む内容で筆者にとっては興味深かった内容でした。 Raymond Hettinger氏 ※ 特に注記がない場合、サンプルコードはPython 2.7.2で実行しています。 Advanced Python: 高度なPythonテクニック 「Advanced Python」というハンズオントレーニングでは

    #2 CPythonについてのハンズオン、講演 | gihyo.jp
  • 第11回 JavaのみまたはJavaScriptのみでのWebアプリケーション開発が可能な「Echo Web Framework」 | gihyo.jp

    格派エンジニアの工具箱 第11回JavaのみまたはJavaScriptのみでのWebアプリケーション開発が可能な「Echo Web Framework」 Echo Web Frameworkとは 「Echo Web Framework」(⁠以下、Echo)は、Ajaxに対応したオープンソースのWebアプリケーション・フレームワークです。Webアプリケーション開発向けのフレームワークは無数に存在しますが、Echoがそれらのフレームワークと大きく異なるのは、サーバサイドのJavaコードのみによるアプリケーション開発と、クライアントサイドのJavaScriptのみによるアプリケーション開発の両方を同時にサポートしている点です。 Javaコードによるアプリケーション開発では、AWT/Swingに似たコンポーネント・ベースのプログラミングモデルによってUIを作成します。クライアントとサーバとの通信

    第11回 JavaのみまたはJavaScriptのみでのWebアプリケーション開発が可能な「Echo Web Framework」 | gihyo.jp
  • diffの動作原理を知る~どのようにして差分を導き出すのか | gihyo.jp

    UNIXの基的なコマンドの1つであるdiff。 これに実装されているアルゴリズムは実に興味深い世界が広がっています。 稿では、筆者が開発した独自ライブラリ「dtl」をもとに「diffのしくみ」を解説します。 はじめに diffは2つのファイルやディレクトリの差分を取るのに使用するプログラムです。 ソフトウェア開発を行っている方であれば、SubversionやGitなどのバージョン管理システムを通して利用していることが多いかと思います。稿ではそのdiffの動作原理について解説します。 差分の計算の際に重要な3つの要素 差分を計算するというのは次の3つを計算することに帰結します。 編集距離 2つの要素列の違いを数値化したもの LCS(Longest Common Subsequence) 2つの要素列の最長共通部分列 SES(Shortest Edit Script) ある要素列を別の要

    diffの動作原理を知る~どのようにして差分を導き出すのか | gihyo.jp
  • Amazon Elastic MapReduceの使い方─Hadoopより手軽にはじめる大規模計算 記事一覧 | gihyo.jp

    第8回Amazon Elastic MapReduceのパフォーマンスをモニタリングする 小林隆 2011-05-12

    Amazon Elastic MapReduceの使い方─Hadoopより手軽にはじめる大規模計算 記事一覧 | gihyo.jp
  • 第7回 代表的な離散型確率分布 | gihyo.jp

    今回は、前回導入したNumpy、そしてグラフを描画するmatplotlibを使って、いくつかの代表的な分布を紹介していきます。 第5回「「よく使う分布」はどうしてよく使う?」の項でも代表的な分布が紹介されていました。そこでは、“⁠この状況(モデル)では、この分布を使う⁠”というパターンを想定する、それが“⁠よく使う分布⁠”がいくつも存在する理由と言及されていましたが、どのような状況でどのような分布を使えばいいのでしょうか? 実際、どのような状況のときに、どのような分布を使うと説明しやすいかを考えながら、みていきましょう。 matplotlibのインストール matplotlibはpythonとNumpyのための高機能なグラフ描画ライブラリです。今後もグラフを描画することがあるかと思いますので、ここでインストールしておきましょう。 公式サイトのダウンロードから各OS向けのパッケージを入手して

    第7回 代表的な離散型確率分布 | gihyo.jp
  • 第7回 Google App Engineで位置情報サービスを作ってみよう | gihyo.jp

    連載の最終回となる今回は、これまでの内容のおさらいとして、Google App Engineで自分の位置情報を記録するサイトを作ってみます。 アプリケーションの内容 今回作成するアプリケーションは、簡単な位置情報サービスということで、以下のようなサイトにしたいと思います。 Goelocation APIに対応したブラウザでトップページを開いていると、測位された位置が変わるごとにサーバへ緯度経度をPOSTし、Geohashに変換してGoogle App Engineのデータストアに保存する。 履歴ページ(/history)へアクセスすると、地図を表示し、それまでに記録されている位置を線でつないで地図上に表示する。 今回必要となる技術要素は以下のようになります。 トップページ: Google Maps JavaScript APIを利用した地図の表示 JavaScriptによる位置情報の取得

    第7回 Google App Engineで位置情報サービスを作ってみよう | gihyo.jp
  • 2011年のJavaScript ─ウェブアプリ全盛の時代へ | gihyo.jp

    あけましておめでとうございます。昨年に引き続き、今年もJavaScriptの近い未来についてちょっとだけお話させて頂きます。 最初に昨年の予想を見返しておきましょう。昨年は次の3つを2010年の鍵として取り上げました。 ウェブ標準 ブラウザ拡張 サーバーサイドJavaScript この3つを軸に2010年を振り返ってみます。 2010年のJavaScript界隈でのニュース ウェブ標準 2010年最初のビッグニュースはなんといってもIE 9のPlatform Preview版の登場でした。これまでの独自実装路線から一転して(正確にはIE 8の時点でJSONやWeb Storageのサポートなど、その徴候はあったのですが⁠)⁠、HTML5などのウェブ標準のサポートを進めることを表明しました。そして実際に8週おきにPlatform Preview版をアップデートして、ECMAScript5・S

    2011年のJavaScript ─ウェブアプリ全盛の時代へ | gihyo.jp
    lanius
    lanius 2011/01/03
    2011年はJavaScriptの開発環境、テスト環境が重要に。
  • 第6回 Numpyの導入 | gihyo.jp

    今回は第3回の冒頭で紹介した、Numpyの導入方法と簡単な使い方について説明します。次回で様々な分布を扱うためにNumpyの準備をしておきましょう。 Numpyの導入 Numpyはオープンソースの拡張モジュールで行列や多次元配列と、それらを操作するための数学関数ライブラリを提供しています。Numpyの内部はC言語で実装されているため、普通にPythonで実装した時と比較するとはるかに高速に実行することが可能です。 ここではインストールの仕方とNumpyの簡単な実行例を確認しておきましょう。 インストール WindowsMacOSXのPCにNumpyをインストールする場合は、NumpyのサイトのDownloadのページの上の方にあるNumPyのProjectからインストール先のマシンのOSに対応したファイルをダウンロードして実行してください。 しかし、MacOSXにデフォルトでバインドされ

    第6回 Numpyの導入 | gihyo.jp
    lanius
    lanius 2010/12/14
    Numpy。
  • 第1回 まずはTitaniumを体験してみよう | gihyo.jp

    はじめまして、株式会社はてなでアプリケーションエンジニアをしている倉井龍太郎(id:r_kurain)と申します。この連載では、今もっとも注目集めているスマートフォンアプリ開発環境であるTitanium Mobile(以下Titaniumと省略)を使ったiPhone及びAndroidアプリケーションの開発方法について解説していきます。 Titaniumとは TitaniumはAppceleratorが開発しているスマートフォンアプリ開発環境です。iPhone/iPod/iPad であればObjectice-Cを使用して、AndoridであればJavaを用いて作成するネイティブアプリケーションが、どちらの環境でもJavascriptのみで開発できるようになるものです。Titanuiumは無料で利用することができます。サポートを受けるにはAppceleratorの有料プランに入会する必要が

    第1回 まずはTitaniumを体験してみよう | gihyo.jp
  • 第1回 memcachedの起動オプションを把握しよう | gihyo.jp

    1.4系で新しく追加された主な機能しては バイナリプロトコルの導入 マルチスレッドの標準化 統計の強化 などが上げられます。この1.4系の機能の詳細については前坂徹氏の連載「memcached 1.4の到来」が参考となります。ここではバージョン1.2.5と最新の1.4.5の起動オプションを比較しながら、新しく追加された機能や実際の運用で用いられる起動オプションについて説明します。 1.2系と1.4系の起動オプションの違い まず、memcachedの起動オプションの一覧(ヘルプ)を確認しましょう。memcachedのヘルプを出力するには、「⁠-h」オプションを使います。 $ memcached -h memcached 1.x.x -p <num> TCP port number to listen on (default: 11211) -U <num> UDP port number t

    第1回 memcachedの起動オプションを把握しよう | gihyo.jp
  • 第1回 WebSocket登場までの歴史 | gihyo.jp

    はじめに 初めまして。NTTアドバンステクノロジの金城と申します。幸運にも記事を執筆させていただけることになりました。WebSocketという新しいウェブの規格についての連載を、全4回の予定でお届けします。 用語統一について WebSocketは「WebSocket」「⁠WebSockets⁠」⁠、単語を切り離した「Web Socket」等、表記に揺れがあります。2009年12月22日のワーキングドラフトのタイトルは「The Web Sockets API」となっていますが、2010年4月26日のエディターズドラフトでは「The WebSocket API」となっています。この連載では、最新の仕様書に則り、用語を「WebSocket」で統一します。 HTML5とWebSocketの関係 WebSocketは、もともとHTML5の一機能として仕様の策定が進められていました。しかし、Web S

    第1回 WebSocket登場までの歴史 | gihyo.jp
    lanius
    lanius 2010/07/19
    Webにおける非同期通信の歴史。
  • 第43回 Rails 3を支える名脇役たち その1 - Arel - | gihyo.jp

    はじめに Ruby on Railsの2年半ぶりのメジャーバージョンアップである3.0の正式リリースがいよいよ間近に迫ってきました。 Rails 3は、アプリケーション・レベルではRails 2.3との互換性をなるべく保ちながらも、メジャーバージョンアップだけあってフレームワーク自体は隅々にまで徹底的なリファクタリングが施されて更なる洗練を遂げています。結果として、Rails 3では融通の効かないフルスタック構造を捨ててすっきりとしたモジュール独立性が実現されているのですが、この際に、Merbとの合併の影響もあってか、いくつかの新たな外部ライブラリに依存する形になっているのも興味深いところです。 そこで稿では、あえてRails 3そのものではなく、このRails 3の大改造の舞台裏を支える裏方さんにスポットライトを当ててみたいと思います。 Arelによってパラダイムが大きく変わったAct

    第43回 Rails 3を支える名脇役たち その1 - Arel - | gihyo.jp
    lanius
    lanius 2010/07/03
    ActiveRecordのキモとなる中間ライブラリ「Arel」について。
  • 第1回 NoSQL、そしてCassandraとは | gihyo.jp

    NoSQLミドルウェアの特徴をもう少し細かく挙げてみます。分量の都合もあり個別には触れませんが、それぞれのNoSQLミドルウェアで差別化部分に関してはかなり詳細に説明がされていますので、ぜひそちらを参照してみてください。 高速に動作する リレーションモデルではないデータモデル スケールアウト型アーキテクチャ コモディティサーバによって構築される スキーマフリー SPOF(単一故障点)を持たない 自動的に複数台へレプリケーションする イベンチュアルコンシステンシまたは一貫性の選択が可能 SQLのような強力なクエリ言語を持たず、シンプルな問い合わせしかできない Cassandraとは何か NoSQLミドルウェアの筆頭といえばGoogle BigTableやAmazon Dynamoですが、オープンソースの世界でもいろいろなものが出てきています。その中でも最近特に注目を集めているのが、Apach

    第1回 NoSQL、そしてCassandraとは | gihyo.jp
    lanius
    lanius 2010/04/27
    読みやすい。わかりやすい。
  • 第2回 完全版:ブラウザとデバッグ環境 | gihyo.jp

    こんにちは、太田です。前回はクロスブラウザの入口として、各ブラウザの特徴をまとめつつ、実際にクロスブラウザなコードを紹介しました。今回はクロスブラウザ対策における基である、各ブラウザ環境の構築について解説したいと思います。 前回紹介した通りブラウザにはたくさんの種類・バージョンがあります。それぞれが動作する環境を用意するだけでも、一苦労ではすみません。なるべく少ないマシンで、各バージョンをインストールして、さらにデバッグするための環境作りについて紹介します。なお、Safari以外はWindows環境を想定しています。さらに、特に断りがない限りはWindows XP SP3をベースに解説させていただきます。ご了承ください。 各ブラウザのデバッグ環境は近年目覚しいほどの進化を遂げています。統合デバッグ環境の草分けであるFirebugを筆頭に、Safari/Chrome(WebKit)のWeb

    第2回 完全版:ブラウザとデバッグ環境 | gihyo.jp
  • 第1回 WSGIの概要 | gihyo.jp

    PythonのWebアプリケーションフレームワーク Pythonには、Zope、Twisted、Django、TurboGearsなどのさまざまなWebアプリケーションフレームワークが存在します。以前は、このような幅広い選択肢は、新しくPythonを使用しようとするユーザにとって都合が悪いことがありました。使用するフレームワークによって、利用可能なサーバが制限されてしまったり、逆にサーバによって利用可能なWebアプリケーションフレームワークが制限されるといったことがあったためです。 そのようなPythonの状況とは対照的に、Javaにおいては、多数のWebアプリケーションフレームワークがあるにもかかわらず、サーバとWebアプリケーションをつなぐ際に、統一されたJava Servelet APIを用いることで、アプリケーションフレームワークを気にせずにServelet APIが利用できる環境

    第1回 WSGIの概要 | gihyo.jp
    lanius
    lanius 2010/03/17
    WSGI基礎。