Kengo's blog

Technical articles about original projects, JVM, Static Analysis and JavaScript.

goog.Promise の使い方

日本語情報少ないので。 Promiseとは? こちらをご覧ください。 JavaScript Promises: There and back again - HTML5 Rocks Promiseオブジェクトを作る newを使ってコンストラクタを呼ぶだけです。このとき、引数に関数をひとつ渡してやる必要があります。こ…

Tips to accelerate your original game

To make your game more interesting, you should pay much attention to keep high performance. This is UX problem, but it is not designer who can solve. Only developer has solution for this problem, so we should learn about when we face probl…

Intel Edisonを購入した

Intel Edison Breakout Board Kitを淘宝网にて515人民元で購入。当然ながら技適マークは無いです。 まずは以下を試験実施。 IntelEdisonStartOSX – スイッチサイエンス IntelEdisonOpkgFeeds – スイッチサイエンス wget, python, node が動くことを確認。 翌…

goog.ui.Componentの継承で気をつけるべきこと一覧

基本 Google Closure LinterとGoogle Closure Compilerを必ず使う コンポーネントツリーをシンプルに保つ(参考資料1 参照) インスタンスの状態 クラスフィールド(static変数)にインスタンスの状態を入れない。 インスタンスフィールドはprivateにする。 …

memo: RabbitMQ

Type of job: Persistent or Real-time? Persistent: sending mail (account registration, changing password etc) Real-time: Pre-loading (to load data in the next page onto cache) see 'Reliability' at official feature list Naming for Queue/Exch…

最近読んだマンガ

シャーリー 2巻 (ビームコミックス)作者: 森薫出版社/メーカー: KADOKAWA/エンターブレイン発売日: 2014/09/13メディア: コミックこの商品を含むブログ (29件) を見る まさかの2巻発売ということで、早速Kindleで入手しました。シャーリーがカフェに行く話が…

最近読んだ本

今日は日曜日ですが中国では出勤日です。国慶節に向けて休日の移動が発生しているのですね。 さて最近読んだ本の紹介です。電子書籍中心の生活をしていますが、これらはまだ紙の本での入手でした。こういう本も電子化されると、私みたいに海外で暮らしている…

memo: JavaScript AST

Library http://esprima.org/ https://github.com/substack/node-burrito (not maintained) Blog (Japanese) 最小最速で作るaltjs - mizchi's blog カジュアルJavaScript AST 2012-10-29のJS: JavaScriptパーサ Esprima 1.0.0、Orion 1.0、大規模CoffeeScrip…

memo: Non-blocking I/O on JVM

Netty http://netty.io/ http://netty.io/wiki/index.html http://netty.io/wiki/user-guide-for-5.x.html http://netty.io/wiki/developer-guide.html Vert.x http://vertx.io/ http://vertx.io/docs.html http://vertx.io/manual.html Related Java NIO Bu…

Closure Library でカタいクラスを実装する

ここではカタいクラス=フェイルファストで、コンパイル時に問題を発見しやすく、かつ保守しやすいクラス と定義する。 基本的には goog.ui.Component あたりを読むと勉強になる。もちろんネームスペースでユーティリティメソッド群を実装する場合にも通じる…

We've got married

We've got married at 1st/July/2014. Check my post at Facebook for detail: https://www.facebook.com/kengo.toda/posts/666262230115772 I guess everyone has doubt about why we were bone. My answer for this question is creating and maintaining …

How to migrate Java 7 with Guava to Java 8

replace Optional with java.util.Optional replace import com.google.common.base.Optional; with import java.util.Optional; replace Optional.fromNull() with Optional.ofNull() replace Optional.absent() with Optional.empty() replace Optional.tr…

経験の少ない技術者にどのような気付きの機会を作るべきか

チームで仕事をする上で気づきの機会を提供することが大切であると考えているのですが、では新人の技術者には何を気づかせるべきなのでしょうか。基本的には以下だと考えています。 目的を忘れないこと コミュニケーションの大切さとその理由 作ったものがど…

複数の公用語がある国で店舗がどう工夫しているか

シンガポールは英語・中国語・マレー語・タミル語の4つの公用語があります。しかし、だからといって全ての表示が4ヶ国語で行われているわけではありません。シンガポール人が話せる中国語と、シンガポール人の一部と海外からの労働者が話せる英語の、2言語を…

FindBugsのバグパターンをMavenでビルド&テストする

以前の記事はFindBugsバグパターンの実装方法を試行錯誤している最中に作成したものでしたが、今回はその結果どのような開発手法に行き着いたかをまとめます。Mavenベースです。 前提 findbugs.xmlをsrc/main/resourcesに置いてしまうと単体テスト実行時にエ…

Working Effectively With Legacy Japanese

I think this ↑ is what we need. It should contain following sections: He said 'You should be willing to go through struggles', what does it mean? Why he said 'You should be punctual' but I cannot understand it. Why he loves drinking after …

my favourite 2 atom plugins

Atom is a text editor which is developed by GitHub. I have been invited by @justlaputa, and use it to rebuild my web site. tabs-to-spaces It's unbelievable but by default Atom doesn't have option to use spaces instead tabs. To replace all …

今年の目標の振り返り

3ヶ月間、長期休暇を除いて自宅で趣味プログラミングをしないことを徹底してきました。 移動時間にRSSを読んだりSNSで流れてきたURLを踏んだりといったことはしましたが、基本的には目指していた活動は達成できました。 浮いた時間は何になったのか 空き時間…

多文化拠点での覚悟について

経験のまとめ。 結論 個人に目を向ける。言語や人種を言い訳にしない。やるべきことは日本でも海外でも一緒。 持っている前提条件(背景、文化、知識、常識)が大きく異なるので、伝えていることが伝わっているかひとつずつ検証していくことが大切。 知見 「…

VIAテストで考える天職

サラリーマンの悩みのほとんどにはすでに学問的な「答え」が出ているを読んで、VIAテストをやってみた。 http://t.co/yI9SlvWf5o said that my strengths are love, critical thinking, creativity, industry and humor. Humor! pic.twitter.com/5kuaP08CTv—…

自宅での趣味プログラミングを禁止してみて

2ヶ月経ちましたが、結構いい線行っているのではないでしょうか。 情報収集は通勤時間(20分)でのRSSとSNSの確認でまかなえています。もちろんPocketも活用。OSS開発もほそぼそとではあるものの勤務時間でできてますしね。コードの読み書きはまだまだ不足し…

OSSコントリビュータとしての私の歴史

来週木曜日、@ikeike443 さんに教えていただいた以下のイベントに参加します。 Developers Summit 2014:【13-E-1】OSSコミッタ大集合 で、話す前に考えをまとめとかなきゃーということでこの14年弱で起こったことや感じたことをまとめておきます。 フリーソ…

私は何がやりたいのか、あるいは何がやりたくないのかという話

最近「で、君は何をしたいの?」という問いをいただきます。やりたいことややりたくないことは社会人としての6年間で変化があったので、これを期にまとめておきます。 学生時にやりたかったこと 学生時代に今の会社を選んだ理由は3つあります。 ユーザ数が多…

素人がまとめる出汁について

素人がまとめる出汁の話 和食の基本である出汁について今知っていることをまとめ、次に何に挑戦すべきかを考える。 合わせ出汁はなぜ美味しいのか アミノ酸(グルタミン酸)と核酸系うま味物質(イノシン酸やグアニル酸)には相乗効果があるから。 以下は日…

今年の抱負

今年はひとつの仮説をもとに違う生活習慣を試したいと思います。変更点はただひとつ:長期休暇を除き、自宅で趣味プログラミングをしない。趣味プログラミングにはコーディングに加えてコード読みやRSS消化、はてブ閲覧やメーリングリスト確認も含めます。他…

My acts on the WWW in 2013

I will summarize my online actions in this year. Old articles are below: My acts on the WWW in 2011 (Japanese) My acts on the WWW in 2012 personal products I have released several personal products, and 4 of them are important to explain m…

ウェブアプリケーションサーバでよくあるクラスローダのトラブル

これはJ2EE Advent Calendarの25日目の記事です。昨日の記事はnobuokaさんによるJava Persistence API (JPA) 実践入門でした! 本記事の趣旨は、developerWorksのクラスローダーとJ2EEパッケージング戦略を理解するに書いてあることをコードで確かめようとい…

Useful libraries and Maven plugins to implement executable jar

When you implement executable jar, there is some good libraries and Maven plugins to implement. I will list them and explain how to use. args4j args4j is a good library to parse command line argument. It is more modern than commons-cli, an…

「それ、Guavaでできるよ」系の話

「Javaってこれがめんどうだよねー」「あ、それGuavaでマシになりますよ」というやりとりが多い気がするので代表例をいくつか書いてみる。気になった方は公式ドキュメントをぜひ。 便利系Map 2キー使って1要素を特定するMap 複数の値を持ちうるMap 完全に同…

How to build FindBugs 3.0-SNAPSHOT by Maven

Now FindBugs 3.0-SNAPSHOT depends on SNAPSHOTs which is not hosted on Maven repository. To build, we have to execute install:install-file manually. $ git clone https://code.google.com/p/skypencil-findbugs/ $ cd findbugs/findbugs $ git chec…