Windows Explorerで、ドットで始まるファイルを作成する方法
Chrome の拡張機能がセキュリティーエラーでインストールできない時の対応方法 (Mac編)
社内ツールとして、Chromeの拡張機能(Extension)を配布しているが、セキュリティ強化を目的としたChromeの仕様変更により、エラーでインストールできなくなった。
従来はポリシー(ExtensionInstallWhitelist や ExtensionInstallSources)で対応していたのだけど、Chrome 39辺りでもMac用Chromeで仕様変更あったみたいで、インストールできなくなった。それの対処方法。
次のような、「profile.mobileconfig」ファイルを用意する。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>PayloadIdentifier</key>
<string>com.yourname.Angrybird</string>
<key>PayloadRemovalDisallowed</key>
<false />
<key>PayloadScope</key>
<string>System</string>
<key>PayloadType</key>
<string>Configuration</string>
<key>PayloadUUID</key>
<string>bde4dcb5-d4bf-4943-b992-c30f82eb1468</string>
<key>PayloadOrganization</key>
<string>com.gloops</string>
<key>PayloadVersion</key>
<integer>1</integer>
<key>PayloadDisplayName</key>
<string>com.gloops</string>
<key>PayloadContent</key>
<array>
<dict>
<key>PayloadType</key>
<string>com.apple.ManagedClient.preferences</string>
<key>PayloadVersion</key>
<integer>1</integer>
<key>PayloadIdentifier</key>
<string>com.yourname.Angrybird.f13e3b90-6187-0132-2314-685b357e505d</string>
<key>PayloadUUID</key>
<string>f13e3b90-6187-0132-2314-685b357e505d</string>
<key>PayloadEnabled</key>
<true />
<key>PayloadDisplayName</key>
<string>Google Chrome</string>
<key>PayloadContent</key>
<dict>
<key>com.google.Chrome</key>
<dict>
<key>Forced</key>
<array>
<dict>
<key>mcx_preference_settings</key>
<dict>
<key>ExtensionInstallWhitelist</key>
<array>
<string>epkhkajflhigkpbcfcolaocpcgfikmah</string>
</array>
<key>ExtensionInstallSources</key>
<array>
<string>https://example.com*</string>
</array>
</dict>
</dict>
</array>
</dict>
</dict>
</dict>
</array>
</dict>
</plist>
このファイルを、sudo /usr/bin/profiles -I -F ./profile.mobileconfig でインストールしてあげれば、Chromeにポリシーが読み込まれて幸せになれる。
Windows で VPN接続をするときに、「Interprocess Communication Depot Error」が出た時の対処方法
Cisco ANyConnectの動作が不安定だったので、アンインストールして再インストール!ってすると、まれに、Interprocess Communication Depot Errorが出てしまい、インストール出来ないことがあります。
The vpn client agent was unable to create the interprocess communication depot.
手順1
- スタート→コントロールパネル→ネットワークの状態とタスクの表示をクリックする
- アダプターの設定の変更をクリックする
- 共有接続を選択し、プロパティを表示する
- 共有タブを選択
- ネットワークのほかのユーザーに、このコンピューターのインターネット接続をとおしての接続を許可するのチェックボックスのチェックを外し、OKボタンをクリックします。
手順2
TinkPad X1 で Windows 10 でスリープモードにした時に再起動したり、ブルースクリーンになる件の対応
原因は、複数あるので人によっては解決方法が違うのでご注意。
ブルースクリーンが発生したら、c:\windows\Minidump にダンプファイルが出力されます。
Windbg で開いて、「!analyze -v」を実行。結果が出力される。
DRIVER_POWER_STATE_FAILURE (9f)
A driver has failed to complete a power IRP within a specific time.
Arguments:
Arg1: 0000000000000003, A device object has been blocking an Irp for too long a time
Arg2: ffffe00127fa1750, Physical Device Object of the stack
Arg3: ffffd001b5ab1990, nt!TRIAGE_9F_POWER on Win7 and higher, otherwise the Functional Device Object of the stack
Arg4: ffffe0012faa9680, The blocked IRP
「!irp ffffe0012faa9680」を実行。
2: kd> !irp ffffe0012faa9680
Irp is active with 4 stacks 2 is current (= 0xffffe0012faa9798)
No Mdl: No System Buffer: Thread 00000000: Irp stack trace.
cmd flg cl Device File Completion-Context
[N/A(0), N/A(0)]
0 0 00000000 00000000 00000000-00000000
Args: 00000000 00000000 00000000 00000000
>[IRP_MJ_POWER(16), IRP_MN_SET_POWER(2)]
0 0 ffffe0012ace7050 00000000 00000000-00000000
Unable to load image \SystemRoot\System32\drivers\Netwtw02.sys, Win32 error 0n2
*** WARNING: Unable to verify timestamp for Netwtw02.sys
*** ERROR: Module load completed but symbols could not be loaded for Netwtw02.sys
\Driver\Netwtw02
Args: 00014400 00000001 00000004 00000002
[IRP_MJ_POWER(16), IRP_MN_SET_POWER(2)]
0 e1 ffffe0012ad4a840 00000000 fffff80240f95d74-ffffe0012f549010 Success Error Cancel pending
\Driver\vwifibus nt!PopRequestCompletion
Args: 00014400 00000001 00000004 00000002
[N/A(0), N/A(0)]
0 0 00000000 00000000 00000000-ffffe0012f549010Args: 00000000 00000000 00000000 00000000
「Netwtw02」が問題っぽい。
デバイスマネージャーで、「Intel Dual Band Wireless-N 7265」を確認して、バージョンを18.21以降にする。18.21以下だったので、ドライバーの更新でアップデートした。
これで様子見。
TinkPad X1 で Windows 10 でスリープモードにした時に再起動したり、ブルースクリーンになる件の対応は蒼の王座・裏口で公開された投稿です。
DELL XPS 13 に Windows 10 を入れた時の不明なデバイスの対応
DELL XPS 13 に Windows 10 をインストールした後、デバイスマネージャーで不明なデバイスとなっているものがありました。
- ACPI\INT33A0
- *INT33A0
- ACPI\VEN_INT&DEV_33A0
これは、INTEL Smart Connectに関連したものだそうです。
INTELのサイトからダウンロードしたら無事、不明なデバイスが解消されました。
DELL XPS 13 に Windows 10 を入れた時の不明なデバイスの対応は蒼の王座・裏口で公開された投稿です。
Chrome でサイトが文字化けする場合の対応
Google Chrome を使用していて、特にWindows 7 から Windows 10 にアップグレードした際に、一部サイトの文字が□(四角とも豆腐とも世間的には呼ばれている?)になる事象が発生することがあります。
検索すると、「Windowsのシステムフォントを変更すると直る」、「拡張機能をインストールしたうえで、文字設定を変更すると直る」、「Direct Writeをオフにすると直る」との説明が見つかります。
- http://enlosph.hatenablog.com/entry/2014/10/18/142410
- http://blog.oyasu.info/2015/04/17/4174/(違う話題だけど、手順を参考)
- http://sodicom.jp/blog/2015/03/24/pc/618/
これで直らないケースがありました。
その場合は、Chromeをクリーンアンインストールしてから再度インストールしたら、無事に直りました。ちゃんちゃん。
Chrome でサイトが文字化けする場合の対応は蒼の王座・裏口で公開された投稿です。
勉強会開催記録
2016/2/20(土)にTokyo ComCamp 2016 by MVPsを開催したので、その開催記録をつけておきたいと思います。
申込者と参加者
申込者数
- 一般:285人(キャンセル後、183人)
- 懇親会付き:120人(キャンセル後、88人)
- 総登録数:413人(キャンセル後、271人)
開催4日前には340人いた登録者が前日には300人、当日には271人にまで減りました。
参加者数
- 一般:120人
- 懇親会付き:58人
- 総参加者数:178人
歩留まり7~8割と思っていましたが、直前登録者数の6割。最終結果までにキャンセル処理していただいた結果からは7割となりました。
これは若干、不運も重なってさんざんな結果となったけど、天気はどうしようも無いと思う。雨は雨でも、かなりの荒天予想だったので、家から出る心理的抵抗が高まりましたね。
雨の影響で1~2割、70人程度の出足に影響したようです。
懇親会費用
今回は、日本マイクロソフト株式会社にスポンサードしていただいていたので、懇親会の赤は補填していただきました。感謝感謝。
100人参加の8割換算で80人分を手配していたのですが、実数58人にはさすがに笑えないですね。懇親会手配こわっ。ビアハッシュでよかった。
集客サイトのデータ
運営
事前準備段階
リーダーとして自分ともう1人の2人と、スポンサーの日本マイクロソフトの人2人で準備を進めました。
配信関連は、さらに別の方1名と日本マイクロソフトの人1名で進めました。
前日の設営では、会場設営は会場企業の人事総務部10名に手伝っていただき、1時間半程度かけて実施。配信準備は、3人で実施しました。
当日運営
- 4セッション進行だったので、4つのお部屋に1人ずつルームオーナー
- 会場ビルの入り口がセキュリティ解除できなかったのでお迎え担当1人
- 配信管理2人
- 受付2人
の体制で運営しました。総勢9人と見せかけて、一部兼任で8人で実施しました。
当日に4人リクルートするという無茶は、普段からイベント運営されている方が快く協力していただいたのが大きかったです。
顔見知りがすくないイベントを運営する場合は、事前にリクルート必須です。
Windows で Ubuntu バイナリ(bash)が動作することの概略
マイクロソフトのハンセルマンのBlog:
Developers can run Bash Shell and user-mode Ubuntu Linux binaries on Windows 10
Ubuntuの中の人のBlog:
Ubuntu on Windows -- The Ubuntu Userspace for Windows Developers
この2つのBlogで実態が明確になったのでまとめてみます。
使用可能になるOS
まもなくリリースされる予定のWindows 10 ”Anniversary” アップデートで使用可能になります。このアップデートで、開発者向けの機能として追加されます。
機能の追加で、Windowsの設定で開発者モードを有効にすると使用できるようになります。これでネイティブなユーザー モードのLinuxシェルが使えるようになり、bashを起動するとWindowsストアを介してCanonicalからWindows上のUbuntuを入手するように促されます。
可能になること
Windows 10 の cmd.exe でUbuntu の User Space と Shell が使用できるようになります。
- Ubuntu の /bin/bash が動作します。
- apt, ssh, rsync, find, grep, awk, sed, sort, xargs, md5sum, gpg, curl, wget,apache, mysql, python, perl, ruby, php, gcc, tar, vim, emacs, diff, patch...みたいなコマンドが全部使えます。
- SSH
- apt-get (でRedisとかも動かせる)
Windows自体の上で動作する本物のネイティブなBash Linuxバイナリで、高速かつ軽量で、本当のバイナリです。awk、sed、grep、viなど、Linuxツールのすべてを備えた、Windows上の本物のUbuntuイメージです。
仕組み
マイクロソフトとUbuntuが本気になって作りました。
リアルタイムに、Linux の syscalls を Windows の syscalls に変換し処理します。
仮想マシン(ハイパーバイザー層)でも、コンテナー(Docker)でもなく、CygwinのようなWindows用にリコンパイルしたものでもなく、Ubuntuのバイナリがそのままネイティブに動作します。(Ubuntuのバイナリと同じチェックサムのプログラムがそのままWindowsで動作する)
現時点ではオープンソースでは無いけど、マイクロソフトが、「Windows Subsystem for Linux」と呼称する仕組みです。
Ubuntuさんがしたこと
Ubuntu root ファイルシステムをWindows アプリケーションパッケージにしてWindows Storeで提供します。
bashシェルから、/mnt でWindows のファイルシステム(Cドライブ、Dドライブなど)にもアクセスできます。(/mnt/c….)
追記:3/31 8:20
Running Bash on Ubuntu on Windows!で情報が追加されたので追記。
いろんなLinuxのバイナリを動くのを確認しているけど、topはまだ動作しない。MySQLも問題があるけど、多くのLinuxツールが動作することをTestingで確認してるらしい。
gccも動くよ。
rackup
apt-getでgitインストールしとくか。
9:00 追記
bashでviってやったらタスクマネジャーでプロセスとして見える。NTカーネルがフックして、プロセス名を取得する。
IPは分かれて持たず共有するし、ローカルポートもbashのほうとWindowsのほうで共有するよ。
bashからnotepad.exeが叩けたりはしないよ。
ファイルシステムは相互にみれる?
bashから、Cドライブとか見えるし、bashの中でrootとかにあるファイルは、Explorerで参照できる。シームレス。
性能?気になるよね。sysbenchかけてみよう。問題ない値じゃないかい?
これは開発者用の機能ですよ。
Windows で Ubuntu バイナリ(bash)が動作することの概略は蒼の王座・裏口で公開された投稿です。
array と json_encode のメモ
次の2つのJSONがある。
{"0":{"a":1,"b":2},"1":{"a":1,"b":2},"3":{"a":1,"b":2}}
[{"a":1,"b":2},{"a":1,"b":2},{"a":1,"b":2}]
後者を期待していて、前者に遭遇して困ったのでメモ。
PHPでarrayから要素を削除を参考に、unsetで要素を削除してjson_encodeをしたら前者のJSONが生成されて困った。
unsetでarray要素で歯抜けができた状態で、json_encodeをするとJSONが配列になり、歯抜けを解消すると、オブジェクトになる。
$array = array();
って配列があって、その配列にインスタンスを格納してあるとして、次の処理をする。
json_encode($array);
unset($array[2]);
json_encode($array);
array_values($array);
json_encode($array);
と3つJSONを出力すると、次のようになる。
[{"a":1,"b":2},{"a":1,"b":2},{"a":1,"b":2},{"a":1,"b":2}]
{"0":{"a":1,"b":2},"1":{"a":1,"b":2},"3":{"a":1,"b":2}}
[{"a":1,"b":2},{"a":1,"b":2},{"a":1,"b":2}]
歯抜けの配列と、連番の配列だとjson_encodeの結果に差がでることになかなか気づかなくて時間を無駄にした。
array と json_encode のメモは蒼の王座・裏口で公開された投稿です。
Symantec Endpoint Protection のクライアントパッケージをアップデートする方法
Symantec Endpoint Protection Manager で、インストールパッケージをエクスポートできます。初回インストール時に、自動的にパッケージが生成されています。
アップデートが反映された最新バージョンのインストールパッケージを作成する方法がわからず苦労したのでメモしておく。
- SymantecのFileConnectにアクセスする。
- シリアル番号を入力し、「シリアル番号送信」ボタンをクリックする
- 「Sumantec Endpoint Protection 12.1 - Japanese」を選択する
- 製品一覧から「Symantec Endpoint Protection_*_Full_installation_JP.exe」を選択し、exeファイルをダウンロードする。
- ダウンロードしたEXEファイルを実行すると、自動解凍される。解凍後起動するダイアログは閉じてOK。
- 自動解凍した「\Symantec_Endpoint_Protection_12.1.6_MP4_Full_Installation_JP\SEPM\Packages」を表示する。その中にあるファイルを使用してパッケージを登録する。
- Symantec Endpoint Protection Managerを起動し、「管理」タブ→「インストールパッケージ」を選択する。
- 画面で右クリックして、コンテキストメニューから「追加」を選択する。
- パッケージ名、パッケージファイルを選択する。Windowsの64bit用は、SAV64.infoのファイル。
- 読み込みが完了したら、このダイアログが表示される。
これで無事、インストールパケージが最新にできました。ここまで到達するのに時間かかった…。もう少しわかりやすいマニュアルを用意してください!Symantecさん。
Symantec Endpoint Protection のクライアントパッケージをアップデートする方法は蒼の王座・裏口で公開された投稿です。
Windows の共通フォルダーの変数
正式名称がよくわからないのですが、たぶん次のどれか。
- Common folder variables
- Recognized Environment Variables
- 認識される環境変数
- 共通フォルダー変数
- システム環境変数
- 既定のシステム変数
https://www.microsoft.com/security/portal/mmpc/shared/variables.aspx
サイトから参照。
%APPDATA%
C:\Users\ <user name>\AppData\Roaming
%CommonProgramFiles%
C:\Program Files\Common Files
%HOMEPATH%
\Users\ <user name>
%LOCALAPPDATA%
C:\Users\ <user name>\AppData\Local
%ProgramData%
C:\ProgramData
%ProgramFiles%
C:\Program Files or C:\Program Files (x86)
%PUBLIC%
C:\Users\Public
$recycle.bin
Windows recycle bin (hidden location)
%SystemDrive%
C:
%SystemRoot%
C:\Windows
%TEMP%
C:\Users\ <user name>\AppData\Local\Temp
スタートフォルダー
C:\Users\ <user name>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
Windows の共通フォルダーの変数は蒼の王座・裏口で公開された投稿です。
Excel2016 にアップグレードしたときの注意点
Office 365 ProPlus で、Excel 2013 を使用していると、最近次の画像のように、「新しいOfficeをインストールしましょう」と表示されて、「Officeの更新」ボタンが表示されます。
このボタンをクリックすると、Excel 2016にアップグレードできるのですが、一部問題が発生します。
言語の既定が変わってしまい、英語(米国)となってしまうようです。
この状態で、一部文字コードでCSVをExcelで開いたときに、それまで問題なかったのに急に文字化けする事象に遭遇してしまいます。
おそらく、最新版へのインストールを促されるのですが、その際に使用されるインストーラーがen-usになっているのかもしれません。OSのロケール見て、ちゃんとja-JPのインストーラーが降ってくると良いですね。
ちなみに、言語の既定を日本語に変更すれば問題ないのですが、注意点が一個。
Excelファイルなどを開いてる状態でインストールしないことを強く推奨します。
開いているときに言語設定を変更すると、開いているファイルにも影響が出ます。
例えば、vlookup文法の中にある「'(シングルクォート)」が欠落してしまい、そのままの状態で保存してしまうと次回起動時に不正とみなされ修復ウィザードが動作してしまい数式が飛んでしまいます。悲しい…。
Excel2016 にアップグレードしたときの注意点は蒼の王座・裏口で公開された投稿です。
Symantec Endpoint Protection とHyper-V仮想マシンで必要な設定
「不一致IPトラフィックの設定」の「アプリケーショントラフィックのみを許可する」にチェックを入れたらいいらしい。
サーバーでポリシー制御してるので、Manager を開いて、クライアントを選択して、ポリシータブを選択。
場所固有のポリシーで、場所固有の設定で、クライアントユーザーインターフェース制御の設定を選択。
混合制御を選択し、カスタマイズボタンを選択する。
サーバーで制御に選択する。
クライアントユーザーインターフェースの設定タブを選択して、不一致IPトラフィックの設定を設定する。
Symantec Endpoint Protection とHyper-V仮想マシンで必要な設定は蒼の王座・裏口で公開された投稿です。
re:dashのalertをSlackに通知する
re:dashでalertを設定し、その通知先としてSlackを設定することができます。
必要なもの
- re:dashのadmin権限
(これが無いと通知先設定ができないので、ない場合は管理者に依頼)
alert先の設定
1. Setttingページで、New Alert Destination ボタンをクリックします。
2. ここからSlackのincoming webhookを作成します。作成したエンドポイントのURLをre:dashに設定します。
alert先に使用する
ここまで準備が終われば、alertの通知先に表示されます。
re:dashのalertをSlackに通知するは蒼の王座・裏口で公開された投稿です。
Docker コンテナー起動エラー:driver failed programming external connectivity
Docker で次のようなエラーが出てコンテナーが起動できなくなってしまった時の対処方法。
ERROR: for lenet-lb Cannot start service lb: driver failed programming external connectivity on endpoint lenet-lb (4d179b246b952fcf997b24b02c9027d0277c60feb9a3b65fef13af9c01c6a635): Error starting userland proxy: mkdir /port/tcp:0.0.0.0:443:tcp:172.18.0.7:443: file exists ERROR: for lb Cannot start service lb: driver failed programming external connectivity on endpoint lenet-lb (4d179b246b952fcf997b24b02c9027d0277c60feb9a3b65fef13af9c01c6a635): Error starting userland proxy: mkdir /port/tcp:0.0.0.0:443:tcp:172.18.0.7:443: file exists ERROR: Encountered errors while bringing up the project.
結論としては、タスクバーにいるクジラマーク(Docker)のアイコンを右クリックして、「Quit Docker」でDockerを終了させたら復帰できた。ちなみに僕の時には、Mac OSの再起動では、エラーが解消しなかった。
困ったら、OSの再起動ではなく、DockerをQuitさせる。
Docker コンテナー起動エラー:driver failed programming external connectivityは蒼の王座・裏口で公開された投稿です。
webpack のビルド性能を95%改善した方法(Boxの事例)
Box のエンジニアブログに「How we improved webpack build performance by 95%」という記事が投稿されました。
Box では、それまで3時間21分かかっていたビルド時間を9分に短縮させました。
- シングルCPU
- babel-loader でキャッシュを有効にして26%の性能改善
- キャッシュを有効にして、 uglifyjs-webpack-plugin v1 で並列処理をして45%の性能改善
- webpack.config.js から設定一覧をエクスポートしないようにして28%の性能改善
- 10CPU
- node.js Child Process API を使用して67%の性能改善
ビルドマシンにメモリ制限がある場合、webpack.config.js で設定一覧をエクスポートしない
Webpackはwebpack.config.js から複数の設定をarrayとしてエクスポートできます。
同時に25言語の bundle をビルドするのに、一つのロケールにつき1つで25設定のarrayをエクスポートするのに、この機能にメリットを感じていました。
小さな設定のみの場合はとても便利な機能なのですが、boxの場合は、ビルドプロセスにメモリと時間を非常に使います。
初期設定で、 –max_old_space_size (memory limit) のnodeプロセスでwebpackを実行するのに4GBにしていましたが、倍の8GBにしたら性能が50%改善し、ビルド時間が3.35時間から1.7時間に減りました。
同じメモリ制限では、各設定でwebpackを実行するように設定を変更すると、同時に複数の設定を処理する場合と比較して、パフォーマンスが約28%向上しました。
babel-loader でキャッシュを有効にする
babel-loader キャッシュは、cacheDirectoryオプションで簡単に有効にできます。
loader: 'babel-loader?cacheDirectory'
デフォルトでは、node_modules/.cache/babel-loaderに、babel-loaderキャッシュ結果が格納されます。
babel-loader キャッシュを有効にした後、ビルド性能が26%改善したました。
新しい uglifyjs-webpack-plugin v1 は大きな違いをもたらします
すでにwebpack 3で提供されている UglifyJSプラグイン(webpack.optimize.UglifyJsPlugin) を使用しているかもしれません。
新しいuglifyjs-webpack-plugin v1を使用して、 UglifyJS v3 で使用してwebpack 4で計画されています。
新しい機能は、複数プロセスで並列処理に対応し、キャッシュを活用しビルド性能を45%改善します。
現時点で、webpack 3で、 uglifyjs-webpack-plugin v1 を使用するためには、
- devDependenciesに、「”uglifyjs-webpack-plugin”: “1.0.1”」を追加する
- webpackから「-p」フラグを消し、「uglifyjs-webpack-plugin v0.4.6」が呼ばれないようにする
キャッシュと並列オプションをプラグインに追加します。
new UglifyJsPlugin({ cache: true, parallel: true })
マルチコアビルドのメリット
ビルドマシンが複数CPUを持っている場合、 node.js Cluster と Child Process API 、または worcker-fram を使用することでwebpackビルドにメリットがあります。並列に処理される9つのWebpack構成を有効にすることで、25の構成すべてをビルド性能が
67%改善しました。
webpack のビルド性能を95%改善した方法(Boxの事例)は蒼の王座・裏口で公開された投稿です。
Sequel Pro の動作が重くなった場合の解消方法
Sequel Pro が重くなったり、プチフリーズしたり、何か操作するたびにMacのカーソルがくるくるして、操作が快適にできないという問題が発生することがあります。
原因の一つとして、Sequel Pro は、「クエリの履歴」機能を持っており、実行したクエリを記録保持しています。
最近データの移行で手抜きをして数百万行のデータをSQL文としてコピーして、そのクエリを実行するということをしました。
結果、その数百万行のinsert文を読み込むので、Sequel Pro が非常に処理が遅くなるという事象につながりました。
「クエリの履歴」→「共用の履歴を削除」をクリックして履歴をクリアしたら、先ほどまでの処理遅さが嘘のように爆速快適になりました。
// Sequel Pro の削除、インストールとかをしたけど、しっかり消せてなくて、そのあたりの記録が残り続けていて解決しなかったという|ω・`)チラ
Sequel Pro の動作が重くなった場合の解消方法は蒼の王座・裏口で公開された投稿です。
xdebug でリモートデバッグをするためのメモ
webdevops/php-nginx-dev を使用してDockerコンテナーで動かしたPHPをリモートデバッグできるようにするまでの過程。
- webdevops/php-nginx-dev:7.2がdocker hub にpushされていない。でもGithub上にはDockerfileが作成されている。
仕方ないのでgit clone して、docker buildして、docker pushして、それを利用することにした。 - XDEBUG_REMOTE_CONNECT_BACKが有効になっていてphpstormと接続されない。
Dockerfileで、「XDEBUG_REMOTE_CONNECT_BACK=0」として解決。 - 悩んだらログを出してみる。php.iniに「xdebug.remote_log=”/tmp/xdebug_log”」を追記してログ確認
- ポートがリッスンしているか確認する。「lsof -n -P -i :10000」。ポートは利用しているものに変更。デフォルトは9000
- 設定を確認する。「php –info|grep debug」
- xdebugがインストールされている確認する。「php -v」。
インストールされていたら、「with Xdebug v2.6.0, Copyright (c) 2002-2018, by Derick Rethans」との表記がある。 - ブレイクポイントが止まらない時は、ファイルマッピングできていないか、誤っている可能性がある。
- webdevops/php-nginx-dev:7.2がdocker hub にpushされていない。でもGithub上にはDockerfileが作成されている。
xdebug でリモートデバッグをするためのメモは蒼の王座・裏口で公開された投稿です。
個人的メモ
技術資料
- Microsoft Azure 全体価値訴求資料 v3.0
- Azureの全体像やいろんなサービスを網羅的に把握するのに便利な資料。MSの人が更新
- Windows Command-Line: Inside the Windows Console
- Windowsコンソールとコマンドの内部仕組みについて説明してます
動画
- TechDays 2017 – Bart de Smet – Writing High Performance Code in .NET
- Cortana周りでの大規模サービス(1000台規模でクエリを受け付けてたそーだ)での性能系のトラブル事例を色々具体的に出してくれてる。
- Windows Performance Analyzer
- WPA の解説動画がでてた。高負荷系の調査はこれ使うと一発なので、オススメ
- Azure の Log Analytics で使用する分析クエリKOLの入門動画
- Kusto Query Language を1時間ぐらいで8割ぐらい理解できるという入門講座
書籍
- Windows Performance Analysis Field Guide by Clint Huffman
- Windows のパフォーマンスに関しては、この本が非常に良いらしい
- Amazon Web Services負荷試験入門
- 意義のある負荷試験をするための手順を丁寧に解説した良書。AWSて書いてるけどAWS関係なくお勧め
JIRAのissue一覧をExcelやCSV形式でダウンロードする方法
JIRAでissue一覧をダウンロードしようとして結構悩んでたどり着いたのでメモしておく。
1.JIRAにアクセスして、プロジェクトかボードを選択して、サイドメニューから「課題とフィルター」を選択します。
2.右上にある「高度な検索」リンクをクリックします。
3.右上にあるアイコンをクリックすると無事にダウンロードするためのメニューが表示されます。(わっかりにくー!
JIRAのissue一覧をExcelやCSV形式でダウンロードする方法は蒼の王座・裏口で公開された投稿です。