タグ

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

  • 最近のJavaScript開発まとめ

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

    最近のJavaScript開発まとめ
  • PostgreSQLパフォーマンスチューニングのために ~重いSQLの見つけ方~ : アシアルブログ

    こんにちは、牧野です。 先日、あるウェブサイトで使用しているPostgreSQLを見直す機会がありました。 PostgreSQLのパフォーマンスを手軽に上げるには、 ・データベースの設定ファイルのパラメータを変更する ・アプリケーションの方で重いSQLを発行している場所を見つけて、その部分を直していく ・vaccumを実行する など、いくつか方法が考えられます。 今回は、PostgreSQLで実行時間が長いSQLを見つける方法について紹介します。 題に入る前に、まずはテスト用データベースを作っておきます。 <?php $db = pg_connect('dbname=test'); $sql = " CREATE TABLE artist ( artist_id serial primary key, name text not null ) "; pg_query($sql); $sq

    PostgreSQLパフォーマンスチューニングのために ~重いSQLの見つけ方~ : アシアルブログ
  • JavaScriptで日付を扱うならこれ!「moment.js」

    ■ つかいかた(基礎編) ダウンロードしたmoment.jsをscriptタグで読み込ませたら準備完了です。 あとは下記のような実装で使用できます。 // momentオブジェクトを初期化して・・・ var m = moment(); // formatで出力! var output = m.format("YYYY年MM月DD日 HH:mm:ss dddd"); console.log(output);  // => 2013年05月15日 12:34:56 Wednesday // 現在時刻 moment(); // ミリ秒で指定 moment(1368543600000); // タイムスタンプ(秒)で指定 moment.unix(1368543600); // Date.parseで解析可能な文字列を指定 moment("May 15, 2013"); // Dateオブジェクトか

    JavaScriptで日付を扱うならこれ!「moment.js」
    kamipo
    kamipo 2013/05/24
  • ちょっと使えるMySQLの小技5つ+1

    こんにちは。最近ガスを止められ温もりの無い生活を送っている松田です。 今回は最近自分が知ったMySQLの小技をいくつか書いてみます。 んなもん常識だろ!ってネタがあっても優しく見守ってあげてください。 まず今回の実行サンプルには以下のテーブルを使ってます。 mysql> SELECT * FROM user_m; +---------+----------+---------------------+ | user_id | name     | create_datetime     | +---------+----------+---------------------+ |       1 | atsushi  | 2007-05-17 21:53:40 | |       2 | joe      | 2007-05-17 21:53:59 | |       3 | masah

    ちょっと使えるMySQLの小技5つ+1
    kamipo
    kamipo 2012/11/22
  • 【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(前編)
  • JavaScriptのコーディング規約を気軽にチェック

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

    JavaScriptのコーディング規約を気軽にチェック
  • sshでポートフォワード

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

    sshでポートフォワード
    kamipo
    kamipo 2012/04/27
  • jQueryだけ使うのが馬鹿らしくなる。KnockoutJSに触れる

    久保田です。最近KnockoutJSというJavaScriptフレームワークを勉強しています。 KnouckoutJSはjQueryの上に構築されているフレームワークです。jQueryのみ使うのと比べてKnockoutJSを利用すると、ウェブページ上のインタラクションを圧倒的に簡単に記述できます。この記事では、簡単にKnockoutJSの概要を説明し、KnockoutJSを用いたデモを紹介します。 このフレームワークの特徴としてあるのは、HTML内に宣言的な記述を埋め込むことでインタラクションが実装できることです。HTML5のカスタム属性(data*属性)を用いて、その要素に関する処理を宣言してきます。裏側の処理は、JavaScriptでViewModelを定義し、そこにビューが必要とする値を管理します。 例えば、あるチェックボックスにチェックを入れると下の要素がトグルする簡単な例は、以下

    jQueryだけ使うのが馬鹿らしくなる。KnockoutJSに触れる
  • screen(だけ)の時代は終わり。tmuxでリモートコンソールを便利に使うTips

    でサクっとインストールできます。tmuxコマンドをタイプすると、コンソールが表示されると思います。 ○ よく使うtmuxコマンド 私は下記のコマンドをよく使います: tmux attach - すでに開いたセッションにアタッチする tmux list-windows (C-b w) - ウィンドウの一覧を取得する tmux new-window (C-b n) - 新しいウィンドウを作る tmux detach-client (C-b d) - クライアントをデタッチする tmux list-keys (C-b ?) - キーバインドの一覧を表示する tmux next-window (C-b n) - 次のウィンドウを表示する tmux previous-window (C-b p) - 前のウィンドウを表示する tmux kill-window (C-b k) - ウィンドウを強制的に

    screen(だけ)の時代は終わり。tmuxでリモートコンソールを便利に使うTips
    kamipo
    kamipo 2012/03/16
  • リファクタリングのお供に使えるcodemod

    こんにちは、中川です。 今回はリファクタリングの際に役に立つcodemodというツールをご紹介したいと思います。 codemodとは、facebookが公開しているCUIの文字列置換ツールでpythonで作られています。 ツールといってもpythonファイルひとつですので非常に導入もしやすくなっています。 文字列の置き換えなら sed とかでできるのではと思われますが、 変換対象が多いときには、中には置換してはいけないものがあったり、 一部はそのまま置換でなくちょっと手直しが必要などがあったりしますよね。 そんな時に、codemod は変換対象をひとつひとつ確認・編集しながら置換をしていくことができます。 では、早速試してみましょう。 (※今回は手元のubuntuで試してみました。) ■インストール https://github.com/facebook/codemod から適当なディレク

    リファクタリングのお供に使えるcodemod
    kamipo
    kamipo 2011/09/09
  • PHP5.4 alpha1リリース! PHP5.3からの新機能を見わたす

    PHP                                                                        NEWS ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| 20 Jun 2011, PHP 5.4.0 Alpha 1 - autoconf2.59以上が ./buildconf によるconfigureスクリプトの生成のために サポート(そして要求)されるようになった。configureスクリプトのhelpの順番が おかしくなるかもしれないのを避けるために、autoconf2.60以上が望ましい。 (Rasmus, Chris Jones) - 古い機能の削除: . break/continue $var 文法。 (Dmitry)

    PHP5.4 alpha1リリース! PHP5.3からの新機能を見わたす
    kamipo
    kamipo 2011/07/07
  • サーバサイドでCanvasを利用する(node.js)

    こんにちは、中川です。 今年も残すところあと1週間をきりましたね。 このところ色々と忙しかったので年末年始はゆっくりとしたいと思います。 さて、今回の話題ですが、node.jsを使ってサーバサイドでCanvasが利用できるということで試してみました。 それでは、早速使ってみましょう。 ■今回の環境 Ubuntu 10.10 node.js v0.3.1 npm 0.2.12-1 node-canvas v0.4.1 ■インストール node-canvasでは、cairoを利用しますので、事前にインストールします。 // sample.js var Canvas = require('canvas') , http = require('http'); http.createServer(function (req, res) { var canvas = new Canvas(200,20

    サーバサイドでCanvasを利用する(node.js)
  • 結構使えるMySQLのTrigger機能!

    皆さん、ご無沙汰しております。 パソコン周辺機器にお金をかけはじめている笹亀です。 エンジニアはパソコンが商売道具なので、 やはり使いやすい物を使いたくなるのは自然な事ですね。 ご参考までに。。。 マウス  :Logicool MX Revolution(ビックカメラでポイントで購入 キーボード:Bluetooth Mac用キーボード(会社の人から売ってもらいましたw 今回はTriggerについてご紹介したいとおもいます。 Triggerとは、データの変更などのイベントによってあらかじめ指定した処理を自動的に実行する機能です。 最近使用しているデータベースには必ず備えてある機能です。 Oracle,Postgres,MySQLでも当たり前のようにあります。 実際にはどのようなときに使用するものなのでしょうか? ・特定のテーブルに対しての処理のログをとるため ・特定のテーブルのバックアップを

    結構使えるMySQLのTrigger機能!
  • 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」を試してみました
  • PHPでバイナリプログラミング その1

    はじめまして、5月から入社した久保田と申します。 九州からはるばる上京してエンジニアとして働いています。 普段はanatooというIDでブログ書いたりしています。 また、BlankaというPHP5.3で動くフレームワークを開発していたり、はてな記法パーサなどに利用されているパーサコンビネータなどを公開しています。 今後、勉強会などにも積極的に参加していこうと思いますのでお会いしたときはよろしくお願いします。 さて、この記事ではPHPでのバイナリの扱い方について説明します。 バイナリとは、ざっくりと言えばテキスト以外のバイト列のことです。 バイト列とは1バイトで構成される任意の長さを持つ列の事で、1バイトとは256通りの値を表現できる8ビットのデータのことです。 画像や音楽、映像などのバイナリは全て、テキストエンコーディングに沿わないバイト列によって表現されています。 これらのバイナリを扱う

    PHPでバイナリプログラミング その1
    kamipo
    kamipo 2010/06/20
  • symfonyアプリケーションをデプロイするためのCapistranoレシピ

    とすれば、symfony体とpluginsを除く、プロジェクトのファイル群を更新してくれます。 普段のリリース作業は、ほぼこれだけになると思います。 ざっと基的な使い方を説明したところで、Capistranoのインストールからの利用手順と、各タスクの紹介を順にしていきます。 なお、Capistorano自体の基的な説明は http://www.oiax.jp/rails/capistrano.html http://builder.japan.zdnet.com/sp/open-source-software-moonlinx-2009/story/0,3800096543,20396188,00.htm といったあたりをご覧ください。 一度どちらかでも目を通しておいて貰ったほうが、全体の理解が進むと思います。 では、ひとまずCapistrano自体の説明は上記のサイトを読んでもらう

    symfonyアプリケーションをデプロイするためのCapistranoレシピ
  • サーバサイドJavaScriptの「node.js」を試してみました

    $ tar xvzf node-v0.1.30.tar.gz $ cd node-v0.1.30/ $ ./configure $ make $ sudo make install 解凍やconfigureで、なんかエラー(注意文?)が出てましたが、とりあえず、makeできたので無視しておきましょう。 さて、これで体のインストールは完了ということで、まずは「Hello World」。。。なんて、やらずにDemoのチャットアプリ( http://chat.nodejs.org/ ) のソースがあるようなので、そっちを動かすことにしましょう! http://github.com/ry/node_chat からgitで持ってきます。 $ mkdir chat_sample $ cd chat_sample $ git clone git://github.com/ry/node_chat.gi

    サーバサイドJavaScriptの「node.js」を試してみました
  • Symfony 2のアプリケーション構成を読む

    HelloKernel.php  cache/  config/  console  logs/ 先ほど説明をしたKernelというものが出てきます。Kernelの中にはいくつかのメソッドが実装されています。簡単に説明します。 ◆registerRootDir() Kernelのルートとなるディレクトリです。またカーネルを配置してあるディレクトリ、ここではhelloがカーネルの名称、つまりアプリケーションの名称となります。 ◆registerBundles() Bundleとは日語にすると束とか1つにまとめたものという意味です。このBundleはSymfony 2では非常に重要な役割を持ちます。 このメソッドの中でZendBundleやDoctrineBundleを返しているのをみると、Bundleは従来のPluginのように思われるかもしれませんが、あながち間違いではないでしょう。 こ

    Symfony 2のアプリケーション構成を読む
  • MacPortsのMySQLにQ4Mをインストールする方法

    皆さん、こんばんは。笹亀です。 日はブログを書くために環境をつくっているときに、間違えてMacPortでインストールしたものを削除してしまいました;; 悲しさとむなしさと戦いながらも日のブログをお届けさせていただきます。 ※そのため、内容はちょっと少なめになっています。ごめんなさい 今年のPHPカンファレンスでもQ4Mの発表があり、いつか使う日が来るだろうと思い、 個人的にもとても興味があったので実際に使ってみたいくなりました。 Q4M (Queue for MySQL) は MySQL 5.1 のプラガブル・ストレージ・エンジンとして動作するメッセージキューであり、堅牢・高速・柔軟であるよう設計されています。(転載させていただきました 早速インストールをと思ったのですが、上記のこともあり、今回はインストールのみの紹介です。 特にMacPortsでMySQLをインスールしていて、そのM

    MacPortsのMySQLにQ4Mをインストールする方法
  • DoctrineのSELECT句と集計関数の扱い方

    こんにちは。小川です。 今回はDoctrineのSELECT句と集計関数の扱い方などについて書いていこうと思います。 始める前に今回使うデータベースのスキーマとサンプルとなるフィクスチャデータを書いておきます。一応symfony 1.2上で使うことを前提としています。 # config/doctrine/schema.yml User: actAs: Timestampable: columns: id: type:           integer(4) notnull:        true primary:        true autoincrement:  true name: type:           string(255) notnull:        true Account: actAs: Timestampable: columns: id: type: 

    DoctrineのSELECT句と集計関数の扱い方