Life goes on

何かJavaScriptとかVimとかMacとかに関係してそうな深淵から覗かれる者

TalkNote vol.8に登壇させていただくことになりました

ブログに色々書きたいことがありながら、あまりに久々なので書き方を忘れてしまい更新できませんでした。

ということで、いきなりの宣伝になるのですが今度静岡で開催されるTalkNoteという勉強会でFrontrend出張版として 登壇させていただくことになりました!

http://talknote.me/vol8/

題材は前回からそれでも4ヶ月ほど経ちまして、紹介したいなーというプロダクトなんかも変わったりそもそも アップデートされていたりするので、大幅に内容は変更する予定です。

有料ではありますが、あと1ヶ月ということで、まだまだ空席があるということですのでお近くの方はぜひご参加いただけると嬉しいです。

TalkNote第8回開催について。詳しくはこちら

Frontrend Vol.4 powered by CyberAgentの告知のはずでした

Frontrend vol.4

サイバーエージェント主催の、フロントエンドエンジニア勉強会 Frontrend の4回目の開催が決定しましたー! 何で自分がこんな事書いてるか?というと、モヒカンの方々に脅迫縁合って登壇させていただく事になったからです。 はい、CAで働いてたりしました。

そして、タイトルの"告知のはずでした"というのは、「まあちょっと遅れたけど、今日あたり自分のブログに書いても問題ないかー」とか 甘い事考えてたら、24時間で定員オーバーになったので、告知か?という状態になってしまったからです。すいません。

どう見ても、登壇者は自分よりも数段上な感じだし、しかも客層もどう見ても、自分より数段上の人達が多いので、吐きそうです。 という事で自分は開発に便利なツール系の話するんですが、レベル的には「脱初心者」レベルがターゲットかなーと思ってたんで、トマトとか腐った卵とか投げないでください。以下概要!

Frontrend(フロントレンド) Vol.4 powered by CyberAgent

詳しくはリンク先まで!

参考URL

enja-ossに参加してた

先日、Publickeyさんの記事で紹介されてたり、@ahomuさんがブログに書かれたりしてた、GitHubでのOSSの日本語訳をするenja-ossに参加してます。

現在は、Backbone.jsのEventsを訳し終わって、Collectionの翻訳をしてる所という感じです。今度新たにUnderscore.jsの翻訳リポジトリも出来たので、そちらも着手しないとなーという感じです。

オリジナルの面子が、やたら豪華だなーと参加させてもらったんですが、色々なメンバーが集ってガーッと日本語訳していくというのは結構面白いなと思ってるとこです。

自分はいままで、結構ひとりで地味ーにやってたんでちょっと楽しいですね。

という事で、まだ翻訳し終わってないんで、頑張ります…。

Grunt.js始めました

若干流行に乗り遅れた感があるんですが、Grunt.jsを使い始めました。 今の案件で使った方が良いかなーという感じになりましたので…。

現在、色々ワケありまして、開発環境での確認でもJavaScriptはconcat、あとはsassも使っているので こちらもコンパイルしないと確認ができないという環境の為に、一々ファイルを保存する度にコマンド叩くのもなー という事でGrunt.jsを使う事に決定しました。sassはwatchコマンドありますけどもね。

で結局watchして、ファイルの変更があったらコマンドを叩くっていうのは結構すぐに終わって快適になったんです。(grunt-execのおかげ) しかし、色々と欲が出てきたので、ちょっと試行錯誤してみたらハマったのでメモ。

やりたかった事は、同じディレクトリにあるJSONファイルにconcat用の設定を外出しにして、grunt.jsではそれを読み込むだけにしたいって事でした。 が、ドキュメント見たりしてもそんなのどこにも書いてない。最初は<json:file.json>を設定してあげて、それを読み込めばいいかと思ったら、 Object.keyがObjectじゃないの読み込んでるよーってエラーが出てしまい…。こんなのですね。

  • JSON
{
  "dest": {
    "src": ['hoge.js', 'fuga.js'],
    "dest": 'dest/common.js'
  },
  "product": {
    "src": ['hoge.js', 'fuga.js'],
    "dest": 'js/common.js'
  }
}
  • JavaScript
module.exports = function(grunt) {
  grunt.initConfig({
    js_concat: '<json:dest.json>',
    concat: '<%= js_concat %>'
  });
};

こっから、grunt.registHelper()使ってみたりしたり試行錯誤した結果…。単純にこんな風にすれば良かっただけでした。

  • JSON
{
  "dest": {
    "src": ['hoge.js', 'fuga.js'],
    "dest": 'dest/common.js'
  },
  "product": {
    "src": ['hoge.js', 'fuga.js'],
    "dest": 'js/common.js'
  }
}
  • JavaScript
module.exports = function(grunt) {
  grunt.initConfig({
    concat: grunt.file.readJSON('dest.json');
  });
};

フタを開けたらどうって事ないですけども、見つけるまでは大変といういつものパターンでしたが、色々と勉強になりました。 これってあんまりニーズ無いのか、探し方が悪いのかそんなにググル先生にも答えてもらえなかった…。

本格的にGrunt.jsでビルドして本番にっていうのはしないはずですが、開発時には最大限に楽出来るようにもう少し色々と見てみようかと 思ってます。個人でも使ってみよう。