スポンサーリンク

2016年12月28日水曜日

npm または git コマンドで self signed certificate in certificate chain というエラーが出る場合の対処

 プロキシの問題だったり SSL 証明書の問題だったりで、npm や git コマンドが以下のエラーを出力する場合の対処方法。

Error: self signed certificate in certificate chain

 npm の場合は以下。

 npm set strict-ssl false

 git の場合は以下。

 git config --global http.sslVerify false

 Apache Cordova for Visual Studio とかでビルドしようとしたときに、npm と git が各種プラグインをダウンロードとかクローンするときに上記のエラーを吐いてました。
 プロキシを指す必要がある場合は以下も実行。

 npm の場合は以下。

npm config set http-proxy http://xxx.xxx.xxx.xxx:8080/
npm config set https-proxy http://xxx.xxx.xxx.xxx:8080/

 git の場合は以下。

git config --global http.proxy http://xxx.xxx.xxx.xxx:8080/
git config --global https.proxy http://xxx.xxx.xxx.xxx:8080/


 会社のネットワーク環境が劇的に変わってビルドできなくなった。
 プロキシとかめんどくさい、いろいろビルドできなくなったりしてる。

2016年10月22日土曜日

Visual Studio 2015 で Ionic 2 を触ってみた

 Visual Studio 2015 Community Update 3 で Apache Cordova と Ionic 2 を使っていろいろやってみる、チュートリアル的なものを始めました。

 意外と情報が少ないので、結局は自分への備忘録。

 今仕事がかなり忙しいので、どこまで書いていけるか……。

2016年7月12日火曜日

SQLite でネットワーク上のファイルにアクセスする方法

 ASP.NET MVC で Web アプリケーションを作成し、IIS 8 にデプロイするという環境。
 アプリケーションでデータベースには SQLite を使用。ちなみに EntityFramework(Database First) で使ってます。
 なので、接続文字列とかは Web.config に記述される。 

 ここで Web サーバが 2 台構成で運用されることになっており、SQLite でローカルファイルにデータを保存していると、ロードバランサーで冗長化したときにデータの不整合が起こる。
 というわけで、どこかにある共有可能なサーバに SQLite データベースファイルを保存することになったわけだけど、IIS において、デフォルトの設定ではネットワーク上の別のサーバにあるファイルにアクセスできない。

 サーバ辺りの設定と Web.config の記述でちょっとハマッたのでメモ。

2016年7月4日月曜日

Application.Quit でフリーズする場合の対処

 Windows アプリ感覚で作ってて最初ハマッたのでメモ。

 Application.Quit メソッドは MonoBehavior を継承したクラスの Update メソッドの中で呼ばないと駄目。

 uGUI でボタンを貼り付けて、その On Click でアタッチしたメソッドを呼ぶようにして、その中で Application.Quit を実行するとフリーズする。
 フラグ管理するなり Update メソッドでボタンのクリックを検知するなりして、Update メソッドの中で Application.Quit するべし。

 勉強したての頃にハマッたやつ。

2016/07/21 追記
 必ずしも上記の通りではない、らしい。
 ずっと Update メソッドなりでやってたけど……ちょっと調査中。

2016年5月18日水曜日

HtmlHelper で Enum 型の値に設定した DisplayAttribute の名称を取得する

 ASP.NET MVC での話。
 DisplayAttribute によってフィールドに表示名が指定された列挙型の値を、View(Razor) で表示しようとしても表示されない。
 HtmlHelper.DisplayFor メソッドを使用しても列挙値のフィールド名が表示されるだけで DisplayAttribute で指定した表示名を引っ張ってくれない。

 いろいろ調べて、HtmlHelper の拡張メソッドを自作することで解決したのでメモ。
 以下、前振りから。

2016年5月10日火曜日

Oracle のデータベース作成時にリスナーを介したデータベースの接続に失敗した場合の対処

 とある開発検証環境を構築しようと Windows 7 に Oracle 11gR2 をインストールしたときのこと。
 Oracle 自体のインストールは正常に完了して、いざデータベースを作成してみると以下のようなエラーが発生。

リスナーを介したデータベースの接続に失敗しました。エラーを修正し、EM Configuration Assistant を再度実行してください。

 それに続いて考えられる原因が 6 つほど続く。
 リスナーのポートが正しくないよ、とか。リスナーが起動してないよ、とか。
 今回はその中でも 3 番目の項目。

3) データベース・サービス AWDS がリスナーに登録されていません。データベース・サービスを登録してください。

に該当した場合の対処をメモ。
 これに該当するかどうかは lsnrctl status コマンドを実行して、その中に作成したデータベースのインスタンス名があるかどうかで確認可能。


ちゃんとリスナーに登録されていれば、オレンジで囲んだ場所に作成したデータベースのインスタンス名が表示されるはず。
 その他の理由で失敗した場合に関しては、今回は省略。調べてません。

2016年4月6日水曜日

PostgreSQL による VACUUM とデータベース再構築

 年度が切り替わるこの時期、今所属している部署は非常に忙しい。
 準備も含めてドタバタしてて、ブログを更新する余裕がなかった。

 標題の件。
 特にあーだこーだ説明するものは全くなくて。

 ただ単純に分かったことをメモ。

 データベースを再構築すると不要行は削除される。VACUUM と同じ効果が見込めるのかな?

$ pg_dumpall -U postgres -d testdb > testdb.dmp
$ dropdb testdb
$ createdb testdb
$ psql -U postgres -d testdb < testdb.dmp

 データベース再構築前後で以下のクエリ実行結果を比較。

testdb=> select * from pg_stat_all_tables order by n_dead_tup desc;

 システム系のテーブルに変化はなかったけど、testdb 内のテーブルに関しては軒並み n_dead_tup(不要行)が 0 になっていた。

2016年2月18日木曜日

C ドライブの不要ファイルの削除

 仕事をしていて 111GB ある HDD の空き容量が約 700MB!
 ディスククリーンアップをしても微々たるもの、そもそもドキュメント類や作業ファイル類は D ドライブだし、無心で削除もしくは移動できるファイルはもうない。さてどうしよう。

 ということで、いろいろ調べた結果とりあえず 15GB 近く空けることができたので今後のためにもメモ。

 調査方法は以下の感じ。
  1. DiskAnalyzer というソフトでどこに大きなファイルまたはフォルダがあるかを確認
  2. それを削除していいかどうか Google 先生に聞く
 その中でも僕が行ったものをメモメモ。

 この記事を見て不要ファイルを削除する方は自己責任で!

2016年2月5日金曜日

C 言語でテキストファイルの内容を文字列配列で保持する

 久しぶりに C 言語のお話。

 テキストファイルを読み込んで、1 行の文字列を 1 つの要素とする文字列配列を作りたいとする。
 いろいろ調べたけど、どの例もあらかじめ配列を用意しているものだった。

char lines[10][10];

 とか。
 これを malloc とか realloc とか、はたまた memcopy とか memmove とか使って動的にメモリを割り当て、必要最小限の文字列配列を生成している例は見つからなかった。
 需要があるかどうかはともかく、いつか必要になりそうな気がするのでメモ。

2016年1月29日金曜日

pgAdmin III でバックアップ・リストアのメニューが表示されない

 Linux に pgAdmin III をインストールしてデータベースを作成。いざデータをリストアして開発環境を整えよう!と対象のデータベースを右クリックしてみたとき。


 バックアップとリストアのメニューがない!!
 Windows で pgAdmin III を起動したときは以下のように出るのに、Linux だと出ない。


 Windows 版だけ?と思ったけど別の Linux 環境でも表示されていたことを思い出す。
 この対処方法を Google 先生に聞いたけど教えてもらえなかったので、備忘録としてメモり。

2016年1月27日水曜日

vmnetcfg.exe 以外でポートフォワーディングを行う方法

 VMWare vSphere PowerCLI をインストールしたからか、vmnetcfg.exe を実行すると何かがないと出て起動できなくなった。
 VMWare Player を再インストールもしくは修復すれば直る気がするけど、今回必要になったタイミングでそれらをする時間的余裕がなかった。
 とりあえず vmnetcfg.exe でやりたいことがどんな手段でもいいので実現できればいいわけで、今回だと、ホストに特定のポートでアクセスされたときにゲストにフォワードできればよかった。
 というわけで、Windows の標準機能を使ってポートフォワードを設定しました。

C:\> netsh interface portproxy add v4tov4 listenport=[ホストで待ち受けるポート] listenaddress=[ホストのアドレス] connectport=[フォワード先のポート] connectaddress=[フォワード先のアドレス]

 確認は以下のコマンドで。

C:\> netsh interface portproxy show all

 今回はゲスト OS で Oracle が動いていて、ホストに SQL*Plus でアクセスされたときにゲスト OS 上の Oracle を見せたかった。
 Oracle が待ち受けるポートはデフォルトのままで 1521 だったので、以下のコマンドを実行。アドレスとかは読み替えておくんなまし。

C:\> netsh inteface portproxy add v4tov4 listenport=1521 listenaddress=192.168.1.100 connectport=1521 connectaddress=192.168.200.100

2016年1月21日木曜日

Firefox で sec_error_ca_cert_invalid が出たけどどうしても接続したい場合の対処

 firefox で SSL が使用されたサイトにアクセスするとき、つまりは https でアクセスするときに以下のような画面が出て表示されないことがある。



 SSL するのに証明書が無効だよ!と言われているわけですが、そんなの関係なくどうしても接続したい!という場合の対処。
 Google Chrome とかだと詳細設定ってリンクがあってそこから頑張れば接続できるけど、firefox の場合は設定を変更しないと駄目。

 というわけで、その設定変更の仕方をメモ。

2016年1月18日月曜日

void 的オリジナルカレーの作り方

 void 的オリジナルカレーの作り方。意味不明。

 趣味、というか嫁さんに楽をしてもらうために、日曜日に手が空いていればカレーを作るようにしています。せっかく作るのだから凝ってみよう、オリジナルカレーを作ってみよう!ということで試行錯誤していました。
 そして昨日、とりあえず市販のルウを使わずに、ある程度納得?のいくものが作れたので忘れないようにメモ。

2016年1月8日金曜日

Oracle のリスナーログの場所

 lsnrctl status で表示される。変更してなければデフォルトは以下。

$ORACLE_BASE/diag/tnslsnr/[HOSTNAME]/listener/alert/log.xml

 ORA-12514 などが発生したときに、実際にどのような接続要求があったかを確認できる。

Enterprise Manager のポート番号を変更する

 Oracle 12c をインストールしてデータベースを作成、併せて Enterprise Manager を構成する。

 標準でインストールしたなら Enterprise Manager にアクセスするには以下の URL を叩くはず

https://localhost:5500/em

 さてここで問題。
 データベースを複数、例えばデフォルトの ORCL と TEST をインストールした場合、Enterprise Manager で対象となるデータベースはどっちだろう?

 私の環境では先にインストールしたデータベース、今回の例では ORCL でした。

 テスト環境用に TEST データベースを作成したわけで、当然スキーマの作成や表領域は TEST に作りたい。
 で、Enterprise Manager にログインすると……。


 左上にばっちり ORCL と書かれているし、データベース名も ORCL となってる。
 探してみたけど対象のデータベースを切り替える場所は見当たらない。

 いろいろ調べた結果、該当のインスタンスに SQL*Plus で接続して以下のプロシージャを実行してポート番号を変更することで対処しました。

SQL> exec DBMS_XDB_CONFIG.SETHTTPSPORT([PORT]);

 これで指定したポート番号を使って以下の URL にアクセスすれば、プロシージャを実行したインスタンスのデータベースにアクセスする Enterprise Manager にログインできます。

https://localhost:[PORT]/em

 そもそも dbca コマンドを使用してデータベースを作成したときに表示される Enterprise Manager のポート番号、ORCL と違う番号が割り当てられてたのかも知れない……(覚えてないw

 こっちの方がいいよ!という方法がありましたら教えて頂けたら嬉しいです。