タグ

ブックマーク / blog.asial.co.jp (30)

  • PHPで仮想マシンベースの正規表現エンジンを作ってみる 第二回

    こんにちは、久保田です。 PHPで仮想マシンベースの正規表現エンジンを作ってみる 第二回です。 前回の第一回では、PHPで作成する正規表現の仕様の紹介や正規表現のパーサの実装を行いました。今回の記事では、正規表現を実行する仮想マシンをPHPで実装します。 正規表現を実行する仮想マシン まず、実装する仮想マシンの仕様について解説します。Regular Expression Matching: the Virtual Machine Approachでは仮想マシンについては以下のように記述しています。 To start, we'll define a regular expression virtual machine (think Java VM). The VM executes one or more threads, each running a regular expression 

    PHPで仮想マシンベースの正規表現エンジンを作ってみる 第二回
  • 株式会社テレビ朝日社向け、ハイブリッドキャストコンテンツ「クレヨンしんちゃん」の開発

    今回開発した「クレヨンしんちゃん」ハイブリッドキャストコンテンツは、次世代放送サービス、ハイブリッドキャスト向けのHTML5コンテンツです。スマートフォンやタブレットをコントローラーとして、テレビ画面に表示される「ロボしんちゃん」を操作できます。視聴時間に応じて「ロボしんちゃん」のアクションが増え、飛ぶ、ロケットパンチ、お尻ぶりぶりなどが行えます。 開発事例の詳細については、『株式会社テレビ朝日様 ハイブリッドキャストコンテンツ「クレヨンしんちゃん」』をご参照ください。 ※ ハイブリッドキャストとは? ハイブリッドキャストは、テレビ受信機にHTML5対応の専用ブラウザを搭載し、テレビ放送と、HTML5で記述されたWebコンテンツとを融合させる次世代テレビサービスです。スマートフォンやタブレット端末との連携も可能な、新しいサービスです。 アシアルでは、次世代放送サービス、ハイブリッドキャスト

    株式会社テレビ朝日社向け、ハイブリッドキャストコンテンツ「クレヨンしんちゃん」の開発
  • 最近のJavaScript開発まとめ

    こんにちは、中川です。 ここ1・2年ですが、私の担当するプロジェクトでは、 PHPよりもJavaScriptの開発が多い状態が続いております。 JSのプロジェクトを重ねるにつれ、開発環境も段々と整理されてきましたので、 一旦、最近のJS開発で利用しているライブラリやツールなどをまとめてみました。 フレームワーク ●Backbone.js http://backbonejs.org/ JavaScriptのMVCフレームワーク。 何も使わない(もしくは我流)よりは、これを使って欲しいと思えるフレームワークです。 利用者が多く日語情報も豊富にあるのと、フレームワーク自体が1500行程度と軽量なため、学習コストを低く抑えることができます。 ●AngularJS http://angularjs.org/ データバインディングを備えたフレームワーク。 高機能なテンプレートや、DIの仕組み、ルーテ

    最近のJavaScript開発まとめ
  • JavaScriptでうっかりやってしまいそうなこと色々

    こんにちは、中川です。 今回はJavaScriptで開発していると、うっかりハマってしまうちょっとした罠たちを紹介したいと思います。 JavaScriptでの開発経験者であれば、どれか一度はひっかかったことがあるのではないでしょうか? String ●String#replace()は文字列指定では全部置き換えない 対象文字列を一括して置き換えたいなどでString#replace()を使いますが、 検索対象を文字列で指定してしまうと最初に一致した部分しか置換しません。

  • 【Javascript】consoleオブジェクトが持つlog以外の便利メソッド18(前編)

    こんにちは、橋です。 今回と次回の2回にわたり、Safari、ChromeのWebインスペクターやFirefoxのFireBugで使えるconsoleオブジェクトの使い方について書いてみたいと思います。 Javascriptのコードをデバッグする際に、console.logを使ってメッセージやオブジェクトの内容をログに表示することがあるかと思いますが、 この「console」オブジェクト、実はlogメソッド以外にも複数のメソッドがあります。 まずは、consoleオブジェクトにどのようなメソッドがあるか、console.logを使って表示してみたいと思います。 consoleオブジェクトの中身を見てみると、__proto__オブジェクトに以下のメソッドが定義されています。 assert count debug dir dirxml error group groupCollapsed g

    【Javascript】consoleオブジェクトが持つlog以外の便利メソッド18(前編)
  • Google MapsとMySQLの連携

    こんにちは、アシアルの中川です。 Google Mapsに表示する情報をMySQLのgeometry型で扱う方法を試してみました。 Google Mapsのある地点にマーカーを表示したりすることがある場合、 緯度・経度の情報で地点に表示させることができますが、 データベースにこの情報を保存する場合、lat(float), lng(float)とそれぞれカラムに保存する方法もあるのですが、この方法では各データの位置の関係が非常に扱いにくくなります。 Google Mapsで表示されている範囲内のデータのみ取得したい場合や、 ある地点から近い順に取得する場合などに面倒なことになります。 そこで、MySQL4.1以降で用意されている空間情報を扱う機能の「geometry」型を使用します。 「MySQL 4.1 リファレンスマニュアル :: 10 MySQL における空間情報の機能(日語)」 「

    Google MapsとMySQLの連携
  • gitお悩み相談室

    こんにちは、浦です。 今日はgitコマンドに関する素朴な疑問について、Q&A形式でまとめてみました。 【Q】 編集がパーになるのが怖くてcheckoutできません。どうしたら良いでしょうか? 【A】 checkoutに-pを付けましょう。確認メッセージが表示されます。 編集をそのまま残したい箇所ではnを、 編集をパーにしてよい箇所ではyをタイプします。 【Q】 addしたらdiffに何も表示されなくなりました。どうしたら良いでしょうか? 【A】 diffに--stagedを付けましょう。コミット待ちのdiffが見れます。

    gitお悩み相談室
    akkun_choi
    akkun_choi 2012/06/28
    git add -p ファイル内の部分的にステージングできる。git checkout -p 同じく部分的に元に戻せる。git log -p でdiff付きのログ。まとめると -p 便利
  • コマンドラインの引数解析を簡単に! : アシアルブログ

    皆さんはPHPでコマンドラインスクリプトを作成するとき、引数の解析はどうされてますか? 引数が単純であればargvをそのまま使うだけで十分ですが、オプションが多かったりすると結構面倒ですよね。 たまたまPHPプロ!Weekly PEAR リリース @ 08/08/05号でConsole_CommandLineという引数を解析するライブラリを見つけて使ってみたところ、なかなか便利だったのでご紹介したいと思います。 ちなみに、オプションの解析には、PHP標準のgetopt関数を使えば多少楽はできるのですが、 getopt.php

    コマンドラインの引数解析を簡単に! : アシアルブログ
    akkun_choi
    akkun_choi 2011/11/10
    Console_CommandLine
  • LinuxをDAAPサーバにする

    Music->Connect to DAAP share にサーバ名を入れればアクセス出来ます。 ・iTunesの場合 同一セグメントなら自動で発見するはずです。 見つからない場合は、avahi-daemonが起動しているが確認してください。 ・その他クライアント 説明に従ってください。 繋がれば、音楽を楽しむだけですね。 4・使用感 スムーズに曲一覧をロード、再生出来ます。 回線はemobileくらいの速度があればそんなに苦労しなくても動きます。 以上。 強いて言えば、rhythmbox起動時にいちいちサーバ名を入力する必要があるくらいです。(DAAPの問題ではないですが・・・) 5・その他 著作権とか、不正アクセスなどがあるため、LAN内のみとか、VPN使うなど、直接外部には公開しないようにしてください。 (何があっても自己責任で) 自分の場合も自宅ローカル+VPNからのみアクセス可能

    LinuxをDAAPサーバにする
    akkun_choi
    akkun_choi 2011/09/04
    firefly(mt-daapd)
  • 独自/ミラー yum リポジトリを作ろう

    % lftp -e 'mirror --delete --only-newer -X *isos/* /centos/5.4 /path/to/mirror/centos/5.4  & & exit' (site url) パスは適宜環境に合わせて読み変えてください。 2通りの方法を紹介しましたが、いずれも既にあるミラーから差分を見つけ、更新のあったパッケージのみをダウンロードしてきます。 なお、--exclude(rsync)や -X(lftp)で指定した名前のディレクトリはダウンロードされませんので、ローカルに不要なisosなどのパッケージは除外しておきましょう。 これを深夜に1日1回程度の頻度でcronで回してやれば、手軽にローカルのリポジトリを獲得することができます。 あとは、ここでDLしてきたパッケージ群をHTTPDの見えるところに置いてやり、公開するようにhttpd.confを

    独自/ミラー yum リポジトリを作ろう
  • 手軽に出来るApacheモジュール開発②

    こんにちは、井川です。 前回、Apacheモジュールの手軽な作り方をご紹介しました。Webページに先頭に"hello world"を追加するモジュール(mod_hello_world)は意外と簡単に作成できたことと思います。今回は、モジュール開発を一歩進め、モジュールのOn/Offをディレクトリ毎に設定する方法をご紹介します。 前回(手軽に出来るApacheモジュール開発)と比べていささか複雑にはなりますが、モジュール起動の切り替えを使えるようになると開発の幅が大きく広がります。ぜひ試してみて下さい。 今回の開発の流れは以下の通りです。 ① テンプレートの作成 ② コード(mod_hello_world.c)の修正・追記 ③ コンパイルしてインストール ④ Apacheの設定と再起動 検証環境は次の通りです。 ・ CentOS 5.5 ・ Apache 2.2.3 ① テンプレートの作成

    手軽に出来るApacheモジュール開発②
  • sshでポートフォワード

    sshには言わずと知れた「ポートフォワード」という機能があります。 読んで時の如しで、sshの暗号化されたトンネルを利用し、任意のポートに来た通信を転送できます。 何がうれしいかと言うと、リモートの 5432番 をローカルの 5432 にマッピング出きる。 つまり、sshさえ繋がれば、そのサーバから見える範囲ならなんでも使える!と言うことです。 1・ローカルへリモートのポートをマッピング 例えば、二つのホスト(chiba, shiga)があるとします。 chibaに、shigaの5900ポートをフォワードする場合は以下のようになります。

    sshでポートフォワード
  • Windows 7 快適化計画

    こんにちは、先月は43%の節電に成功した浦です。 4月からアシアルには頼もしい新入社員たちが入ってきてくれました。 アシアルブログもどんどん賑やかになるといいですね。 最近巷ではMacが流行っていますが、まだWindows 7を使っている方は多いと思います。 今回は、Windows 7をほんの少しでも使いやすくするポイントについて書いていきます。 ■ポイント1. cmdよさようなら■ Windows 7には標準でPowerShellが入っていますので、これをコマンドプロンプトの代わりに使いましょう。 「スタートメニュー → すべてのプログラム → アクセサリ → Windows PowerShell」とたどると、PowerShellを起動することができます。 タスクバーのPowerShellアイコンを右クリックし、「タスクバーにこのプログラムを表示する」をクリックすれば、Windows

    Windows 7 快適化計画
  • lsyncdでファイルを同期してみよう

    こんにちは、熊谷です。 最近、複数のサーバでファイルを同期しなければいけないということがありました。出来るだけ手軽で簡単にそれを行いたいということで、何か良い方法がないものか、聞いたり調べたりしたところ、lsyncdなるものがあるのでそれを使用してみるのも良いのではないかと、アドバイスを受けました。 そんなことで、こちらのサイトを参考に実際に使ってみました。 例として、同期元は192.168.1.10、同期先は192.168.1.20とします。 まずは、同期元(192.168.1.10)にてlsyncdをダウンロードしてきてインストールです。makeするなりパッケージを作るなりしてインストールします。 設定ファイルは/etc/lsyncd.conf.xmlとしてこんな感じで記述しました。 <lsyncd version="1"> <settings> <logfile filename="

    lsyncdでファイルを同期してみよう
  • http://blog.asial.co.jp/816

  • Subversionのリポジトリ下でgitを使ってみよう

    こんにちは、熊谷です。 今まで長い間バージョン管理システムとしてSubversionを使っていました。特に不満もなく使い慣れているシステムなのでずっと使っていたのですが、あるとき、こういう環境でSubversionを使うのはちょっと不便かもしれないという状況が生まれ、いろいろ考え調べてみた結果、gitが使えるのではないかという結論に達しまして、早速使ってみました。 そもそもSubversionとgitの違いは何なのか。Subversionは集中型、gitは分散型のバージョン管理システムで、Subversionは中央のリポジトリに対してコミットを行っていくのですが、gitは各ユーザが持つローカルのリポジトリに対して行います。そして、ローカルのリポジトリの内容を中央のリポジトリに反映したり、別のユーザが持つリポジトリを取得したり反映したりといったことが出来ます。 また、既にSubversion

    Subversionのリポジトリ下でgitを使ってみよう
  • とても便利なvimのコマンド紹介

    こんにちは。小川です。 今日はvimのコマンドでも紹介しようかなと思います。 僕はテキストエディタは大体vimを使っています。 執筆をしたときもvimでやっていましたし、PHPvimで書いています。 vimって色々コマンドがあって便利ですよね。友達vimのコマンドを教えあったりして、度々「こんな便利なコマンドがあるのか!」と驚かされます。 今日はそんなvimのコマンドの中から普段使っていて便利だなーと思うものをいくつか紹介していきます。 ちなみにShiftを押しながらのコマンドは、アルファベットキーの場合は大文字で表記します。 エンターやエスケープを押下する必要がある場合はエンターやエスケープと記述します。「:」ではじまるコマンドモードはエンターを押さないと意味がないので、そこは省略します。 同時押しは+でつなげて表記し、基的には1文字ずつ順番に押下します。 ■ページ移動 「ggで」

    とても便利なvimのコマンド紹介
  • ZendEngine勉強会で「拡張ライブラリでなるべく簡単に構文を追加する方法」というタイトルで喋ってきました

    こんにちは、久保田です。 2/16に行われたZendEngine勉強会で、「拡張ライブラリでなるべく簡単に構文を追加する方法」というタイトルで喋ってきました。 勉強会を開催したyoyaさん、会場提供して頂いたGREEさんありがとうございます。お疲れさまでした。 ZendEngineとは、PHPの内部で利用されている仮想マシン(VirtualMachie)のことです。これを知ることは、拡張ライブラリを実装したり、PHPの内部実装に精通するためには避けては通れない道です。 この記事では、ZendEngine勉強会で喋った内容をもう少し詳しくテキストにして解説します。 はじめに PHPの拡張ライブラリには、単にC/C++言語で記述されたライブラリをPHPでも使えるようにする拡張ライブラリと、PHPそのものの振る舞いを変える拡張ライブラリの二種類があります。 前者で有名なのは、画像を加工変換合成す

    ZendEngine勉強会で「拡張ライブラリでなるべく簡単に構文を追加する方法」というタイトルで喋ってきました
  • Webアプリケーション向けの自動セキュリティスキャナ「Skipfish」を試してみました

    こんにちは、中川です。 先日、GoogleからWebアプリケーション向けの自動セキュリティスキャナ「Skipfish」が公開されたので、社内で利用しているCakePHPのアプリで試してみました。 Skipfish( http://code.google.com/p/skipfish/ )は、Webアプリケーションの脆弱性、SQLインジェクションやクロスサイトスクリプティング等を自動的に検出してくれるApache License 2.0のライセンスで公開されているオープンソースのツールです。 必要なライブラリは以下とのこと。 * GNU C Compiler * GNU Make * GNU C Library (including development headers) * zlib (including development headers) * OpenSSL (including

    Webアプリケーション向けの自動セキュリティスキャナ「Skipfish」を試してみました
  • DoCoMo向けにCSS指定をインラインに埋め込むPHPライブラリ「toInlineCSSDoCoMo」作りました

    こんにちは。Windowsの最大の発明はゴミ箱の標準装備だと思っている亀です。 追記:Mac信者の某氏にゴミ箱はWindowsの発明じゃないと突っ込まれてしまいました。すみません<(。_。)> 昨日はグリーさんのオープンソース勉強会に参加してきました。 今回の講師はDeNAの川崎さんで、わりとモバイル屋さんな自分としてはぜひともチェックしておきたいなと思って参加してきました。 勉強会・懇親会ともなかなか面白い話が聞けたり、変な人がいっぱいしたりしてとても面白かったです。 モバイルをやっているといつも面倒なのは、テンプレートの扱いです。 そのあたりのまとめは以前このブログでうちの高橋さんが超まとめてくれた記事があるので、そちらをご参照ください。 とくにDoCoMoのCSS(i-CSS)は開発者泣かせですね。インラインのみに対応とか、開発しにくくて涙ちょちょぎれそうです。 さてさてそんなDo

    DoCoMo向けにCSS指定をインラインに埋め込むPHPライブラリ「toInlineCSSDoCoMo」作りました