幸福なプログラマ

プログラマは幸福になれる。

Backlogのgitにpushする際ユーザ名とパスワードの入力を求められるようになった時の対処法

備忘録

Terminalからgitを操作してBacklog上のリモートブランチにプッシュしようとした際、常にユーザ名とパスワードの入力を求められるようになってしまった。 その場合、以下のようにリモートリポジトリを再設定することで現象が解決した

git remote set-url origin hoge@fuga.git.backlog.jp:/branch_name.git

sed -eによるパターン置換でエラーが出た時の対処法

sedで置換する際、以下のようなエラーが出た場合の対処法

sed: 1: "s/hogehoge...": bad flag in substitute command: '/'`

-eオプションでパターンによる置換を行う際、区切り文字と同じ文字が置換対象の文字列に含まれている場合発生する。

  • エラーが出る例(区切り文字 / と同じ文字が置換対象の文字列に含まれる)

    • sed -e "s/hogehoge/http://localhost/g
  • 区切り文字を変更することで解決する(下記の例では | に変更している)

    • sed -e "s|hogehoge|http://localhost|g

余談

-eオプション でパターンを指定する際、 セミコロン ';' で区切ることで1行に複数記述できる

sed -e "s/hogehoge/test/g;s/fugafuga/sample/g

Homebrewでインストールしたpostgresqlのpsqlコマンドが動かなくなった時の対処法

❯ psql -l
psql: could not connect to server: No such file or directory
    Is the server running locally and accepting
    connections on Unix domain socket "/tmp/.s.PGSQL.5432"?

このようなエラーが出た場合の対処方法です。 エラーメッセージでGoogle検索すると多種多様な解決方法が出てきますが、自分の場合は以下の方法で解決しました。

  1. brew upgrade postgresqlpostgresqlを最新に更新
  2. brew info で出力されたメッセージに従う

こんな感じのメッセージが出力されるはずです

❯ brew info postgresql
postgresql: stable 11.2 (bottled), HEAD

〜
中略
〜

To migrate existing data from a previous major version of PostgreSQL run:
  brew postgresql-upgrade-database

To have launchd start postgresql now and restart at login:
  brew services start postgresql
Or, if you don't want/need a background service you can just run:
  pg_ctl -D /usr/local/var/postgres start
==> Analytics
install: 84,642 (30 days), 236,127 (90 days), 754,771 (365 days)
install_on_request: 75,641 (30 days), 208,395 (90 days), 652,972 (365 days)
build_error: 0 (30 days)

/usr/local/Cellar/postgresql

やることは

  1. brew postgresql-upgrade-database 実行
  2. brew services start postgresql 実行
    • すでにstartしている場合は念の為stopしてから再度start
  3. pg_ctl -D /usr/local/var/postgres start 実行

これで治りました。

Vue CLI 3 でvue-routerをインストールしたプロジェクトを作成する

タイトル通り、個人的なメモ ※macOSで実行

  1. npmでVue CLI 3インストール
  2. ターミナルで以下のコマンド実行
    • vue create "APPLICATION_NAME"
  3. Please pick a preset と表示されるので Manually select freatures を選択
  4. 選択肢の中から Router を選択しEnter
  5. Use history mode for router? と聞かれるのでYes
  6. ESLintの設定とか聞かれるけど適宜選択

おわり。

参考 :

https://pizzamanz.net/web/vue/vue-cli-3/

macで接続済のwifiパスワードを確認する方法

  1. キーチェーンアクセス 起動
  2. キーチェーン システム を選択、分類は パスワード を選択
  3. これまでパスワード入力して接続したwifiの一覧が表示されているので、任意のwifiを選択
  4. ダイアログが表示されるので パスワードを表示 にチェックを入れることで確認できる

Javascriptで連想配列にキーが存在するかチェックする方法

連想配列にキーが存在するかチェックしたい時やりがちな判定

var map = {"key": 0};
if (map["key"]) {
    // "key"がmapに存在する
}

でも、これだと if (0) となるためkeyが存在するのにfalseとなる。

そこで以下のようにするのが正しい

var map = {"key": 0};
if ("key" in map) {
    // "key"がmapに存在する
}

jQueryで親要素へのイベント伝播を防ぐ

jQueryでクリックイベントを設定する際、以下のように子要素と親要素両方にイベントを設定すると、子→親の順にイベントが走る。 これを イベントバブリング と呼ぶらしい。

<tr>
    <td>Test</td>
<td>
jQuery(function($) {
  $('tr').click(function(e){
    alert('tr click');
  });
  $('td').click(function(e){
    alert('td click');
  });
});

 

子要素のイベントだけ発生させ、親要素のイベントは発生させたくない。そんなときは stopPropagation() を使うことで、子から親への伝播を止めることができる。

jQuery(function($) {
  $('tr').click(function(e){
    alert('tr click');
  });
  $('td').click(function(e){
    alert('td click');
    // 親へのイベントの伝播を止める
    e.stopPropagation();
  });
});

こんな感じで。