Javaの分散トレーシングとかAPMとか実行時ログとか

メモ的まとめ APM blog.takipi.com www.itcentralstation.com http://www.hawkular.org/hawkular-apm/www.hawkular.org github.com 分散トレーシング http://zipkin.io/zipkin.io http://opentracing.io/opentracing.io ログ系 builder.japan.zdnet.com docs…

形式手法関連のメモ

ソフトウェア工学の道具としての形式手法 形式手法に関して歴史的かつ網羅的にまとめてあった OpenJML 上記でも触れられてたJava向けの拡張静的チェッカ? ECS/Java2の後継? Java8対応らしいので試してみる Home | OpenJML 机上の Kubernetes - 形式手法で…

ゼロから始めるdocker生活 ~ VT-Xなんてない

さて、タイトルで誤解されそうですがこの記事はDockerの入門記事ではありません。 現代的なツールチェインが使えない異世界な気分に浸れる開発環境を与えられたとあるプログラマーの異世界訪問記みたいなものです。 現代的な開発環境を作る上で欠かせない存…

Oracle Exadataは分散システム?

はじめに Oracle Exadataとは? Oracle RAC(Real Application Clusters)とは? ExadataとSmart Scan ExadataとRACと分散ストレージ まとめ 参考 はじめに 最近、Oracle Exadata/RACを触る機会がありました。 個人的にはOracle RAC自体まともに触るのが初めて…

いつのまにかGitのshallow cloneが”Push”も"Pull"もできるように超進化していたよ! すごーい!

git

流行りに乗ってフレンズ用語を活用しようと思って、タイトルで力尽きたブログはこちらです。 はじめに 基本的なpushとpull 元になるリポジトリの作成 shallow cloneリポジトリの作成とPush full-repoとshallow-repoでの相互のpull & push まとめ はじめに 不…

レガシー分散システムからモダン分散システムへ

はじめに Dockerは個人的には色々便利なんだけど、オンプレな本番環境に適用するメリットあるかな? とたまに思います。 Infrastructure as Codeは別な方法でも実現できますし。 Googleとかもコンテナは分散システムの基盤としてを重要視してるように感じる…

運開分離とDEVOPS

この記事は「システムエンジニア Advent Calendar 2016」の記事です。 さて、今日はクリスマス☆イブ。ITな香りがほんわかするポエムを書いてしまおうと思います。 システムエンジニア Advent Calendarってあったから、とりあえず登録しといたんですが、よく…

英語で萌えよう!

この記事は、 OIT Advent Calendar 2016の19日目の記事です。 OITでAdvent Calendarが書かれるのは感慨深いです。 自己紹介 2003年入学、2009年修士卒のOBです。HxSコンピューターサークルとF教授の研究室にいました。今は、某IT系企業でエンジニアをやって…

ふつうのユニットテストのための7つのルール

最近、久しぶりにコードレビューをすることが増えたのですが、UnitTestのコードを見るとヒドイ部分が多く残念な気持ちになることもあります。 原因のひとつとして、プロダクトコードと違いテストの書き方をあまり書き方を明文化してなかったのが悪かったなと…

Sparkメモ

メモというかブックマーク的な www.sigmoid.com https://www.quora.com/What-exactly-is-Apache-Spark-and-how-does-it-work/answer/Prithiviraj-Damodaranwww.quora.com

自動テスト関係のメモ

そのうちちゃんと調べたいので忘れないようにメモ EvoSuite github.com JUnitのテストケースの自動生成. [シンボリック実行を活用した 網羅的テストケース生成 - Fujitsu] シンボリック実行に入門しようとした ntddk.github.io 用語とか基本知識の解説 coq-c…

gitの良さは未だに分からないがPullRequestの良さはちょっとだけ分かるぞい

git

スマートニュース見てたらこんな記事が上がってました。 crapp.hatenablog.com まあ、gitの良いところはそれなりにありますがローカルコミットを上手に使えるようになるまでの壁はとても高いですよね。 正直言えば私もrebaseとかなるべく打ちたくないし、使…

技術的負債はリボルビング払いで返そう!

qiita.com という記事がTwitterに上がってたので見てみましたが、大変共感できるものでした。 システム開発をしていれば技術的負債はつきものです。特にサービス運営をしていれば、「たとえ借金をしてでも今出すべき!」ってタイミングは良くあります。 技術…

分散バッチフレームワークとしてのApache Spark

ヌラーボさんのGeeks Who Drinkで分散バッチフレームワークとしてのApache Sparkというタイトルで話させていただきました。 nulab.connpass.com 資料はこちらになります。 Apache Spark as Batch 最近、Sparkを触り始めたんですが、世の中の資料は機械学習や…

書き初めコーディング! Docker + CGI + COBOLな環境を作って温故知新

さて、今年の書き初めコーディングは「温故知新」ということで、古いものと、とても古いものと、最近のものを組み合わせてみました。 というわけで、CGI + COBOL + Dockerという異色組み合わせをしてみました。エンジニアは「最新の技術」ではなく「最適な技…

さよならスティッキーセッション!PayaraでJavaEEでもセッションをKVSに。

この記事は Java EE Advent Calendar 2015 の 9 日目です。 昨日は btnrouge さんの「Payara Microのからくり」でした。 意図せずしてPayaraネタ連続です。 はじめに Payara MicroはSpringBootやWildfly Swarmあるいは一日目に紹介されていたKumuluzEEと同様…

WildFly Swarmではじめる「パーツとしてのJavaEE」

天神LT勉強会 on Zusaar でWildFly Swarmに関して話してきましたので、ブログにまとめ直してみます。 JavaEEコンテナの世界観 昔ながらのJavaEEコンテナはすべてがJavaEEで完結することを目指して作られていました。 なので、WeblogicやGlassFish, WildFly等…

Dockerってなんですか? それ、JavaEEで分かるよ。

はじめに 最近、Dockerが大人気ですね。GoogleやMicrosoftも参入してることはもちろんですが、Oracle Weblogicのサポート対象に入ってたりとミドルウェア側、それもエンタープライズ系製品が対応してきたのは面白い動きです。 とはいえDockerって何?ってい…

萌える瞬間英作文バージョン 0.401をリリースしました!

毎年、エイプリルフールはなんか作ろう! と画策しているのですが、今年は「萌える瞬間英作文」というAndroidアプリを作りました。 萌える瞬間英作文 - Google Play の Android アプリ さて、瞬間英作文ってご存知でしょうか? こちらの英語上達完全マップ●…

Meteorが見せるIsomorphicなDBとリアクティブな開発モデル

最近、Meteorを試して見てます。これはちょっとスゴイ。正直、当時Railsに受けたのと同じ興奮がある。 Meteorの説明は「リアルタイムWebアプリケーションフレームワークMeteorについて」あたりが分かりやすいので、こちら参照。 実は、2012年の公開時から存…

JavaEEだけどDockerがしたい!- GlassFish on Docker

Java EE Advent Calendar 2014 14日目です。 今年はDockerが大躍進した年だな、と思います。 そこで、このビックウェーブに乗り遅れないように、GlassFishを使って、Dockerベースの環境を作ってみました。 今回利用するコンテナはこちら Appコンテナ GlassFi…

Excelを使わない技術 - 正しい神の殺し方

ドキュメント作成技術 Advent Calendar 2014 13日目です。 ※ なお、本題とは一切関係ありませんが中2力全開気味なのでご注意ください。 Excel、というツールをご存知でしょうか? まあ、知らない人はいないと思います。 それは表計算ツールであり、グラフ描…

Consul with Dockerを手軽に試せる環境を作ってみた

Consulを使ってDockerの名前解決を簡単に実現する - Qiita でConsulを使って、サービスディスカバリをして、DNSの名前解決をする方法を書いたんだけど、検証用の環境を簡単に作れるようにしたのでこっちに公開。 koduki/consul-with-docker-example koduki/c…

Java VM別の簡単なベンチマークをしてみた

最近のJavaは速い。 この言葉は良く聞くけど基本Java1.2とか1.4みたいな古代のバージョンと比較してのこと(まだ動いてそうだが...) 最近のバージョンはどうなんだろう? と気になったのだけど、あんまりVM毎のベンチって出回って無さそうだったので、試し…

問い:Java 8のStream APIは業務でどんな時に使うの? 答え:あなたがfor文使いたい時

※ サンプルがJDK7までとJDK8までで意味が変わっていてわかりにくいという指摘があったので、少し直しました。 ※ boxedを使う書き方だと無駄なAutoboxingが走るとの指摘を頂きましたのでmapToObjを利用するように変えました。 Java8の目玉機能の一つにStream …

Java Day Tokyo 2014に参加してきました

勉強会はブログに参加記事を書くまでが勉強会だと以前習ったので、昨日参加してきたJava Day Tokyoの感想とか書いときます。 Java SE 8がちょうどでたばかりということもあって、今回はほとんどのセッションがJava8祭りでした。 https://oj-events.jp/public…

Androidのエンドツーエンドテストの自動化も Cucumber から Turnip へ

以前はAndroidのATDDにはCabash-Androidを入れてたのだけど、やっぱ時代はCucumberからTurnipだよねってことで、AndroidなTurnip環境を作ったので構築メモ。 ちなみに出来たものはこちらへ。 github - koduki/turnip_with_android_example インストール まず…

Macで複数バージョのJavaを切り替えたい

JDK8でたよーって、ことで色々触っている今日このごろ。 やっぱラムダ式とか使えるようになって大分普通になった感じ。 で、ここで問題になるのがまだ全面的にJava8に移行したわけでもないのでJava7とどう共存して環境を切り替えるか。たぶん、Java使ってい…

オカルトから科学へ - SonarQubeで静的コード解析を始めよう

ちなみに、タイトルは半分釣りというか、個人に依存したオカルトから、誰がやっても同じになる科学的な方法論をもっと入れてこう、って意図です。 もちろん、そういった部分を全部なくすのでは無くうまく組み合わせるのが大事。魔術と科学が交わるときには何…

Javaを使うメリットはありますか? はい、それはもちろんあるに決まってます!

/.Jに聞け:Javaを使うメリットは? | スラッシュドット・ジャパン デベロッパー え、ありますよね? Webアプリに限っても。 というか、上げてるデメリットが現代的じゃないなぁ... 個人的には少数精鋭チームを作れてないならJavaはかなり有りな選択だと思っ…

あなたの職業は何? RPG風のエンジニアの分類を作ってみた

ひとくちにエンジニアと言っても、いろんなタイプの人が居て、性格に応じたロールがある。 たとえば「◯◯さんはやたら設計に拘って動きが遅いけどバグは出さない」とか「◯◯さんは手が早いけど、よくバグも作りこむ」とか「◯◯さんはいつもCIと叫んでる」とか。…

ドキュメントからコードへ

From document-to-code from Hiroaki Koduki 最近「ドキュメントからコードへ」というのをキーワードに考えています。 その辺に関してつらつらと書いてみました。例のごとく英語で書いた資料より日本語の方が詳しいよ>< 「ドキュメントからコードへ」って…

テスタブルコードの書き方 - 基本戦略編

今のチームにテストコードの導入を本格的にしようと思ってるので、思考の整理がてらメモ。内容は初学者向け。 テストの必要性をとくのは比較的簡単である程度できた。既存のレガシーコードはとりあえず忘れることに(特定メンバーでプロジェクト的に実施)。…

JUnitで現在時刻が関わるテストを解いてみた

これであなたもテスト駆動開発マスター!?和田卓人さんがテスト駆動開発問題を解答コード使いながら解説します~現在時刻が関わるテストから、テスト容易性設計を学ぶ #tdd に書いてある問題がUnitTestを書いていく上での教材にとても良さそうだったので、…

レガシーコードも年末に向けて大掃除! - jMockitを使おう

さて、今年もあと僅かになりましたが、この1年間で溜まりに溜まったコードの負債を大掃除してみませんか? レガシーコードだから書くのが大変? プロダクト側を改修したいけどそもそもテストが無いから改修が怖い? ですよねー。 なのでjMockitを使って既存…

Keynote風のプレゼンテーションをMarkdownで作ってみた

How to make keynote like presentation with markdown from Hiroaki NAKADA 最近ちょっと英語の練習がてら上のような英語プレゼンを作ろうと思い立ちました。 目的なく写経的なの苦手なので、目的作る方式。 ただ、OpenOfficeなりKeynoteなりPowerPointなり…

電子書籍ストアのランキングを比較したよ[Book☆Walker, Kindle, Kobo]

ふと Book☆Walker 1 ハイスクールD×D16 課外授業のデイウォーカー ¥600 2 週刊アスキー 2013年 10/29号 ¥350 3 新約 とある魔術の禁書目録(8) ¥683 4 週刊ファミ通 2013年10月31日号 ¥350 5 艦これ白書 -艦隊これくしょん オフィシャルブック- ¥1,995 6 東…

playframework2のHTML出力が汚すぎるのでJsoupで整形してみた

最近、playframework2に手を出し始めました。 このフレームワーク、フォームヘルパーが結構色々HTMLを生成してくれるみたいで、まだ慣れてないせいもあって結構頻繁に生成されたHTMLの中身を見ています。 で、テンプレートエンジンの例に漏れず超絶汚い... …

Java Mission Control + Flight RecorderをGlassFish4で使ってみた

Java SE 7 Update 40が先日でました。なんとこの子はついに待望のFlight Recorder(ちゃんとした版)が実装されたのですよ! 本番環境の障害調査用にと個人的にはJRockitの機能がHotspotに統合されるHotRockitプロジェクトで一番注目してた機能でした。 一応…

なぜコピペはダメなのか?

コードレビューをしているとコピペしたと思わしきコードが持ち込まれることがあります。その度に指摘をするわけですが、よく指摘する内容をまとめてみました。 1). 記述内容を理解していない 「Google検索の結果をそのまま貼りました」「以前のコードがそう…

MANGAで英語のお勉強? Kindleで読める英語のMANGAまとめ

NAVERまとめだと、amazonリンクはNGのようなので、こっちに作り直し。 英語の勉強には多読が必須と言われて久しいですが、そうは言ってもなかなか厳しいもの。SSS英語学習法の教材はイマイチ面白く無くて続かないし、かと言って有名小説なんかは、まだ難しく…

時間あたりの平均レスポンスとかを求めるのに便利なコマンドを書いてみた

どうも、最近、ログの解析ばかりしています。 で、わりと良くやるのが、1分あたりのアクセス数や平均時間を求めたりとかですね。 以前、こっちの記事とかでも書いた話ですね。 必要に応じて毎回書き下ろしてたのですが、さすがに面倒になってきたので、グル…

awkとシェルでLTSVの取り扱いを簡単にするフィルタを書いてみた

最近、LTSVがお気に入りでApacheのログ始め各種ログをLTSVにしています。 LTSVの何が便利って、普通のCSVやとかと違って、その名の通りラベルが付いてるので順番では無く名前ベースで簡単にアクセスできること。 しかも、順番では無いので、後から項目とかを…

Java向けの障害解析ツールHeapStatsをGlassFishに入れてみた

こちらで紹介されているJava向けの障害解析ツールHeapStatsが便利そうなので導入してみた。 HeapStats で GlassFish 4 障害解析 #glassfishjp from Yuji Kubota 環境はGlassFish3.1 + JDK7 + CentOS 6.3(32bit) まずは、運用環境にrpmを使ってインストール. …

ボクの考えた最強の開発プロセス

そろそろ開発プロセスというかツールを見なおして、「安くて・早くて・うまい」を実現するための近未来的な開発がしたいので、こういう開発がしたいなぁ、というのを妄想をしてみた。 コンセプトは「可能な限り人間が翻訳しない」。言い方を変えればDRY。 A.…

SimpleShellWrapperを少し修正

以前記事に書いたSimpleSHellWrapperを少し修正しました。コードはこちらのgithubに。 https://github.com/koduki/ssw 修正した理由は、 sh ./foo.sh みたいなのは問題ないのですが sh bin/foo.sh とかだと、ssw.pyが見つからなくてエラーという超残念な感じ…

本物のプログラマはExcelを使う

※ エイプリルフール ネタです さて、今日から社会人になる人も多いのではないだろうか? 中にはプログラマを目指している人も居るだろう。 そんな君たちに世界の真実を少しだけ教えてあげよう。 本物のプログラマはExdelを使う。良いか? もう一度言う、本物…

「ビルド妖怪Jenkins」を出版しました。

※ エイプリルフールネタです 電子書籍「ビルド妖怪Jenkins」を出版しました。 この本は、現代に生きる妖怪としてもっともポピュラーな存在であるJenkinsを話題とした本です。 koboで「妖怪 入門」と入れるとJenkins関連の本が出てきますし(※1)、Google等で…

e-NDEX 電子書籍月刊アクセスランキング 3月編

とある電子の書籍検索 - e-NDEXの月刊アクセスランキング。4/1に出すと嘘っぽいので少し早めに計測w 基本的には、Twitetrとかで紹介したのが上位に着てるけど、 後ろの方はタイトル知らないのもそれなりに有りますね。多少は自分以外もユーザ居るのかなw 月…

シェルスクリプトをもっと手軽に作れるようになるSimpleShellWrapperを作ってみた

趣味的にも仕事的にも、ちょっとしたシェルを書くことが良くあるのですが、やっつけで作ることも多いです。 その結果何が起こるかというと 必須のコマンドライン引数を付け忘れて実行して、大惨事 引数の順番を間違えて大惨事 working directoryを指定してな…