タグ

ブックマーク / anatoo.hatenablog.com (15)

  • タスクランナーgulp.js最速入門 - id:anatooのブログ

    相変わらず仕事ではデザインやりつつJavaScript書いている。 タスクランナーとしてGrunt.jsを使っていたけれども、使ううちに段々不満がでてきた。遅かったり、記述が冗長になりがちでつらかったので最近になってgulpに乗り換えた。 gulpは良い。タスクは自動的に並列に実行され、かつストリームで処理されるので速いし、タスクの記述もストリームベースの書き方のおかげでGrunt.jsに比べるとだいぶ短くなる。 ただ、そこらにあるgulpをちょっと試しただけの日語の記事やドキュメントをみてても実際のプロジェクトで使えるレベルまでの知識を得られず学習に一日かかった。 この記事では、gulpをまともに使えるようになるまでに必要な知識を書く。 導入とHelloWorld まずは導入。npmからgulpをインストールする。 $ npm install gulp -g $ gulp -v [gu

    タスクランナーgulp.js最速入門 - id:anatooのブログ
  • 『[iOS/Android対応]HTML5 ハイブリッドアプリ開発[実践]入門』という本を書きました - id:anatooのブログ

    [iOS/Android対応] HTML5 ハイブリッドアプリ開発[実践]入門 (Software Design plus)posted with amazlet at 13.12.17久保田 光則 アシアル株式会社 技術評論社 売り上げランキング: 20,549 Amazon.co.jpで詳細を見る 『HTML5ハイブリッドアプリ開発[実践]入門』というを書きました。技術評論社より12月20日発売です。Kindle版も同時に出ます。 HTML5ハイブリッドアプリ開発に関するあれやこれやを書いています。タイトルに「入門」とついてますが、入門者向けの内容だけではなく実際にHTML5ハイブリッドアプリを開発する人向けの実践的な内容もかなり網羅して書いています。目次はこんなかんじです。 PART 1 基礎編 第1章 ▶ HTML5ハイブリッドアプリとは 1.1 HTML5ハイブリッ

    『[iOS/Android対応]HTML5 ハイブリッドアプリ開発[実践]入門』という本を書きました - id:anatooのブログ
    tknzk
    tknzk 2013/12/18
  • 自分が職を失った経緯 - id:anatooのブログ

    この記事は、How I Fired Myself.という記事の試訳です。 2010年の7月、私は22歳で、カリフォルニアのあるソーシャルゲームのスタートアップで働いていた。卒業したてで、私にとって初めての物の職だった。給料をもらってアパートに住んだ。そのころ私は初めて大人になったような気分でいた。 その会社の主力製品であるRPGのコードを書く二人のエンジニアのうちの一人が私だった。大学では哲学を専攻していた。これはどういうことかと言えば、問題に対してどうやって考えればいいかを知っていた一方で、ベストプラクティスや実用的なデザインパターンに関する知識は最低限しか持っていなかった。私は信じられないほどの熱意でもって自分が持っているごく普通のLAMPの知識を駆使した。 私の悩みの種であるゲームデザイナーはしばしばWorld of Warcraftからインスピレーションを得ていた。WoWは、Bl

    自分が職を失った経緯 - id:anatooのブログ
  • github社製ボットフレームワーク、hubotをIRCボットとして導入した話

    修正: 2/10 node-cronを使ったコードの例が間違っていたので修正。 github社製のボットフレームワーク、hubotをIRCボットとして導入する話。 インストール hubotはnode.jsとcoffescriptで書かれたgithub社製のボットフレームワーク。IRCに限らず、campfireやtwitterなどいくつかのアダプタに対応しているが、ここではIRCで利用するための導入手順を記す。 あらかじめnode.jsとnpmをインストールしておいて、hubotをインストールする。 $ git clone git://github.com/github/hubot.git $ cd hubot $ npm installhubotは、ボットが扱うデータを永続化するためにredisというKVSを利用する。redisが入っていない時はエラーになるので動かす前にインストールする。

    github社製ボットフレームワーク、hubotをIRCボットとして導入した話
    tknzk
    tknzk 2013/02/18
  • Webプログラマーを志す学生さんがやっておくべきことは、目に見えるアウトプットを公開することだけ - id:anatooのブログ

    Webプログラマーを志す学生さんが、学生のうちにやっておきたい11の事 - Aggressive Style 5 「やっておきたいこと」ではなくてウェブプログラマとして就職したい人向けの話。上のエントリに触発されて(とかいいつつあまり内容を精読してないけど)自分の狭い視野で言えることを書く。 すごい単純なんだけどたったひとつだけで、ウェブアプリひとつ作って公開してソースコードも公開しておくこと。 これをやっておくと面接するときとかに話の種になっていいんじゃないですかねーと思った。っていうかもうこれやるだけで十分な気がする。自分が作ったものを引っさげてそのへん回れば、受託はやりたくないとか変にこだわったりしなければ拾ってくれるところはある。どんなアプリを作ってみればいいかがわからなかったら、学習用に作ったってことで既存のウェブサービスの簡単なクローンでも作ってみるといい。言語はなんでもいい。

    Webプログラマーを志す学生さんがやっておくべきことは、目に見えるアウトプットを公開することだけ - id:anatooのブログ
  • SMTPサーバを入れたくないけどメールは送りたい時に重宝するMSMTP - id:anatooのブログ

    postfixやqmailなどは入れたくないけど、sendmail相当のものを使ってメールを送りたい時に便利なMSMTPを試してみた。 この記事では、実際の導入からgmailのアカウントを利用してMSMTPでメールを送る方法を書く。 インストール MacOSXだとhomebrewからインストールできる。debianやubuntuだとaptitudeからインストールできる。 $ brew install msmtp$ aptitude install msmtp次に以下のような設定ファイルを~/.msmtprcに置く。 account default host smtp.gmail.com port 587 user hoge@gmail.com password hogehoge from hoge@gmail.com tls on tls_starttls on tls_certchec

    SMTPサーバを入れたくないけどメールは送りたい時に重宝するMSMTP - id:anatooのブログ
    tknzk
    tknzk 2012/03/07
  • PHPソースコードリーディング入門(とっかかり編) - id:anatooのブログ

    PHPのソースコードを読むためのとっかかりの話。 ソースコード取ってくる gitから取得できる。 $ git clone https://github.com/php/php-src.git とりあえずビルドしてみる ビルドに必要なツールをインストールした後、buildconfスクリプトを叩いてconfigureスクリプトを生成したのち、通常通りconfigureを叩いてmakeする。例えば、余計な拡張を一切ビルドせずデバッガで動かせるようにビルドしたい場合は以下のようになる。 $ cd php-src $ ./buildconf $ ./configure --disable-all --enable-debug $ makeコマンドラインから叩けるバイナリは、"sapi/cli/php"にある。 $ sapi/cli/php -r "echo 'hello world';" hello

    PHPソースコードリーディング入門(とっかかり編) - id:anatooのブログ
    tknzk
    tknzk 2011/10/31
  • vim使い向けのGDBフロントエンド、CGDBが便利という話 - id:anatooのブログ

    最近PHPの中身を探ることが多くなってきました。以前PHPカンファレンス2011で話した「PHPをハックしてオレオレ文法を追加する」のなかでは、PHPの内部の動きを知るにはソースコードリーティングだけだと実際にどんな動きをしているのかわかりづらいので、そういう時はGDB使ってやるといいよ、というふうなことを言いました。とかいいつつ、実際にはGDBを直接使ってはいません。操作がプリミティブ過ぎて使いづらいからです。代わりに、GDBフロントエンドの一つであるCGDBというソフトウェアを利用しています。 この記事ではこのCGDBの概要について簡単に説明します。 CGDBの何が便利なのか GDBフロントエンドには、DDD、Insightなどがあります。また、純粋なGDBフロントエンドの他にも、Eclipse CDT、XcodeなどGDBフロントエンドとしての機能を有しているIDEなどがあります。こ

    vim使い向けのGDBフロントエンド、CGDBが便利という話 - id:anatooのブログ
    tknzk
    tknzk 2011/10/24
  • PHP5.4のリポジトリに新たに[]による配列の文法が追加 - id:anatooのブログ

    今までPHPでは配列を書くのにarray()という記法を使う必要があったが、PHP5.4のリポジトリに新しい配列の文法が追加された。[]で囲むことで配列を表現することができるようになっている。連想配列についても同様。 add short array syntax as defined in https://wiki.php.net/rfc/shortsyntaxforarrays, 2nd solution using => only http://svn.php.net/viewvc?view=revision&revision=313641 以下、配列の新しい文法に関するテストケースを引用。 --TEST-- Testing array shortcut and bracket operator --FILE-- <?php $a = [1, 2, 3, 4, 5]; print_r(

    tknzk
    tknzk 2011/07/25
  • PHP5.4のtraitを使ったシングルトンパターン実装によるtrait入門 - id:anatooのブログ

    PHP5.4 alpha1がリリースされた。このリリースでは、PHPのオブジェクト指向言語の新たな機能としてtraitと呼ばれる機能が追加された。PHP5.4におけるtraitとは、型に影響を与えずにクラスに適用できるメソッドとプロパティの集合である。 早速PHP5.4 alpha1をインストールし、traitを使ってシングルトンパターンを実装した。このコードでは、クラスの継承関係に影響を与えずにシングルトンパターンをモジュール化している。 <?php trait Singleton { protected function __construct() { } static function getInstance() { static $obj = null; return $obj ?: $obj = new static; } function __clone() { throw n

    PHP5.4のtraitを使ったシングルトンパターン実装によるtrait入門 - id:anatooのブログ
  • PHPとJavaScriptでHTTPストリーミングする話(Transfer-Encoding: chunked編) - id:anatooのブログ

    HTTPレスポンスをajaxでストリーミング的に受け取りたいとき、要するにHTTPストリーミングをしたい時には、Transfer-Encoding: chunkedなレスポンスを生成してやるとよい。こうするとAjaxではHTTPレスポンス全体を受け取るのを待たずに、レスポンスの中身にアクセスすることが出来るようになる。従って、一つのHTTPコネクションでサーバ側から任意のデータを好きなタイミングでプッシュすることが出来る。 コード 一秒ごとに生成されるJSONをストリーム的に受け取るデモのコードが以下。 <?php // push.php function output_chunk($chunk) { echo sprintf("%x\r\n", strlen($chunk)); echo $chunk . "\r\n"; } header("Content-type: applicati

    PHPとJavaScriptでHTTPストリーミングする話(Transfer-Encoding: chunked編) - id:anatooのブログ
    tknzk
    tknzk 2011/05/30
  • jQueryはモナドだ - id:anatooのブログ

    この記事はjQuery is a Monad | Important Shockという記事の勝手訳です。 追記1: bonotakeさんが補足記事を書いてくれています → JQueryがモナドかどうかとか - たけをの日記@天竺から帰ってきたよ 追記2: hirataraさんが補足記事を書いてくれています → jQueryは当にモナドだった - 北海道苫小牧市出身のPGが書くブログ Haskellプログラマーは誰しもがモナドに関する各々のチュートリアルを書くと言われる。というのも、一度モナドの定義とその可能性を理解すれば、モナド全体を囲む神秘性に挑戦して打ち破るのが容易になるからだ。門外漢からすれば、モナドはHaskellを真に理解することを妨げる不可解な障壁だ。モナドはとても不適当な名前で呪われていて、一風変わった文法を持ち、一度に何もかもやってしまう様に見える。しかしながら、その動き

    jQueryはモナドだ - id:anatooのブログ
    tknzk
    tknzk 2010/03/07
  • PHPで失敗するかもしれない処理の返り値を配列で表現すると都合がいいという話 - id:anatooのブログ

    値を返すのに失敗するかもしれない処理を扱う場面というのは多い。 例えばあるファイルの中身を取得する処理について考えると、ファイルが存在する場合はその中身を取得して返すことができるが、そうでない場合は中身を取得するのに当然失敗する。 PHPに予め用意されているfile_get_contentsはまさにそれだが、この関数は処理に失敗するとfalseを返す。 ここでは別にもう一つ似た関数を作ってみる。 <?php function my_file_get_contents($path) { $buf = file_get_contents($path); return $buf === false ? array() : array($buf); } このmy_file_get_contents関数は、ファイルの中身を成功した場合は結果を持った配列を返し、そうでなければ空の配列を返す。 これから

    PHPで失敗するかもしれない処理の返り値を配列で表現すると都合がいいという話 - id:anatooのブログ
    tknzk
    tknzk 2010/02/01
  • テンプレートエンジンを素のPHPからTwigに乗り換えた理由 - id:anatooのブログ

    そもそもPHP自体がテンプレートみたいなものなのにさらにテンプレートエンジンとか使う理由って何ですか? http://d.hatena.ne.jp/xmalloc/20091225/1261709421 nimpadでは、以前はテンプレートエンジンとして素のPHPを使っていましたが、最近Twigというテンプレートエンジンに切り替えました。 理由は幾つかあるのですがその中から主なものを挙げてみました。 テンプレートの継承ができる テンプレートを継承できるのは便利です。レイアウトなどは同じだけど細かいところは違う、というようなテンプレートを書くのが格段に楽になります。 素のPHPでレイアウトなどを共有する場合、includeする部品ひとつひとつを他のファイルに切り出してやる必要があるんですが、継承に比べるとこれは面倒です。 素のPHPからTwigに乗り換えた一番大きな理由はこれです。 変数を勝

    テンプレートエンジンを素のPHPからTwigに乗り換えた理由 - id:anatooのブログ
    tknzk
    tknzk 2009/12/27
  • PHPで書いたはてな記法パーサをCodeReposにあげました - id:anatooのブログ

    このたびCodeReposにはてな記法パーサをあげました。 http://svn.coderepos.org/share/lang/php/HatenaSyntax/trunk/ 今ソース見ると汚いし設計グダグダな感じですがまああげないよかましかなーとか思ってあげます。 なんか気に入らない点とかガンガン書き換えてくれたら嬉しいです 追記 ドキュメントはこの辺参照してくださいな。 やったーphpはてな記法のパーサーできたよー - id:anatooのブログ PHPはてな記法パーサーをver0.0.4にアップグレード - id:anatooのブログ PHPはてな記法パーサーをver0.0.3にアップグレード - id:anatooのブログ

    PHPで書いたはてな記法パーサをCodeReposにあげました - id:anatooのブログ
  • 1