Entries from 2019-02-01 to 1 month

Goで文字列変換

Go

intから var n int = 7 s := strconv.Itoa(n) int64から var n int64 = 235 s := strconv.FormatInt(n, 10)// 10進数 []byteから var message = []byte("アロハ〜") s := string(message) 参考 yourbasic.org chidakiyo.hatenablog.com

Goで三項演算子(ちっく)

Go

三項演算子が無いとか、めっちゃびびったわ🙄 amount := map[bool]int64{true: t.Amount, false: -t.Amount}[t.Type == Deposit] 参考 qiita.com

STRICT_TRANS_TABLESに苦しめられた話

カラムのタイプをenumにしたら、データ投入時に怒られるようになってめっちゃ時間取られた件☠️ panic: Got unexpected error: failed to insert into foreign table: models: unable to insert into transactions: Error 1265: Data truncated for column 't…

brewのMySQLを再インストール

プロセスをチェックして切る $ ps -ax | grep mysql $ kill <process_id>brewから削除 バージョン指定してインストールしている場合は、@の後にバージョン追記する $ brew remove mysql@5.6 $ brew cleanup設定ファイル等を消す sudo rm -rf /usr/local/var/mysql ...バ</process_id>…

MySQLユーザーのパスワードを変更

$ mysqladmin --user=root --password=oldpassword password "newpassword"

マージ済みブランチを削除

Git

$ git branch --merged | grep -v '*' | xargs git branch -d

レコード新規作成時に現在時刻を入れる

> insert into users(created_at, updated_at) values(now(), now() + interval 1 hour);

Goのポインタ

Go

■ 変数に対する操作・アンパーサンド(&)はポインタ抽出 foo := 123 p := &foo fmt.Println(p)// 0x414020 ・アスタリスク(*)は変数抽出(dereferencingとも言う) p := &[]int{1, 2, 3} v := *p fmt.Println(v)// [1 2 3] ■ 型定義・型ポインタ p *Book …

tigが急に動かなくなった時

tig

tig叩いたらこんな感じでエラー おそらく前日に実行したbrew updateのせいっぽい? 期待するバージョンがないので、シンボリックリンクを作成 $ cd /usr/local/opt/readline/lib/ $ ln -s libreadline.8.dylib libreadline.7.dylib参考qiita.com gist.github…

シンボリックリンク作成

$ ln -s <path_to_file_that_exists> <path_of_symbolic_link_to_create></path_of_symbolic_link_to_create></path_to_file_that_exists>

gemインストール時にドキュメントを省く

下記を.gemrcに追記 コロンの位置はこれでOK🙆🏻‍♀️ install: --no-document update: --no-document

rbenv install --listの候補をアップデートする

リストアップされるバージョンのアップデート $ brew update $ brew upgrade ruby-build $ rbenv install --list

rbenvを再インストール

環境 Mac OS Mojave 10.14.3 $ brew remove rbenv $ rm -rf ~/.rbenv/.bash_profileにある.rbenvに関しての記述は残しておく $ brew install rbenv ruby-build $ rbenv install --list $ rbenv install <version> $ rbenv global <version> $ rbenv rehash $ gem install bundl</version></version>…

gemのバージョンをアップデートする

railsアプリケーションに使われるgemのバージョンをアップデートしていく時の話。アプリケーション内のgemはbundlerによって管理されている。bundler install で最初にインストールされた時のバージョンでGemfile.lockに記録される。これで、複数人での開発…

GoでMySQL接続をしてみる

Go

DB接続用の標準パッケージを取得しておく $ go get "github.com/go-sql-driver/mysql"MySQLでサンプルDBを用意しておく > create database book_sample; > use book_sample; > > create table if not exists books ( > id int auto_increment, > title varch…

.gitignoreを自動生成

github.com $ brew install gibo候補のリストアップ $ gibo list中身を表示してみる $ gibo dump Actionscript.gitignoreへ書き出し $ gibo dump Actionscript > .gitignore

ES6 importの波括弧

export default した時は括弧をつけない export default してない時は括弧をつけるimport * as した時は、その名前空間ごしにアクセスする参考blog.kyanny.medeveloper.mozilla.org

fishを使う

fishshell.combashからfishに移行してみる。まずはインストール $ brew install fish $ which fish $ sudo vi /etc/shells # add fish shell path $ chsh -s /usr/local/bin/fishが、.bash_profileに設定していた環境変数が読み込めなかったので、bash_profi…

Puppeteerでspanタグのテキストを確認する

毎回ビルド時に、ランダムなポストフィックスがクラス名につくので、正規表現で指定する。 const spanTitle = await page.waitForSelector('span[class^="foo_title-text"]', { visible: true }); const title = await (await spanTitle.getProperty("textCo…

irbで日付の差分計算

ざっくりと差分を見たい時。 > require 'date' > > from = Date.parse("2015/01") > to = Date.parse("2019/02") > > ((to-from).to_i / 365).to_s + "年と" + ((to-from).to_i % 365).to_s + "日"

go-sql-driverでDateTimeを扱う

Go

github.comデフォルトではDATETIMEの扱いでエラーが出てしまう。DSN(Data Source Name)にparseTimeとlocパラメータを付与することで、マッピングがうまくいく。 DBMS := "mysql" USER := "root" PASS := "" PROTOCOL := "tcp(127.0.0.1:3306)" DBNAME := "fo…

複数サーバのログをtailする

#!/bin/bash LOG_NAME="/var/www/<product-name>/shared/log/staging.log" HOSTS="xxx.xxx.xxx.xxx yyy.yyy.yyy.yyy" function kill_children { pkill -P $$; wait; } trap "kill_children" EXIT for host in $HOSTS do ssh -tt $host tail -f $LOG_NAME & done wait実行後</product-name>…

Routerでqueryとhashを扱う

Universal Routergithub.com import qs from "query-string"; import routes from "routes"; import UniversalRouter from 'universal-router'; ... const router = new UniversalRouter(routes); ... const [path, hash] = state.router.path.split("#"); c…

CodecovをCircleCI導入した時の話

CircleCIの設定画面でCODECOV_TOKENの環境変数を指定しておく そうすればカバレッジレポートを送信する際にトークンを指定する必要が無いこのプロジェクトでは、Makefileにテストスクリプトを用意していた test: go test -v -coverprofile=coverage.txt -cou…

.gitignoreにコミット済みのファイルを指定する

Git

.gitignoreに該当ファイルの指定を追加した後、管理下にあるファイルを削除する git rm --cached <file_name></file_name>

CicleCIのキャッシュ機能

キャッシュする steps: - save_cache: key: v1-repo-{{ .Environment.CIRCLE_SHA1 }} paths: - ./ キャッシュを使う steps: - restore_cache: key: v1-repo-{{ .Environment.CIRCLE_SHA1 }}

CicleCI の config が正しい記述か

$ circleci config validate

Minikube をインストールしてみる

公式手順はこちら。 Minikube をインストール $ brew cask install minikube $ minikube version k8s cli をインストール $ brew install kubernetes-cli $ kubectl version ハイパーバイザー(Hyperkit、xhyve、VirtualBox、VMware Fusion)をインストール…

React & Redux でとりあえず動くものを用意

npm 5.2 からcreate-react-appが標準で使える $ npx create-react-app <app-name> Redux インストール $ npm i react-redux redux</app-name>

AWS CLI をインストールする

AWS

公式の手順を見ながらやってみる インストール $ pip install awscli --upgrade --user アップグレードしたい時 $ pip install --upgrade awscli