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

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

ITネタ SEなら入れておきたいアプリ集

というよりは私がよく使うアプリの備忘録です。

2019年6月版です。

項目 アプリ名 インストール or 呼出方
エディター VSCode 公式HP
ファイル操作(名前一括編集とか) お~瑠璃ね~む 窓の杜
クリップボード Clibor Vector
ウィンドウ管理 Alt + tab Alt + tab
カレンダー Google Calendar Google Calendar
メーラー Gmail Gmail
画像編集 NONE(Photoshopとか使いたい)
動画編集 Movie Maker
デスクトップキャプチャー WinShot WinShot
デスクトップ共有 Google Meet Google Meet
項目 アプリ名 インストール or 呼出方
エディター VSCode 公式HP
ファイル操作(名前一括編集とか) Finder or terminal
クリップボード Clipy Qiita投稿者
ウィンドウ管理 command + tab or Mission Control
HyperSwitch 公式HP
BetterSnapTool AppStore
カレンダー Google Calendar Google Calendar
メーラー Gmail Gmail
画像編集 Quick Look Finderでスペースキー押下
動画編集 プレビュー
デスクトップキャプチャー command + shift + 5
デスクトップ共有 Google Meet Google Meet

こう見ると、以下にGoogleスキーか分かるな・・・

MacからWindows10(7も)を使う一例。MicrosoftRemoteDesktopの利用。解像度設定がいい感じ!

最近だとブラウザベースの、Chrome リモート デスクトップなどの利用がありますね。
今回はMacからWindows10(Windows7も)を使う一例として、
MicrosoftRemoteDesktop を利用します。

基本的にはWindows同士でリモートデスクトップ接続を使うときと同じです。
リモートデスクトップ接続 => winodwsでWindowsキー + rで「ファイル名を指定して実行」から「mstsc」のやつです。

かなり使いやすかったです。動作も快適。
以下の流れでインストール・設定します。

ちなみに、事前に接続するWindows
IPとログインユーザとパスワード、
そしてそのユーザのリモート接続を許可しておく必要があります。
windows リモート接続 許可 などで検索して調べてみてください。

AppStoreから MicrosoftRemoteDesktop 10 を入手します。
なお、windows8の場合は動作確認できていませんが
Windows10,Windows7いずれでもMacから接続できました。 f:id:object1985:20190614095704p:plain

インストールしたら立ち上げます。
f:id:object1985:20190614095700p:plain
f:id:object1985:20190614095657p:plain

接続するwindowsの設定を行います。
以下のプラスボタンから「Desktop」をクリックします。
f:id:object1985:20190614095652p:plain

こんな設定ダイアログが開くので接続先をIPで指定します。
IPの確認はWIndows端末側でコマンドプロンプトで「ipconfig」などを使って調べます。
おそらく家庭用では「192.168.1.XX」の形式になっていると思います。
「XX」の部分をそれぞれの環境に合わせて修正してください。 f:id:object1985:20190614095648p:plain

UserAccount > Add User Account... をクリックしてWindowsでログインするユーザを設定します。 f:id:object1985:20190614095639p:plain
f:id:object1985:20190614095646p:plain

最後に、これは毎回変更できるのですが、接続するWinddowsをどの解像度で利用するか指定できます。
基本最近のMacなら高解像の選択肢があるはずです。
これが便利!古いPCでも広い作業スペースで確認できたり、
お客様指定の解像度でのIE11ブラウザテスト、など。
f:id:object1985:20190614095642p:plain

快適なリモート接続をどうぞお過ごしください。

eclipseのデバックモードでブレークポイントがずれる、というかjar経由で参照しているクラスファイルを見ていた

こんなMavenプロジェクトで構成されてます。
すべて同一のeclipseワークスペースにプロジェクトを開いています。

  • oreore-framework
  • ikeike-gamen
  • sugoize-gamen

このときikeike-gamenとsugoize-gamenをeclipse-LibertyのAPサーバに乗せてデバックしていました。
いずれのWebアプリケーションもoreore-frameworkをjar経由(pomで指定)で利用しています。
その際のバージョンはこんな感じ。
つまりWebアプリケーションによって別バージョンを見ていました。

- ikeike-gamen
        <dependency>
            <groupId>jp.co.oreore</groupId>
            <artifactId>oreore-fw</artifactId>
            <version>0.0.1</version>
        </dependency>
- sugoize-gamen
        <dependency>
            <groupId>jp.co.oreore</groupId>
            <artifactId>oreore-fw</artifactId>
            <version>1.0.0</version>
        </dependency>

さらに開いているoreore-frameworkプロジェクトのバージョンは 0.0.1 でした。
このoreore-framework上のソースにブレークポイントを貼って
ikeike-gamenでテストすると、
通常はブレークポイントを貼ったXXX.javaファイルが開かれるのですが
XXX.classが展開されるではありませんか。
当然ブレークポイント行以外でとまります。

なんでだろうな〜、むずかしいな〜、と思っていましたが、
sugoize-gamenがjar経由で参照している同名のXXX.classが反応していました。

起動しっぱなしのLibertyにあとからWebアプリケーションだけデプロイ・アンデプロイを繰り返していたから?

結局sugoize-gamenはアンデプロイすることで
期待した行でブレークするようになりました。

むずかしいな〜。

git logでgrepしたい場合、--grepオプションを知る。差分(diff)は-p。その他よく使うオプション。

git loggrepしたい場合、

git log | grep ほげほげ〜

などでもいいのですが、

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

git log --grep ほげほげ

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

差分(diff)を表示しながらgit logを確認するには

git log -p

他にも以下が便利でよく使います。

git log --author="tonaise"
    コミッターで絞り込み。
    デフォルト部分一致で検索してくれる(?)ので融通が効く感じ。

git log --name-status
    追加修正削除したファイルパスを一緒に表示する。

git log -S"検索文字列"
    検索文字列が存在する行を修正したログで絞り込み。
    「あのtypo修正のコミット、どれだっけな〜」とかに使います。
    -S""の間はスペースなどであけない。

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

follow us in feedly