まだらもよう

Qiitaに投稿できないメモ書きなど

Laravelのコーディング規約で忘れがちなところ

php-cs-fixerは効かないやつとか ??で改行したいとき return $this->textView ?? $markdown->renderText($this->markdown, $data); if文で改行したいとき if (is_a($value->class, Pivot::class, true) || in_array(AsPivot::class, class_uses($value->clas…

is_callable()

PHP

is_callable ( mixed $var ) : bool 関数としてコール可能かを返す。アクセス修飾子も考慮してくれる(protectedなどで実行できないならfalse)。 ex: LaravelのExceptionHandler public function report(Exception $e) { if ($this->shouldntReport($e)) { …

curlコマンド

様々なプロトコルでデータ通信を行うコマンド。 $ curl <url> オプション -X <method> HTTPメソッド -H <header> リクエストヘッダー -d <data> POSTするデータ -u <user:pass> Basic認証情報 curl -X POST -u user:pass -H 'Content-Type: application/json' -d '{"foo":"xxx", "bar":1}' https://</user:pass></data></header></method></url>…

771. Jewels and Stones

https://leetcode.com/problems/jewels-and-stones/ 宝石である石の種類を表す文字列Jと、お持ちの石を表す文字列Sが与えられます。Sの各文字はあなたが持っている石の種類です。あなたが持っている石のうちいくつが宝石でもあるか知りたいですね。 Jの文字…

Nuxt.jsでpug, stylusを使用する

install $ yarn add pug pug-plain-loader stylus stylus-loader 各vueファイルでlangを指定する。 <template lang="pug"> </template> <style lang="stylus"> </style>

Strapiのタイムスタンプを変更

config/environments/**/database.jsonのtimezoneを"Asia/Tokyo"に変更 strapi-dockerでpostgresを使っている場合、 db/postgresql.confのtimezoneを"Asia/Tokyo"に変更

GraphQL 参考になりそうなサイトまとめ

リファレンス Introduction to GraphQL | GraphQL よくまとまってるQiita GraphQL入門 - 使いたくなるGraphQL - Qiita チュートリアルサイト Getting Started With GraphQL.js | GraphQL.js Tutorial https://www.howtographql.com/ GraphQL Server Basics: …

Nuxt.jsでdotenv

https://github.com/nuxt-community/dotenv-module install $ yarn add @nuxtjs/dotenv nuxt.config.js { modules: [ '@nuxtjs/dotenv', ] } プロジェクトルートにenvfileを作成 API_URL=https://example.com:1337 これでcontext.envかprocess.envに追加され…

1. Two Sum

https://leetcode.com/problems/two-sum/ 整数の配列が与えられたとき、それらが特定のターゲットになるように2つの数のインデックスを返します。 各入力は厳密に 1つの解を持つと仮定することができ、同じ要素を2回使用することはできません。 Example: Giv…

データ構造

データ構造とは、データの順番や位置関係を定めたもの。データをメモリに保存していく際、目的にあったデータ構造にすることで、処理効率を高めることができる。 リスト 各データがポインタを持ち、ポインタは次のデータを示す。 ポインタを頭から辿ることし…

TrustProxy

信頼するヘッダ、プロキシを設定しておかないと、httpならhttpsにリダイレクトするようにしたとき、無限ループする ELBはIPアドレスが固定ではない。ELBだとX-***というヘッダになるので、それを信頼するようにする。 X-***というヘッダはWeb標準ではなく独…

eval(\Psy\sh());が動かないときの対処方法

【laravel5】 tinkerを利用してpryのように楽にデバッグする! - Qiita の、スクリプト中にeval(\Psy\sh());を埋め込んでデバッグする、をやろうと思ったのだが、以下のエラーでうまく動かなかった。 Writing to //.config/psysh is not allowed. 解決方法は…

docker-composeで起動するコンテナの名前

{プロジェクト名}_{サービス名}_{連番} プロジェクト名 デフォルトではdocker-compose.ymlがあるディレクトリ名。環境変数COMPOSE_PROJECT_NAMEで変更可能。 サービス名 docker-compose.ymlに書いたサービス名。 連番 スケールする際に連番で付与される。

PHPのmkdirとパーミッション

PHP

参考: PHP: mkdir - Manual 【PHP】mkdirのパーミッション(属性)の指定が機能しない原因 – ysklog PHPのmkdir関数で指定できるパーミッションはumaskの影響を受けるため、指定した通りにならないことがある。 よって以下の方法で調整する必要がある。 mkd…

パーミッション

対象 r(読込, 4) w(書込, 2) x(実行, 1) ディレクトリ ファイル一覧の取得を許可 ファイル・ディレクトリの削除・作成・名前変更を許可 カレントディレクトリにすること・ファイルの読み書きを許可 ファイル 内容表示などを許可 編集や上書きコピーなどを許…

Dockerボリューム

基本 ボリュームとは永続化したいデータを置く場所のこと。コンテナとは切り離して管理したいデータを置く。複数のコンテナから同じボリュームを利用することもできる。 ボリュームは以下の3種類ある。 ホスト(host) 匿名(anonymous) 名前付き(named) …

cpコマンド

基本 $ cp [オプション] コピーしたいファイル コピー先 コピー先に同名ファイルがある場合、上書きされる。 コピー先にディレクトリを指定した場合、ディレクトリ下にコピーされる。コピー先ディレクトリが存在しない場合、作成される。 ディレクトリ内のフ…

Dockerfile

FROM ベースイメージ RUN イメージビルド時に実行するコマンド CMD コンテナ起動時に実行するコマンド。docker container runコマンドで上書きできる ARG イメージビルド時のみ有効な環境変数。docker image buildコマンドの--build-argで指定できる ENV イ…

エイリアス

エイリアスの設定 $ alias ls='ls -F' $ alias ll='ls -l' $ alias la='ls -a' エイリアスの確認と削除 $ type ls ls is an alias for ls -F $ unalias ls エイリアスが設定されているときに、エイリアス無しで実行する フルパスで指定する $ /bin/ls comman…

PHPのビルドとエクステンション

PHP

PHPのビルド ビルドとは、各プログラムをコンパイルして、リンクすること。 参考: PHPをビルドする — PHP Internals Book 日本語訳 [PHP]pecl,phpize,extensionという単語を見て頭痛がするあなたへの処方箋 · DQNEO起業日記 PHPはC言語で書かれているので、…

シェル変数・環境変数

シェル変数 このプロセスのみで有効。=の前後にスペースは不可 $ var1=test1 $ echo $var1 test コマンド実行中のみ有効なシェル変数 $ var2=test2 command 環境変数 子プロセスでも利用できるシェル変数。exportコマンドで環境変数にする $ export var3=tes…

コンテナライフサイクルとdocker containerコマンド

コンテナライフサイクル 実行中 docker container run イメージ名:タグ直後。CMDやENTRYPOINTを実行する。 停止 docker container stop コンテナ名orコンテナIDで停止させるか、コンテナで実行されているアプリが正常終了・異常終了した状態。 コマンドライ…

docker imageコマンド

イメージをビルドする。 $ docker image build -t イメージ名:タグ名 Dockerfile配置ディレクトリのパス -tはイメージ名とタグ名を指定するのでほぼ必須。 ローカルにベースイメージのキャッシュがある場合、Dockerは差分のみをビルドする。強制的に最新のベ…

LambdaイベントソースにSQSを設定したときのメモ

AWS

メモ LambdaのイベントソースにFIFOキューは対応していない(スタンダードキューのみ対応) Lambdaにメッセージが渡されるとそのメッセージは処理中のメッセージとなる Lambdaが処理に失敗するとずっとリトライする デッドレターキュー(DLQ)を設定するとリト…

async, await

async asyncは関数の前で宣言する。async functionは以下の仕様を持つ Promiseを返す returnした値をresolveする throwした値・例外をrejectする async function hoge(isSuccess) { if (isSuccess) { return 'hoge' } throw new Error('Failed.') } hoge(tru…

Promise

Promiseチェーン 非同期処理の結果を次の非同期処理で使うとき、以下のようにコールバック地獄となる。 doSomething(function(result) { doSomethingElse(result, function(newResult) { doThirdThing(newResult, function(finalResult) { console.log('Got …

コマンドラインの履歴

基本操作 ctrl + p 1つ前のコマンド ctrl + n 次のコマンド ctrl + r インクリメンタル検索 インクリメンタル検索 ctrl + r 1つ前の検索結果 enter コマンド実行 ctrl + g 検索終了 esc コマンドを保持しつつ検索終了

ローカルからLambdaにデプロイ

AWS

AWSプロファイル追加 $ aws configure --profile プロファイル名 設定は~/.awsを削除することでリセットできる Lambdaのデプロイ プロジェクトディレクトリのpackage.jsonのscriptsを以下のように編集 "scripts": { "test": "echo \"Error: no test specifie…

zipコマンド

$ zip [オプション] 生成するzipファイル名 [対象ファイル] -r 再帰的に扱う -x 対象外ファイルを指定する(zipファイル名のあとで) $ zip -r LambdaDeployment.zip * -x *.zip *.json *.log

IAMユーザー, ポリシー, ロール

AWS

ID (ユーザー、グループ、ロール) - AWS Identity and Access Management AWS IAMポリシーを理解する | DevelopersIO ユーザー コンソールにサインインしたり、AWS サービスにプログラムによるリクエストを行うユーザー。 ルートユーザー すべての AWS サ…