継続的ブログ

主にweb系の技術について書いています

習慣化するのに役に立ったサービス(英語学習・瞑想)

やると絶対いいとわかってるけど、なかなか続かなくて三日坊主で終わってしまうことありませんか?

自分は

  • 英語学習
  • 瞑想

この2つを毎日続けられずに悩んでいました...

英語の重要性は言わずもがなで、瞑想は脳に良いと言われているのでパフォーマンス・学習効率上げるためにもやりたいなと思っていました。

いろいろ試してみたのですが、最近自分の中でこれだというものが見つかったので紹介させていただきます!

英語学習

iKnow

iknow.jp

最初無料トライアルで試してみて、良さそうだったので課金しました。
忙しかったりで一日数分だけの日もありますが、今のところ約200日連続で続けられています。

脳の記憶メカニズムに沿って、繰り返し出題してくれるのでそれに従ってやるだけというのが手軽でいいです。
ネイティブスピーカーによる例文の音読もあるので、あとに続いて音読する感じでやっています。

これを続けたおかげで英語学習に対するモチベーションもあがって、他に足りないところ(文法)とか勉強するようになったのもよかったなと。

f:id:akiza:20190309121558j:plain

瞑想

MEISOON

yoga-lava.com

毎朝起きたら10分やってます。
昔は5分でも辛かったのですが、最近は全然苦ではなくなってきました。
こちらは基本無料で、課金して他の瞑想のコースを買うことができますが、無料のものだけで十分だと思います。

期待していた脳への効果はまだわかりませんが、気持ちがスッキリするのでやってよかったです。

f:id:akiza:20190309121623j:plain

番外編(筋トレ)

筋肉体操

www.youtube.com

もともとジムは毎週通えていたのですが、これは家で十分に追い込めるしとても楽しくできるので最高です!
5分という短さも、先生の追い込み時の煽りも最高で、運動嫌いの妻も毎日筋トレ続けられるようになったので感謝です。


こうしてみると自分はレコーディング系のサービスが合ってるんだなということがわかりました。
人それぞれ合う合わないはあると思いますが、参考になれば。

docker環境でvimからrspec実行

qiita.com

少し前にjokerさんの ↑ の記事を参考にして、docker環境でvimからrspec実行できるようにして、最高に快適になりました。
ありがとうございます。

記事ではdirenv使って環境変数でコンテナ名を指定してフィルターしているみたいですが、自分はリポジトリ増えたり、docker環境とそうでない環境が混在してきたらでいいかなと思ったのでとりあえず雑に設定...

nnoremap <Leader>tn :TestNearest<CR>
nnoremap <Leader>tf :TestFile<CR>

let test#strategy = 'neoterm'
let test#ruby#rspec#executable = 'rspec'
function! DockerTransformer(cmd) abort
  let container_id = system("docker ps | grep app | grep rails | awk '{print $1}'")
  return 'docker exec -t ' . container_id . ' bundle exec ' . a:cmd
endfunction
let g:test#custom_transformations = {'docker': function('DockerTransformer')}
let g:test#transformation = 'docker'
let container_id = system("docker ps | grep app | grep rails | awk '{print $1}'")

これでrails起動しているコンテナIDを取得するようにしました。(grepの条件はターゲットにしているコンテナを一意に特定できる条件)

ご参考まで。

github.com

github.com

mark_for_destruction を before_validation で

gitlabのコード読んでいていいなと思ったやつ。

before_validation で値が空のものに mark_for_destruction でフラグ立ててやる。

これなら空のやつでもとりあえず save しとけばいいので、before_validation でやるのもいいなと思った。

  • project.rb
before_validation :mark_remote_mirrors_for_removal, if: -> { RemoteMirror.table_exists? }

...

def mark_remote_mirrors_for_removal
  remote_mirrors.each(&:mark_for_delete_if_blank_url)
end

https://github.com/gitlabhq/gitlabhq/blob/d5994552b2088c0c27e419b3ae2c4432ea329a82/app/models/project.rb

  • remote_mirror.rb
def mark_for_delete_if_blank_url
  mark_for_destruction if url.blank?
end

https://github.com/gitlabhq/gitlabhq/blob/299011313cef8fbeb8d5eeafcc60374211c88ec8/app/models/remote_mirror.rb

gitlabのコード読むのはいい勉強になる。

github.com

Vueのテンプレートでassetsのimageを使う(rails + webpacker)

assets/images 下の画像をVueのtemplate内で使いたい。

erb内でなら image_tag で行けるが、digestついてるので単に <img src="assets/images/image.png" />とはできない。

解決法

調べたらいくつか方法はありそうだったが、webpackerのドキュメントを読むと、

config/webpacker.ymlresolved_paths を利用すればいいっぽい。

github.com

Note: Please be careful when adding paths here otherwise it will make the compilation slow, consider adding specific paths instead of whole parent directory if you just need to reference one or two modules

↑ ただコンパイル速度を低下させるため、パスの追加は慎重に行ったほうがいいとのこと。

images だけでよいなら、↓ のようにすればよい。

resolved_paths: ['app/asstes/images']
<template>
  <div>
    <img src='~image.png' />
  </div>
</template>

<script>
  import 'image.png'
  ...
</script>

ここ最近のいくつかの現場では、webpackとRails別々で管理しているプロジェクトだったので何気にwebpackerは初だが、今のところまだ辛いとかはない感じです(笑)

参考

deoplete.nvimのエラー解消

deoplete.nvim 使っているのですが、ファイル開くとこんなエラーが表示されるようになりました。

[deoplete] deoplete failed to load. Try the :UpdateRemotePlugins command and restart Neovim. See also :checkhealth.

言われたとおり UpdateRemotePlugins するとエラーが。

function remote#host#UpdateRemotePlugins[6]..<SNR>77_RegistrationCommands[15]..remote#host#Require[10]..provider#pythonx#Require[13]..provider#Poll, line 4
Vim(if):ch 3 was closed by the client
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'neovim'
function remote#host#UpdateRemotePlugins[6]..<SNR>77_RegistrationCommands[15]..remote#host#Require[10]..provider#pythonx#Require[13]..provider#Poll, line 14
Failed to load python3 host. You can try to see what happened by starting nvim with $NVIM_PYTHON_LOG_FILE set and opening the generated log file. Also, the host stderr is available in messages.
remote/host: generated rplugin manifest: /Users/fakiyer/.local/share/nvim/rplugin.vim

checkhealth しても python の項目でエラーが出ていました。

...
## Python 3 provider (optional)
  - INFO: Using: g:python3_host_prog = "/usr/local/bin/python3"
  - INFO: Executable: /usr/local/bin/python3
  - ERROR: Command error (job=11): `'/usr/local/bin/python3' -c 'import sys; sys.path.remove(""); import neovim; print(neovim.__file__)'` (in '/Users/fakiyer')
    Output: Traceback (most recent call last):  File "<string>", line 1, in <module>ModuleNotFoundError: No module named 'neovim'
  - INFO: Python3 version: 3.7.1
  - INFO: python3-neovim version: unable to load neovim Python module
  - ERROR: Neovim Python client is not installed.
    Error: unable to load neovim Python module
    - ADVICE:
      - Run in shell: pip3 install neovim
...

最新版の neovim がちゃんと入っているはずなのですが、一応言われたとおりpip3 install neovim して checkhealth するも同じエラーに...

試しにターミナルで python 実行して、 import neovim してみたのですが、ImportError: No module named neovim ...

python入れ直したりいろいろしてみましたがどれもうまくいかず、途方にくれていたところ、この記事を見つけて、

qiita.com

$ pip3 --no-cache-dir install -I neovim

してみたところ、checkhealthpythonの項目のエラーはなくなったので、UpdateRemotePluginsしてエラーは完全になくなりました!

同じエラーで困っている方の参考になれば...

github.com

【Android】インストール済みアプリが表示されない、アップデートがあるのにアップデート一覧に表示さない場合

「最近アプリのアップデートないな」と思って、Playストアを開いてみたら、マイアプリの「アップデート」と「インストール済み」に何も表示されなくなっていました。


適当にインストール済みのアプリを検索して、アプリ詳細画面に行くと「更新」ボタン(アップデートがあること)になっているのに。


いろいろググってみて再起動等試してみたのですが、どれもダメでした。。。


結果、何で直ったかというと、

設定 > アプリ > Google Play ストア > ストレージ > データを消去

で直りました。


もしも自分と同じような現象で困っている方がいたら試してみてください。

Spotifyをターミナルから操作(Mac)

いくつかありそうですが、自分は shpotify というものを最近使い始めました。

github.com

brewが入っていれば

$ brew install shpotify

でインストール完了です。

設定

1. Spotify APIに繋ぐため ↓ からアプリケーションの登録する

developer.spotify.com

2. Client IDClient Secretを取得する

3. ${HOME}/.shpotify.cfg というファイルを用意して、2 で取得した値を ↓ のようにセットする

CLIENT_ID="your client_id"
CLIENT_SECRET="your client_secret"

以上で設定は完了です。

操作

アーティスト指定

$ spotify play artist ellegarden

曲指定

$ spotify play "風の日"

アルバム指定

$ spotify play album "RIOT ON THE GRILL"

その他についてはこちらから ↓

https://github.com/hnarayanan/shpotify#usage


長い曲名・アーティスト名は入力するの面倒なので直接操作してしまった方が楽だと思いますが、曲のスキップや停止・再開等は楽でいい感じです。