タグ

2014年12月22日のブックマーク (19件)

  • [Java]ExecutorServiceの正しい終了(shutdown)の仕方 | 大発見 | 大発見

    photo credit: Juan Antonio Capó ExecutorServiceを使うと簡単にマルチスレッド処理が行えますが、 終了もshutdownメソッドを呼ぶだけと思っていませんか? shutdownメソッドだけだと不十分です。 学校の先生と生徒の関係で説明します。 shutdownメソッドは指示するだけ 学校で先生が生徒に対して、「問題が解けたら教えてねー」と言います。 生徒は問題が解けた人から「先生できたー!!」と言ってきます。 全員問題が解けた段階で授業が終わるとしましょう。 対応はこう。 先生: ExecutorService 生徒: ExecutorService内のスレッド 問題: ExecutorService.executeに渡すタスク(Runnable) 授業: mainスレッド 学校: Javaプロセス 「問題が解けたら教えてねー」

    quodius
    quodius 2014/12/22
  • When should I use a CompletionService over an ExecutorService?

    quodius
    quodius 2014/12/22
  • How to know when a CompletionService is finished delivering results?

    quodius
    quodius 2014/12/22
  • サービス終了のお知らせ

    quodius
    quodius 2014/12/22
  • 言語によってちょっと違うFuture/Promiseをまとめてみた(1) - Qiita

    はじめに 最近非同期プログラミングに触れる機会が増えてきていますが、言語ごとに使い方が少しずつ異なるので、よく使うJavaJavaScript(ECMAScript6)、Scala についてまとめてみました。 まとめる前の時点ではこんな程度の理解でした。 Future は get するとブロックするやつだよね! Promise は コールバック登録するやつで Future とセットで使うんだよね! スレッドに責任持っているクラスとの連携が必要なはずだけどググらないとわからないや…… エラー処理とかどうするんだろう? Java 1.5 以降の場合 1.5 以降、java.util.concurrent 配下に、非同期実行に関連するインターフェースが定義されています。 Future<V> get で結果Vが返ってくるまで待つ cancel で キャンセル。isCanceled、isDone

    言語によってちょっと違うFuture/Promiseをまとめてみた(1) - Qiita
    quodius
    quodius 2014/12/22
  • Java 8 の CompletableFuture が Scala の Future 並に使えそうな件

    一ヶ月ほどまえに Java 8 がリリースされました。ラムダも入ったことだし、お試しがてらゴールデンウィーク中に asterisque* の Scala コードの一部を Java で書き換える作業などを行っております。 ただまぁ asterisque* は非同期 RPC フレームワークですので、ラムダだけでなく Scala の Promise, Future もあちこちで使っています。うーんこいつらの互換性どうしようかなーと悩んでいたところ Java 8 に CompletableFuture というクラスが追加されいるのに気づきました。ざっと API リファレンスを読む限り以下のような特徴があります。 Scala の Future と同様に非同期処理間で成功 (計算結果) または失敗 (例外) を渡すことが出来る。 複数の処理スレッドで共有することも想定していて、早い者勝ちで結果を出すよ

    Java 8 の CompletableFuture が Scala の Future 並に使えそうな件
    quodius
    quodius 2014/12/22
  • SQLとの付き合い方 - give IT a try

    はじめに 先日、会社のメンバーから「SQLJOIN文を視覚的に理解する」というサイトを紹介されました。 SQLJOIN文を視覚的に理解する | IDEA*IDEA おいらも見てみたのですが、「自分がSQLを書いたり読んだりする時はこんなベン図を思い浮かべることはまずないなあ」というのが正直な感想でした。 そこで、おいらがSQLを書いたり読んだりする時の思考過程をアウトプットするとどうなるだろうかと考えてみました。 SQLを書く場合 おいらの場合、以下のような手順でSQLを組み立てています。 1. ルートとなるテーブル(出力のメインデータ)を決める。 まずはベースとなるSQLを書き始めます。 テーブルによっては大量のデータを抱え込んでいる可能性がありますので、とりあえず件数だけを確認するようにします。 SELECT count(*) -- 今回は書籍注文情報をメインデータとする FROM

    SQLとの付き合い方 - give IT a try
    quodius
    quodius 2014/12/22
  • O/Rマッパーによるトラブルを未然に防ぐ

    ORMがトラブル起こすから嫌い」なんじゃなくて、「ORMが起こすトラブルが解決できないから嫌い」ってのがほんとのところじゃない?だったら解決方法を知ればいいんじゃね?というお話。「N+1問題」もろくに知らずにORMを批判せんでほしい。Read less

    O/Rマッパーによるトラブルを未然に防ぐ
    quodius
    quodius 2014/12/22
  • Gitに深刻な脆弱性、緊急メンテナンスリリースが公開される | スラド セキュリティ

    Gitの深刻な脆弱性「CVE-2014-9390」が18日に公表された(Gitのアナウンス、 Git Blameの記事、 GitHubの記事、 窓の杜の記事、 家/.)。 この脆弱性は大文字と小文字を区別しないローカルファイルシステム上でGitまたは互換クライアントを使用している場合に影響する。攻撃者は「.Git」のような名前のディレクトリ(「.git」を除くすべての大文字小文字の組み合わせが利用可能)を作成してファイルを格納することで、影響を受けるシステムのローカルリポジトリで「.git」ディレクトリ内のファイルを上書きすることや、任意のコマンドを実行することができるという。また、Mac OS XのHFS+ではUnicodeの特定範囲を無視するため、「.g\u200cit」のような名前のディレクトリを使用して攻撃を行うことも可能だ。影響を受けるのは主にWindows版とMac OS X

    Gitに深刻な脆弱性、緊急メンテナンスリリースが公開される | スラド セキュリティ
    quodius
    quodius 2014/12/22
  • Java EE 8 の新機能概要のご紹介

    Java EE 8 の新機能概要のご紹介 2014年12月19日 at 10:00 午前 1件のコメント この記事は、「Java EE Advent Calendar 2014」の19日目の記事となります。 昨日は、@nagaseyasuhitoさんの「JPAでマスター/スレーブ構成のMySQLを使うぞ」でした。明日は、@kokuzawa さんのご担当となります。 エントリでは、今年の JavaOne で発表された、Java EE 8 (JSR-366) の今後の動向についてまとめたいと思います。 エントリの内容は、JJUG CCC 2014 Fall で発表した内容に追加情報を加えた内容になっています。SlideShare で資料をご覧頂きたい方、もしくは PDF ファイルを入手されたい方は上記スライドをご参照ください。 エントリの記載内容は、2014年12月時点での内容ですので、

    Java EE 8 の新機能概要のご紹介
    quodius
    quodius 2014/12/22
  • ssig33.com - エンジニアならこれ読んどいた方がいいみたいな本

    失敗学 (図解雑学) 賢者は歴史に学び、愚者は経験に学ぶという。その仮定が正しい場合、人類の知能はそこまで広く分布しているわけではないので人類はだいたいみんな歴史からは学べないということになる。 正直自分の実感としても他人の失敗事例から学べたということは少なく(歴史から学ばない態度)、人は自分の失敗から学ぶしかないのではないかと思う。ただまあ他の技術者が事故にどのように対処したかとか、対処に失敗したかとか、歴史から学べた稀有な事例は何かといったことを読むのは楽しい。 爆笑問題のハインリッヒの法則―世の中すべて300対29対1の法則で動いている (祥伝社黄金文庫) ハインリッヒの事故防止の研究とは何の関係もないけど、爆笑問題カーボーイが一番面白かったころの。今読んでも面白い。 Web業界 受注契約の教科書 Textbook for Business Contracts in the Web

    quodius
    quodius 2014/12/22
  • Mockitoによる非同期処理のテスト - Qiita

    Javaのユニットテストで非同期処理をテストしたい場合、 MockitoのVerificationWithTimeoutを使うと簡潔にテストを記述できます。 例として、非同期処理Foo#requestとそのテストコードを示します。 このテストはFoo#requestの中でCallback#onSuccessが10秒以内に呼ばれることを確認します。 timeoutメソッドが肝です。timeoutの引数にはタイムアウト値をミリ秒単位で指定します。 public class Foo { public static void request(Callback callback) { new Thread() { ... callback.onSuccess(); }.start(); } } import static org.mockito.Mockito.*; public class Foo

    Mockitoによる非同期処理のテスト - Qiita
    quodius
    quodius 2014/12/22
  • Mockitoでprivateなフィールドをモック化する方法 - tomute's note

    以下のようにprivateなフィールドをモック化する場合、リフレクションを使うと出来るのだが、Mockitoにはそのリフレクションを簡単に使えるWhiteboxというユーティリティクラスがある。 public class MyClass { private final MyField field = new MyField(); public void methodA() { field.methodB(); } } Whiteboxクラスの使い方は以下(MyFieldクラスをモック化し、メソッドが呼ばれている事を検証する例)。 public class MyClassTest { MyClass sut; @Before public void setUp() throws Exception { sut = new MyClass(); Whitebox.setInternalStat

    Mockitoでprivateなフィールドをモック化する方法 - tomute's note
    quodius
    quodius 2014/12/22
  • 筋肉量を増やすことで得られる人生を改善するメリット5つ | ライフハッカー・ジャパン

    原文著者は最近、1日に100回の腕立て伏せを始めたそうです。運動をする時間はあまりありませんし、正直に言って、腕立て伏せをしたとしても、中年になるにつれてどんどん悪化する二の腕のたるみを短期間で追い払えるわけではありません。ところが実は、筋肉量が増えると、たくさんの付随的なメリットが生まれることがわかっているのです。そうしたメリットはきっと、みなさんの人生を大きく改善してくれるはずです。 ストレスから身を守る 筋力が強いと、ストレスによる気分低下に伴って生じる有害なタンパク質を体から追い出しやすくなります。これは、ストックホルムのカロリンスカ研究所が最近実施した、マウスを使った研究で明らかになった事実です。この研究から、運動に適応して鍛えられた筋肉では、ストレスと炎症から生じる副産物であるキヌレニンという物質を解毒する酵素が発現することがわかりました。 1. 老化プロセスを遅らせる 「Pr

    筋肉量を増やすことで得られる人生を改善するメリット5つ | ライフハッカー・ジャパン
    quodius
    quodius 2014/12/22
  • 大掃除でHDDを破棄するときは「初期化の方法」に気をつけて | ニコニコニュース

    NRHT 破壊するのが手っ取り早いね。どうあがいてもやっぱりデータは採れてしまうから。 曹洪大将 物理的に破壊すればいいんじゃねえの ahoaho 今更 ブラック★ロックあずにゃん 自分は金槌で物理破壊派。ついでにニッパーで配線なんかもカット。 たいぎゃ 某電気屋でドリルで数カ所穴開けたHDDの回収用ボックスみたいなの置いてたの思い出したわ あろえ プールに放り込めば… おや、誰か来たようです Anonymity ドリルでぶっ壊せ hiro0138 最近某議員さんが参考になる事を実行してませんでしたか? DMB これ破壊する方が手っ取り早いと思うんだけどどうなの taira キュリー温度まで上げる 梅酒 破壊しろ破壊 ぶらっくさん グツグツ煮た方が早くない? KAMINTI DBANで完全消去できます azzuki74 小渕事務所に委託すれば、完璧にやってくれるよw ベアたん 案の定ドリル

    大掃除でHDDを破棄するときは「初期化の方法」に気をつけて | ニコニコニュース
    quodius
    quodius 2014/12/22
  • 東京の鉄道路線図SVGを作りました&パブリックドメインで配布します

    東京の鉄道路線図SVGを作りました&パブリックドメインで配布します ロンドン地下鉄路線図での作図方法に基づいた東京の鉄道路線図を作ったので公開・配布します time2014/12/20 hatenabookmark- Illustratorを使って、東京圏の交通路線図を作りました。 現在、これを書きだしたSVGファイルを以下に置いて、ウェブ上から見られるようにしています。まだマップとして大した処理はしていないので、PCとかだとスクロールが面倒ですが、スマートフォンなどタッチ端末だとそこそこ見られると思います。 なお、AIファイル・SVGファイルはパブリックドメイン(CC0)としますので、配布・改変・販売含め、煮るなり焼くなり好きに使っていただいてかまいません。 railmaps - github どうして描いたの? 昔からハリーベック氏のロンドン地下鉄路線図がとても好きで、自分もこういうも

    quodius
    quodius 2014/12/22
  • 25歳定年説によせて - ✘╹◡╹✘

    今日で無事25歳になりました。 去年とあるアドベントカレンダーの記事で25歳定年説について触れたけれど、いざ自分がその歳になってみると「確かに」と言った感じ。実際、周りのコンテキストを見てると、疲弊感、厭世感、アガりたい気持ち、結局一発あてられない風潮、その他もろもろが綯い交ぜになった茫漠とした不安が感じられることが多くなってきた。 その内、精神的な意味で体力というものが薄れ、週末にこういった活動に割く気力が無くなったとき、 ハッカーとしてはそこで死んでしまうのだと思う。そのことがただ悲しい。 何となくそういう予兆は感じられているし、あと2年もすればそのときは訪れると思う。 若者の界隈で、25歳定年説と呼んで震えている。 特にこの事実について何か主張があるわけではないが、ただこの社会は厳しいということに尽きる。 社会は厳しいの一言で思考停止するのをやめたい。 社会の斥力に負けて、心の弾力を

    25歳定年説によせて - ✘╹◡╹✘
    quodius
    quodius 2014/12/22
  • 学術論文を書くときは Microsoft Word と LaTeX のどちらが効率的か?|Colorless Green Ideas

    実験内容 この研究で行われた実験では、学術論文の文書になっているものを被験者に提示し、それを Microsoft Word か LaTeX で再現するように求めている。 被験者は以下の4つのグループに分かれている。なお、初心者は使用経験が500時間以下の人を指し、熟練者は使用経験が1,000時間以上の人を指す。 Word の初心者 Word の熟練者 LaTeX の初心者 LaTeX の熟練者 各々の被験者には3種類の文書が与えられ、それぞれを30分で再現することが求められた。 単純な連続したテキスト 表を含むテキスト 数式を含むテキスト そして、被験者による再現は以下の3つの点で評価される。 正書法・文法上の誤りの数 フォーマット上の誤りの数 30分で入力した文章の量 結果 全般的に言えば、Word を使用した人の方が、LaTeX を使用した人に比べて誤りが少なく、入力した文章の量も多か

    学術論文を書くときは Microsoft Word と LaTeX のどちらが効率的か?|Colorless Green Ideas
    quodius
    quodius 2014/12/22
  • Git - Documentation

    Reference Manual The official and comprehensive man pages that are included in the Git package itself.

    quodius
    quodius 2014/12/22