1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
using System; using System.Collections.Generic; using System.Net; using System.Net.NetworkInformation; using System.Net.Sockets; List<IPAddress> GetIPAddresses() { var ipAddresses = new List<IPAddress>(); var interfaces = NetworkInterface.GetAllNetworkInterfaces(); foreach (var adapter in interfaces) { if (adapter.OperationalStatus == OperationalStatus.Up) { var properties = adapter.GetIPProperties(); foreach (var unicast in properties.UnicastAddresses) { switch (unicast.Address.AddressFamily) { case AddressFamily.InterNetwork: case AddressFamily.InterNetworkV6: ipAddresses.Add(unicast.Address); break; } } } } return ipAddresses; } |
[C#] ユーザ名の取得
1 2 3 4 5 |
using System; string userName = Environment.UserName; Console.WriteLine(userName); |
[C#] マシン名の取得
1 2 3 4 5 |
using System; string machineName = Environment.MachineName; Console.WriteLine(machineName); |
[Mac] ゴミ箱を強制的に空にする
ゴミ箱を空にしようとしたら、ゴミ箱に入っているファイルが使用中のため削除できないというメッセージが表示された。
何をしたかというと、外付けドライブを接続してTime Machineでバックアップを取っていたんだけど、机の上を片付けていたら誤ってトライブのケーブルを引き抜いてしまい、外付けドライブを内容をチェックしたら「日付.InProgress」といった作業途中と思しきファイルがあったので、手動でそれをゴミ箱に捨てたというわけ。
セーフリブートした状態でゴミ箱を空にしようとしても状況は変わらず。じゃあ、いっそのことGUI経由じゃなくてシェルからコマンドで消してやれと思ってターミナル開けて調べたら、ボリューム直下にある .Trash とか .Trashes というファイルがどうやらゴミ箱らしい。GUIでゴミ箱開けて表示されるのと同じ名前のファイルがあったので間違いなさそう。
一般ユーザで削除しようとしたらパーミッションが無いと叱られたので、sudo suでスーパーユーザになってrmコマンドで消せた。GUIからゴミ箱表示したら空っぽになっていた。
以上自分用の覚書。
[Laravel] HomesteadでPHPのバージョンを切り替える
Homesteadの便利なところは、同じ仮想マシンで複数バージョンのPHPがサポートされていること。ちなみにHomestead 8.0では、5.6、7.0、7.1、7.2、7.3がサポートされている (デフォルトは7.3)。
サイトごとのPHPバージョンの指定
php:ディレクティブで指定する。
1 2 3 4 |
sites: - map: homestead.test to: /home/vagrant/project1/public php: "7.1" |
CLIでのPHPバージョンの指定 (実行時)
実行時に特定のバージョンのPHPを指定する。
1 2 3 4 5 |
php5.6 artisan list php7.0 artisan list php7.1 artisan list php7.2 artisan list php7.3 artisan list |
CLIでのデフォルトのPHPバージョンの切り替え
以下のコマンドで行う。
1 2 3 4 5 |
php56 php70 php71 php72 php73 |
参考サイト
Laravel Homestead – Laravel – The PHP Framework For Web Artisans
https://laravel.com/docs/6.0/homestead#multiple-php-versions
[PHP] Carbonを使って曜日を日本語で表示する
曜日を日本語で表示したい。
1 2 |
Carbon::now()->formatLocalized('%m月%d日(%a)') "09月04日(Wed)" |
1 2 3 |
setlocale(LC_ALL, 'ja_JP.UTF-8'); Carbon::now()->formatLocalized('%m月%d日(%a)') "09月04日(水)" |
参考サイト
PHPの便利な日時操作ライブラリCarbonで曜日を日本語で表示する | A Small, Good Thing – blog
http://blog.omoon.org/20160309/1075
[PHP] ロケール情報を設定する
ロケール情報を設定する
1 |
setlocale(LC_ALL, 'ja_JP.UTF-8'); |
現在の設定を取得する
ゼロを指定すると、ロケール設定は適用されずに、単に現在の設定が返される。
1 2 |
$locale = setlocale(LC_ALL, 0); echo $locale; |
参考サイト
PHP: setlocale – Manual
https://www.php.net/manual/ja/function.setlocale.php
[Unix] 日本語ロケールを追加する
現在のロケールを確認する。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
$ locale LANG=en_US.UTF-8 LANGUAGE=en_US: LC_CTYPE="en_US.UTF-8" LC_NUMERIC="en_US.UTF-8" LC_TIME="en_US.UTF-8" LC_COLLATE="en_US.UTF-8" LC_MONETARY="en_US.UTF-8" LC_MESSAGES="en_US.UTF-8" LC_PAPER="en_US.UTF-8" LC_NAME="en_US.UTF-8" LC_ADDRESS="en_US.UTF-8" LC_TELEPHONE="en_US.UTF-8" LC_MEASUREMENT="en_US.UTF-8" LC_IDENTIFICATION="en_US.UTF-8" LC_ALL=en_US.UTF-8 |
システムがサポートしているロケールを一覧する。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
$ locale -a C C.UTF-8 en_AG en_AG.utf8 en_AU.utf8 en_BW.utf8 en_CA.utf8 en_DK.utf8 en_GB.utf8 en_HK.utf8 en_IE.utf8 en_IL en_IL.utf8 en_IN en_IN.utf8 en_NG en_NG.utf8 en_NZ.utf8 en_PH.utf8 en_SG.utf8 en_US.utf8 en_ZA.utf8 en_ZM en_ZM.utf8 en_ZW.utf8 POSIX |
日本語ロケールが無いので追加する (Ubuntu)
1 2 3 4 5 |
# apt-get install -y language-pack-ja # update-locale LANG=ja_JP.UTF-8 $ locale -a ... ja_JP.utf8 ←追加された |
参考サイト
ロケール(locale)まとめ – Qiita
https://qiita.com/aosho235/items/58e2e7acd5c2ee3641ff
Ubuntuで日本語ロケールの設定 – Qiita
https://qiita.com/kei2100/items/a912ec733f646f8c3938
[英語] false-positive
前エントリで書いたPhanだけど、公式ページの冒頭に以下のように書かれていた。
Phan is a static analyzer for PHP that prefers to minimize false-positives. Phan attempts to prove incorrectness rather than correctness.
ここで”false-positive”とはどういう意味なのか。
もともとは医学用語として使われていたらしい。以下のページの説明がわかりやすい。
False PositiveとFalse Negative – Qiita
https://qiita.com/steel_code/items/101c9d037d5e8c2b7876
たとえば、ある人がガンかどうかの検査をする場合
– 本当はガンの人はTrue Positive
– 本当はガンではない人はTrue Negative誤検知されたケース
– テストでガンと判定されたけど、実はガンじゃなかった=False Positive
– テストでガンと判定されなかったけど、実はガンだった=False Negative
そういうことなのね。IT業界での用例は以下ページ。
フォールスポジティブ (false positive)とは|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典
https://wa3.i-3-i.info/word15239.html
誤った判定 – 学校では教えてくれないバッドノウハウ英語 #13 – bkブログ
http://0xcc.net/blog/archives/000176.html
[PHP] Phanをセットアップする
PhanはPHPの静的解析ツール。
GitHub – phan/phan: Phan is a static analyzer for PHP. Phan prefers to avoid false-positives and attempts to prove incorrectness rather than correctness.
https://github.com/phan/phan
Phanのインストール
1 2 3 |
$ composer require phan/phan $ ./vendor/bin/phan The php-ast extension must be loaded in order for Phan to work. See https://github.com/phan/phan#getting-started for more details. Alternately, invoke Phan with the CLI option --allow-polyfill-parser (which is noticeably slower) |
php-ast extensionが無いと叱られたので、以下のページの説明に倣ってphp-astをインストールする。
GitHub – nikic/php-ast: Extension exposing PHP 7 abstract syntax tree
https://github.com/nikic/php-ast#installation
1 2 3 4 5 |
$ sudo pecl install ast $ sudo vi /etc/php/7.3/cli/php.ini extension=ast.so $ ./vendor/bin/phan -v Phan 2.2.3 |
Phanが動くようになったら設定ファイルを作って実行する。
参考サイト
Phanで静的解析 – Qiita
https://qiita.com/msmsny/items/46aaeda7e565cfc7ec48
Phan静的解析がもたらす大PHP型検査時代 – pixiv inside [archive]
https://devpixiv.hatenablog.com/entry/2016/11/11/202656