Mac使いはSpaceキーで決定できるようにすると色々捗る!

久しぶりの更新です。

確認用ダイアログ(「上書きしてもよろしいですか?」みたいなやつ)が出てきて、その都度マウス or トラックパッドで「OK」を選択すると思います。

でもこれって、 - キーボードから手を離さないといけない - 「OK」の場所にポインタを合わせないといけない

というふうに、結構めんどくさいです。

それを、Tabキーで選択して、Spaceキーで決定してしまおうという話。

やること

「システム環境設定」 → 「キーボード」 → 「ショートカット」タブ を開きます。

下の方の、「フルキーボードアクセス」を「すべてコントロール」に変更します。

これだけです。

やってみよう

ダイアログが出ればなんでもいいんですが、今回は拡張子を変えてみましょう。

画像を一つ用意して、拡張子を変えてみてください。 ダイアログが出るので、おもむろにTabキーを押してみましょう。青い枠が動くのがわかると思います。 そして、またまたおもむろにSpaceを押してみましょう。ダイアログにポイントを合わせて選択したのと同じ結果になりましたね?

これでいちいちマウスから手を話す必要がなくなりました。

簡単にできる設定なので、やっていない人はぜひやってみてください。

BLISKというブラウザに心が震えた

現在、夜中の1時だけど、すごいブラウザを見つけてしまい、興奮してこのポストを書いてます。

そのブラウザの名前は BLISK blisk.io

開発をやりやすいように作られているブラウザのようで、実際、かなり便利だと感じている。

何がいいのか、少し紹介します。

ここがすごいよ、BLISK!!!

BLISKのことを知ったのは以下のブログポストからでした。

nelog.jp

新しいもの好きの自分としては、これは試してみないとと思い、早速ダウンロード。

の前に、brew で落ちてないか確認してみる。

$ brew cask search blisk
==> Exact match
blisk

あった・・・。すげぇな、Homebrew.

なので、インストール。

$ brew cask install blisk
==> Downloading https://bliskcloudstorage.blob.core.windows.net/mac-installers/B

curl: (22) The requested URL returned error: 404 The specified blob does not exist.
Error: Download failed on Cask 'blisk' with message: Download failed: https://bliskcloudstorage.blob.core.windows.net/mac-installers/BliskInstaller_0.61.2743.166.dmg
The incomplete download is cached at /Users/〇〇/Library/Caches/Homebrew/Cask/blisk--0.61.2743.166.dmg.incomplete

あれ?落とせない。どっかでエラー吐いてるみたい。。。 時間があれば調べるけど、試したいだけだから今回は素直にdmgを落としてきます。

blisk.io

アカウント作成を促されるので、一応作っておきます。

まずここに驚いた!

インストールが完了して、立ち上げると早速適当なページを開いてみます。 今回はデベロッパー御用達、はてなブックマークを開きます。

f:id:mksk04:20161031010649p:plain

すごくない?

デスクトップとモバイルの表示が同時にできるんです。

しかも片方でスクロールすると、デフォルトでスクロールが連動します。(これは設定で変更可能) しかもしかも、chromeでおなじみのデベロッパーツールも使えます。

ライブリロードも使えるよ!!

今までライブリロードやろうと思ったら、Gulp設定したりなんやかんややらないと出来ませんでした。 BLISKはライブリロードが使えます。

ツールバーの右から3番目、矢印が回転してるアイコンをクリックして設定画面を開きます。 「ADD NEW WATCH」から変更を監視したいディレクトリを選択します。 この時のディレクトリはルートディレクトリを選択してやれば、それ以下にある html,css,js を監視してくれます。(この監視する拡張子は設定可能)

設定したら、選択したディレクトリ配下にあるファイルを変更してみましょう。 この時、以前のファイルから変更がなければ、保存してもリロードしないようになっているみたいです。

どうですか?リロードされました??すごいですよね???

制作にはSassを使ったりして、コンパイルしないと行けない場合も多いので、これがあれば万事OKってことは難しいかもしれないけど、ちょっとした修正でGulpfile書いたりするのめんどくさいなぁという場合にはかなり使えそう!!

スクリーンショット、動画Gifが取れる!シェアできる!!

スクリーンショットが簡単にとれます。 撮りたい画面を選択してやり、ツールバーのカメラアイコンをクリックしてやるだけで、デスクトップかモバイルのスクリーンショットをかんたんに撮ることが出来ます。

取り終えると、BLISKのストレージに保管されて、ボタン一つで簡単にURLをコピーすることが出来ます。 このURLを複数人で共有することもできるので、ちょっとした意見をもらいたいときに便利かも。 (実際にはSlackでもスクリーンショットのコピペができるからどっちが使いやすいかはケースバイケースかなぁ。)

さらにさらに、動画Gifも取れちゃいます!これはブラウザだけじゃなくて、他のアプリの画面も対象になります。 ちょっとしたコードや、スクリプトの動きを確認してもらいたいときに便利だと感じています。

これだけの機能が付いていながら、まだVersion 0.62.4925.237だって言うんだから、今後が益々楽しみです。

とりあえずしばらく使ってみて、なにかあればまたポスト書きます。

いつの間にかAmazonプライムの会員になっていた件・・・。

しかも約一年間も。。 なんでだ・・・。

どういうこと?

事の発端はAmazonで注文をしようと思った時。

以前からAmazonはよく利用していて、1ヵ月に1度はなにかしら購入していた。 kindle Unlimited も入ってるしね。

Amazonプライムの存在は知ってたし、お急ぎ便やプライムビデオが利用できるのはすごく魅力的だった。 しかも年間3,900円だし。

だけど、いまいち踏ん切りがつかなくて、「いつか入ろう」で、2年くらい経過していた。

事件は予約商品を購入するときに起こった・・・

来月発売の商品を予約購入しようと思って、レジに入れた。 ふと、

「プライム会員だったら発売日に届くんじゃねぇ?」

ってなことが頭をよぎって、これはいい機会だと思い、改めてプライム会員になったときのメリットを確認していた。

色々見てみて

「ふむふむ、やっぱりいいじゃん」

と思っていると、「Amazonプライム会員情報を管理する」というリンクが。

「なんだこれ?」

と思いつつ、リンク先を開いてみると会員情報のページが。

左メニューを見ると、

会員登録日: 2015/11/25
会員タイプ: プライム 

・ ・・ ・・・ ・・・・えっ?

会員タイプ: プライムってなに? しかも登録日が 2015/11/25 ってほぼ一年前じゃん?

どのタイミングではいったんだろう・・・?

別に入りたかったからいいんだけど、プライム会員だったら、もっとお急ぎ便とか使いたかったし、見たい映画やドラマもあったのに!!!

とまぁ、幸いにも私は入りたかったのでそんなに気になりませんでしたが、これを見た人できになった人は一度確認されるのをおすすめします。

以下のアカウント設定 > Amazonプライム会員情報の管理を開いて、左メニューの会員タイプで確認できます。 Amazon.co.jp - アカウントサービス

微妙な気分になったというお話でした。。。

デーモン化してるHubotが何故か勝手に落ちてしまう。

Slackと連携させているHubotが何故か勝手に落ちてしまうので、調べてみたのでメモ。

どういうこと?

VPS上にHubotを設置して、Slackと連携させて遊んでました。 デーモン化にはforeverを使っていました。

github.com

毎日定期的につぶやいたり、backlogの変更をSlackに通知してくれたり、便利に使っていたのですが、ある日をさかいに勝手に落ちてしまうようになりました。

最初は普通に再起動していたのですが、頻繁に再現するので、調べてみました。

foreverのログを見てみる

$ forever logs
info:    Logs for running Forever processes
data:        script                  logfile
data:    [0] node_modules/.bin/hubot /home/www/.forever/YABZ.log

$ cat /home/www/.forever/YABZ.log

[Wed Oct 19 2016 11:19:00 GMT+0900 (JST)] ERROR TypeError: Cannot read property 'name' of undefined
  at Request.callback (/home/www/hubot/node_modules/superagent/lib/node/index.js:619:12)
  at /home/www/hubot/node_modules/superagent/lib/node/index.js:795:18
  at IncomingMessage.<anonymous> (/home/www/hubot/node_modules/superagent/lib/node/parsers/json.js:16:7)
  at emitNone (events.js:72:20)
  at IncomingMessage.emit (events.js:166:7)
  at endReadableNT (_stream_readable.js:921:12)
  at nextTickCallbackWith2Args (node.js:442:9)
  at process._tickCallback (node.js:356:17)

error: Forever detected script was killed by signal: SIGKILL

killされちゃってるみたいですね。。。

ググッてみる

ググッてみると同じような症状の人がいるみたい。

error: Forever detected script was killed by signal: SIGKILL - Google 検索

んで、見ていくと、以下のStack Overflowが見つかりました。

stackoverflow.com

なんでも .foreverignore を作れば治るよ。ということなので、早速作ってみた。

$ cd /home/hubot/

$ ls -al 
drwxrwxr-x   5 www www 4096 10月 24 11:01 2016 .
drwx------   8 www www 4096 10月 24 11:58 2016 ..
-rw-r--r--   1 www www   39  5月 20 06:45 2016 .gitignore
-rw-rw-r--   1 www www   11  9月  2 12:21 2016 .hubot_history
-rw-r--r--   1 www www   24  9月  2 12:16 2016 Procfile
-rw-r--r--   1 www www 7820  9月  2 12:16 2016 README.md
drwxrwxr-x   2 www www 4096  9月 23 18:24 2016 bin
-rw-rw-r--   1 www www  186  9月 21 18:05 2016 external-scripts.json
drwxrwxr-x 190 www www 4096 10月 24 11:45 2016 node_modules
-rw-rw-r--   1 www www  677  9月 25 21:37 2016 package.json
drwxrwxr-x   2 www www 4096 10月 24 11:58 2016 scripts

$ touch .foreverignore

$ ls -al
drwxrwxr-x   5 www www 4096 10月 24 11:01 2016 .
drwx------   8 www www 4096 10月 24 11:58 2016 ..
-rw-rw-r--   1 www www    0 10月 24 11:01 2016 .foreverignore <= 追加されてる
-rw-r--r--   1 www www   39  5月 20 06:45 2016 .gitignore
-rw-rw-r--   1 www www   11  9月  2 12:21 2016 .hubot_history
-rw-r--r--   1 www www   24  9月  2 12:16 2016 Procfile
-rw-r--r--   1 www www 7820  9月  2 12:16 2016 README.md
drwxrwxr-x   2 www www 4096  9月 23 18:24 2016 bin
-rw-rw-r--   1 www www  186  9月 21 18:05 2016 external-scripts.json
drwxrwxr-x 190 www www 4096 10月 24 11:45 2016 node_modules
-rw-rw-r--   1 www www  677  9月 25 21:37 2016 package.json
drwxrwxr-x   2 www www 4096 10月 24 11:58 2016 scripts

まだ追加して1日だけど、logで吐いてたエラーも出てないようだし、うまくいってるっぽい。
これでうまくいくといいけどなぁ。。

鍵認証で入れていたSSHが、ある日は入れなくなったとき

鍵認証で入っていたVPSに入れなくなって、さんざん悩んで解決したのでメモ。

どういうこと?

VPSを借りて、ログインには鍵認証を使ってパスワード入力なしで入っていました。 2~3日ぶりにサーバーにログインしようとしたら、パスワード入力のモーダルが出てきました。 変だなと思ったけど、しょうがないからパスワードを入れても、再度ターミナルからパスワード入力をしないと入れない。ってなことがあった。(伝わるかな?)

やったこと

ssh-agentの確認

ssh-agentに情報を登録しなおしたら入れるよ」というのをどっかで見たので、やってみた。

$ ssh-add -K {鍵の場所}

$ ssh-add -l 
2048 {鍵情報} (RSA) <= 登録されてる

$ ssh {ユーザー}@{URL}
 {ユーザー}@{URL}'s password: <= だめ・・・

入れない・・・

パーミッション変更

パーミッションが正しくないと入れないよ」と言われたので、やってみた。

# ローカル
$ cd .ssh

$ ls -l
-rw-------  1 {ユーザー}  staff   1.7K  8 26 18:35 id_rsa
-rw-------  1 {ユーザー}   staff   415B  8 26 18:35 id_rsa.pub

うーん、大丈夫っぽい。

# サーバー
$ cd .ssh

$ ls -l
-rw-------. 1 {ユーザー} {ユーザー} 383  9月  5 11:04 authorized_keys

うーん、大丈夫そう・・・。

結局

サーバーの鍵を削除して、ローカルの鍵を登録しなおしました。

# サーバー
$ cd .ssh

$ vi authorized_keys
該当する記述を削除

これでサーバはOK

# ローカル
$ cd .ssh

$ ssh-copy-id -i id_rsa.pub {ユーザー}@{URL}
/usr/local/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "id_rsa.pub"
/usr/local/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/local/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
{ユーザー}@{URL}'s password:

Number of key(s) added:        1

Now try logging into the machine, with:   "ssh '{ユーザー}@{URL}'"
and check to make sure that only the key(s) you wanted were added.

# 入ってみる
$ ssh {ユーザー}@{URL}
[{ユーザー}@{URL} ~]$ <= 入れた!!!

こんなに簡単に入れるなら最初からこうしておけばよかった。。。

残念な時間の使い方をしました。。。

VPSにwordpressを入れたらCentOSのスタート画面しか出てこない時ーー

サーバー移転の際、Wordpressを移したのですが、ドメインを叩いてもCent0Sのスタート画面しか出てこなくて涙が出たので、解決したメモ。

どんなエラーが出るの?

サーバーにSSHで接続してエラーログを見ると、以下のように出る。

Options FollowSymLinks and SymLinksIfOwnerMatch are both off, so the RewriteRule directive is also forbidden due to its similar ability to circumvent directory restrictions

どういうことだ???

ググッてみる

ググッてみると同じようなことで解決している記事があったので、そのとおりにやってみる。

そうだ。ブログを書こう! : Options

なんでも、mod_rewriteを使うディレクトリでは「Options FollowSymLinks」が必要だということらしい。

修正してみよう

.htaccess を修正。

# BEGIN WordPress
<IfModule mod_rewrite.c>
Options FollowSymLinks <= ここを追加
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

ここまでやって再度、ページにアクセスすると、今度は問題なくつながった!

.htaccessの仕組みをもうちょっとわからないといけないなぁ。と思った一日でした。

Gulp のインストールでエラーが出た

Gulpを使って開発をしようとしたら、 $ npm install gulp --save-dev でエラーがでたので、メモ。

どういうこと?

ローカルでGulpを使って開発をしようとしました。 Gulpを使うのが久しぶりだったので、以下の記事を参考にGulpを設定しようとしました。

liginc.co.jp

$ npm init $ npm install gulp -gまでは問題なく出来ましたが、$ npm install gulp --save-devでエラーを吐いて進まなくなりました。

$ pwd 
/Volumes/MacintochHD/Documents/

$ mkdir gulp

$ cd gulp

$ npm init 
npm init
This utility will walk you through creating a package.json file.
It only covers the most common items, and tries to guess sensible defaults.

See `npm help json` for definitive documentation on these fields
and exactly what they do.

Use `npm install <pkg> --save` afterwards to install a package and
save it as a dependency in the package.json file.

Press ^C at any time to quit.
name: (gulp)
version: (1.0.0)
description:
entry point: (index.js)
test command:
git repository:
keywords:
author:
license: (ISC)
About to write to /Volumes/MacintochHD/Documents/gulp/package.json:

{
  "name": "gulp",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC"
}

$ npm install gulp -g

$ npm install gulp --save-dev
npm ERR! Darwin 14.5.0
npm ERR! argv "/usr/local/Cellar/node/6.7.0/bin/node" "/usr/local/bin/npm" "install" "gulp" "--save-dev"
npm ERR! node v6.7.0
npm ERR! npm  v3.10.8
npm ERR! code ENOSELF

npm ERR! Refusing to install gulp as a dependency of itself
npm ERR!
npm ERR! If you need help, you may report this error at:
npm ERR!     <https://github.com/npm/npm/issues>

npm ERR! Please include the following file with any support request:
npm ERR!     /Volumes/MacintochHD/Documents/gulp/npm-debug.log

うーん、どういうことだろう?

原因はpackage.jsonのnameでした。

どうやら、開発用に用意したディレクトリ名が"gulp"だったのが問題らしい。

package.jsonのnameはデフォルトでディレクトリ名を取るらしく、それがgulpだとエラーになるらしい。

なので、package.jsonを修正する。

{
  "name": "gulptest", <= gulpから変更
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "gulp": "^3.9.1"
  }
}

この状態で再度 $ npm install gulp --save-dev を実行すると、問題なくインストールできました。

以前、hubotでも同じエラーがあったなぁ。npmだとpackage名と同じ名前をpackage.jsonのnameに指定するとエラーになるみたい。 あとでもうちょっと調べてみよう。