Vue.js プロジェクト事始め

Vue.jsはCDNから使えるのがちょっとした時には良さそう。
だけど、多分ある程度になると普通にプロジェクト作ってやった方が良さそう。

まず、グローバルにvue-cliをインストールする。

npm install -g vue-cli

でプロジェクトを作るには

vue init webpack my-hello

みたいな感じ。
とりあえずエンター続けて押してればテンプレートが出来る。
その後

cd my-hello
npm start

で開発用サーバーが動く。

Cannot find declaration to go to というエラー

JetBrainsのIDE(PhpStorm)で出た。 宣言部分へのジャンプが出来なくなる。 多分、他のIntelliJ系でも同じの出るのではないだろうか。 File > Invalidate Caches / Restart でキャッシュクリアと再起動で直った。

Bootstrap 4系ではhas-errorではなく、is-invalid

Laravelで開発していた時に遭遇。
タイトルの通りなんだけど、何も読まずにネットのコードをコピペしたら動かなかったので見てみた。 例えばこんな感じになる。

{!! Form::textarea('diary-body', null, ['class' => $errors->has('diary-body') ? 'form-control is-invalid' : 'form-control'] ) !!}

あとエラーじのメッセージもinvalid-feedbackがいいのかな。

<span class="invalid-feedback">{{$errors->first('diary-body')}}</span>

こんな感じ。

Haskell Stackの準備

昨日の続きで

stack setup

を実行し、これまた長く待つ。

次は

stack ghci

を実行してみる。
起動したので、alias設定。
とりあえず面倒なので.bash_profileに追記することにする。

alias ghci='stack ghci'
alias ghc='stack ghc --'
alias runghc='stack runghc --'

ここまでで準備完了かな?
次から本の内容に入っていく。

Haskell Macにインストール

Haskellをぼちぼちやっていこうと思う。
とりあえず qiita.com ここを参考にしながら、本を読んでみる。
家のMBAにはhomebrewも入っていなかった(1回初期化した為)ので、homebrewから入れた。
その後

brew install haskell-stack

結構時間がかかっているので、続きは明日。。。

はてなブログに勝手にタイトルを入れるChrome拡張を作った。

久しぶりにChrome拡張。

github.com

なんかタイトルを考えると何かコンテンツがないといけないといけない気がして、日記という感じがしない。 それでなんとなく続かない。。。ような気がしてきたので、作った。 本文のところにフォーカスされると、勝手に"2018年2月6日の日記"とか入れる。 f:id:popkiller:20180206102909p:plain さて、作っているうちになんか気になることがあった。

私はいつも下のメニューから書いているのだが、 f:id:popkiller:20180206102943p:plain この場合だと動くのだけど、トップページからの日記を書くポチだと動かなかった。 DOMが違うんだな。
あと見たままとMarkdowmも違う(これは普通に考えるとそうなるだろう)。
全部に対応しようと思ったが、寝る時間だったのでやめた。

ちょっと考えてみたけど、普通に日記書きたい時とタイトルを付けたいときで分けるのにいいかも知れない。

Let's Encryptの更新で失敗したら。。。

単純にWebサーバー稼働時にやると失敗します。 こんなエラーが出ますね。

Attempting to renew cert (example.jp) from /etc/letsencrypt/renewal/example.jp.conf produced an unexpected error: Problem binding to port 443: Could not bind to IPv4 or IPv6.. Skipping.

ということで、stop, startをするコマンドで挟んで実行してみた。 更新できましたが、エラー時に通知するようなものにした方がいいかな。。。

#!/bin/bash

systemctl stop h2o
certbot renew 
systemctl start h2o