2013/07/22

rubygemで最新のライブラリを入れたい時

# gem install hogehoge

とやると安定版(stable)のライブラリがインストールされる。

# gem install hogehoge --pre

とやると、最新版(beta)のライブラリがインストールされる。

2013/07/12

Listを1行で初期化

チームのメンバーに教えてもらった。

List array = Arrays.asList(new String[] {"arg0", "arg1", "arg2"});

って書けばいいらしい。

2013/04/22

Eclipse4.2 Junoがいろいろ重すぎる件

とにかく重い。
特にxmlエディタ。
pom.xmlとかweb.xmlとか、xmlは色々と開く機会が多いにも関わらず毎回数十秒も待たされるのは結構キツイ。
(そういやspringもxmlだ・・・。)

で、検索掛けたらこんな記事が。
http://d.hatena.ne.jp/cypher256/20130222/p1
どうもSR2がリリースされているそうで、これにアップデートすれば大丈夫とのこと。

>XML エディター切り替えが超遅い
そうそう、まさにこれ!

MergeDocの方にも記載があった。
http://mergedoc.sourceforge.jp/index.html#/pleiades_distros4.2.html

>Juno SR1 で判明していた致命的なパフォーマンス問題が SR2 で改善されました。パフォーマンス関連 15 個、その他 200 個以上のバグが修正されています。
なんか色々あったみたいね・・・。

>4.2.2.v201302xx には EGit の致命的なデータ破壊バグがあったため、4.2.2a.v201303xx 以降を使用してください。
データ破壊バグって・・・、ある意味こっちの方が致命的な気もするけど。。。

Eclipseのアップデートはいい思い出が無いけど、バックアップ取ってやってみよ・・・。




2013/03/28

入門Chef Solo - Infrastructure as Code

Kindleと一緒に買ってみた。

入門Chef Solo - Infrastructure as Code
伊藤直也
達人出版会
発行日: 2013-03-22
対応フォーマット: EPUB, PDF

サクッと読めそうだし、今日読んでみよ。

2013/02/12

.m2 を削除したらEclipseが起動しなくなった件

取り敢えずメモ的な・・・。
若干読みにくいのでいつか清書します(いつだろう。

----------

ちょっと訳あって、ローカルの.m2ディレクトリを削除したら、Eclipseがorg.eclipse.m2e.coreのロード中にそのまま帰らぬ人に・・・。
もー頼むわマジで・・・Zzz

ログを確認したところ、java.io.FileNotFoundExceptionが出ていたので、単純にMavenのライブラリが読み込めない事が原因だと思う。
まあそりゃファイルが無いんだから開けないのは当たり前として、起動すらしてくれないってどうなのよ。
これEclipse3.7の時もこうだったかな〜?
.m2を削除なんで昔から結構よくやってた気がするんだけど・・・。
(ちなみに今回はEclipse4.2)

とりあえず、無いなら作ればいいかなと単純な発想で、Eclipseで参照しているMavenプロジェクトをすべて手動でmvn compileしてみた。

git pull
mvn compile

git pull
mvn compile
svn update
mvn compile
 ・
 ・
 ・

たまにsvnのプロジェクトがあって若干イラっとしつつ、無事作業完了。
で、再度Eclipseを起動するも、状況変わらず・・・。

イラつくwww

で、ログを見たら上記Exceptionは出なくなったけど、そのかわりこんなん。


!ENTRY com.android.ide.eclipse.adt 1 0 2013-02-12 14:45:07.683
!MESSAGE No valid Android XML Editor Delegate found for file /xxxxxxxxxxxxx/pom.xml [Res null, type null]

知らんわ!!!

さすがにちょっと意味不明で詰んだかな〜って思ったんだけど、そういえば最後にEclipse閉じた時はこのpom.xmlを修正していた気がするなぁ、と。

なので、ワークスペースの読み込み中に/xxxxxxxxxxxxx/pom.xmlファイルを開こうとして開けなかった、とか開くための有効なエディタが無い?とかそんなかなあ?なんて予想。
そう考えると上記のエラーもなんとなくそんな感じなことを言ってる気がする。(求:英語力

取り敢えずそうだと仮定して、だったらワークスペースを読み込む時にそのファイルを開かないようにすればいいんじゃないかとワークスペースの設定ファイルを弄る事に。



$ ls -1 /Applications/eclipse/workspace/.metadata/.plugins
org.eclipse.cdt.core
org.eclipse.cdt.make.core
org.eclipse.cdt.managedbuilder.core
org.eclipse.compare
org.eclipse.core.resources
org.eclipse.core.runtime
org.eclipse.datatools.connectivity
org.eclipse.debug.core
org.eclipse.debug.ui
org.eclipse.e4.workbench
org.eclipse.egit.ui
org.eclipse.equinox.p2.discovery.compatibility
org.eclipse.equinox.p2.ui
org.eclipse.jdt.core
org.eclipse.jdt.debug.ui
org.eclipse.jdt.junit.core
org.eclipse.jdt.launching
org.eclipse.jdt.ui
org.eclipse.jst.j2ee
org.eclipse.jst.j2ee.web
org.eclipse.jst.jsp.core
org.eclipse.ltk.core.refactoring
org.eclipse.ltk.ui.refactoring
org.eclipse.m2e.core
org.eclipse.m2e.jdt
org.eclipse.m2e.logback.configuration
org.eclipse.mylyn.bugzilla.core
org.eclipse.mylyn.context.core
org.eclipse.mylyn.tasks.ui
org.eclipse.pde.api.tools
org.eclipse.pde.core
org.eclipse.rse.core
org.eclipse.rse.ui
org.eclipse.search
org.eclipse.team.core
org.eclipse.team.cvs.core
org.eclipse.team.svn.core
org.eclipse.team.ui
org.eclipse.ui.editors
org.eclipse.ui.ide
org.eclipse.ui.intro
org.eclipse.ui.workbench
org.eclipse.ui.workbench.texteditor
org.eclipse.wst.common.modulecore
org.eclipse.wst.common.snippets
org.eclipse.wst.internet.cache
org.eclipse.wst.jsdt.core
org.eclipse.wst.jsdt.ui
org.eclipse.wst.jsdt.web.core
org.eclipse.wst.server.core
org.eclipse.wst.server.ui
org.eclipse.wst.sse.ui
org.eclipse.wst.validation
org.eclipse.wst.xml.core
org.insightech.er

いっぱいありすぎ、どれだよ・・・、泣きそう・・・。
取り敢えずそれっぽい名前を、ってことでorg.eclipse.e4.workbenchの中をみてみると、workbench.xmiってファイルがあったので、これかなっと思い中を覗いてみる・・・。

上記の/xxxxxxxxxxxxx/pom.xml って名前をgrep掛けると、いくつかHitする箇所が出てきたので、これかな?なんて思いつつも・・・どこをどう直せばいいのかがまったくわからない(駄

なので、一旦workbench.xmiをリネームしてEclipseを起動してみると・・・ぉ、無事起動!

取り敢えず最悪の構築しなおしという結果は回避することが出来たけど、僕の設定したクールなビューやパースペクティブの設定も綺麗にすっ飛んでしまい、若干目頭が熱く・・・。

なので、一旦は挫折したworkbench.xmiの修正を再度着手することに。
まずは、<sharedElements>の<children>というエレメントの中に、tooltip="xxxxxxxxxxxxx/pom.xml"っていう記述が合ったので、この<children>エレメントをごそっと削除してEclipseを起動。

結果、デフォルトのワークベンチで起動・・・。
ダメかー、と思いログを見ると

Caused by: org.eclipse.emf.ecore.xmi.UnresolvedReferenceException: Unresolved reference '_ENOE0HHQEeKoX5lRCQvg0w'. (file:/Applications/eclipse/workspace/.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi, 400, 150)

なんかよーわからんけど、参照出来ないよって言われた。

再度、workbench.xmlを見てみると、<children>エレメントには各々 xmi:id="_ENOE0HHQEeKoX5lRCQvg0w" っていうのが設定されてて、その上位のエレメントを見ると、 selectedElement="_ENOE0HHQEeKoX5lRCQvg0w" って感じで子エレメントのIDが設定されていた。
なので、子エレメントを削除し、かつその親エレメントのselectedElementの値を削除して再度起動してみたところ・・・。

出来た!!!
ビューもパースペクティブも綺麗に復元された、超感激・・・。

以前まではEclipseが起動しなくなるたび、入れ直しという愚直な行為を行なっていたが、ちょっとずつトラブルシュートが出来るようになってきたみたいで嬉しい・・・。
これからも精進しよう・・・。

----------


ちなみに、現場のJavaなおねーさんに教えてもらったところ、.m2配下はちょっとした設定等も入ることがあるらしいので、消すのであれば.m2/repository/配下を消すようにした方が安全とのことでした。
今までずっと.m2配下をごそっと消してたわ〜・・・。

2012/08/20

EclipseとMavenの統合

Eclipse(3.7)でMavenを使えるようにする。

mythのチームメイトに向けて。
既に4.2がリリースされている最中、今更感はありますが…、多分大きく変わらないだろうってことで。

1.Eclipseを起動し、「ヘルプ(H)」→「新規ソフトウェアのインストール...」の「一般用ツール」から「m2e - Eclipse 用 Maven 統合」を選択


2.同意して


3.再起動


4.slf4jも必要だった件。


5.また再起動


6.m2e Marketplaceから、m2e-wtpをインストール

※Eclipseのクイック・アクセス(Ctrl+3とか)から、m2eって検索掛けるとか。


7.WTP 用 Maven 統合を選択して

 

8.同意して


9.OKしてインストールして



10.再起動



インストールは以上。
使い方はまたそのうち・・・。


2012/07/05

順番を保持するHashMap

すごく初歩的な事なんだろうけど。

順番を意識しない場合は
Map<String, String> map = new HashMap<>();

順番を意識したい場合は
Map<String, String> map = new LinkedHashMap<>();