のーずいだんぷ

主に自分用メモですが、もしかしたら誰かの役に立つかもしれません

<php>get_object_varsを共通のスーパークラスのメソッドに実装するときの注意

PHP

概要 問題 対策 概要 PHP8においてインスタンスの情報を取得するメソッドにget_object_varsがあり、これを使えば引数に渡したインスタンスのもつアクセス可能なプロパティについてArray型で出力してくれる。 これはDTOのようなプロパティ主体で構成されるク…

Mysqlでレコード挿入時に作成日を、更新時に更新日を自動で行えるようにする

概要 結論 その他 概要 DBの各テーブルには大抵の場合、更新日と作成日、また作成者を登録したくなる。 これを全テーブルで、更には各updateとinsertのSQL操作で毎回書くのは冗長すぎるのでなんとか自動でできる手段を探していたが、 テーブル作成段階でこれ…

<PHP>サブディレクトリのnamespaceの名前解決ができない

PHP

概要 原因 todo 概要 以前にcomposerを導入したとき、composer.jsonで定義したauto_loaderがなぜか機能せず、一旦調査保留にしていたのだが、その原因がざっくりわかったのでとりあえずのメモ 原因 自分でプロジェクトのソース内で宣言していたspl_autoload_…

PHPのnamespace(名前空間)について

PHP

はじめに requireとinclude namespaceの意義 どちらを使うべきか その他 参考 はじめに Pythonにはなく、ほかの言語ではある程度一般的な概念としてnamespaceがあるが、 requireやincludeといった宣言との使い分けがよくわからなかったのでそのメモ require…

PHPのインタプリタを手っ取り早く利用する方法(wsl2(windows)&docker&tmux)

概要 構築方法 雑感 参考 概要 プログラミング言語のインタプリタで簡単に組み込み関数の挙動を見てみたかったりする場合、Pythonのようなスクリプト言語だと組み込みでインタプリタがすぐに使用可能であるが、PHPだとインストールの方法によってはインタプ…

Chrome Remote Desktopで一部キーが反応しない、もしくは謎のショートカットと関連付けられる現象

概要 原因と対策 概要 題の通り、Chrome Remote Desktop(windowsのRDPのようにリモートで社外から社内のPCにアクセスできるツール)において、キーボードの一部キーが反応しないという現象が発生した。 正確には反応するキーもあり、正しく入力できる場合もあ…

シェルスクリプトでファイルに行を挿入したい

概要 結論 ハマりどころ 参考 概要 CLIでログデータを簡易的に処理する際、headerがなかったので該当のログデータにヘッダー行を挿入したかった。 結論 以下で可能。 複数ファイルがある場合のケースを記載。 #!/bin/bash IFS=$'\n' header=`cat ./header.tx…

データベース設計(エンティティ抽出とビジネス的正規化)

はじめに 基本のき 知っておくべきこと 正規化 プライマリキーの話 業務で使用するコードはプライマリキーにしてはいけない コード=プライマリキーとすることの弊害 その他の問題 データモデルが複雑になることに恐れるな データのライフサイクルとその後の…

xampp環境で直接開発しているときのエラー出力確認方法

開発環境 確認方法 その他 参考 開発環境 大雑把に以下のような構成で開発している。 VScode(remote-container)---- |(デプロイは内部でのファイル移動) WSL2(ubuntu)------------docker container(Apache tomcat/PHP) 端的に言えば、webサーバ上で直で開発…

wsl2を使う前にやっておきたいこと(ディストロのバックアップ)

はじめに wsl2はディストロ(≒ディストリビューション)をdocker imageのように使えない 1. 任意のディストロをインストール 2. ディストロをエクスポートする 3. ディストロをインポート(複製)する はじめに 転職してから開発環境がMac→Windowsと変更になり、…

awkでオプション'OFS'(output field separater)が適用されない

概要 結論 概要 タイトルの通り、以下のようにpsコマンドの情報を整形しようとしたとき、想定した内容にならなかった。 $ ps aux | grep httpd | grep -v grep | awk -F ' ' -v 'OFS=#' '{print $1 $2}' apache5768 apache5769 apache5776 apache5777 apache…

wsl2にsshで接続する

概要 wsl2サーバーへログイン wsl2サーバーでのsshサーバーの導入 sshd_configの編集 ホスト側公開鍵の仕込み ssh_config作成 その他 概要 ホストOS |(ssh 接続) ゲストOS(wsl2,ubuntu20.04) 通常はホストOS側でwsl2がインストール完了していれば、wsl -d Ub…

tomcatのheapdump取得&apacheやtomcatといったユーザにログインできない問題

やりたかったこと エラーメッセージの意味と原因 解決方法 やりたかったこと tomcat上で動いているwebアプリケーションの不具合調査のためjcmdコマンドでJVMの情報取得を試みたときに以下のようなエラーがでた。 $ jcmd 27318 GC.heap_dump /var/log/heapdum…

久々の、あとこれからどう生きるか

2020年~2021年は色々な方にご迷惑をおかけしました。 現在は 苦しい時期を経験して得たものは 2022年から、どういう風に生きたいか 2020年~2021年は色々な方にご迷惑をおかけしました。 久々の投稿になりました。 一応見出しの期間にもわずかに投稿してい…

Google map api をVue.js(Nuxt.js)のコンポーネントで利用する方法

やりたいこと 結論 参考 やりたいこと 一般的にGoogle map api をwebアプリケーションで使おうとしたとき、例えば以下のような感じで利用する。 html <html> <head> <title>Simple Map</title> <style> #map { height: 100%; width: 100%; } </style> </head></html>

Vue.jsでVuexを使わずに他コンポーネントのプロパティやメソッドを操作する方法

はじめに 親コンポーネントにアクセスする方法 $parent provide/injectによる依存性注入 子コンポーネントにアクセスする方法 ref属性 それぞれの注意点 参考 はじめに 本記事は編集中なので、全方法は網羅していません。 ググったときにvuexとかばかり出て…

google map apiでクリックしたスポットの情報を取得したい

なにをやりたいのか? googlemap api はそもそも3種類に分かれている 結論 参考 なにをやりたいのか? google map api for javascriptを使用することで例えば以下のようにGooglemap をwebページで表示させることができる。 google map api によるgoogle map…

windows10のPCがスリープから勝手に休止状態(シャットダウン)になる現象

概要 結論 変更方法 雑感 概要 タイトルの通り、windows10のPCにおいて手動もしくは設定の通りにスリープ状態に移行後に本来であれば解除するまでスリープが継続するところ、一定時間経過後に自動的に復帰後に即座にシャットダウンするような現象が発生した…

ブログ再開する

ここ最近色々とあり、勉強を初めとした目標のために続けていたあらゆる習慣をすべて中断していた。 今後は技術以外の日頃考えていることについても言語化しながら、自分を客観的にながめる手段としても活用していきたい(それを公開する必要はあるかはわから…

gitの補完が効かなくなったとき(mac)

Git

はじめに 解決策 はじめに gitの補完を以前に設定していて、ある日急に使えなくなることがある。 使えなくなるケースとしては主に gitのバージョンアップ MacOSのバージョンアップ のいずれかが原因であり、実態は補完用スクリプトのシンボリックリンクが切…

Makefileでスマート(if文を使用せず)に処理を分岐させる

はじめに Makefileのワイルドカード 自動変数を用いてtarget名の一部を利用する おわりに はじめに Makefileではifやwhileを使うことができるのだが、予めどんな値が入るかわからない場合においては使用できない。 今回の使用法は汎用性に富んでおり、かつ簡…

Makefileとシェルスクリプトの変数参照とコマンド実行

はじめに シェルスクリプトの変数参照 シェルスクリプトでコマンド実行結果を変数に保存する Makefileでの表現 コマンドを変数へ格納して変数をコマンドをして実行するには? 入れ子になっていても実行できるのか? おわりに はじめに シェルスクリプトの変…

Ansible実行時にエラー[no filter named 'changed']

はじめに 原因 解決策 参考 はじめに 業務の中でAnsible2.4→2.9に上げる必要があったので、まず単純にバージョンを上げたところタイトルのエラーが出た。 原因 whenディレクティブで条件式を使用するが、その際に2.4以前では|を使用して以下のように記載がで…

MacOS Catalinaアップグレード後にitamaeを使おうとしたらエラー[...usr/bin/ruby: bad interpreter: No such file or directory]が出た

はじめに エラー内容 解決策 原因 参考 はじめに ruby製のデプロイフレームワークであるitamaeを使用しているが、とあるときに以下のエラーが発生して使えなくなったので、解決方法とその備忘録。 エラー内容 -bash: /usr/local/bin/itamae: /System/Library…

DeepLearning&xR開発用PCを構築する 〜その3:VPNでセキュアなリモート開発環境設定編〜

今回やること やるべきこと、知っておくべきこと 1. 自宅サーバを静的IP化 DDNSの設定 VPNサーバの用意 使用側(クライアント)にVPNクライアントソフトウェアを導入 OpenVPNのインストール 接続設定&認証情報を取得&OpenVPNへ反映 接続したその後 VPN状態でサ…

githubにsshで接続して、usernameとpasswordの入力を省略する方法

Git

はじめに 対策方法 httpsのまんまでやる方法 補足 参考 はじめに よく忘れてしまうので、あといろんなやり方が出てきてかなり検索性が悪かったので自分用にメモを残しておく。 対策方法 参考そのまんまであるが、以下の方法が非常に良かった。 これでhttps接…

<python>json.load()でjsonを読み込めない(jsonlinesを読み込む方法)

はじめに 対策 raw_decode()とは? jsonlinesファイルで実験してみる json.loadでデコードしてみる。 JSONDecoder.raw_decode()でデコードしてみる 原因 おわりに はじめに 自然言語処理100本ノックの3章20番の問題を解いているときに詰まったエラー。 Pytho…

pre-commitでisortの設定ファイルをpyproject.tomlにする

はじめに 競合する理由 解決する方法 参考 はじめに pyproject.tomlでblackとisortの競合を修正して、実行したところ、以下のように競合&warningメッセージが出力された。 /path-to-your-directory/.cache/pre-commit/reponx26mlg0/py_env-python3/lib/pytho…

複数言語が混在したプロジェクトでlinterとformatterをgit-commitにフックする

はじめに 複数言語をすべてgit-hookで連携するのはしんどい git-hook連携ツール:pre-commitを使用する インストール 設定ファイル 設定の反映 単純な実行 汎用的なチェック 各言語の方針 Python pre-commitへのhook設置 各設定ファイル Node.js 1. pre-commi…

はてなブログでvimを使いたい

はじめに Chromeなら拡張機能「wasavi」をつかおう はてなブログで使用するとどうなるか リアルタイムプレビュー機能は問題なく使用可能 写真投稿はエディタを閉じないと不便 リンクも埋め込み機能はエディタ起動時は使えない それでもvimが使用できるのは便…