タグ

javaに関するNetPenguinのブックマーク (116)

  • Apache Isis: ドメイン駆動設計のためのJavaフレームワーク

    Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。このでは、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

    Apache Isis: ドメイン駆動設計のためのJavaフレームワーク
  • Maybeに限らずJavaで直和型を実現できるか - 貳佰伍拾陸夜日記

    JavaでMaybeを説明した以下の記事について, id:tozimaさんと某所*1でやりとりしていたら, 有益な話が出てきたのではないか, ということになったので, 紹介. 基的にやりとりをそのまま*2抜粋したものに, 適宜補足を加えていきます. 発端 2012-06-29 04:29id:tozima こんな記事があった。 Java の語彙で Maybe を説明してみる - ぐるぐる~ 直和型のエンコーディングである、 でMaybeモナドを説明している、まっとうな記事です。気になったのは、上のエンコーディングを Java の上でやって、なにか変なことが起きないのかということ。例えば記事中では、 *3 みたいなことが、Javaでは禁止できない、ってことについて触れています。この他には変なことはおきないんでしょうか? 僕には全然Java的な言語への直感がないので教えてください!!! 「.

    Maybeに限らずJavaで直和型を実現できるか - 貳佰伍拾陸夜日記
  • 管理が困難―分散処理の常識はZooKeeperで変わる

    管理が困難―分散処理の常識はZooKeeperで変わる:ビッグデータ処理の常識をJavaで身につける(8)(1/3 ページ) Hadoopをはじめ、Java言語を使って構築されることが多い「ビッグデータ」処理のためのフレームワーク/ライブラリを紹介しながら、大量データを活用するための技術の常識を身に付けていく連載 分散処理の課題が「管理」なのは常識 複数の計算機上で動作(分散)するアプリケーション、ソフトウェアが多く存在します。分散ソフトウェアは複数の計算機で動作することで大量のデータを扱えたり、高負荷な状況に対処します。稿では、複数の計算機(クラスタ)で動作する各サーバを「インスタンス」と呼びます。 連載で紹介した分散Key-Valueデータベースである「HBase」は複数の計算機で動作する代表的なソフトウェアです。両ソフトウェアはともに「Apache ZooKeeper」(以下、Z

    管理が困難―分散処理の常識はZooKeeperで変わる
    NetPenguin
    NetPenguin 2012/06/22
    そういえば、Neo4jもZooKeeperだなー。
  • java.lang.Object#hashCode()の性質 - 地平線に行く

    この前、ふと Object クラスの JavaDoc を見ていたら、こんな記述がありました。 できるかぎり、Object クラスで定義される hashCode メソッドは、異なるオブジェクトについては異なる整数値を返します。 Oracle Technology Network for Java Developers | Oracle Technology Network | Oracle この「できるかぎり」って、どのぐらいなんでしょうか。 オブジェクト数に比例して、衝突していました。 さくっとコードを書いてみました*1。 結果は以下のグラフの通りです。 (一定数(横軸)のオブジェクトを生成し、ハッシュコードの衝突割合(縦軸)を調べました) オブジェクトが増えれば増えるほど、衝突確率が高まっていきます。 オブジェクトが100万個だと衝突確率は 1.46% でしたが、5,000万個だと 47

    java.lang.Object#hashCode()の性質 - 地平線に行く
    NetPenguin
    NetPenguin 2012/05/04
    オブジェクトのアドレス値かと思ってた・・・
  • プログラミングサンプル集 | mwSoft

    メニュー 自然言語を扱う際に関わりそうな情報 Scalaの紹介やサンプルコード等 Javaやそのライブラリのサンプルコード等 全文検索エンジンのLucene/Solrに関するメモ 分散処理フレームワークのHadoopに関するメモ 分散機械学習ライブラリのMahoutに関するメモ Java/ScalaのWebフレームワーク、Playに関するメモ JavaScriptを利用した機能例 PythonのNumpy周辺ライブラリに関するメモ 主にthree.jsを使った3D描画に関するメモ 簡単な数式をJuliaのコードにして実行

    NetPenguin
    NetPenguin 2012/05/02
    形態素解析エンジンの使い方など
  • InfoQ: グラフデータベース、NOSQL、Neo4j

    VoldemortやTokyo Cabinetといったキー/バリューシステムにおけるモデリングの最小単位はキー/バリューペアになる。そして、BigTableやそのクローンでは可変数の属性をもつタプルに、CouchDBやMongoDBといったドキュメントデータベースではドキュメントになる。これに対しグラフデータベースでは、データセット全体をひとつの巨大な高密度ネットワーク構造としてモデル化する。 ここではNOSQLデータベースにおける2つの興味深いポイント、スケーラビリティと複雑さについて詳しく説明する。 1. スケーラビリティ CAP: ACID 対 BASE 従来のデータベースシステムのほとんどは、トランザクションに基づいてデータの完全性を保証する。トランザクションを使うことで、データ管理のあらゆる状況において、データの一貫性を確保している。こうしたトランザクションの性質は、ACID(A

    InfoQ: グラフデータベース、NOSQL、Neo4j
    NetPenguin
    NetPenguin 2012/04/13
    とりあえず試すのに分かりやすそう
  • Ruby の retry-handler が激しく便利そうなので Java で実装してみた - 宇宙行きたい

    http://kimoto.hatenablog.com/entry/2012/03/05/103052 を読んでたら Ruby の retry-handler が激しく便利そうなので Java で実装してみた。 ソース→ https://github.com/yoshiori/retry-handler どんなものか簡単に説明すると 特定の処理を実行したいんだけど、途中で何らかのエラーが発生した場合はリトライさせたい時に使えます。 具体的にはこんな感じで書くと、処理の途中でエラーが発生しても指定した回数はリトライしてくれます。 Proc.retry(3,new Runnable() { @Override public void run() { //なんか処理 } }); 特定のエラーの時だけリトライしたい時はそれも指定できます。 例えば IOException とそのサブクラスのエラー

    Ruby の retry-handler が激しく便利そうなので Java で実装してみた - 宇宙行きたい
  • Project Lambda

    このエントリは Java Advent Calendar 2011 の一環で、第 1 日目のエントリーです。 やっぱり、櫻庭といえば Java SE の新しいところでしょう (これ去年も書いたなぁ ^ ^;;)。ということで、Java SE 8 の目玉機能となっている Project Lambda を取りあげます。 結果的に超長文になってしまいましたww 厳密にいえば、Lambda はクロージャではありません。 追記: ここでいっているクロージャはレキシカルスコープが使用できる無名関数のことを意味しています。 (るとさん、コメントありがとうございました) では、ラムダ式とはなんなのか? それはタスクを簡単に書くことを目的とした、単一メソッドのインタフェースのインスタンス生成を簡単に書くための簡易記法です。ようするにシンタックスシュガーでしかありません。 ここでいうタスクは、特にパラレルに処

    NetPenguin
    NetPenguin 2011/12/03
    Java8に入るであろうλの説明。分かりやすい。インタフェースのデフォルト実装って、トレイトに近いなぁと思ったり。
  • Shitf_JISとCP932とMS932とWindows-31Jを昔話風に語ってみた - 凶悪モナド

    要約すると こんな感じ Shift_JIS ≒ CP932 = Windows-31J = MS932 こういう言い方もできる 仕様:Shift_JIS 実装:CP932, Windows-31J Javaでのみ使われる都合上の名前 別名:MS932 編 むかしむかし、あるところに「Shift_JIS」という名の文字エンコーディングがおったそうな。里の村長「マイクロソフトたん」はいち早くShift_JISの才に目をつけた。マイクロソフトたんはShift_JISを育てることにし、愛称として『コードページ932(CP932)』と呼んでおったそうな。それからまもなくして、Shift_JISはMS-DOSというOSにのせて売られはじめるようになったんじゃ。 同じ里の「IBMたん」はそのMS-DOSをつかってマルチステーション5550というパソコンをこしらえた。IBMたんはもっと便利になるようにと

    Shitf_JISとCP932とMS932とWindows-31Jを昔話風に語ってみた - 凶悪モナド
    NetPenguin
    NetPenguin 2011/05/07
    文字コード
  • UnsupportedOperationExceptionと相続拒否 - 都元ダイスケ IT-PRESS

    昨日ご紹介したbaseunitsですが、そのコードを社内コードレビューに掛けた際、id:cobonasからこんな指摘がありました。 package jp.tricreo.baseunits.util; import java.util.Iterator; /** * 明示的に、対象のコレクションに対する操作ができないことを表す反復子。 * * @param <T> 要素の型 */ public abstract class ImmutableIterator<T> implements Iterator<T> { @Override public void remove() { throw new UnsupportedOperationException("sorry, no can do :-("); } } https://github.com/tricreo/baseunits/b

    UnsupportedOperationExceptionと相続拒否 - 都元ダイスケ IT-PRESS
    NetPenguin
    NetPenguin 2011/02/27
    なかなか興味深い。Compositeにするのか、引き下げるのか、あるいはそもそもそのような振る舞いが契約として満たされているのか・・・と。
  • マルチコア時代に備えて本気でメモリモデルを理解しておこう - リオーダー & finalフィールド 編 - - かとじゅんの技術日誌

    長い文章になってしまったので、概要だけ先に書きます。 以下のJavaプログラムは、常に上から下に順番に命令が実行されると思いますか?つまり、aに1が格納された後に、bに2が格納されると思いますか? 実は場合によってはこの実行順序が入れ替わる場合があります。これはJavaの言語仕様として定義されていることです。これを考慮しないと信頼性のある並行処理は実装できません。 気になる人は以下を読んでみてください。 a = 1; b = 2; すでにインターネットは社会インフラ化しています。ソーシャルネットワークで多くの人とコミュケーションやコラボレーションできる時代で、個人が情報を作り消費することは当たり前になってきています。そして、インターネット上のコンテンツは増加の一途を辿っています。「情報爆発」なんて言葉も耳慣れた言葉になりましたが、その問題解決のためにMapReduceなどの分散処理技術に注

    マルチコア時代に備えて本気でメモリモデルを理解しておこう - リオーダー & finalフィールド 編 - - かとじゅんの技術日誌
  • mobylet(モビレット) | 携帯Webアプリケーションを開発するためのJavaオープンソースフレームワーク

    「mobylet(モビレット)」は携帯向けWebアプリケーション構築のために特化した、 強力なJavaオープンソースフレームワークです。 「mobylet」を導入することで得られる機能には、次のようなものがあります。 3キャリアの絵文字の表示/入力/変換に対応 3キャリアの絵文字入りメール/添付メール/デコメールの送信に対応 ブラウザサイズに合わせて画像を動的にリサイズ表示 アクセスした端末のUID/GUID/端末プロファイル情報などを取得可能 非常に簡単なGPS/GoogleMapインターフェースを提供 携帯端末のキャリア・機種毎に異なるブラウザ仕様への対応は非常に手間のかかる作業です。 開発者は、PC向けWebアプリケーションのクロスブラウザ対応以上に困ることも多いでしょう。 mobyletは、そんな携帯独自の開発を容易にする機能を提供し、 効率的な携帯向けWebアプリケーションの構築

  • JavaとScalaとC#のジェネリクス機能比較表 - Onion開発しつつ、PEGEXを開発する日記

    JavaScalaとC#のジェネリクスは、いずれも継承を持ったオブジェクト指向言語においてParametric Polymorphismを実現するための手段であり、それぞれ異なった特性を持っている。というわけで、それぞれの言語においてジェネリクスがどのようにサポートされているかを比較した表を用意してみた。後で気が向いたら、各項目の説明を追加するかも。 Java(5.0以降) Scala C#(4.0) ジェネリックなクラス ○ ○ ○ ジェネリックなメソッド ○ ○ ○ 型パラメータの上限 ○ ○ ○ 型パラメータの下限 × ○ × 型パラメータの推論 ○ ○ ○ 全ての型のサブタイプ(ScalaにおけるNothing) × ○ × definition-site variance × ○ ○ use-site variance ○(Wildcard) ○(Existential Typ

    JavaとScalaとC#のジェネリクス機能比較表 - Onion開発しつつ、PEGEXを開発する日記
    NetPenguin
    NetPenguin 2010/11/10
    そういえば C# では default(T) とすることで、初期値を取り出すこともできたり。 T value = default(T) とかしてつかう。
  • Efficient data transfer through zero copy

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    Efficient data transfer through zero copy
    NetPenguin
    NetPenguin 2010/03/15
    実行時にswingコンポーネントの階層構造を見ることが出来る、およびGUIに対する単体テストツール
  • Scala for Java programmers - Asterisk works Wiki

    JavaプログラマのためのScala Javaのバーチャルマシンを対象とした多数の言語がある。 (スクリプト言語や動的型言語だけではなく)別の静的型言語を学ぶのはどうだい?JVM向けにコンパイルされ、Java言語とシームレスに統合されるのは? 最新のマントラは"一つの偉大な仮想マシンに多くの言語"さ。だろ?:-) - Scala- に注目してみないか? 関数型でオブジェクト指向でコンカレントな言語で、そいつはJavaプラットフォームで走るんだ。 ノート:この文書は言語比較の訓練じゃない。[つまり、どっちがよりよいかを結論づける X 対 Yの比較じゃない]。 むしろJavaプラットフォームで走る他の言語を学びたいJavaプログラマのためによいきっかけを提供する試みなんだ。 それで目的は静的型言語に注目しているが「Java, Groovy と(J)Ruby」や「Java, JavaScrip

    NetPenguin
    NetPenguin 2010/02/17
    JavaプログラマのためのScala
  • Java:Java3Dで3次元アプリ

    Java3DはJavaで3次元グラフィックスを扱うために用意されたAPIです。Java3Dを利用することで比較的簡単に仮想の3次元空間の中で様々な物体を表示したり動かしたりできるアプリケーションを作成できます。ここではJava3Dに関して詳しい解説を行っていきます。 インストールと環境設定 Java3Dでの座標空間 SimpleUniverse図形を使って物体を表す Appearanceを設定する 光源を設定する Transform3DとTransformGroup Interpolatorによるアニメーション 下記の内容はまだ古いままです。 点や線などを使って物体を表す 物体を動かす Morphクラスを使って画像を変化させる

    NetPenguin
    NetPenguin 2010/02/15
    学習用
  • Java3D

    Java3D自分FAQ これは、私がJava3Dを始めるに当たってぶち当たった壁を列挙し、 可能ならばそれを解決した方法をあげたページです。 よってあんまり正しいFAQの形式をとってません。 よってこの解法が正しいかどうか保証はありません。 よって鵜呑みにするとひどいめにあうかもしれません。 Q1. Java3Dを始めるには何が必要でしょうか? JavaSoftページ Java 3D(TM) API Home Page を参照しましょう。ここから必要最低限の情報は得られます。 とりあえず、Win環境でJava3Dプログラムを始めるには、以下のものが必要です。 Java3D 1.1 implementation Java3DのJavaSoftによるインプリです。 正式公開版が出たので、JDC(Java Developer Connection)に入る必要もなくなりました。 上のページから

  • ZeroC

    Network your softwareAt ZeroC, we have a singular focus - deliver world class tools to help you network your software. IceAn all-in-one solution for creating networked applications with RPC, pub/sub, server deployment, and more. IceRPCIntroducing the next generation RPC framework: built for QUIC, with bidirectional streaming, first class async/await, and Protobuf support.

    NetPenguin
    NetPenguin 2010/02/12
    複数言語対応の分散オブジェクトミドルウェア、iPhoneや組み込み機器向けのライブラリ等
  • Parked at Loopia

    NetPenguin
    NetPenguin 2010/02/12
    サードベンダ製のUIライブラリ
  • RMIメモ(Hishidama's Java Remote Method Invocation Memo)

    RMI(Remote Method Invocation) RMIは、リモート(サーバー)上のインスタンスのメソッドを呼び出す手段。 RMIレジストリー又はJNDIにインスタンスを登録しておき、クライアントからそのメソッドを呼び出すことが出来る。 呼び出されたメソッドは、そのインスタンスを登録したJavaVM上で実行される。 コーディング上は、クライアントからは単なるメソッド呼び出しに見えるが、実際は通信が発生している。 サンプル RMIインターフェース [/2009-11-14] 実装クラス(単純なImpl) [/2009-11-14] 実装クラス(UnicastRemoteObject) RMIサーバー(bind) [/2009-12-13] RMIクライアント(lookup) rmiregistry codebase [/2009-11-14] classpath [2009-11-

    NetPenguin
    NetPenguin 2010/02/10
    RMIについての情報がまとまっている