TIL

Today I Learned. 知ったこと、学んだことを書いていく

選択値とは別の値をテキストボックスのvalueに設定する - JQuery

github.com

devbridge/JQuery-Autocompleteを使って、Autocompleteを実装したときのメモ

onSelectを使う

suggestionsが以下のようになっていた場合

suggestions: {[
    {
        value: "山田太郎 20歳",
        data: {
            name: "山田太郎",
            age: "20"
        }
    },
    {
        value: "山田次郎 18歳",
        data: {
            name: "山田次郎",
            age: "18"
        }
    }
]}

やりたいのは「山田太郎 20歳」を選択時、テキストボックスのvalueに「山田太郎」をセットすること

$(function() {
  $('.autocomplete-horse-name').autocomplete({
    serviceUrl: '/api/v1.0/person',
    dataType: 'json',
    transformResult: function(response) {
      return {
        suggestions: $.map(response, function (item) {
          return {value: item.name + " " + item.age + "歳", data: item};
        })
      }
    },
    onSelect: function(suggestion) {
      this.value = suggestion.data.name;
    }
  })
});

onSelectで選択したときに呼ばれる処理を記述できるため、それを使う。

suggestionが選択した項目のデータ、thisが入力中のHTMLElementとなっているため、こんな感じで書ける。

参考文献

ghqとpecoとhubを使ったリポジトリの管理

リポジトリをダウンロードして、見たりするときとかいいのかも

ずっとやろうって思ってたのをやっとできたから、メモメモ

それぞれをインストールする

ghq

go get github.com/motemen/ghq

peco

go get github.com/peco/peco/cmd/peco

hub

go get github.com/github/hub

エイリアスの設定

~/.bashrcに以下を追加

alias gcd='cd $(ghq root)/$(ghq list | peco)'
alias gh='hub browse $(ghq list | peco | cut -d "/" -f 2,3)'

gcdして、検索して矢印キーで移動して、Enterでカレントディレクトリをそれに変更する
ghして、検索して矢印キーで移動して、EnterでGitHubでそれを開く

ghqの使い方

ghq get {リポジトリのURL}

ghq get https://github.com/requests/requests.git

~/.ghq/github.com/requests/requestsにダウンロードされる

その他のコマンドの説明はmotemen/ghq: Remote repository management made easyで確認する

また、~/.gitconfigに以下を追加することで、ダウンロード先を変えることもできる(デフォルトでは~/.ghqにダウンロードされる)

[ghq]
    root = ~/src/repos

参考文献

PipenvでImportError: cannot import name 'get_installed_distributions'ってエラー出た

pipenvのgraphしたらエラーが出たから、その時の対処のメモと言うか、いらないと思うけど、メモっとく

$ pipenv graph
Traceback (most recent call last):
  File "/usr/local/lib/python3.6/site-packages/pipenv/vendor/pipdeptree.py", line 17, in <module>
    from pip._internal import get_installed_distributions
ImportError: cannot import name 'get_installed_distributions'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/bin/pipenv", line 11, in <module>
    sys.exit(cli())
  File "/usr/local/lib/python3.6/site-packages/pipenv/vendor/click/core.py", line 722, in __call__
    return self.main(*args, **kwargs)
  File "/usr/local/lib/python3.6/site-packages/pipenv/vendor/click/core.py", line 697, in main
    rv = self.invoke(ctx)
  File "/usr/local/lib/python3.6/site-packages/pipenv/vendor/click/core.py", line 1066, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/usr/local/lib/python3.6/site-packages/pipenv/vendor/click/core.py", line 895, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/local/lib/python3.6/site-packages/pipenv/vendor/click/core.py", line 535, in invoke
    return callback(*args, **kwargs)
  File "/usr/local/lib/python3.6/site-packages/pipenv/cli.py", line 922, in graph
    do_graph(bare=bare, json=json, json_tree=json_tree, reverse=reverse)
  File "/usr/local/lib/python3.6/site-packages/pipenv/core.py", line 2363, in do_graph
    import pipdeptree
  File "/usr/local/lib/python3.6/site-packages/pipenv/vendor/pipdeptree.py", line 20, in <module>
    from pip import get_installed_distributions, FrozenRequirement
ImportError: cannot import name 'get_installed_distributions'

ここに書いてあった

python3 -m pip install --upgrade pip
python3 -m pip install --upgrade pipenv

でできた

参考文献

TNSLSNR.EXEの停止

JavaのWebプロジェクトを起動しようとしたら、8080のポートが使われてた。8080のポートを使っているプロセスを特定、停止までの道のり。


8080を使っているPIDをみつける

netstat -ao | find "8080"
... ... ... 4312

PID4312のプロセス名を取得する

tasklist | find "123"

TNSLSNR.exe

TNSLSNRってなに

Oracleのなんかのソフトらしい

TNSLSNR.exeを停止

管理者権限のコマンドプロンプトで以下を実行

> lsnrctl

LSNRCTL for 64-bit Windows: Version 11.2.0.2.0 - Production on 12-10-2018 14:40:30

Copyright (c) 1991, 2014, Oracle.  All rights reserved.

Welcome to LSNRCTL, type "help" for information.

LSNRCTL> stop
(DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))に接続中
コマンドは正常に終了しました。
LSNRCTL> exit

8080が使えるようになった!!

参考文献

tmuxで256色表示に対応させる - tmux

「ubuntu12.10+tmux+vim、できるだけ少ない手順で256色表示にする」 - StupidDog's blog

上の記事が参考というかそのまんま

aliasを追加する

# ~/.bash_profile
alias tmux='tmux -2'

tmux(1) - Linux manual page を確認すると、-2オプションがあった

-2 Force tmux to assume the terminal supports 256 colours.

tmuxに端末が256色をサポートしていることを強制します。

tmux -2で256色を強制的にサポートできるのか!!!

参照文献

ENVは1行づつ記述すること - Docker

1つのENV内で定義した変数はそのENV内では使えないことがわかった

以下のものはTMPに何も設定されない

# TMPはブランク
ENV USER="tamago324" \
    TMP="${USER}"

正しく設定される

# TMPにtamago324が設定される
ENV USER="tamago324"
ENV TMP="${USER}"

1行ずつ書くのが良い

Docker 1.10以降では、イメージのレイヤーが作成されるのは RUN、COPY、ADDの3つのみになっているとのことです

# この書き方が一番いい!!
ENV NAME tamago324
ENV OS mac

RUNとCOPYとADDしかレイヤーが作成されないのは気が楽でいいね


ENVをわけない

FROM ubuntu:18.04

ENV USER="tamago324" \
    TMP="${USER}"

RUN echo ${TMP}
$ docker build -t test .
Sending build context to Docker daemon  89.09kB
Step 1/3 : FROM ubuntu:18.04
 ---> cd6d8154f1e1
Step 2/3 : ENV USER="tamago324"     TMP="${USER}"
 ---> Running in eadaba3299d3
Removing intermediate container eadaba3299d3
 ---> ddb342c89ac5
Step 3/3 : RUN echo ${TMP}
 ---> Running in df55730ff6c8

Removing intermediate container df55730ff6c8
 ---> 7f3914e78455
Successfully built 7f3914e78455
Successfully tagged test:latest
Step 3/3 : RUN echo ${TMP}
 ---> Running in df55730ff6c8

何も表示されない...

ENVを分ける

FROM ubuntu:18.04

ENV USER="tamago324"
ENV TMP="${USER}"

RUN echo ${TMP}
$ docker build -t test .

Sending build context to Docker daemon  89.09kB
Step 1/4 : FROM ubuntu:18.04
 ---> cd6d8154f1e1
Step 2/4 : ENV USER="tamago324"
 ---> Running in 7869a22a685f
Removing intermediate container 7869a22a685f
 ---> 02b76c851c06
Step 3/4 : ENV TMP="${USER}"
 ---> Running in 770fcb7d6444
Removing intermediate container 770fcb7d6444
 ---> a91b0bf173e4
Step 4/4 : RUN echo ${TMP}
 ---> Running in f55ddbef02b3
tamago324
Removing intermediate container f55ddbef02b3
 ---> 2de05b682fb3
Successfully built 2de05b682fb3
Successfully tagged test:latest

表示されてる!!

Step 4/4 : RUN echo ${TMP}
 ---> Running in f55ddbef02b3
tamago324

参考文献