スマホのonclick遅い問題(代わりにtouchstart使う)用のライブラリ、fastclickが定番っぽいので勝手にfastclick-rails作っときました。デフォルトでこうなってほしい。

komagata/fastclick-rails · GitHub

使い方

# Gemfile:
gem 'fastclick-rails'
// app/assets/javascripts/application.js
// require fastclick
# app/assets/javascripts/foo.js.coffee
$ ->
  new FastClick(document.body)

これでスマホの時は勝手にtouchstartになってくれます。300ms違うから体感的にもかなり違う。

今までは@hrysd謹製のcapistrano-lingrを使ってましたがEYCに移ったのでenginyard gemのdeploy hookを使います。

deployディレクトリの下にフック名でrubyファイルを置くとそれが勝手に実行されるようになっています。

APP_ROOT/ 
   deploy/  
    before_bundle.rb  
    after_bundle.rb  
    before_compile_assets.rb  
    after_compile_assets.rb  
    before_migrate.rb  
    after_migrate.rb  
    before_symlink.rb  
    after_symlink.rb  
    before_restart.rb  
    after_restart.rb 

参照: Use Deploy Hooks : Engine Yard Developer Center

通知はいつでもいいのでafter_restartにしてみました。

# Gemfile:
gem 'lingman', github: 'hrysd/lingman'
# deploy/after_restart.rb
# encoding: utf-8
require 'rubygems'
require 'bundler/setup'
require 'lingman'

Lingman::Updater.update(
  "fjord_assistant", # BOT ID
  "takoroom", # ROOM ID
  "XXXXXXXXXXXXX", # SECRET
  "#{app} を #{environment_name} にデプロイしました。"
)

deployスクリプトはPlain old ruby fileなのでrequire 'bundler/setup'でbundleしたgemにパスを通してもらいます。

Lingrへの通知にはこれまた@hrysdのlingmanを使わせてもらいました。Lingr APIを網羅してないのでまだgemにしたくないようですが、githubから読み込んで使います。

これでイチイチ「怖話、本番環境にデプロイしましたー」とチャットに報告しなくてよくなりました。

4月に@hrysd、知の巨人、@foo9などのローカルインターンの方々が卒業されたのでまたローカルインターンをやってくれる方を募集します。

弊社(フィヨルド)のローカルインターンって何なの?という方はこちらをご覧ください。

こんな方におすすめ

  • Webプログラマーになりたい方
  • Webデザイナーになりたい方
  • ニートなので時間がある方
  • インターネット系ベンチャーで働きたい学生の方
  • 休職・転職活動中の社会人の方
  • railsでwebアプリが作れるようになりたい方
  • Webサービスで起業したい方

弊社が求める人

  • ネット大好き
  • プログラミング/デザインが好き
  • 霊が見える(not required)
  • 寺生まれ(not required)

こんなインターン生は嫌だ

  • 怖い話が大嫌いだ。
  • Facebookの第一号社員だ。
  • 指名手配がかかっている。
  • 毎日欠かさずアム↑ウェイの勧誘をしてくる。
  • 自称鳥の調教師

おすすめポイント

  • Linuxでのサーバー構築とRailsでのWebアプリ開発ができるようになります。
  • テスト駆動開発、継続的インテグレーション/デリバリ、Pull Requestベースの開発が体験できます。
  • 僕(@komagata)と@machidaが全力で就職のお手伝いをします。
  • お互いに金銭が発生せず、1週間交代なので嫌だったらすぐ辞めれます。(辞めたくならないように僕らは努力します。)

オフィス紹介

ローカルインターンをすることになったら来ることになる弊社オフィス(といってもただのマンションの一室です)を紹介します。

fjord-office fjord-office

エンジニアの為に5席ある席の椅子は全部アーロンチェアです。

fjord-office

来客時に使うソファーです。

fjord-office fjord-office fjord-office

Team Dashboardで怖話のアクセス数、売上などの数字を常に表示しています。

fjord-office

ダッシュボードはEngine Yardの@yandoさんにいただいたEeePC(Ubuntu)で動いています。怖話もEngine Yard Cloudで動いています。

fjord-office

オフィスBGM流し用、動作確認用のiPhoneやAndroid端末があります。

また、エスプレッソマシンでいつでもエスプレッソやカプチーノが飲めます。

fjord-office

WEB+DB Pressは定期購読してるので買わなくていいです。

fjord-office

キッチンが喫煙所です。@machidaは仕事の合間にコーヒーを飲みながら一服するのが習慣だそうです。

fjord-office fjord-office fjord-office

トイレは図書スペースになっています。便器に座りすぎてよく足が痺れます。

fjord-office

古い漫画ばかりでヤバかったので新しいものを頑張って追加してます。

fjord-office

僕は自転車通勤ですが、もう止めるスペースがありません…。

今だけ!超豪華商品が当たる!

今回ローカルインターンに来ていただいた方にはなんと・・・

魔宝石を5個プレゼント致します!!

運次第ではレアガチャで神タイプも夢ではありません。

応募の仕方

応募はこちらのフォームからお願いします。ローカルインターンに関しては一度オフィスに来ていただいて、説明的なものをさせて頂きます。

合同会社フィヨルドインターン応募フォーム

応募フォームのデザインは@monoookiさんが(頼んでないのに)やってくれました。これで募集率アップだ!

リモートインターンは人数制限なく募集しています。そちらも是非お願いします!

C-iだと物足りないので。

uncrustify

brewでCLI版のuncrustifyが入るけど、Xcodeプラグインとして提供されているBBUncrustifyPlugin-Xcodeが便利でした。

Uncrustify Selected Lines

このプロジェクトをビルドするとプラグインディレクトリに自動で入るのがちょっと嬉しい。

XcodeのKey Bindingからは設定できないっぽいのでSystem PreferencesのKeyboard Shortcutsから設定しました。

捗るわあ。

ですぞー

ss

$ ffmpeg -i YJSNPI.mp4 -vf scale=240:-1 -an -vsync 0 img%03d.png
$ mogrify -fuzz 40% -transparent blue *.png
$ convert -delay 3 -loop 0 -dispose background *.png RUNNING_YJSNPI.gif

前のコマが残像みたいに残るのはなんとかならないのかな。

$ ffmpeg -i bomb.mp4 -vf scale=240:-1,thumbnail=2 -an -vsync 0 img%03d.png
$ mogrify -fuzz 50% -transparent blue *.png
$ convert -delay 3 -loop 0 *.png bomb.gif

-fuzzオプションで透過色の閾値が指定できるようになった。いいゾ~これ。

チャットでのいい加減な爆破オチにお使い下さい。

$ ffmpeg -i smile.flv -vf scale=240:-1,thumbnail=2 -an -vsync 0 img%03d.gif
$ mogrify -transparent blue *.gif
$ convert -delay 6 -loop 0 *.gif bomb.gif

元動画から上手く抜けないなあ。