mk-toolブログ

エンジニアと家のことをごちゃごちゃと書いてます

error: cannot open .git/FETCH_HEAD: Permission denied

error: cannot open .git/FETCH_HEAD: Permission denied と言われたら、 sudo chown -R your_user:your_user .git を実行しましょう

Laravel+Nginx+Dockerでpublicファイルを出すために

本題 Dockerを使っていると、NginxとLaravelのコンテナはもちろん分割するものと思う。 だが、このときLaravelからpublicファイルを出すためには、少しコツがいる。 なぜならば、Nginxから /api にアクセスが来た際は容易にLaravelをFastCGI起動することがで…

AWSLambdaにnodeパッケージを入れる

本題 AWSLambdaにnodeパッケージを入れるには、Layersというものを利用する。 レイヤーについてはAWS Lambda レイヤーを参照。 レイヤーを作成して、そこに、zipしたnode_modulesを入れれば利用することができる。 参考記事にもあげたが、nodejsという名前で…

Qiitaからはてなブログに戻るはなし

本題 Qiitaでは、いいね、をもらうことで、自分の書いた記事の存在意義を示すことができたり、みんなが書いているから、という流行に乗っている感じがあり、イマドキのエンジニア感を醸し出せているので、自分のブランディングには良いのかも、という気がし…

LaravelでLogが出せなかったのでメモ

LaravelでLog::debug()をすればログが出ると思っていたのに、ログは出なかったのでメモ。 どのログファイルを使用するか宣言 Log::useFiles('ファイル名')を使用して明示的にどのログファイルを使用するか宣言をする。ファイルがない場合は作成される。 // …

firebase functions での環境変数設定

現在の環境変数の確認 環境変数は以下のコマンドで確認することができる。環境変数を利用するのであれば、プロジェクト毎に設定する必要がある。 $ firebase functions:config:get 変数のセット ドットで区切ると、階層を持つ環境変数を作成することができる…

ラジオボタンで改行が発生するとまわりこんでしまう現象への対処

ラジオボタンで改行されると、ポッチの下に文字が回り込んでしまう。 これだとかっこよくないので、以下で対応する。 flexboxをここで適用すると、要素が横並びになるので、ポッチの領域に侵入してくることはない。 margin-topを付けるのは、ラジオボタンの…

【Laravel】外部キー制約の部分でうまくいかない場合にやること

Laravelでphp artisan migrateを行なっても、以下のようなエラーが出るので、困ったのでメモ。 [Illuminate\Database\QueryException] SQLSTATE[HY000]: General error: 1215 Cannot add foreign key constraint (SQL: alter table `hogehoge` add constrain…

index.d.tsの使い道

index.d.ts とは でぐぐったものの、核心に迫るような記事を見つけることができなかったので、まとめる。 index.d.ts は、 node_modules/@types 以下のディレクトリに入れられているモジュール群の中で使われていることをよく目にする。 中身を見てみると、…

iCloudにiPhoneの写真をアップロードする

iCloudに写真を保存する iPhoneの [設定] アプリを開き、 [写真] を選択。その後、iCloud写真を有効にする。 この時、有料枠を超えると思うので、50GBにアップデートする。 50GBプランは130円/月だけなので、ケチらないで支払うほうが良い。 理由は新しいiPh…

react-routerでURLが変わるがコンポーネントが再描画されない

異なるRouterに属するコンポーネントは再描画されません。 App.ts の中で、以下のようにしているとします。 const App: React.FC = () => { return ( <div className="App"> <Header /> <Contents /> </div> ); } そして、 Header.tsx と Contents.tsx は以下のようだとします。 const Header: React.FC = () =…

【Python】正規表現を使ってヒットした文字に何かつっつけたい

python3でやっています。正規表現を使ってヒットした文字に、何かくっつけるメモです。つけ方の答えを先に言うと、以下のようになります。マッチした文字に「hogehoge」を足す場合です。 replaced_text = re.sub(r'(やりたい正規表現)', r'\1hogehoge', text…

Laravelのmigrateを途中から実行する

migrateを途中から実行 Laravelのphp artisan migrateを途中から実行するためのメモ。 なぜ途中からかというと、既存システムのDBをマイグレーションで管理できるようする際に必要になったため。 解決策 php artisan migrateを実行するとDBにmigrationsが作…

AWSのCodeBuildでビルドしてS3にソースをあげるもアクセスできない

概要 AWSのCodeBuildでS3にビルドしたソースをあげても、以下のエラーが返ってきた。 500 internal server error なんか、ビルドしたソースが悪かったのかな、とか、index.htmlはちゃんとあるのに、とかいろいろ考えたけど単純だった。 解決策 アーティファ…

jestを扱う上で参考にしたサイト

package.jsonの設定はこのQiita記事を参考にした restify + TypeScript + Jestの開発環境をセットアップしてみる - Qiita axiosを使ったりDB連携で参考にした Jestでテストを書こう! setupとteardown、jestの公式ドキュメント Setup and Teardown · Jest わ…

javascriptの配列初期化におけるナゾ

javascriptで以下の操作で2次元配列を生成すると、値の更新を行う際に列ごと更新がかかる。 let cost_array = (new Array(3)).fill((new Array(3)).fill(999)) cost_array[1][1] = 3 生成した配列に対して、mapで2次元配列を作ってあげると、単一の要素が更…

javascript の reduce() でディクショナリを扱う

javascript で ディクショナリの配列を reduce() する際に配下の方法が一般的である。 var initialValue = 0; var sum = [{x: 1}, {x: 2}, {x: 3}].reduce(function (accumulator, currentValue) { return accumulator + currentValue.x; },initialValue) co…

Typescriptでラムダ式を使う

概要 ラムダ式を利用して、配列的な値を返してあげたいときに以下のエラーが出たので対応方法をメモ&共有。 [ts] Unused label 解決策 以下のようなことをしたい。 const hoge = (aaa: any) => {bbb: aaa.ccc}; このときに戻り値を()で囲ってあげる必要があ…

手持ちのノートPCをサーバ化するために、行ったことメモ

Ubuntuを入れる これは名前の通り、Ubuntuを入れる。 フタを閉じても電源が切れないようにする sudo gedit /etc/systemd/logind.conf この際に、編集できる画面が開かれるので、編集する(何を編集するか明記)。 再起動する。 sudo systemctl restart systemd…

LenovoのPCが動かなくなった話

# 概要 会社のパソコンが動かなくなった、と問い合わせを受けたので、動くようにしたのでメモ。 本題 現象としては、 >> Checking Media Presense...... >> Media Present...... >> Start PXE over IPv4. Press ESC key to abort PXE boot. と出てきて、Esc…

ListenAndServe:listen tcp 0.0.0.0:80: bind: permission deniedへの対処

Go

概要 AWS環境でGoのhttpサーバを起動した直後にエラーを起こして止まるのでメモ。 詳細 以下のエラーメッセージが出てきた。 ListenAndServe:listen tcp 0.0.0.0:80: bind: permission denied exit status 1 この時、ポート80ではなく8080とかに変えてみると…

【Laravel】DB接続がうまくいかない時に確認すること

DB接続がうまくできているか DB接続がうまくできているかを確認するためには、以下のコマンドでチェックできる。 (接続をチェックするためのコマンドではないのだが) php artisan migrate:status これで、テーブルの一覧が出てこずに、コンソールにエラーの…

【Nuxt】外部モジュールのgetterへのアクセス方法

概要 外部モジュールのgetterへのアクセスができない!ということに遭遇したのでメモ。 解決策 getterに対して名前空間を指定する。 例えば、store/xxx.jsというモジュールのgetHogeというgetterにアクセスしたい場合は以下のようにする。 store.getters['lo…

【Vuex】[vuex] unknown action type: Xxx と言われたのでメモ

概要 VuexのmapActionsヘルパーを使った際に以下のエラーが出てきたのでメモ。 [vuex] unknown action type: Xxx 解決策 store/index.jsにactionに記載すればmapActionsが検出できる。ただ、この記事を読んでいる人が求めているのはそんなことではないだろう…

【vuex】Do not mutate vuex store state outside mutation handlersがでた

概要 以下のエラーが出たのでメモ。 Do not mutate vuex store state outside mutation handlers 解決方法 私はnuxtを使っているので純vuexではどうなのかわからないが、storeを管理しているエントリ部( store/index.js )の先頭で以下を記述する。 export co…

【python】NameError: name 'reduce' is not defined といわれた

概要 以下のエラーメッセージが出てきたためメモ。 NameError: name 'reduce' is not defined 解決策 functoolsにreduce関数が移動されたみたいなのでimportして使う。 from functools import reduce 参考 stackoverflow.com

【python】TypeError: 'float' object is not iterable といわれた

概要 以下のエラーが発生したためメモ。 TypeError: 'float' object is not iterable 解決策 list(1)やlist(1.0)のようなキャストが発生している場合に発生する。 以下のようにすればOK。 list([1])

【python】TypeError: Object of type 'map' is not JSON serializable といわれた

概要 以下のエラーが出たのでメモ。 TypeError: Object of type 'map' is not JSON serializable 解決策 pythonにおいてmapはジェネレータであるらしい。そのため、JSONにシリアライズする場合はmapをlistに変換する必要があるので以下のようにする。 list(h…

【python】TypeError: Object of type 'Decimal' is not JSON serializable と言われた

概要 以下のエラーが出てのでメモ。 TypeError: Object of type 'Decimal' is not JSON serializable また、Qiiaにすでに解決記事を出している方がおり、私も丸コピなので基本的におなじことをしています。 ドキュメントに以下の記載があります。これを使用…

【Python】NameError: name 'xrange' is not definedと言われる

概要 以下のエラーが出たのでメモ。 NameError: name 'xrange' is not defined 解決策 xrange()はpython3ではrange()にremameされているため、range()にすればOK。 参考 stackoverflow.com