Twitterで新規TweetするURL

https://dev.twitter.com/web/tweet-button/web-intent

https://twitter.com/intent/tweet?text=tweet

みたいなページを開けば、指定テキストが入力された状態のページを開ける。
公式ボタンやAPIを使わずにとりあえずシェア機能を付けたい時とかに。

Intentという言葉をよく忘れて毎回ググってる気がするのでメモしておく。

Could not find minitest-5.8.0 in any of the sources

頭働いてない状態でいつもどおり、

$ rails new my-app
$ cd my-app
$ powder link

的なことをやったら、タイトルのエラーでpowが起動しなかった。

$ gem update bundler

とか

$ bundle update

もやったけどダメ。
一瞬???てなったけど、rbenvのデフォルトじゃない環境で作業してたことを思い出した。

$ rbenv local 2.2.2
$ touch tmp/restart.txt

で解消。

結論。眠い時は寝よう。

screencapでrubyからスクリーンショットを取得

同種のGemはいっぱいあると思うけど、https://github.com/maxwell/screencap を使ってみたら、普通に動いたので良かった。

ブラウザとしてはPhantom.jsを使っているようだ。https://github.com/westoque/phantomjs.rb がdependencyに指定されているので勝手に入る)

path = File.expand_path("./path/to/index.html")
f = Screencap::Fetcher.new("file://#{path}") 
screenshot = f.fetch(
  output: "./path/to/screenshot.png",
  width: 800,
  height: 600,
  debug: true
)

こんな感じでローカルのファイルのスクリーンショットを簡単に取得できた。
debug: trueは詳細なログを出してくれるので指定しておいた方がうまく行かなかった時の調査に役立つ。
FontAesomeが表示されなくて困ったけど、MacのFont Bookからフォントをシステムにインストールしちゃえばいけた。

RailsのCommitログを検索するやつをElectron化

http://blog.tnantoka.com/posts/80 で作ったもの。

データサイズが問題になってたんだけど、デスクトップアプリなら数MBでもOKでしょうということで、Electron化してみた。

https://github.com/tnantoka/commits

あまり快適ではない感じだ。素直に何かしらのデータベース使ったほうがいい気がする。

Electronに入門してGitHubログインするところまで

デスクトップアプリ作りたい欲が高まってきたので、Electron に入門した。

Hello

初めてのElectron! HTML5でデスクトップアプリを作成しよう – ICS LAB がわかりやすかった。

$ node -v
v0.12.7

$ npm install electron-prebuilt -g

$ electron -v
v0.30.0

これでひとまず環境は整う。

次は、

http://electron.atom.io/docs/v0.29.0/tutorial/quick-start/

のとおりに、

  • package.json
  • main.js
  • index.html

を作成。

$ electron .

したら動いた。

パッケージ化も、

$ npm install electron-packager -g
$ electron-packager . your-app --platform=darwin --arch=x64 --version=0.30.0 --overwrite
$ open your-app-darwin-x64/your-app.app/

で行けた。
これは確かにお手軽だ…。

GitHubログイン

作りたいものがOAuth認証を利用するアプリなので、GitHubで試して見た。

Electron. oAuth authentication with GitHub がとても参考になった。

ログイン部分のソースはこちら。
https://github.com/tnantoka/GitHubLogin/blob/master/auth.js

ポイントはredirectを監視して、queryにcodeがあったらそれを使ってアクセストークンを取得するところ。

無事に認証できたら、localStorageにtokenを入れてページをreloadするという手抜き実装にしている。

この規模でももう既に破綻の香りがするので、React・Fluxでの実装を勉強しようと思った。

メモ

TODO

  • アプリ閉じたあとdockアイコンクリックで復帰させる方法