勉強日記

チラ裏

開発環境

WSL2 + Emacs + docker環境でPHPのリモートデバッグ

この組み合わせの資料が見当たらず、若干詰まったのでメモ書き サンプルリポジトリ リモートデバッグを動かすまで 俯瞰図 WSL2のIPアドレス取得 Xdebugの設定 リモートデバッグが動くことを確認 ストレスなくデバッグを進めるための設定 geben-path-mappings…

内部構造から学ぶPostgreSQL 設計・運用計画の鉄則 ch10 (高可用化と負荷分散) (2/6)

gihyo.jp ストリーミングレプリケーション(つづき) 【補】構築 レプリケーションの状況確認 サーバーログの確認 プロセスの確認 レプリケーション遅延の確認 レプリケーションの管理 recovery.confのtrigger_fileを用いる方法 pg_ctl promoteを用いる方法 【…

Docker outside of Docker (DooD) & bind-mount で詰まった話 (原因解明済、未解決)

経緯 再現 ランナー相当のDooD構築 Runnerコンテナにログイン Runner内でコンテナ生成 Runner内でコンテナ生成する際、Runner内のファイルのbind-mountを試みる 真相 経緯 GitLab private instanceを使っている案件にアサインした CIを構築するも、ランナー…

【解決】docker on WSL2 で、docker image build時にネットワークエラー

環境 現象 結論: dockerdの設定で解決 詳細 composerのinstallerが降ってこない composer.pharが降ってこない composerライブラリが降ってこない 解決 所感 環境 Windows 10 PRO 19030.1 WSL2 Ubuntu-18.04 docker on WSL2 docker --version Docker version …

PHPUnit自作アサーション/HTMLを解析するテスト

github.com モチベーション 作ったもの 依存 つかいかた future work モチベーション '19/11/16時点で、フロントエンドで高度なことをせず、サーバが返したHTMLをそのまま返すような古き良きアプリケーションの開発に携わっている AjaxでJSONに色を付けたり…

はじめてのPHPUnit自作アサーション

モチベーション アサートのロジックをDRYにしたい テストの出力結果をprettyにしたい 雑にtraitとかに切り出すのではなく、プロジェクト横断的に使いまわしたい 作ったもの github.com 参考: 公式ドキュメント 集合の一致のアサーションを作ってみた 正確に…

WSL2に別ホストからssh接続・X11Forwarding

モチベーション ネットワーク Windows Host1の設定 Windows-> WSL2のポートフォワーディング sshの設定 ファイアウォールの設定 Windows Host2からSSH接続・X11Forwarding モチベーション 2019年11月時点で、WindowsでWeb開発するときはWSL2環境に閉じこもっ…

WSL2上のmysqlにWindows側のMySQL Workbenchから接続できない問題と解決

現象 127.0.0.1:3306にアクセスできない privilegeはバッチリroot@%に全GRANTしてる SSHポートフォワーディングは大丈夫 127.0.0.1::22経由 解決 IPv6の[::1]:3306だと大丈夫 逆に、SSHポートフォワーディングは[::1]:22だと駄目。謎 localhostって書けるや…

【Emacs】intelephenseで変数名変更導入した

TL;DR intelephense is 何 詳細 課金する ライセンス認証する intelephenseをアップグレードする LSP Serverを再起動する 使ってみて 若干詰まったのでメモ TL;DR 課金が必要 古い場合はアップグレードが必要 NTEmacsだと若干調子悪い Emacs on WSLを使おう …

【開発環境】Windows10で、Emacs上のシェルでDockerコンテナログインできるようになった話

モチベーション WSL2入れる Windows10のビルド確認 WSL有効化 Ubuntu18.04 LTS 入れる Emacs26入れる Docker環境揃える Docker Docker Compose eshell上でdockerコンテナログインできることを確認 X11Forwarding Ubuntu側 sshd Windows側 sshクライアント: P…

IPv6 IPoE + IPv4にした話

はやい はやくなる前 申し込み 光BBユニットが届く つなぐ 何もわからない。俺たちは雰囲気でパソンココを繋いでいる ソフトバンク光が遅いからIPv6高速ハイブリッド IPv6 IPoE + IPv4にした はやい わあい 別プロトコルを使うことで、混雑している回線を避…

【Emacs】Yasnippetを活用した話

テストコード作成補助まだまだ調整必要だけど捗りそうな感じになった pic.twitter.com/zy8c8IwmGe— 人魚姫ちゃん(D. Horiyama) (@wand_ta) August 30, 2019 ↑コンストラクタの名前を間違ってるのはご愛嬌 __constructが正しい 入れて満足してほとんど使って…

【squid】HTTPプロキシサーバ立てた

構築後のネットワークのイメージ 背景 Solution: クラウドサーバーにHTTPプロキシを立てる 設定 squidの設定 クラウドサーバーの設定 プロキシ経由してHTTPリクエスト送る 構築後のネットワークのイメージ ブログのサムネ用 背景 外部システムのIFと連携する…

理論から学ぶデータベース実践入門 ch3 正規化理論(その1)

gihyo.jp まとめ なぜDB設計は重要なのか 正規化 リレーショナルモデルを補完する理論 異常を防ぐことができる 正規形 正規形の種類 第1正規形(1NF) コラム: 列の値はスカラであるべき? 繰り返しグループ 候補キーとスーパーキー 関数従属性(FD) コラム: 候…

【Emacs】lsp-modeでVue.jsの定義ジャンプ・補完 続編 (不具合回避等)

いらない設定消した ワークスペースにディレクトリ追加 computedをderivative: () => {...}スタイルで書く Windowsで定義ジャンプするとエラー 回避 課題 Appendix: LSPに関する設定全部 以前の記事は不完全 import/export以外の定義ジャンプができなかった …

【LINE@ Laravel】 コールバックリクエストをモックして、LINEサーバと切り離してテストする

環境 LINE Botのおおまかなしくみ テストしたい 署名検証部分でエラー出る 署名検証部分をモックする 課題 検索用 LINEのBotを作るにあたり、テストで躓いたのでメモ 環境 laravel/framework 5.8.* linecorp/line-bot-sdk ^3.10 LINE Botのおおまかなしくみ …

【Emacs】lsp-modeでVue.jsの定義ジャンプ・補完

スクショ 環境 これだけだとエラー出た 再度設定 課題 検索用 色々躓きまくったのでメモ 調べても日本語記事が全然見つからないんですよ VSCode使え?うるせ〜〜 スクショ 環境 emacs 26.2 elisp ... package installする web-mode lsp-mode lsp-ui company-…

【Emacs】org-pomodoroのタイマーを左寄せにした

久しぶりにcarとかcdrとかconsとかした スクショ org-pomodoro org-modeでポモドーロテクニックするやつ デフォルトでは、タイマーがモードラインの右にはみ出して見えなくなってしまうことがある 左寄せにすることで必ず視認できるようにした 設定 mode-lin…

はじめてのPHPプロフェッショナル開発 ch15 デプロイの自動化

Webアプリケーションの公開 Heroku AWS ソフトウェアのデプロイメントサイクル デプロイ自動化のメリット 小さい単位でのデプロイ リアルタイム監視も一緒に整備しよう ここまでのソフトウェアデプロイメント コンテナベースのビルド&デプロイ インフラレイ…

docker-composeのenvの適用優先度

調査結果 laradockの.envは、同名の環境変数を複数設定した場合、後に設定したもので上書きされる 動機 laradockを使用している laradockの.envファイルをカスタマイズしている laradockがバージョンアップし、docker-compose.ymlとenv-exampleに更新があっ…

はじめてのPHPプロフェッショナル開発 ch14 継続的インテグレーション

なぜ継続的インテグレーションが必要なのか 継続的インテグレーションとは CIによって得られるもの Economics of Test Automation -- 自動化テストの経済性 CIツールとは CIツールの種類、選び方 CIを利用してみる Travis CIとは Travis CIの導入 Travis CI…

はじめてのPHPプロフェッショナル開発 ch13 開発に役立つツール

なぜツールを使うのか PHP_CodeSniffer: コーディング規約チェックツール 使い方 実践的なPHP CSの利用 PHPStan: コード解析ツール 使い方 実践的なPHPStanの利用 なぜツールを使うのか 三大美徳が1つ、怠慢 再現可能性 人間は、昨日の自分のコードが他人の…

GUI版Emacsに環境変数が引き継がれなかった話

そもそも環境変数って何 Linux(と、多分macOSも)で、GUI版Emacsに環境変数が引き継がれない GUI版Emacsに環境変数を渡す そもそも環境変数って何 Windows システムやユーザーにかかるもの macOS, Linux シェルにかかるもの シェルの子プロセスに引き継がれる…

Emacs / markdown-preview-mode + pandoc

pandoc markdown-preview-mode 設定 conf/markdown-config.el ... init.elから呼ぶやつ レンダラ $PATH環境変数をemacsに渡すための設定 CSS変える 課題 dockerとかいろいろ覚えたので再度入れた スクロールに追従してくれたりする pandoc 名前どおり、あら…

Emacsにphp-cs, php-stan導入した(けど片方動かない)

環境 init.el flycheckの設定部分 phpcs phpstan が……駄目っ……! 環境 Emacs 25.2 init.el ;; require前に書く必要があるらしい (setq php-mode-coding-style 'psr2) (when (require 'php-mode nil t) ;; 拡張子phpのファイルを開いたときにphp-modeに。 ;; …

vmd-mode導入した

vmd 経緯 動機 よさげなの見つけた 導入 vmd-mode入れる vmd入れる つかう vmd Electron製 GitHub-Flavoredなマークダウンレンダラ 編集がリアルタイムに反映される スクロールは追ってくれない これまで使っていたmarkdown-preview-modeは追ってくれてたの…

Emacs + Laradock + Xdebug PHPステップ実行設定

環境 Xdebug 有効化 設定 geben 導入 つかう 環境 emacs 25.2 laradock環境 Xdebug PHPをステップ実行したりブレーク貼ったりできる 有効化 laradockではフラグひとつでxdebugが入る laradock/.env ... WORKSPACE_INSTALL_XDEBUG=true ... PHP_FPM_INSTALL_X…

localstackでS3をモックした

環境 localstack docker-compose.yml localstack storage_init localstack利用側のPHPコード Storageファサードでs3使う src/config/filesystems.php ハマりどころ 環境 laradock Laravel 5.7 localstack 公式 AWSのサービスをモックしてくれる有能 S3とか G…

CircleCI速くした(9分→4分)

環境 CIで時間かかる処理 キャッシュによる高速化 npmパッケージ composerパッケージ dockerイメージビルド キャッシュ名生成部分 キャッシュ読み出し部分 dockerイメージビルド・ファイル書き出し部分 キャッシュ保存 イメージ読み込み 高速化による弊害と…

vue-mode導入、eslint連携等

動機 導入 設定 vue-mode js-mode eslint側設定 補完・定義ジャンプの設定 動機 今まではVue SFCの編集にはweb-modeを使っていたが、vueの名の付くモードを使ってみようかなと 導入 M-x package-list-packages RET vue-mode探して入れる 設定 vue-mode ;; ==…