タグ

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

  • JavaScriptのコーディング規約を気軽にチェック

    こんにちは、中川です。 今回は「Google JavaScript Style Guide」を気軽にチェックできるClosure Linterをご紹介したいと思います。 http://google-styleguide.googlecode.com/svn/trunk/javascriptguide.xml Google JavaScript Style Guideのいいところですが、 規約だけでなく、しっかりしたツールも揃っているところが素晴らしいと思います。 コーディング規約はあったとしても、それに従っているか定期的に簡単にチェックする方法がないと、 いつしか守られないまま開発されてしまうことになりますね。 ※今回の内容はMacにて動作確認を行なっています。

    JavaScriptのコーディング規約を気軽にチェック
  • screen(だけ)の時代は終わり。tmuxでリモートコンソールを便利に使うTips

    ※ コメントをいただきましたので、一部文を修正させて頂きました。 1.サーバー・クライアントモデルというのはネットワーク接続なイメージになってしまいますので、取り外しました 2.mouse-utf8に関してコメントを頂いたので補足しました 3.タイトルを「screenの時代は終わり。tmuxでリモートコンソールを便利に使うTips」から「screenだけの時代は終わり。tmuxでリモートコンソールを便利に使うTips」に変更しました(変な誤解を受けられた方がいらっしゃったため) お久しぶりの田中です。最近、ずっと大型案件に携わっていた関係で、あまりブログ等でのアウトプットができていませんでした。これからはドンドン書いていきますので、どうぞよろしくお願いします。日はGNU screenと同様の機能を持つtmuxを紹介します。 GNU screenやtmuxは、1つのターミナル画面上に複数

    screen(だけ)の時代は終わり。tmuxでリモートコンソールを便利に使うTips
    Kiske
    Kiske 2012/03/16
    screenでも同じことできるので乗り換える程では無いような。
  • Gitを使い始めたらやっておきたい便利な設定いろいろ

    こんにちは、中川です。 Gitを使い始めてから、Subversionを使う機会がめっきり減ったこの頃です。 Gitだとローカルだけで簡単に使い始められるのもいいですが、気軽につくれるbranchや、mergeのしやすさがたまりませんね。 インストール直後の状態でも普通に利用できますが、 ちょっとした設定でさらに使いやすくなる方法をご紹介したいと思います。 ※今回ご紹介する内容はいずれも私のMacBook上での動作確認となり、Windows環境は考慮していませんがご容赦ください。 ■ユーザー名とE-mailアドレスの設定 まずは、最初にユーザ名と、メールアドレスを設定してしまいましょう。 $ git config --global user.name "yoshiki" $ git config --global user.email "yoshiki@example.com"

    Gitを使い始めたらやっておきたい便利な設定いろいろ
    Kiske
    Kiske 2011/09/04
  • Twigでカスタムタグを追加する

    あけましておめでとうございます。小川です。 日はTwigでカスタムタグを追加する方法を紹介します。 ■Twig TwigはPHPで実装されたテンプレートエンジンの1つで、Python製のテンプレートエンジンのJinjaとほぼ同じ構文を持っています。 Webアプリケーションフレームワークsymfonyの次期バージョンでもあるSymfony2で採用されることが決定しており、Symfony界隈を中心に注目を浴びているテンプレートエンジンです。 <h1>Categories</h1> {% if categories|length > 0 %} <ul> {% for category in categories %} <li>{{ category.name }}</li> {% endfor %} </ul> {% endif %} <?php // lib/Twig/Node/Print.

    Twigでカスタムタグを追加する
  • PHPスクリプトの遅い部分を簡単に見つける方法

    extension=xdebug.so xdebug.profiler_enable = 1 xdebug.profiler_output_dir = /tmp と設定して、apacheのリロードを行えばXdebugが動作します。 これで、あとは、ブラウザで調査したいページにアクセスすれば、 /tmp/ 以下にプロファイルデータが作成されていきます。 次にプロファイルデータの閲覧の為に、 http://sourceforge.net/projects/wincachegrind/からWinCacheGrindをダウンロードしてwindowsマシンにインストールします。 あとは、WinCacheGrindで作成されたファイルを取り込めば、関数ごとの 実行時間をたどりながら確認することができます。 ※WordPress2.7.1日語版インストール直後のTOPページで試してみた場合です。 We

    PHPスクリプトの遅い部分を簡単に見つける方法
    Kiske
    Kiske 2010/05/31
  • symfonyのフォームフィルターの活用 +α

    こんにちは。小川です。今日はsymfonyのフォームフィルターをご紹介します。 題に入る前に、symfonyに関連するお知らせが何点かあります。 まず、12月1日にsymfony 1.3/1.4がリリースされました! symfony 1.3は1.2までとの互換性を保ち古い機能を残したバージョン、symfony 1.4は1.3から古い機能を削除したバージョンになります。 大きな変更点として、以下のような内容があげられます。 ◆SwiftMailerメール送信ライブラリを標準で搭載 ◆フォームクラスの改良 ◆標準のORMがDoctrineに変更 ◆Doctrineが1.0から1.2、Propelが1.3から1.4へバージョンアップ 詳しいことについては、以下のリンクをご参照ください。 symfony 1.3/1.4 の新しい機能 プロジェクトを1.2から1.3/1.4にアップグレードする あ

    symfonyのフォームフィルターの活用 +α
  • symfonyのルーティングでメモリが肥大化する問題と対処法

    <strong>追記@2009/09/28</strong> symfony1.2.9以降では初期状態でキャッシュが無効になるように設定されています。symfony1.2.9からのgenerate:appタスクでアプリケーションの生成を行った場合は修正は必要ありません。 というわけで今回は、 1. ルーティングのキャッシュの仕組み 2. なぜそんなにもキャッシュが肥大化してしまったのか 3. ルーティングのキャッシュを無効にする方法、その他対策 上記の3つをテーマにお話しさせていただきます。 symfony 1.2のルーティングについては以前書いた「symfony 1.2のルーティングまとめ」という記事をご覧ください。 symfonyでは通常、 /モジュール名/アクション名(/パラメータ) という形式のURLをとりますが、このURLとモジュールおよびアクションを結びつける仕組みをルーティン

    symfonyのルーティングでメモリが肥大化する問題と対処法
  • Doctrineの継承機能について

    こんにちは。小川です。 よくあるオブジェクトリレーショナルマッパーは基的に1つのテーブルに対して1つのモデルオブジェクトを定義します。このときにモデルオブジェクト間に親子関係を持たせたり、いくつかのモデルに対して抽象クラスを作りたいと思ったことはありませんか?Doctrineには継承に関する3つのパターンが用意されており、今回はそれをご紹介したいと思います。 まずは3つのパターンの概要を説明します。 ・Simple inheritance 単純に1つのテーブルに対して複数のモデルを作成する方法です。 どのレコードがどのモデルに対応するかは特に判断は行いません。 ・Concrete inheritance モデル1つひとつに対してテーブルを作成する方法です。 テーブルごと分けるため、カラムもテーブルごとに定義されます。 ・Column Aggregation inheritance 単純に

    Doctrineの継承機能について
  • symfony/lime + phpUnderControl を使ってみる

    と言うディレクトリに展開したという前提で説明していきます。 CruiseControlを起動するには、展開したディレクトリ直下にあるcruisecontorl.shを実行します。 気をつけるべき点は、起動時に環境変数の$JAVA_HOMEを呼び出して使う点です。 debianの場合だと、/usrを指定してやらないと、javaコマンドの呼び出しに失敗します。 exportするなり、cruisecontrol.shの中でJAVA_HOME=/usrを指定してやるなり、何かしらの対策処理は施しておきましょう。 phpUnderControl の準備 次に、phpUnderControlとそれに関連するるライブラリをインストールします。 phpUnderControl、および関連ライブラリは独自のpearチャンネル上で配布されているので、それらのチャンネルを登録したうえでpearコマンドでインスト

    symfony/lime + phpUnderControl を使ってみる
  • GoogleMapsAPIの新機能 ルート検索機能を試してみる

    <script src="http://maps.google.com/maps?file=api &amp;v=2.x &amp;key=.... これで今回使用するGDirectionsクラスが使用できるようになります。 2. GDirectionsにGMap2オブジェクトを渡しインスタンスを生成

    GoogleMapsAPIの新機能 ルート検索機能を試してみる
  • 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の連携
    Kiske
    Kiske 2009/03/19
    MySQLのgeometry型サンプルコード
  • soxでサウンドファイルを編集

    今回はLinux上で手軽にサウンドファイルを編集出来る sox を紹介します。 単純にオーディオファイルを編集するだけならGUIで編集可能なアプリケーションはたくさんあります。どこぞのOSならもっとたくさんあるでしょう。 ですが、バッチ処理をしたり少々複雑な条件でコンバートしようとするとGUIの場合は一筋縄にはいきません。 手軽にシェルスクリプトのみでバッチ処理をしようとすると、やはりコマンドラインに限ります。 そのニーズを満たすものが sox です。 sox [global-options] [format-options] infile1 [[format-options] infile2] ... [format-options] outfile [effect [effect-options]] ...

    soxでサウンドファイルを編集
    Kiske
    Kiske 2009/03/18
    なつかしい。大学の研究室で使ってた。
  • Doctrineのアクセサとオーバーライドについて

    <?php $product = Doctrine::getTable('Product')->find($id); // Titleプロパティを取得 $product['price'];        // No.1 $product->price;          // No.2 $product->get('price');   // No.3 $product->getPrice();     // No.4 上記の4種類があります。結論からいうと、上記はすべて同じ挙動をとります。 では具体的にどのような挙動をとるかを説明していきます。 まず、Productクラスを例に、継承構造をさかのぼってクラス定義を並べると、 <?php // Product class Product extends BaseProduct {} // BaseProduct abstract class

    Doctrineのアクセサとオーバーライドについて
  • 座標から地名を取得する逆GeocodingAPIのまとめ + サンプル

    こんちは。松田です。 トレイン・トレインで使用しているGoogleMapをいじっている時に座標(緯度・経度)から地名を取得する必要が出てきたので、その際に調べた逆Geocoding機能を実装したAPIをまとめてみました。 GoogleMapsAPIなど地図を使ったシステムを使用していると、住所から緯度経度などの情報を取得する方法が必要になります。これはGeocodingと呼ばれる技術で、GoogleMapsAPIではすでに公式なAPIが存在しています。 これとは逆に、ユーザーに登録させたスポットの地名を自動入力させたりする場合など、座標から地名情報を取得したい場合があります。これらは「逆Geocoding」や、「Reverse Geocoding」などと呼ばれていますが、現在のところGoogleMapsのAPIは提供されていません。 この逆Geocoding機能が使えるサービスをいくつか紹

    座標から地名を取得する逆GeocodingAPIのまとめ + サンプル
  • symfonyでSwift Mailerを使用する際の注意点

    2008.12.03 やっぱり使い方を間違っていなかったようなので、再修正です。田舎の開発者さんご指摘ありがとうございました。 2008.08.28 Swift_Messageの使い方を間違えるという、とっても初歩的なミスをしていたので、修正しました。 shuwat さんありがとうございました 先日のsymfonyのjpMailPlugin(メール送信プラグイン)の使い方のまとめのコメントで、Swift Mailerについてshuwatさんがコメントで言及されていたので、Swift Mailerについて軽くふれておきます。 とりあえず、symfonyのCookbookに書いてある通りに進めればできます。 symfony1.0 であってもgetPresentationFor()メソッドを使用して同様にメール送信することもできます。 SMTPを使用したメールのであれば、以下のコードで送信するこ

    symfonyでSwift Mailerを使用する際の注意点
    Kiske
    Kiske 2008/08/21
    1.1でのメール送信について。Swift Mailer試さないと
  • 群れのモデルをJavaScriptで実装してみた

    今回、群れのモデルにチャレンジしてみた理由ですが、Life is beautifulの以下のエントリがきっかけでした。 ネットの時代には「知識量・記憶力」よりは「適応力・応用力」の方がずっと大切より 先日の「<a href="http://satoshi.blogs.com/life/2007/05/ui.html">習作UI: 縁日の金魚を再現してみた</a>」というエントリー。特に深い意味もなく作ったのだが、ソフトウェア・エンジニアを目指す学生さんのためにひとこと付け加えておきたいのは、この業界で気で成功しようと思ったら、この程度のプログラムは、シミュレーションの専門家でなくともサクッと作れるように自分を鍛えておかなければいけない、ということ。 正直あまりJavaScriptが得意ではないのですが、最近あまりプログラムを書いていなかったので、さすがにまずいと思い自分への課題として、サ

    群れのモデルをJavaScriptで実装してみた
  • フリーで使えるセキュリティスキャナ・ツールまとめ

    これで、インストールしたマシンの8080番ポートをプロキシとして指定して、チェックしたいサイトをブラウジングするだけです。 絶対に自分で管理していないサイトに対して実行しないでください。 こうしてできた、hoge.log を同梱のratproxy-report.shで解析すれば、レポートがHTMLとして出力されます。 レポートのHTMLもスクリーンショットも公開されています。 その他のプロキシ型スキャナ その他にもプロキシ型のスキャナは色々とあるのですが、RatProxyのドキュメントページに自分が調べたものは大体記述されていました。なので、簡単に触れるにとどめておきます。 1. WebScarab 2. Paros 3. Burp 4. ProxMon 5. Pantera 6. Chorizo! それぞれのプログラムについて、検索すれば使い方はわりと簡単にわかると思います。また、Pro

    フリーで使えるセキュリティスキャナ・ツールまとめ
  • 第1回symfony勉強会で発表してきました&資料公開します。

    勉強会は1回目からなかなかの盛り上がりで、懇親会でも多くの人と意見交換もでき、symfony需要の高まりを感じました。 これからも続けていきたいですね。 P.S. 会場提供および進行をしてくださった月宮さん並びに株式会社ディノのみなさん、ありがとうございました。

    第1回symfony勉強会で発表してきました&資料公開します。
  • PHPSpecでユニットテスト

    pear channel-discover pear.phpspec.org pear install phpspec/PHPSpec を実行すればOKです。 使い方、というか振舞駆動開発の流れですが、 1.要求仕様を文章に直し(it should … の形式で)、それに沿ったテストコード(スペックファイル)を作成。 2.作ったスペックファイルで正しい結果が出てくるようなプログラムを作成。 3.スペックファイルを完成させてテストを実行して、正しい結果になることを確認。 1から3の繰り返しになります。 マニュアルにわかりやすい例がいろいろ載っているので、ぜひぜひそちらを見てみて下さい。 一応、やってみると、、、 MyStringクラスという、渡した文字列をどんどんつなげていくクラスを作ることにします。 まずはスペックファイルの作成です。 DescribeMyString.php <?php

    PHPSpecでユニットテスト
    Kiske
    Kiske 2008/04/03
  • フリーで使えるDBのモデリングツールまとめ

    森川です。 巷ではエイプリルフールネタがおさかんですが、普通にデータベースのモデリングツールの紹介です(エイプリルフールネタが思いつかない…)。 普段MySQLならDBDesigner4、PostgreSQLならClayを使用しているのですが、他に何かよいツールはないものかと調べてみました。 Clay 言わずと知れた?モデリングツールです。Eclipseのプラグインで、無償でも使用可能です。MySQL、PostgreSQLで使用可能です。 無償版ではER-図や、DB定義書を出力できません。対応するDBが少なかったりもします。 個人的には、PostgreSQLを使用する場合によく使います。外部キー制約などにも対応しているのでそれほど困りません。 リバースエンジニアリングに対応しているのも気に入っている理由の一つです。 ちなみに、リバースエンジニアリングをするにあたってPostgreSQLのJ

    フリーで使えるDBのモデリングツールまとめ