node.js 環境

python 環境からの続き。

ndenv のインストール。

$ anyenv install ndenv
$ exec $SHELL -l

node.js を入れてグローバルの設定。

$ ndenv install v4.3.2
$ ndenv install v6.10.3
$ ndenv install v8.10.0
$ ndenv global v8.10.0

npm を新しくしておく。

$ npm install -g npm

とりあえず、ここまでかな。

python 環境

必要そうなもの。

$ sudo apt install build-essential zlib1g-dev libffi-dev libssl-dev libbz2-dev libreadline-dev libsqlite3-dev

anyenv と anyenv-update のインストール。

$ git clone https://github.com/riywo/anyenv ~/.anyenv
$ echo 'export PATH="$HOME/.anyenv/bin:$PATH"' >> ~/.profile
$ echo 'eval "$(anyenv init -)"' >> ~/.profile
$ exec $SHELL -l
$ mkdir -p $(anyenv root)/plugins
$ git clone https://github.com/znz/anyenv-update.git $(anyenv root)/plugins/anyenv-update

pyenv と pyenv-virtualenv のインストール。

$ anyenv install pyenv
$ exec $SHELL -l
$ git clone https://github.com/yyuu/pyenv-virtualenv $(anyenv root)/envs/pyenv/plugins/pyenv-virtualenv

AWS 関連なので python は 2.7 系と 3.6 系と 3.7 系を入れておく。

$ pyenv install 2.7.15
$ pyenv install 3.6.8
$ pyenv install 3.7.2

グローバル環境の作成。

$ pyenv virtualenv 3.7.2 my-global
$ pyenv global my-global

aws-cli のインストール。pyenv などを使っているときには –user は指定しない。

$ pip install awscli --upgrade

~/.aws/credencials と ~/.aws/config を作成・修正して、完成。

VMware Fusion の英数キー CapsLock 問題

MacBook Air (13-inch Mid 2013) で VMware Fusion 11 の上に Ubuntu 18.04 をインストール。

$ sudo dpkg-reconfigure keyboard-configuration

選択は、

MacBook/MacBook Pro (Intl.) → 日本語 → 日本語 → キーボード配置のデフォルト → コンポーズキーなし

xkb の設定の書き換え。

$ sudo vim /usr/share/X11/xkb/symbols/jp

key <CAPS> { [ Eisu_toggle, Caps_Lock ] };

という行が 2 行あるので、

key <CAPS> { [ Eisu_toggle ] };

と修正。

Mozc プロパティの一般タブのキー設定の選択で編集ボタンをクリック。
入力キー「Eisu」のモード「直接入力」「入力文字なし」のコマンドを「IMEを無効化」に。
入力キー「Hiragana」のモード「直接入力」のコマンドを「IMEを有効化」に。

以上。

Lambda 関数をダウンロードする

Lambda 関数をダウンロードして内容を確認する方法。ローカルのコードとデプロイされたコードが同じかわからなくなったときなど。

バージョンの確認

aws cli で特定の関数のバージョン情報を確認。

$ aws lambda list-versions-by-function --function-name hoge
{
    "Versions": [
        {
            "TracingConfig": {
                "Mode": "PassThrough"
            },
            "Version": "$LATEST",
            "CodeSha256": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX=",
            "FunctionName": "hoge",
            "VpcConfig": {
                "SubnetIds": [],
                "VpcId": "",
                "SecurityGroupIds": []
            },
            "MemorySize": 128,
            "RevisionId": "00000000-0000-0000-0000-000000000000",
            "CodeSize": 111111,
            "FunctionArn": "arn:aws:lambda:ap-northeast-1:000000000000:function:hoge:$LATEST",
            "Environment": {
                "Variables": {
                    "NODE_ENV": "production"
                }
            },
            "Handler": "index.handler",
            "Role": "arn:aws:iam::000000000000:role/lambda-basic-role",
            "Timeout": 180,
            "LastModified": "2018-11-01T19:00:00.000+0000",
            "Runtime": "nodejs6.10",
            "Description": "ホゲ"
        }
    ]
}

これで、hoge という Lambda 関数のバージョンをリストアップできる。Versions 配列の中に一つだけだけど、複数バージョンがあると要素が増えていく。
Latest の情報を取得してみる。

$ aws lambda get-function --function-name hoge
{
    "Code": {
        "RepositoryType": "S3",
        "Location": "https://awslambda-ap-ne-1-tasks.s3.ap-northeast-1.amazonaws.com/snapshots/000000000000/hoge<SNIP!>"
    },
    "Configuration": {
        "TracingConfig": {
            "Mode": "PassThrough"
        },
        "Version": "$LATEST",
        "CodeSha256": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX=",
        "FunctionName": "hoge",
        <SNIP!>
    }
}

Code の Location の URL からコードをダウンロードできる。
特定バージョンの情報を取得するには、$ aws lambda get-function --function-name hoge --qualifier 3 のように qualifier オプションを使う。

取得する

実際の取得は wget で。

Raspberry Pi Model B

転がっていた Raspberry Pi Model B を動かす。

公式からRASPBIAN をダウンロード。トップから DOWNLOAD → RASPBIAN で進む。
デスクトップ版と LITE 版があるので、(諸般の事情から)デスクトップ版をダウンロードする。ベースは Debian Stretch。2018-10-09 にリリースされたバージョンを使う。

SD への書き込みは Windows 上で行った。ダウンロードしたファイルを 7ZIP で展開。Etcher を使って SD に書き込む。3 分くらいで書き込み完了。ベリファイ入れて 5 分くらいか。

RasPi に SD を挿して、HDMI を繋いで、Ethernet を繋いで、当然キーボードとマウスを繋いで起動。初期設定を行って(Country で Japan を選択したら、表示が日本語に、キーボードも日本語配列になった)、再起動。

/etc/dhcpcd.conf を編集。

interface eth0
static ip_address=172.16.XXX.XXX/24
static routers=172.16.XXX.XXX
static domain_name_servers=8.8.8.8 4.4.4.4

を追記して、IP アドレスを静的に設定する。

とりあえず、ここまで。

Campaign URL Builder のパラメタ

utm_source (Campaign Source)
「検索エンジン」「ニュースレター名」またはその他のソースを識別するもの。
utm_medium (Campaign Medium)
「電子メール」「クリック単価」などの媒体を識別するもの。
utm_campaign (Campaign Name)
キーワード分析に使用。「特定の製品プロモーション」「戦略的キャンペーン」を識別するもの。
utm_term (Campaign Term)
有料検索に使用。広告のキーワードを記録する。
utm_content (Campaign Content)
A/B テストやコンテンツターゲット広告に使用。同じ URL へリンクされている広告を区別する。

ESLint

ほぼほぼドキュメントの通り。

インストールはローカルにおこなう。グローバルには入れない。

$ npm install eslint --save-dev
$ ./node_modules/.bin/eslint --init
$ ./node_modules/.bin/eslint hoge.js

init で Standard を選んだけどセミコロンとかでエラー出すので変える。これもドキュメントの通り。

.eslintrc.js
module.exports = {
"extends": "standard"
};

これを、

module.exports = {
"extends": "airbnb-base",
"rules": {
"no-console": 0
}
};

にしておく。

[Ubuntu 18.04] 端末のフォントの設定

現在、端末(gnome-terminal)のフォントは Ricty を使っています。16.04 や今まで 18.04 を設定していて端末の設定画面から Ricty を選択できたような気がしていたんですが、どうもできていなかったようです(Cica を使っていたのかもしれない)。今回、VMware で新しい環境を構築していて、端末のフォント設定を調べてみました。

以前は gconf で設定していたような気がするんですが、gsettings で設定するように変わっているようです。設定画面でも確認できるのですが、gsettings を使って確認してみます。

$ gsettings get org.gnome.Terminal.ProfilesList default
‘XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX’

この XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX がプロファイルの ID になります。

で書き換えるのは、org.gnome.Terminal.Legacy.Profile:/org/gnome/terminal/legacy/profiles:/:XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/font で、以下のような感じで内容を確認(get)できます。

$ gsettings get “org.gnome.Terminal.Legacy.Profile:/org/gnome/terminal/legacy/profiles:/:XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/” font
‘Monospace 12’

実際の書き換えは、get が set になり、設定内容を指定した、

$ gsettings set “org.gnome.Terminal.Legacy.Profile:/org/gnome/terminal/legacy/profiles:/:b1dcc9dd-5262-4d8d-a863-c897e6d979b9/” font “Ricty 10.5”

になります。これでフォントが Ricty の 10.5pt になりました。

いろいろ検索していると、

gsettings set org.gnome.Terminal.Legacy.Profile:/:1/ font “VL Gothic 9”

のように設定すると書いてあるサイトが多かったので。

MacBook Air セットアップ

MacBook Pro の調子が悪いので、Genius Bar に持って行こうかと。バックアップ取るのはどうでもなるが、修理中どうするかという問題があるので、MacBook Air に働いてもらうことにした。

インストール用の USB メモリを作成し、High Sierra をクリーンインストール。起動ディスクを APFS でフォーマットした後に、High Sierra をインストール。ほぼほぼデフォルトでインストールと初期設定。

インストール後、どこから作業をしたら良いのか悩みながら、セットアップを行う。

Xcode

Developer サイトから Xcode をダウンロード。拡張子は xip で GateKeeper で時間がかかるので、xattr -d com.apple.quarantine Xcode_9.4.1.xip して、拡張属性を削除。
その後、ダブルクリックで解凍する。

コマンドラインツール

“`
$ xcode-select –install
“`
しないと、MacPorts でヘッダが見つからないとか言われるので、やっておく。

MacPorts

この手順でインストール。

諸々

  • VisualStudio Code
  • Atom
  • CotEditor
  • SourceTree
  • Kaleidoscope

あたりを入れる。

Bootstrap

Bootstrap を使ってみようと思います。

Bootstrap はフロントエンドのコンポーネントライブラリ。いろいろやろうと思ったら Sass を使ったりするみたいですが、テキトーに使う(あまりカスタマイズ的なことは考えていない)ならそれほど面倒でもないかなと。

まずは、この HTML で Bootstrap を使ってみます。

CSS を読み込ませます(CDN にあるやつを使用)。<head> の中に

を追加。

次に JavaScript を読み込ませます。<body> の最後に以下を追加。

とりあえず、こんな感じになります。

注意点

<html> タグの lang 属性

これはちゃんとつけたほうが良いとのこと。つーか、つけるだろう、普通。

viewport を設定する。

Bootstrap はモバイルファーストなので <meta name=”viewport”> をちゃんと設定したほうが良い。

box-sizing の値

グローバルで box-sizing の値が content-box から border-box になっている。

ここまで、ほとんど Document のまま。