都内SEのプログラミング勉強と雑記

2003年より都内でSEをしてます。業務システムをリプレイスし続けてきました。ここでは主にjavaやその周辺技術関連を紹介予定。

git logでgrepしたい場合、--grepオプションを知る。

git loggrepしたい場合、

git log | grep ほげほげ〜

などでもいいのですが、

最近ようやく --grep オプションを知りました。

git log --grep ほげほげ

こちらの方がgit logコマンド内で完結するので便利。
(今更すぎる)

MITなどよく見る・使うライセンス表記の意味について

f:id:object1985:20190201171859p:plain

Licenseライセンス

ざっくり理解。

GPL

利用するなら、公開時に同じGPLライセンスで公開しなさい。
ソースコードも全て公開しなさい。
ただし個人利用や会社内のみ、などの場合での利用では、当然公開の必要はない。

BSD

利用しても、公開しなくていいよ。もちろん改変して再配布していいよ。
ただし著作権情報とこのライセンスを表示してね。
(公開したソースコード及びプログラムは著作権情報とこのライセンスを表示しなければなりません)

MIT

利用しても公開しなくていいよ。もちろん改変して再配布していいよ。
ただし著作権情報とこのライセンスを表示してね。
(公開した作品にこのライセンスを入れなければなりません)

Apache License 2.0(Apache-2.0)

BSDやMITのように二次改変や再配布していいよ。
なんかすっごいゆるいよ。
タイトルにMITって書いたけど、一番好き。一番使う。


確か上記であっている・・・(はず)。

Gitで同時に複数ブランチを利用する場合は、やっぱり git-new-workdir だね!

f:id:object1985:20181002131746p:plain
今さらながら git-new-workdir を導入しました。
今いるブランチを切り替えず、別のブランチも同時に作業したい。
そんなとき、cloneするのは手間だし時間も容量もかかる。
そこで、 git-new-workdir

導入 => Mac

どこでもいいのですが、 git-new-workdir をgitからcloneします。
こんな時私は ~/bin にでも入れます。

#例えば以下の流れです。
#なければ事前にbinディレクトリを作成します
cd ~/bin
git clone https://github.com/git/git.git
#実行権限付与
chmod +x ~/bin/git/contrib/workdir/git-new-workdir
#シンボリックリンクを貼る。 /usr/bin に入れる方もいるかも。
ln -s ~/bin/git/contrib/workdir/git-new-workdir /usr/local/bin/git-new-workdir

使い方

git-new-workdir <repository> <new_workdir> [<branch>]

たとえばこんな感じです。

$ #hogehogeにgit clone等でGit管理下のプロジェクトがある前提
$ pwd
/Users/username/Documents/workspace/hogehoge
$ 
$ git branch
* master
  release
$ 
$ git-new-workdir . ../hogehoge-sub release

これで /Users/username/Documents/workspace/hogehoge-sub にreleaseブランチを作成してくれます。

動作も軽い、
fetchやstashも共有される、
ブランチを別ディレクトリに git clone なんてしなくていいし、
容量も節約。

最高。

eclipseのビルド時に Errors running builder 'Integrated External Tool Builder' on project で失敗する場合の対処

新PC移行後、タイトルのエラーがeclipseでのJava Mavenプロジェクトビルド時に発生するようになりました。

f:id:object1985:20190111170151p:plain
eclipseビルド時エラー

旧PCは手元にないため差分比較できませんがおそらく以下(※)の症状のよう。
ビルド時に外部ツールのビルダーを使わない、ってことだと思うのですが何が該当していたんだろう。。。

とにかく該当プロジェクト > Properties > Buildersから
Integrated External Tool BuilderRemove することで解消。

f:id:object1985:20190111170322p:plain
eclipseビルド時エラー解消設定

(※)引用:stack overflowより stackoverflow.com

eclipseでサーバ起動時にコンソールログをクリアするとクラッシュする

f:id:object1985:20171010105750p:plain
もう記事タイトルそのまんまなのですが
eclipseでAPサーバ(IBM WAS Liberty)起動中に
コンソールログをキレイにしようとクリアボタンを押下すると即時eclipseクラッシュ。

MacBookAir(2013年頃購入)でも同様でしたのでOSは関係なさそう。

  • MacBook Pro(多分関係ない)
  • Mac Mojave 10.14.1(多分関係ない)
  • eclipse neon.3(多分関係ない)
  • Liberty17.0.0.1(多分関係ない)
  • eclipse.ini => Xms256m , Xmx1024m(これか?)

とりあえず(Xms512m , Xmx2048m)に上げました。
割り当てメモリでなんとかならないかな・・・

Oracle VM VirtualBox6.0でvdiが使えない?

f:id:object1985:20181227160923p:plain
Oracle VM VirtualBox 6.0

新しくMacBook Proを使い始めたのでOracle VM VirtualBoxの6.0を新しくインストールしました。
MacOSもMojaveで快適なVM生活を、と思いきや今まで利用していたvdiファイルが使えない。。。

ちょっと分からなかったのでアンインストール、
そして5.6.3を再度インストール。無事にvdiファイルが使えました。

f:id:object1985:20181227161231p:plain
Oracle VM VirtualBox5.6.3

こういうところ、弱いなぁ。

eclipseでAPサーバ利用時に強制終了された後、eclipseが動作しなくなった問題解決の1ケース

MacJava開発にeclipseを使っています。
こんな構成です。

Mac:Mojave 10.14
eclipse:Neon 4.6.3
WebSphere(Liberty):17.0.0.1

Liberty起動時にterminalからMavenJavaプロジェクトをビルドした後に
eclipseのウィンドウをアクティブにするとワークスペースのビルドが走りました。
ここまでは通常なのですが、体感10〜20秒ほどで突然落ちました。強制終了です。

その後再起動したのですがProgressに
「Initializing Java Tooling」「Initializing JavaScript Tooling」「InitRemoteEdit XXX」が表示されたまま
固まったように動きません。

f:id:object1985:20181105145802p:plain

関連があるのかないのか、Libertyを起動したまま強制終了しました。

ゾンビプロセスができてしまったか?と思いterminalで確認。

$ ps -ef|head -n 1;ps -ef|grep java
  UID   PID  PPID   C STIME   TTY           TIME CMD
  501 11930     1   0  9:59AM ??         4:45.30 /Library/Java/JavaVirtualMachines/jdk1.8.0_65.jdk/Contents/Home/jre/bin/java -javaagent:/usr/local/Liberty/bin/tools/ws-javaagent.jar -Djava.awt.headless=true -Xms1024m -Xmx1024m -Dwas4d.error.page=localhost:2618/354578868 -jar /usr/local/Liberty/bin/tools/ws-server.jar defaultServer_2
  501 73713 73291   0  2:40PM ttys002    0:00.00 grep -E --color=auto java
$ 

#・・・なんかいる、いや、思いっきりいる[Liberty]。
#ということで削除します。

$ kill 11930
$ 

#どうも完全停止までに数秒(5〜10秒?)かかるようです。

$ ps -ef|head -n 1;ps -ef|grep java
  UID   PID  PPID   C STIME   TTY           TIME CMD
  501 11930     1   0  9:59AM ??         4:55.28 /Library/Java/JavaVirtualMachines/jdk1.8.0_65.jdk/Contents/Home/jre/bin/java -javaagent:/usr/local/Liberty/bin/tools/ws-javaagent.jar -Djava.awt.headless=true -Xms1024m -Xmx1024m -Dwas4d.error.page=localhost:2618/354578868 -jar /usr/local/Liberty/bin/tools/ws-server.jar defaultServer_2
  501 73747 73291   0  2:41PM ttys002    0:00.01 grep -E --color=auto java
$ 

# 強制終了できないのか?と早とちりし、kill -9していますが通常不要のようです。
# 待っていれば終了するかと思います。
$ kill -9 11930
-bash: kill: (11930) - No such process
$ 
$ ps -ef|head -n 1;ps -ef|grep java
  UID   PID  PPID   C STIME   TTY           TIME CMD
  501 73781 73291   0  2:41PM ttys002    0:00.00 grep -E --color=auto java
$ 

しかしeclipseは反応せず。
こちらも再起動します。
が、Progress進行中なので終了することもできず。
こちらはアクティビティモニタから強制終了しました。

f:id:object1985:20181105145822p:plain

この後にeclipseを再起動することで正常に動作させることができました。
以前はOS再起動していたので、それよりはましか・・・

ちなみにeclipse.iniは以下の設定です。

-Xms1024m
-Xmx1536m

大本の原因はメモリ不足とかその関連かな、と思っているのですが
どのアプリも必要。予算的に解決せず。

APサーバを利用されている方はeclipseの突然の強制終了では同じ事象になるかと思い投稿します。

follow us in feedly