Develop
About
ソフトウェア開発作業全般
Other
ASCIIFlow: 画面構成図などの作成でテキストなので便利かもしれない。
Modelio
クラス図
- 汎化 (generalization): 実線白矢印。継承。
- 実現 (realization): 点線矢印。interfaceの継承。
- 集約: 白ひし形。
- コンポジション: 黒ひし形。子が単体で存在できない場合。親と生存期間が同一の場合。
- 関連: 実線矢印。メソッド内インスタンスなど。
- 依存: 点線矢印。引数やローカル変数、返却値。
Git
差分ファイル抽出
情報源: gitで差分ファイルを抽出する #Git - Qiita。
git archiveとgit diffを組み合わせる。
git archive --format=zip --prefix=root/ HEAD `git diff --diff-filter=d --name-only HEAD^ HEAD` -o archive.zip
ただし、この方法はファイル数がARG_MAX以下の場合だけ。ファイル数が多い場合だめ。
git diff --name-onlyで一覧を出力させて、1個ずつcp -pで階層を維持してコピーするしかないかも?
例:
mkdir -p archive git diff --name-only new_base 44765_upgrade-base-version | xargs -i cp -p --parent "{}" archive/
マージコミット後のコミット追加
マージコミット後に次の開発作業を始めることが多い。が、直後の初回のコミットを追加したい場合困る。
git rebase -iにすると、コミットが残るから。編集はできるが、その直前にコミットの追加ができない。マージコミットは扱いが特殊で直接rebaseで編集できない。
しかたないので、該当コミットでブランチを作成して、コミット。その後、既存の修正ブランチをrebaseでそのコミットの後にくっつける。これでいける。
Fossil
外部依存を排除しており、CGIでも動作するという点が非常に良い。気になる。Phorgeの検討が不要になる。
Shell
ワイルドカード
ワイルドカードで.始まりのファイルをマッチさせたい。
以下ならマッチするが、ブレース展開 (brace expansion) はPOSIX shでは使えなかった気がする。
echo {.*,*}
cmd.exe
bitsadmin
Windowsでのファイルダウンロードコマンド
Windows 7以降ではbitsadminコマンドがあり、これがwget相当となる。
書式:
bitsadmin /transfer <job name> <URL> <output path>
<job name>と<output path>は必須なので注意する。
certutil
Windowsでのハッシュの確認に使える。
certutil -hashfile file
SHA1 ハッシュ (対象 C:\moconavi\windows\Moconavi\ext\chromium\moconavium.exe): e0da85b04b6970ac1f0c33db7a9ad607fdbd44eb CertUtil: -hashfile コマンドは正常に完了しました。
rlogin.cmd
コマンドキーの送信を自動化できる?
rem rlogin.cmd @Echo off Set SERVER=192.168.0.0 Set USERNAME= Set PASSWORD= Cmdkey /generic:TERMSRV/%SERVER% /user:%USERNAME% /pass:%PASSWORD% Start mstsc /v:%SERVER% Timeout 5 Cmdkey /delete:TERMSRV/%SERVER%
実行中プロセスのパスの確認
出典: Show EXE file path of running processes on the command-line in Windows - Super User。
wmic process get ProcessID,ExecutablePath wmic process where "name='mysqld.exe'" get ProcessID, ExecutablePath wmic process where "name='mysqld.exe'" get ProcessID, ExecutablePath /FORMAT:LIST
簡易編集モード/挿入モード
- 【Tips】Windows 10のコマンドプロンプトが意図せず止まってしまう問題を回避する方法 | ソフトアンテナ
- Windows command prompt freezing randomly - Super User
Windows 10のcmd.exeは [簡易編集モード] が有効になっており、コマンドプロンプトを左クリックすると、テキストの選択が始まる。テキスト選択中はコマンドの実行が止まる。長時間かかるコマンドの実行中に誤操作で止まると困るので、これは無効にしたほうがよい。
cmd.exeを起動-左上のアイコンをクリック-[規定値]/[プロパティ]-[オプション]-[□簡易編集モード] を選ぶ。
そのほか、 git log
のような制御が移るコマンドを実行してしばらくすると、操作できなくなる。
[□挿入モード] にすると回避できる模様。
Web
IP address
出典: 固定IPアドレスの取得方法 ~実は簡単!フリーランスの方も必見です~|VPN活用日記|トピックス|グローカルネットの快適VPN【公式】| 株式会社グローカルネット。
自宅サーバーを行う際、固定IPアドレスが必要になる。
取得方法がいくつかある。
- 契約しているプロバイダでオプションとして申し込む方法
- 固定IPアドレスに対応しているSIMを契約する方法
- VPNを利用した固定IPアドレスの提供会社を利用する方法
VPNの固定IPアドレスが安いらしい。ryoかsuwakoが解説していた気がする。
Authentication
認証方式がいくつかある。HTTPで定義される認証方式 (HTTP認証) が有名。
Basic認証
出典: Basic認証 - Wikipedia。
Authorization HTTPヘッダーにBasicのあとに [username:password] をBASE64でエンコードして送信する認証方式。
GET /private/index.html HTTP/1.1 Host: example.com Authorization: Basic cm9vdDpwYXNzd29yZA==
盗聴や改ざんが簡単だが、シンプルという利点がある。
Analytics
Tool
サイト分析用のツールがいくつかある (2023年ブログランキング!おすすめブログランキングサイト比較【一般人向け】)。
- SimilarWeb
- Ubersuggest
- ahrefs
- Googleキーワードプランナー
閲覧数取得
出典: GoogleAnalyticsで自サイトの人気記事ランキングを表示する方法 | アフィリエイトJAPAN。
- [行動]-[サイトコンテンツ]-[全てのページ]
- [表示する行数]=5000
- [エクスポート]=TSV
Security
DoS攻撃
いくつか対策方法がある。
サーバーログにIPアドレスが残るから、それで攻撃元の国を特定して、該当国を一括アクセス拒否。これが効果あるかもしれない。
攻撃元の国は途上国とかが多いだろうから。IPアドレスは簡単に変更できるが、国を変えるのはたいへんだろう。
Server
httpd
Apache HTTP Server
Access Control
出典: Access Control - Apache HTTP Server Version 2.4。
DoS攻撃対策などで重要な設定。
mod_authz_core/mod_authz_hostがコアモジュール。mod_rewriteも関係ある。
基本構文は以下。
Require host <address> Require ip <ip address>
1番目の形式はドメイン名。2番目はIPアドレス。部分マッチする。マッチしたもののアクセスを許可する。
Requireの直後にnotを指定してアクセス禁止にできる。こちらが重要。
Visual Studio Code
cscope
cscope用のプラグインが何個かある。
scope4codeのほうがいろいろできそうだが、うまく動作しなかった。使い方がよくわからない。
cscope-codeはシンプルだが動作した。こちらを当分使うことにする。
Macの場合、control-. sのように、control-.の後に、controlを話してsを押すと発動する。カーソル下のシンボルしか使えない感じなのがネック。まあいい。
Vim
VSCodedでVimのキー操作を使うためのプラグイン。これが一番人気。いや、Vimのエミューレーターは中途半端な感じだから使わないほうがいいかな。