コピペコードで快適生活

明日使えるソースを自分のために

goenv環境でdepを使うメモ

Go

QuickStart まずはこれでgoenvをインストールする。 http://kinosuke.hatenablog.jp/entry/2019/04/11/104837 # depのインストール # ※GOPATH以下にインストールされる go get -u github.com/golang/dep/cmd/dep # goenv環境でやるとdepコマンドのパスが通ら…

RspecでSQLやRailsのログを出力したい

こんな感じで # spec/rails_helper.rb # 略 Rails.logger = Logger.new(STDOUT) # Rails.loggerを出す ActiveRecord::Base.logger = Logger.new(STDOUT) # SQLログ出す RSpec.configure do |config| # 略 end ※STDOUTは組み込み変数 STDOUT.puts "hogehoge" …

GoModulesを使ってパッケージ管理する

Go

QuickStartメモ # プロジェクトディレクトリを掘る mkdir -p github.com/kinosuke01/gin-tutorial cd github.com/kinosuke01/gin-tutorial/ # 初期化する → go.modというパッケージリストを保持するファイルができる go mod init github.com/kinosuke01/gin-…

aws-cliで複数のプロファイル設定を持つ

AWS

複数のAWSアカウントを扱うことになったので、aws-cliのプロファイルの使い方をメモしておく。 # 設定やプロファイル一覧を見る cat ~/.aws/config cat ~/.awx/credentials # デフォルトの設定をする aws configure AWS Access Key ID [None]: xxx AWS Secre…

Goことはじめ(並列処理)

Go

http://gihyo.jp/dev/feature/01/go_4beginners/0005?page=1 より学んだことメモ。 package main import ( "fmt" "log" "net/http" "sync" ) func main() { wait := new(sync.WaitGroup) urls := []string{ "https://www.example.com", "https://www.example…

Goことはじめ(net/httpパッケージ)

Go

http://gihyo.jp/dev/feature/01/go_4beginners/0004?page=3 より学んだことメモ。 hello worldを返すだけのhttpサーバ package main import ( "fmt" "net/http" ) // // http.ResponseWriterがレスポンスデータ // *http.Requestはリクエストデータ // func…

SELECT文の評価順序メモ

たまに「どうだったっけ?」と忘れてしまう時があるので。 https://qiita.com/suzukito/items/edcd00e680186f2930a8 よりメモ FROM ON JOIN WHERE GROUP BY HAVING SELECT DISTINCT ORDER BY TOP(LIMIT)

xmllintメモ

# 妥当性検証 xmllint --schema feed.xsd --noout feed.xml # 整形 xmllint --format feed.xml # インデントスペース4文字で整形 XMLLINT_INDENT=" " xmllint --format feed.xml

Goことはじめ(ファイルのRead/Write)

Go

http://gihyo.jp/dev/feature/01/go_4beginners/0004?page=2 より学んだことメモ package main import ( "fmt" "log" "os" ) // // ファイルの書き込み // func FileWriteFunc() { fmt.Println("ファイルの書き込み --------- ") // ファイルを生成 file, er…

Goことはじめ(JSONの取り扱い)

Go

http://gihyo.jp/dev/feature/01/go_4beginners/0004 より学んだことメモ package main import ( "fmt" "log" "encoding/json" ) // // 構造体にタグをつけることでJSON変換時の // ルールを定義することができる // 何も指定しない場合はpublicなフィールド…

goenvインストールメモ

Go

# インストール $ git clone https://github.com/syndbg/goenv.git ~/.goenv # ~/.bash_profile に追記 export GOENV_ROOT="$HOME/.goenv" export PATH="$GOENV_ROOT/bin:$PATH" eval "$(goenv init -)" # 反映 source ~/.bash_profile # 使えるバージョン確…

Goことはじめ3

Go

第3章 型システム―型を用いた安全なプログラミング:はじめてのGo―シンプルな言語仕様,型システム,並行処理|gihyo.jp … 技術評論社 より学んだことメモ。 package main import ( "fmt" ) // // 型の拡張 // 同じ型でも違う意味を持つもの(同じintでもIDを…

geminaboxにgem登録する手順メモ

# 準備 gem install geminabox --no-ri --no-doc # Gemを作る gem build -V ***.gemspec mv ***-0.1.0.gem pkg/. # アップロードする gem inabox ./pkg/***-0.1.0.gem --host http://example.com

Goことはじめ2

Go

第2章 基本文法―覚えやすいコンパクトな言語仕様:はじめてのGo―シンプルな言語仕様,型システム,並行処理|gihyo.jp … 技術評論社 より学んだことメモ。 基本的な文法について package main import ( "fmt" "os" "errors" "log" // f "fmt" -> と記述する…

シェルのtestコマンド

シェルのtestコマンドの理解が怪しかったので、使い方をメモしておく。 #!bin/sh # $?==0 で正常終了 # 数値の比較 ## 1 == 1 test 1 -eq 1; echo $? ## 1 != 2 test 1 -ne 2; echo $? ## 1 < 2 test 1 -lt 2; echo $? ## 2 > 1 test 2 -gt 1; echo $? ## 1 …

Goことはじめ

Go

http://gihyo.jp/dev/feature/01/go_4beginners で学んだことをメモしていく。 はじめに # インストール brew install go # ./bash_profileの設定 export GOROOT=/usr/local/opt/go/libexec export GOPATH=$HOME export PATH=$PATH:$GOROOT/bin:$GOPATH/bin …

ActiveRecord::Base.transactionで並列で同じレコードを扱ったときの動きメモ

排他制御まわりがちゃんとわかっていなかったので整理。 Article.find(1).value # => 1 def inc row = Article.find(1) row.value = row.value + 1 row.save end # 同時並行処理する Thread.new { inc } Thread.new { inc } Article.find(1).value # => 2に…

シェルでクロス集計するメモ

クロス集計をBash(とawk)だけで実装した話 より学んだことメモ 処理の流れ 1.必要なカラムの抽出 2.クロス集計の行と列の要素を取り出す。 # クロス集計表の行になる部分を抽出してユニーク化&ソート cat table.csv | cut -f 1 -d , | sort -u > rownam…

初めの方のシェル芸勉強会メモ

初めの方の問題見たらとてもピュアだった。2012年10月27日 Hbstudy#38 ファイルの一括変換 # カレントディレクトリの中からUtilの文字をHogeに変えてDesktopに保存する。 # ※basenameはディレクトリ名を除外したファイル名を返すコマンド grep -r "Util" ./.…

RubyのThreadメモ

まずは超簡単なところから。 n = 1 # この記述に至った時点で非同期で実行開始される t1 = Thread.new do puts "t1 start" puts "t1 n is #{n}" n = 2 sleep 5 puts "t1 end" end t2 = Thread.new do puts "t2 start" sleep 5 puts "t2 n is #{n}" # => 2 ス…

ActiveSupport::CallbacksでRubyクラスにコールバックを差し込む

ActiveRecordじゃなくてもコールバックは使えるんやで。 class Article include ActiveSupport::Callbacks define_callbacks :before_submit set_callback :before_submit, :before, :validation def validation puts 'Check!!!' end def submit puts 'Submi…

第37回シェル芸勉強会メモ

https://b.ueda.tech/?post=20180901_shellgei_37 にて学んだことメモ。 Q1 FizzBuzzのアニメーション seq 100 | gsed '0~3s/.*/Fizz/;0~5s/.*/Buzz/;0~15s/.*/FizzBuzz/' | # 0~3s みたいな書き方で3行ごとに置換を行う gawk '{printf("%08s\n", $1)}' | # …

ActiveRecordのafter_commitが発火するとき発火しないとき

発火する ・なにも変更せずにsaveしても発火する(select文しかないtransactionでcommitがされるため) ・destroyで発火する。self.destroyed?はtrue, self.reloadでActiveRecord::RecordNotFound ・soft_destroyでも発火する。self.soft_destroyed?はtrue (ka…

ndenvを使ってNode.jsをインストールする

ずっとnvm使っていたのだけど、プロジェクトディレクトリ移動するたびに手動でバージョン切り替えるのがさすがに辛くなってきたので、ndenvに乗り換えました。 インストール # clone git clone https://github.com/riywo/ndenv ~/.ndenv # パスを通す

Homebrewのコマンドメモ

ちゃんとわかっていない感あったのでメモ。 ## インストールされたformulaの一覧 brew list ## アンインストール brew uninstall FORMULA_NAME ## 更新のあるformulaを見る brew outdated ## 古いバージョンのformulaを削除 brew cleanup brew cleanup -n # …

第38回҈҈҉҈҈҉シ҈҉ェ҈҉ル҈҉芸҈҉勉҈҉強҈҉会メモ

https://b.ueda.tech/?post=shellgei_38 より学んだことメモ xxd コマンド 対象を16進数でダンプする/16進数から復元する。 pオプションはpostscript形式でダンプするの意味。 # ダンプする echo "ほげほげ" | xxd -p # 復元する echo "ほげほげ" | xxd -p |…

npmでパッケージ公開するまでのコマンド

# npm設定確認 # レジストリのURLも確認できる npm config list # レジストリを変える npm set registry http://npm.example.com npm set registry https://registry.npmjs.org/ # レジストリにユーザを追加 npm adduser --registry http://npm.example.com …

class_evalを使って、classに自由な名前でメソッドを追加

concernに書くとこんな感じか。 # # include ::Logica::DateRangeSearchable # date_range_name_is :validity, :valid # # klass.valid # -> validity_start_at, validity_end_atが期間内のみ取り出す # instance.valid? # -> validity_start_at, validity_e…

macOSのcurlで海外アクセスのチェックをやるときのproxy設定メモ

macOSのcurlで海外アクセスのチェックをやるときのproxy設定メモ HTTPのproxy フリーのproxy情報はこの辺から http://www.freeproxylists.net/ja/ # 設定 PROXY_HOST=xxx.xxx.xxx.xxx PROXY_PORT=xxxx export http_proxy="http://${PROXY_HOST}:${PROXY_PORT…

PostgreSQLでシーケンスの位置を変える

--「テーブル名_カラム名_seq」が名称となる。 -- 確認 SELECT * FROM app_users_id_seq; sequence_name | last_value | start_value | increment_by | max_value | min_value | cache_value | log_cnt | is_cycled | is_called ---------------+-----------…