windowsからDockerを触る
Docker技術のキャッチアップのため、
devcenter.magellanic-clouds.com
や
を参考にDocker触れる環境を構築。
Jenkinsが入っているイメージを取ってきて、Dockerイメージとしてローカル上で動作させる、、なんてことも簡単!!
春のJava IDE祭り 〜激突!? 3大IDE!に参加してきました
溜まりに溜まった仕事を区切り(見切り?)をつけ、JJUGの勉強会に参加してきました。
テーマはIDEです。
春のJava IDE祭り 〜激突!? 3大IDE! 2016-04-25(月)19:00 - 21:00
- inteliJ
- Debug実行時にタイムリープ可能。ブレイクポイントおいたところから、少しステップ戻して、、とかが可能。
http://blog.jetbrains.com/jp/2014/03/06/420
- HTML編集時に、ブラウザで動的反映も可能。(Webサーバをブラウザでみているのと同じ感覚、)
- JavaScriptサポートも。リファクタリングも可能。(文字列置換ではない)
- git連携用のクライアントあり。
- SQL実行も用意。SQL分の補完可能。テーブルリファクタもそこで可能。
- Kotrinとの親和性も高い(JetBrains社製なので)
- FWとの親和性も高い。SpringBootでダイアグラムでインジェクション先などの関係を図示化できる。
- Java8には対応済。Java9についてもすでに対応済み。取り込み速度はメチャはやい。
‐ IDEAで後ろに.varとかつける記法:Postfix completion
IDEA 13.1のPostfixコード補完 | JetBrains ブログ
http://blog.jetbrains.com/jp/2014/03/19/433
- EclipseはマーケットシェアNo1. --2014年時点48%。IntelJ44%、NetBeans10%
- Eclipseは遅い、重い、プラグイン選定がめんどいなどの課題が。。
- エンタープライズで利用する理由
- プラグインの充実、自分でも開発可能
- 設定をInport/Exportできる → ルールを統一、底上げできる土台がある
- なぜEclipseが重いのか?
- プラグインが重い(数や、フックポイントなど)プレアデスも。
- Incremental build(自動ビルドは狭く。有効にしたまま、ソースコード読み取り範囲を狭めるなど)
- WTP(For Java EE):XMLの編集、バリデーションなど
- その他:AntiVirusも大きな要員。Eclipse実行時にJarを読み込むので、Zip解析が走る
-APサーバを利用するには?→Tomcatプラグイン。SpringBoot。Maven+RemoteDebug
-JavaScriptはEclipseではなく、VisualStudioCodeがおすすめ。
- おすすめプラグイン:DB Viewer-ER Master、STS(Spring Tool Sxxx):MicroServicesのように複数同時にプロセス起動可能
- Eclipse Che
- Cloud IDE
‐Dockerコンテナイメージ
-ブラウザで操作する
‐自動補完可能だが、まだ、ちょっとしたタイムラグあり(サクサクではない)
‐NetBeansはチェコのプラハ製。
‐もともとは学生プロジェクト。その後Sunがオープンソース化
‐最新Javaテクノロジをいち早くサポートするのが最優先のゴール
‐英語版と日本語版を同時リリース
‐HTML5、JavaScript開発もできる。フレームワークもそれなりに対応されている。
‐CSS3も。ブラウザ連携として、Chrome拡張や、Webkit統合も
‐ApacheCordova
‐Oracle JavaScript Extention Toolkit(Oracle JET)
‐Jquery,KnockoutJS,RequireJSベースのオープンソースライブラリ(3月にリリース済み)
‐NetBeans上でテンプレート読み込みの上、簡単にSPAアプリが作成可能。UIコンポーネントベース。
Selenium WebDriver超入門
試行錯誤して動作&IEでのキャプチャまで実行できたのが、
以下のコード。
たぶん環境差異ありなので、参考にする際は注意されたし。
import java.io.File; import org.openqa.selenium.By; import org.openqa.selenium.OutputType; import org.openqa.selenium.TakesScreenshot; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.ie.InternetExplorerDriver; import org.openqa.selenium.io.FileHandler; import org.openqa.selenium.remote.DesiredCapabilities; public class Sample { public static void main(String[] args) { File file = new File("C:\\oper\\Java\\selenium\\IEDriverServer.exe"); System.setProperty("webdriver.ie.driver", file.getAbsolutePath()); //http://stackoverflow.com/questions/12034969/internetexplorerdriver-zoom-level-error DesiredCapabilities caps = DesiredCapabilities.internetExplorer(); caps.setCapability("ignoreZoomSetting", true); WebDriver driver = new InternetExplorerDriver(caps); driver.get("http://www.google.com"); System.out.println("Page title is: " + driver.getTitle()); WebElement element = driver.findElement(By.name("q")); element.sendKeys("Cheese!"); element.submit(); saveScreenshot(driver,new File("C:\\oper\\Java\\selenium\\sample1.png")); driver.quit(); } private static void saveScreenshot(WebDriver driver ,File saveFile){ try { if(driver instanceof TakesScreenshot) { File tmpFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE); FileHandler.copy(tmpFile, saveFile); } } catch(Exception e) { throw new RuntimeException(e); } } }
IEで操作するところまでできたが、動作がめちゃめちゃ遅い。特に文字入力作業のところ。。これでは、大規模開発テストではかなり心配。。
今後やること
・Maven化
・Junit化
・SeleniumIDE→Javaへの動作運用検討
・画面キャプチャ切れてしまうのでは?の確認
・動作早くする余地がないかの確認。
Seleniumメモ
最終的にやりたいこと。
JenkinsでテストJob管理
Jenkins→ビルド→Junitテスト→Selenium実行
テストエビデンスとしてSelenium実行結果はJenkinsジョブ結果から履歴参照したい。
Selenium実行の対象ブラウザはIE11としたい。
ここでつまずいていること。Seleniumでキャプチャを取るデフォルトのコマンドである、captureEntirePageScreenshotがIEでは使えない。
実際に使ってみても、このブラウザでは使えないよ、エラーが。。
色々Webで検索してみると、snapsIEを使う方法が有名のよう。だけど、情報が古い&
インストールが面倒。。
ひとまず、captureScreenshotコマンドベースで実施できないか、確認する予定。
これでだめなら、Seleniumの外から動画とったり、、が最終手段か。
jjugナイトセミナークラウドプラットフォーム特集 1
heroku
- あまり知られていないが、salesforceファミリー(買収済)
- 違いはコーディングレスか、プログラミング支援か
- 12factor applicationの考え方を踏襲
- ローカル環境でも動かすことが可能
- gitにpushするだけで、シームレスにデプロイまで可能
- maven gradleの設定ファイルを自動で読み込むアーキテクチャ
AmazonWebService
- beanstalkがベストプラクティス
- 中身はec2やs3など、既存サービスの集合体
- ボンネットを開けられるという表現をしているように、中の透明度は高い
- lambdaはイベントハンドライメージ。課金安い
JasperReports調査
OSS帳票製品に関する調査
もっとも有名な、JasperReports
ただし、中身としては,PDFに関するコアな部分はiTextに委譲しており、
iTextはライセンス上の懸念がある様子。
JasperReportsで帳票出力してみた | Developers.IO
ただし、現時点のJasperReportをDLしてきて内容を確認したところ、
まだiTextのバージョンは2.1.7のため、AGPLのものではなかった。
一方、iTextのサイトを見ると、
以下のFAQもあり、危険な感じ。。
http://developers.itextpdf.com/question/can-itext-217-or-earlier-be-used-commercially
iTextのGitHubを見ても、2系は7 Jul 2009 の2.1.7 で終わっており、
その後は5系のみ、、といった様子。
https://github.com/itext/itextpdf/tags?after=5.0.4
やはり、新規で今JasperReportを使うのは危険か。
他の選択肢は、ApachePDFBoxか。。
ソースコードの貼り付けサンプル
こんな感じでソースやログなどを貼り付ける。
HTML編集タグを選択し、<pre>タグで囲ってソースを貼り付けることで可能
サンプル↓
var http = require('http'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello World\n'); }).listen(1337, '127.0.0.1'); console.log('Server running at http://127.0.0.1:1337/');