Articles

AWS Cognito

2021-03-20
aws

User Pool Authenticationするコンポーネント。ユーザーのnameやemail addressなどの属性を保持する。 クライアントはID token, Access token, Refresh tokenを取得 ...

package is not in GOROOT

2021-03-02
golang

一時的にGOPATHを変更してから、パッケージを2個作ったうえで簡単なコードを実行した時、次のようなエラーが出ました。 % package other/pkg1 is not in GOROOT (/usr/local/go/src/other/pkg1) パッケージの構造が原因です ...

The REST API doesn't contain any methods (Service: AmazonApiGateway...

2020-11-16
aws

AWS CloudFormationでProxy統合したAPIをデプロイしようとして次のようなエラーがでました。 CREATE_FAILED AWS::ApiGateway::Deployment SomeDeployment The REST API doesn't contain any methods (Service:BadRequestException; Request ID:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx; Proxy: null) 原因は、Deployme ...

SlackのEventAPIのリトライコールを防ぐ - golang

2020-10-23
golang, API, slack

エラーレスポンスを返す時でもリトライさせたくない場合は、ヘッダにX-Slack-No-Retryを指定する。 func handler(w http.ResponseWriter, r *http.Request) { // Process something... // Set "X-Slack-No-Retry: 1" if prevent retry. w.Header().Set("X-Slack-No-Retry", "1") w.Header().Set("Content-Type", "application/json") w.WriteHeader(http.StatusBadRequest) w.Write([]byte("")) } Reference https://api.slack.com/events-api#the-events-api__field-guide__error-handling__graceful-retries__turning-retries-off

generate gomockでエラーが出た - golang

2020-10-21
golang, tips

gomockでエラー。とりあえず古いファイルを消して再実行すると解消できた。 % mockgen -source ./internal/app/usecase/xxx/repository.go -destination ./internal/app/usecase/xxx/repository_mock.go -package xxx -: found packages xxx (repository.go) and mock_updateproteinevent (repository_mock.go) in /Users/xxx/go/src/proteinreminder/internal/app/usecase/xxx 2020/10/21 04:21:56 Loading input failed: loading package failed # Delete % rm -rf ./internal/app/usecase/xxx/repository_mock.go # Run again and completed. % mockgen -source ./internal/app/usecase/xxx/repository.go -destination ...

AWS5資格の勉強ログ

2020-08-06
aws

勉強を始めた時に勉強法を色々調べたのですが、勉強ログ的なものは少ないように思ったので残しておきます。どなたかの参考になれば幸いです。 背景 勉強を始めた時のスペック ...

API Gateway + Lambda - golang

2020-07-05
golang, aws

APIGateway + GoでLambdaのサンプルです。 仕様 エンドポイント: https://<API ID>.execute-api.ap-northeast-1.amazonaws.com/<stage>/<Resource> HTTPメソッド: GET パラメータ: { "text": "string" } Lambdaハンドラ 引数をstructで定義。 package main import ( "context" "github.com/aws/aws-lambda-go/lambda" ...

makeコマンドに引数を渡す

2020-07-05
shell

渡せるんですね🥺 # Makefile DEFAULT=fuga test: @echo $(DEFAULT) # shell $ make # -> fuga $ make DEFAULT=hoge # -> hoge Reference https://stackoverflow.com/questions/2826029/passing-additional-variables-from-command-line-to-make

安全なtruncate string - golang

2020-06-28
golang

package main import ( "fmt" ) // Truncate string. func TruncateString(str string, length int) string { if length <= 0 { return "" } // This code cannot support Japanese // orgLen := len(str) // if orgLen <= length { // return str // } // return str[:length] // Support Japanese // Ref: Range loops https://blog.golang.org/strings truncated := "" count := 0 for _, char := range str { truncated += string(char) count++ if count >= length { break } ...

"omitempty"のメモ - golang

2020-06-25
golang

json.Marshal はomitemptyが値型stringに設定されていれば空文字を出力する。 フィールド自体不要な場合は、ポインタ型stringにするといい。 package main import ( "encoding/json" "fmt" ) type ValueSlice struct ...

ParseFormした値をstructに設定 - golang

2020-06-23
golang

// Set FormValues to struct func SetFormValueToStruct(values url.Values, structPtr interface{}) error { // Get the pointer of struct ptr := reflect.ValueOf(structPtr) // Get the value of struct value := ptr.Elem() // Set value to struct field valueType := value.Type() for i := 0; i < value.NumField(); i++ { jsonTag := valueType.Field(i).Tag.Get("json") if value.Field(i).CanSet() == false { return errors.New("cannot set value to field") } value.Field(i).Set(reflect.ValueOf(values.Get(jsonTag))) } return nil } // Example func ExampleSetFormValueToStruct() { // Form values formValues := url.Values{} formValues.Set("test1", ...

npmモジュールのバージョンアップ - node

2020-06-06
node, npm

npm-checkを使うと対話式でアップデートできるのでわかりやすい。 # Install checking module globally. $ npm install -g npm-check # Run. # -u means "update" $ npm-check -u # Select all basically. ? Choose which packages to update. (Press <space> to select) Missing. You probably want these. ❯◯ normalize.css missing 8.0.1 https://necolas.github.io/normalize.css ◯ ...

panicのテスト - golang

2020-05-28
golang, test

Goでパニックが発生するかどうかのテストです。 // Testing if testFunc calls panic. // e.g. // IsTestCallPanic(func(){ // <place test target here.> // }) func IsTestCallPanic(testFunc func()) (ok bool) { defer func() { if err := recover(); err == nil { ok = false } }() ok = true testFunc() return } // Test for test. func TestIsTestCallPanic(t *testing.T) { isCalled := IsTestCallPanic(func() { ...

Javadocの@see

2020-04-15
java, document

こんなコメントを書いておりました。 class Hoge { /** * return greeting message string. * * @see https://docs.oracle.com/javase/8/docs/technotes/tools/windows/javadoc.html * @return greeting message string */ public String hello() { return "Hi"; } } @seeの使い方を間違ってます。 正しくは次のようにhtmlタグが必要。 /** ...

Interfaceポインタの型エラー - golang

2020-04-13
golang

Iocコンテナを作ろうとして次のようなコードを書くとエラーが出ました。 原因はinterfaceのポインタの型エラー。 // interface type IFace interface { hello() string } // concrete type type Concrete struct { } func NewConcrete() *Concrete { return ...

Reconstruction of a Tree

2020-03-07
AIZU ONLINE JUDGE

Reconstruction of a Tree Preorderだけだと構造が決まらないので、Inorderと合わせて木構造を決定する。 Inorderの値の中のPreorder値の左右が、木の左右に対 ...

Insertion Sort

2020-03-07
AIZU ONLINE JUDGE

もう一回おさらいということで プログラミングコンテスト攻略のためのアルゴリズムとデータ構造を購入しました。 AIZU ONLINE JUDGEの Insertion Sortです。 package main import ( "fmt" "strings" ) func scanInput() (n int, slice ...

vimで複数行の文字列を1行のCSVにする

2020-02-18
vim

vimで複数行の文字列を1行のCSVにする方法です。 エディタで簡単なSQLのIN句を作成するときによく使います。 元のデータ 1134 1373 3985 4588 Ctrl + Vで先頭に'を入れる。 '1134 '1373 ...

error table [name] has no column [column]

2020-01-31
golang, sqlite

GoでsqliteにデータをInsertしようとしてエラー。 $ error table Balance has no column named price Insertしているコードを見ても問題はない。 カラムを確認すると…… 2個目のカラム ...

シェルでzip圧縮

2020-01-19
shell

shellでzip圧縮するコマンドです。 環境 Mac 10.14.6 GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin18) zip # -------------------------------------- # filename.txtをsth.zipに圧縮 # -Xで.DS_Storeなどの特殊ファイルを無 ...

Python3 + virtualenv

2019-04-19
Python

MacにPython3とvirtualenvを設定する手順です。 環境 macOS 10.14.4 インストール 1. Python3をインストール https://www.python.org/ からMac OS X用のインストーラをダウンロード ...

ZaimのAPIで履歴を取得

2018-12-24
API

普段、家計簿をZaimで管理しています。 時々、「そういえば今月は、食費をどの程度使っているかな?」と確認するのですが、そのたびにスマホでアプリ起動というのがどう ...

Heroku RedisをHerokuAppで複数利用

2018-10-18
Heroku

Laravelで実装したWebアプリにおいて、Heroku Redisを複数利用する時に悩んだ話です。 Heroku Redisを1Appに複数設置すると、2個目以降の接続情報 ...

SalesForce CLIでApexを取得

2018-10-17
Salesforce

MavensMateがサポート終了になった後も、Apexを取得するために利用していたのですが、ついに起動しなくなりました。 エラーは"A JavaScript error occurred in the main process" 試 ...

HTML FormでS3にPOST

2018-02-24
aws

AWSのリファレンスを参考に、FormでS3バケットへのPOSTを試してみました。 準備 FormでS3にPOSTするためには、各フィールドへ送信するファイルに合わ ...

AWSでVPC + 踏み台EC2 + NAT Gatewayの設定

2018-02-09
aws

VPCの勉強のため、よくある構成で設定を試しました。 構成 VPC test-vpc1(172.31.0.0/16) Private Subnet test-subnet-private(172.31.0.0/24) Public subnet test-subnet-public(172.31.1.0/24) 踏み台EC2 インスタンスタイプ: t2.micro セキュリティグループ タイプ ポート ソース or 送信先 インバウ ...

Apache2.4で一部のディレクトリのみBasic認証

2017-11-24
Server

一部のディレクトリのみBasic認証したいケースがあり、.htaccessで設定しました。 前提 Apache 2.4 .htaccess使用可能 .htaccess 次の通り。 <Files ~ "^\.(htpasswd|htaccess)$"> Require all denied </Files> <Files ~ "^(?!\.htpasswd|\.htaccess).*"> Require all ...

HugoでJSONを出力

2017-11-07
Hugo

サイトの記事データをJSONで出力したい。手作業は大変。CMSを設置するのも億劫。 ということで、Hugoで出力するようにしました。 サンプルコード 前提 macOS Sierra Home ...

AWS CLIのインストール

2017-10-25
aws

AWSマネジメントコンソールを使う機会が増えてきました。 軽微な確認作業で毎度ログインするのが手間なため、AWS CLIを使って簡単にできないかなとまずはインストー ...