ぷっぽプログラミング備忘録

linux, javascript, php, C#, そのうちScalaとかアプリ開発とかやってみたいです。

2022-01-01から1年間の記事一覧

duで配下のサブディレクトリの容量だけ知りたい(ファイルのサイズはいらない)

du -h --max-depth=1 duコマンドに、--max-depth=1つけたらOK.

docker-compose.ymlのenvironmentの書き方が変わった?

結論 environment: - LARAVEL_SERVER_NAME=${LARAVEL_SERVER_NAME} - WORDPRESS_SERVER_NAME=${WORDPRESS_SERVER_NAME} といった感じで、「-(ハイフン)」で設定すれば動いた。 動かなかった書き方 以前は、 environment: LARAVEL_SERVER_NAME: ${LARAVEL_S…

Laravel 8 ルーティング初歩的設定 apache2

概要 久々に apache2の <VirtualHost *:80> DocumentRoot /var/www/laravel_src/laravel/public <Directory "/var/www/laravel_src/laravel/public"> AllowOverride All Allow from all </Directory> </VirtualHost> DirectoryでAllowOverride Allを指定すること。 ※厄介なのが、ルートパスのときは(.htaccessが動かなくても)動作する。そのため、改めてル…

phpのcsvダウンロード【utf-8からshiftjisに変換して出力】

php

概要 php純正のフィルター【convert.iconv.ほげほげ】を使うと簡単。ただし、注意点もある。 例 header('Content-type: application/csv'); header('Content-disposition: attachment; filename=sample.csv'); $dataArray = ['ひとつめ', 'ふたつめ', 'みっ…

CA(認証局)と各端末(ブラウザ)にインストールされている証明書の関係

概要 認証局はあくまで「ssl証明書」を発行する機関であって、発行した後は特に各端末と都度やりとりなどはしない。 認証局の発行した証明書 + (ブラウザの立場で)サーバーから受け取った証明書を発行した認証局に対する信頼 = セキュアな通信 というこ…

typescriptでreactのuseContext & useStateを使う場合

概要 型宣言が面倒です…。typescripterはすごいな。 例の前提 isFooというboolean型のstateを使いたい サンプル contextの定義(FooFlagProvider.tsx) import { createContext, useState } from "react"; // contextに設定する型を宣言(ここでuseStateの値を…

git stash listにオプションをつけることができる

git

概要 マニュアルに書いてます。 git stash list 【オプション】 この【オプション】は、git logのオプションと同じものが使えるようです。 よく使うもの git stash list --pretty=full とかですかね。 参考 Git - git-stash Documentation

git stash pop でコンフリクト発生 なかったことにしたい場合 / unmerged のファイルは staged扱いだった…

git

git stash pop でコンフリクト発生してなかったことにしたい git restore --staged 【ファイル名】 とすればいい。 【ファイル名】の部分は、もちろん、コンフリクトが発生したファイル(unmergedファイル)になるでしょう。 ここでふと。「--staged」オプシ…

git のcommit時間を後から変更する

git

push前で、直前のコミットの時刻を現在時刻に変更する場合 シンプルです。 git commit --amend --reset-author だいぶたってから変更する場合 前提 git rebaseをある程度理解していること HEAD~3やHEAD~~といったHEADからの相対指定を理解していること git p…

docker-composeで特定コンテナのみ再起動したい

概要 docker-compose restart 【サービス名】 注意 docker-compose.ymlなどのymlファイルの変更は、このコマンドでコンテナを再起動しても、変更が反映されません。 変更を反映した場合は、docker-compose downをしてコンテナをいったん破棄して、docker-com…

phpで無名関数のuseを使い合わす場合は、参照渡しが必要

php

題名通りです。 無名関数のuseに渡す値を参照渡しにしないと、毎回値がリセットされてしまうようです。 例として、まわりくどいですが、配列の重複を削除する方法。 array_unique使えばええやんというツッコミはなしで $target_array = [1, 2, 3, 4, 5, 2, 4…

github httpsでクローンしたリポジトリでユーザー名とパスワードを記憶させる

git

git config credential.helper store こちら実行して、次にユーザー名とパスワードを入力すればキャッシュされて、次からは聞かれなくなります。 簡単ぽん。 参考

VSCodeで開発 ubuntu20.04 に php のxdebugをインストール(php8.1の場合)

DockerFileで以下内容を記述 ...なんやかんや RUN apt install -y php8.1-xdebug ...なんやかんや (DockerFileのお作法的には、他のapt installしているものと一緒にまとめるべきですが、そういうのは動いてから調整すればいいと思うので) コンテナのphp.i…

英語使ってお仕事できる人ってすごいなあ

ベルリンで働くITエンジニアのweb3のブログ

typescriptの名前付き引数(名前付き引数の中に関数がある場合)の書き方

概要 name1という名前の文字列と、func1という名前の「引数なし、返却値なしfunction」をプロパティに持つオブジェクトを受け取る場合 function hoge({name1, func1}: {name1:string, func1:() => void}) { console.log(name1); func1(); } function method1…

javascript の && と || は論理値を返却するとは限らない

概要 テストプログラム const returnEtc = (key: string) :string => key && (key + ' foobar!'); let returnValue = returnEtc('testdayo'); console.log(returnValue); 結果 testdayo foobar! phpだと、&& 演算子の返却値はあくまでbooleanな気がするが、j…

ubuntu20.04 apache2 でphp8.0 から php8.1 にアップデートする方法

前提 既にubuntu20.04+php8.0+apache2の環境であること 作業手順 apt update apt upgrade -y apt install php8.1 apt install php8.1-gd php8.1-xml php8.1-soap php8.1-mbstring php8.1-mysql apt install libapache2-mod-php8.1 a2dismod php8.0 a2enmod …

vite を使ってreact お試し環境を一瞬で構築する

概要 react を typescript でとりあえず試したい人は、vite使えば一瞬というお話です。 前提 node, npm はインストール済みであること やることはこれだけ npm init vite cd vite-project npm install npm run dev vite-projectの部分はnpm init viteのとき…

とりあえずvite+phaserで遊んでみるか

道のりはまだまだだけど…。まあ趣味としてぼちぼちやっていこうかなあと。 参考 https://gamedevacademy.org/wp-content/uploads/2018/04/How-to-Create-a-Game-with-Phaser-3_v2.pdf Phaser.js: A Step-by-Step Tutorial On Making A Phaser 3 Game | Shaku…

php の file_get_contents()に失敗した場合のエラー内容取得したければ$http_response_headerを使う

php

覚書。 file_get_contents()を使用しているローカルスコープに、 $http_response_header が作成されるので、その中身を見る。 $result = file_get_contents('https://hogehoge...'); if (empty($result)) { var_dump($http_response_header); // 参考コード…

Google スプレッドシート ショートカット

空いてるセルに移動する Ctrl + ↑ (上に移動) Ctrl + ↓(下に移動) Ctrl + ←(左に移動) Ctrl + →(右に移動)

javascriptのforループ内のlet変数

forのインクリメントなどに使うletで定義した変数は、ループごとにスコープを持つ。 var examples = []; for(let i=0; i<3; i++) { examples.push(() => console.log(i)); } for (const elem of examples) { elem(); } このiは、それぞれが独立したメモリ領…

Ubuntu20.04 でapache2インストール直後はmod_rewriteは無効になってるので有効にする

cat /etc/apache2/mods-available/rewrite.load で確認すると mod_rewriteは最初から使える状態にはなっている が、しかし、 a2enmod rewrite しないと有効にはならない。 きちんと、a2enmod rewriteしましょうというお話でした。

ubuntu20.04でrootになる

Ubuntu20.04などは、初期時にはrootでログインできません。 rootでログインする手順は sudo passwd root sudoでrootにパスワードを設定します。 以上です。