2017年2月12日日曜日

google code prettify をdropbox で動作できない時の確認事項

[ 2017/07/26 ]
以下の手順ではもうprettyprint できなくなっているため、以下のリンクを参照。
google blog にprettyprint を適用する

久々に自身のブログを見直してみたら、google code prettify が正しく動作していなかった。
私のブログはdropbox からcss を読み込んでいたので、dropbox の設定を見直すことに。
すると、いつの間にか公開されていたはずのgoogle code prettify で利用する、prettify.css とprettify.js が公開されておらず、読み込みに失敗しているようだった。

ここで、今までの設定ではdropbox をブラウザから参照できたURL を直接ブログのhtml に記入していたが、これでは参照できなくなっていた。



そのため、公開リンクをコピーして指定したら無事動作できました。

また、設定したらハイライトが自身のブログとマッチしてなかったので、以下のサイトからカラーテーマを持ってきて、CSSファイルにコピペして利用しました。
https://jmblog.github.io/color-themes-for-google-code-prettify/

2016年9月2日金曜日

eclipse neon に tomcat plugin を入れる

eclipse neon に tomcat plugin を入れようとしたが、以下のサイトを参考に手動導入したら、jar が正しく読み込まれていない感じだった。
http://java-reference.sakuraweb.com/java_env_eclipsetomcat.html

そのため、update site から入れる方法を調べたが、あんまり記載がすぐに見つからなかったため、以下にupdate site のURL を記載しておく。

Eclipse Tomcat Plugin Update Site
http://tomcatplugin.sf.net/update

2016年8月4日木曜日

gocode.exe が消えてしまった場合

gocode.exe を以下のリンクのREADME.md を参照してgo get すればよい。

https://github.com/nsf/gocode

しかし、go get に以下の理由で失敗する場合がある。

package github.com/nsf/gocode: directory "<directory name>" is not using a known version control system

これは、以前ダウンロードしてきた時のフォルダが悪さをしている。
なので、GOPATH=$HOME/goprojects/gocode フォルダを削除したあとに、以下のコマンドを叩けばgocode のコードが取得できる。
go get -u github.com/nsf/gocode

ダウンロードしたフォルダに移動して、go build してあげれば、bin フォルダにgocode.exe が生成させるので、
それをEclipse だと、以下の図のように指定してあげればOK。

2016年1月23日土曜日

go1.5.2 で開発環境構築2

今回は環境設定にあるoracle のダウンロードと、それをビルドするために必要なパッケージのダウンロードについて。
go get -u golang.org/x/tools/cmd/oracle
go get golang.org/x/tools/cmd/goimports
go get golang.org/x/net/html
go get golang.org/x/net/websocket
go get golang.org/x/text
go get golang.org/x/crypto
とりあえず、上記のパッケージを入れたら、ビルドエラーは消えました。
あと、ちょっと時間空けてgo を触り直してまたハマった所としては、package を新規作成した場合、go ファイルの先頭が、package xxx といった記載になるが、このままbuild すると、bin フォルダにバイナリファイルが無い、と怒られる。
以下のような感じ。

これは、前回も記載したが、package xxx の部分をpackage main に変更すれば、bin フォルダにバイナリファイルが生成され、実行可能となる。

2016年1月11日月曜日

go1.5.2 で開発環境構築1

以下の環境で、golang の環境を構築しました。
---------------------------------------------
Mac: 10.9.5
Java: 1.8.0_65
Eclipse:
Version: Mars.1 Release (4.5.1)
Build id: 20150924-1200
GoClipse: 0.13.0.v201510291605
gdb: 7.10.1
---------------------------------------------

以下のリンクより、Go をインストール。
「インストールの確認」までを実施。
http://golang.jp/install
GOROOT は、Go がインストールされたディレクトリのルートディレクトリを設定。
私はデフォルト通りのため、「/usr/local/go」を設定。
GOPATH は自分が生成するプロジェクトのパスを指定する。
私の場合は、/workspace/go/test というtest プロジェクトを作成したので、「/workspace/go/test」を設定。

次に以下のリンクから、Eclipse の「Eclipse IDE for Java EE Developers」をダウンロード。
https://eclipse.org/downloads/
Eclipse を起動するとき、GoClipse がJava8 で動作させる必要があるため、以下からJava8 をダウンロードしてインストール。
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
Java8 の設定は、以下のリンクを参照。
http://qiita.com/deonathg/items/31d1ef610e429e3da7b0

Eclipse を起動させて、GoClipse をインストールするために、メニューバー > Help より、以下を選択。

以下のようにGoClipse のURL をセットしてやり、前の画面に戻ると、URL 上に存在するSoftware が出力されるので、GoClipse を選択します。


途中で、別のSoftware をインストールしなければいけない、という警告等がでますが、気にせずOKを押してインストールします。
インストールが完了すると、Eclipse の再起動を促されますので、再起動します。
次にGoClipse の設定をするため、Eclipse > 環境設定 を開き、以下のように設定します。

また、Go の入力補完をするために、gocode をインストールします。
しかし、GoClipse 上で以下の画面の下の部分の「Download go get (...)」を押してもNo such directory とかでエラーが出てインストールできませんでした。
そのため、私はterminal 上から、gocode をインストールしました。
まずは、~/.bash_profile に、GOPATH として、以下を設定します。
/workspace/go/test/gocode
このパスを設定後、以下のコマンドでgocode をインストールします。
go get -u github.com/nsf/gocode
これで、/workspace/go/test/bin 以下に、gocode のバイナリファイルと、src フォルダ以下に、gocode のコードが配置されます。
このバイナリが配置されたパスを、上記の図のように、GoClipse の設定に反映させます。
最後にデバッグするために、gdb を導入します。
gdb は、homebrew を使ってインストールしました。
brew install gdb
後は、以下のリンクを元に、Gatekeeper の設定をしてあげればデバッグできるようになります。
http://blog.amedama.jp/entry/2015/10/06/231038

あと、ハマってしまったところとしては、go install を実行するとき(Eclipse 上でDebug ボタンを押すと実行される)に、パッケージ名がmain でないとbin フォルダにバイナリが生成されませんでした。
理由はわかりませんが、解消したら追記しようと思います。

2016年1月3日日曜日

homebrew のupdate とgit のupgrade

以下のコマンドで、Mac にインストールされているbrew をupdate。
homebrew update

以下のコマンドで、git をupgrade。
git upgrade

homebrew の仕組みを理解しておかないと、homebrew でインストールしたgit を使えません。
homebrew はgit を/usr/local/bin にインストールします。
しかし、PATH を/usr/local/bin を優先するように/etc/paths ファイルを編集する必要があります。
下記のように、/usr/local/bin をファイルの先頭に記載します。sudo 権限が必要です。
/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin

この後、以下のコマンドでgit のバージョンを確認してください。
git --version

2015年10月14日水曜日

Keystore と秘密鍵と公開鍵の関係について

Java では、Keytool という鍵と証明書を管理するためのユーティリティを利用して、SSL やTLS などの暗号化通信を実現します。

SSL/TLS 通信は、以下のステップで実現されます。(Server Hello Done までを記載)

Client Hello
Server Hello
Server Certificate
Server Hello Done
Client Hello で、どの暗号化スイートを利用して通信したいかを問い合わせます。


Server Hello で、暗号化スイートを決定し、Server Certificate でサーバ証明書を渡します。



このサーバ証明書を作成するために、Keytool を使います。

サーバ証明書は、認証局の署名が必要です。 企業は正規の業者から署名をしてもらいますが、テスト時やインターナルな環境では、必ずしも正規の業者からの署名は必要ないかもしれません。

そのような場合、通称「オレオレ認証局」という、自作認証局を作成して、サーバ証明書に署名をすることになります。

オレオレ認証局の作成の仕方は他のサイトを見て頂くことにしますが、大きく2通りのやり方が公開されています。 1つは、OpenSSL とPerl を利用して認証局を構築するやり方。
もう1つは、OpenSSL のみで構築するやり方。

どちらでも構築はできますので、調べてみてください。
で、Keytool を利用し、Keystore を生成する場合、以下の2種類のエントリが存在します。
PrivateKeyEntry
TrustedCertEntry
暗号化通信をする場合に必要となるエントリは、PrivateKeyEntry になります。 これは、公開鍵と秘密鍵のペアのエントリになります。

以下では、Keystore ファイルの生成方法の概要を記載します。
サーバ管理者が秘密鍵を生成
サーバ管理者が秘密鍵から証明書署名要求ファイルを生成
オレオレ認証局は自分の秘密鍵で証明書署名要求ファイルに署名してサーバ証明書を生成
サーバ管理者はサーバ証明書とサーバ管理者側の秘密鍵を利用して、公開鍵と秘密鍵のペアファイルを生成
生成するKeystore ファイルにペアファイルをインポート

具体的なコマンドは以下の通り。
openssl genrsa -des3 -out private.key
openssl req -new -days 3650 -key private.key -out server.csr
openssl req -keyout ca/cakey.pem -out ca/cacert.pem -new -x509
openssl ca -in server.csr -keyfile ca\cakey.pem -cert ca\cacert.pem –out server.crt
openssl pkcs12 -inkey private.key -in server.crt -export -out pair.pkcs12
keytool -importkeystore -srckeystore pair.pkcs12 -srcstoretype PKCS12 -destkeystore keystore
※下記の修正は事前にしておくこと。
修正1:openssl.cnf を開いて、ca のディレクトリを指定する。(実行フォルダにca フォルダを新規で作成しておく)
[ CA_default ]
dir  = ./ca  # Where everything is kept
修正2:空のindex.txt ファイルを./ca に配置しておく。
修正3:4桁以上の数字が記入されたserial というファイル名(拡張子無し)のファイルを./ca に配置しておく。