タグ

javaに関するsyanbiのブックマーク (57)

  • ジェネリクスの基礎と�クラス設計への応用

    ローカルのテストが遅い、CIでのテストが遅すぎてあまり回せていないことなどありませんか? 私のプロジェクトでは、1回のCIに4時間かかるようになってしまい、深夜に一度CIを回すような運用になっていました。 時間がかかりすぎるため、段々とCI自体が負債化していっていました。 今回はCI時間を劇的に短縮するまでにやった10のことをお話します。 SpringBootを使用して開発したため、いくつかはSpring特有の問題もありますが、 全体としてはJava共通のものが数多くあります。 ご興味があればぜひ聞きに来てください。

    ジェネリクスの基礎と�クラス設計への応用
  • スキル差の存在を前提としたJava開発の私の理想 - Kengo's blog

    スキルの低い人が生産性における問題ならその人を何とかするのが根解決だよねと話したら、人に強要することなんてできないじゃないですかーという反応をいただいた。 これはすごく的を射たもので、チームを引っ張ってモノづくりをするうえで・チームを引っ張らせてモノづくりをするうえで重要な着眼点になると思っている。 個人の尊厳や主体性は最大限尊重すべきだし、様々な発想を持ち込めること(多様性)こそがチーム結成の価値の1つでもある。もしも開発プロセスやそのツールをガチガチに固めてしまうことで自由なチャレンジができなくなるのだとしたら、それは価値ある生産物を主体的・継続的に提供する能力の低下につながるだろう。そもそも変わりゆく環境の中で、1つのプロセスがずっと最適である保証も無いのだ。 では、どうするべきなのか。基的には以下の原則を守ることだと思っている。 チーム全員が同じ方向を向こうとすること 気づきの

    スキル差の存在を前提としたJava開発の私の理想 - Kengo's blog
  • Twitter drops Ruby - The Bullshit | Carlos Becker

    This post is about the Twitter change from Ruby to Java, some years ago, fact that, sadly, is still being used by some people to say that Ruby sucks and Java is the best language in the world. Before you read that, a little background on me would be good: Java is the first language I worked with. I started 4 years ago and I’m still using it every day; No, I don’t hate Java, it is just not my favor

    Twitter drops Ruby - The Bullshit | Carlos Becker
  • 日本語形態素解析ライブラリ Kuromoji のコマンドライン用インターフェイスを書いた - ひだまりソケットは壊れない

    Java で書かれた日形態素解析ライブラリ Kuromoji を Perl から使ってみたいなー、と思って、別の言語のプログラムから使いやすいようなインターフェイスを書きました。 Kuromoji について kuromoji - japanese morphological analyzer Java で書かれたオープンソースの日語の形態素解析ライブラリです。 検索用のライブラリらしくて、Apache Lucene と Apache Solr に組み込まれているらしいです。 もちろん検索エンジンとは独立して利用することも可能です。 独立して使用する場合は、単に jar ファイルをダウンロードしてきて Java のライブラリパスに追加するだけ (あるいは公開されている Maven リポジトリを使用して依存関係を解決するだけ) で形態素解析できるようになります。 便利ですね。 Java

    日本語形態素解析ライブラリ Kuromoji のコマンドライン用インターフェイスを書いた - ひだまりソケットは壊れない
  • パフォーマンスを意識した Java コーディング #渋谷java

    渋谷Java #shibuyajava での発表資料です http://atnd.org/events/40140

    パフォーマンスを意識した Java コーディング #渋谷java
  • パッケージ名は、単数形?複数形? - Qiita

    Should package names be singular or plural? をざっと翻訳 (as of 2013.8.31) 訳注:意外と見逃しがちなネームスペースの単数形と複数形の問題。比較的シンプルにまとまったQAを見つけたので訳してみました(コメントは訳していません。java.beans は例外であったり、リレーションについては異論があったりするようです)。 Question (42 votes) by NickC しばしば、ライブラリにおいてパッケージはひとつの概念で構成されるクラス群を含みます。たとえば、 xml 、 sql 、 user 、 config 、 dbです。皆さん、至って自然にこれらのパッケージ名は単数であることが正しいと感じるのではないかと思います。 com.myproject. xml .Element com.myproject. sql .Con

    パッケージ名は、単数形?複数形? - Qiita
  • マルチコア時代のプログラマは関数脳になろう〜Java8のススメ〜 - Tech-Sketch

    CPUのクロックアップに限界が訪れ、マルチコア化することで処理性能向上を目指す時代になりました。これからのプログラマには、マルチコアで処理性能が向上するプログラム=マルチスレッドで並列処理が可能なプログラムを書く能力が必要になります。今回は「関数型」でプログラムを書くことによって、いとも簡単に並列化ができることを実例を元に解説します。 関数型プログラミングと並列処理 「関数型でプログラムを書くことで簡単に並列化できる」と書きましたが、そもそもここで言う「関数」とは何なのでしょうか? 関数型プログラミングの特徴 関数型プログラミングの「関数」を理解するためには、数学における「関数」を想像するとわかりやすいでしょう。 例えば三角関数を用いた y=cos(x) という式を考えてみます。この式に入力値 x=0 を与えた場合、いつでも必ず結果は y=1 になります。x= π/3 の場合は y =

    syanbi
    syanbi 2013/08/12
  • SIerを退職し、Web系に転職しました - arveltのソフトウェア技術メモ

    銀行系列の中規模SIer退職し、 受託と自社サービスの開発を行っている小規模Web系に転職することになりました。 7/30が最終出社日でした。8/1からは新しい勤め先へ向かいます。 1.これまでやったこと 2.これからやりたいこと 3.なぜ転職しようと思ったのか なお、3はいわいる自分語りを含む上に長いのでご注意ください。 読ませる知り合いもいないのに何故書いた。 1.これまでにやってきたこと。 オープン系の基幹システムの保守開発に携わり4年ほど。 JavaCOBOLExcelVBAをメインにやっていました。 もちろんSQLも普通に書いたりしつつ、触ったことのあるDBOracle、PostgresSQLSQLServer。 業務知識は主に流通系。Web開発とかもやりました。Javaでstruts1.Xとか、ASP.NETとC#とVBとか。 それと個人的欲求に基づき、Android

    SIerを退職し、Web系に転職しました - arveltのソフトウェア技術メモ
    syanbi
    syanbi 2013/08/01
  • Gradle入門 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 追記1: コメントでの指摘を受け、gvmに関する記述を削除 この記事は、日経ソフトウェア 2013年 06月号 04/24発売 のステマ記事です。 6月号に、@keiji_ariyama(前座部分担当) と 僕(Gradle概要担当) と @sys1yagi(Android対応部分担当) という分担でGradle入門的な記事を書きました。 ですが、僕の目的としてはトップゲート社員への布教を主目的と考えて書いたため、来要求されている分量を(わざと)大幅にオーバーして書いていました。雑誌に掲載されなかった溢れ分をネットで公開して良いか打診

    Gradle入門 - Qiita
    syanbi
    syanbi 2013/06/09
    Groovyで書かれたビルドシステムか
  • Java8のlambda構文がどのようにクロージャーではないか - きしだのHatena

    Java8にlambda構文が入りましたが、これはクロージャーではない、とされています。 では、どのように「クロージャーではない」のか、ちょっと見てみます。 まず、lambdaを返すメソッドを定義します。 public static Supplier<String> createMessenger(String name, String address){ return () -> { return String.format("私は%s、%sに住んでる", name, address); }; } 呼び出すと、こんな感じでSupplierを受け取ります。 Supplier<String> messenger = createMessenger("きしだ", "ふくおか"); このSupplierを実行すると、次のようになります。 System.out.println(messenger.

    Java8のlambda構文がどのようにクロージャーではないか - きしだのHatena
  • GitHub - google/j2objc: A Java to iOS Objective-C translation tool and runtime.

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - google/j2objc: A Java to iOS Objective-C translation tool and runtime.
    syanbi
    syanbi 2012/09/19
    Java -> Objective-Cのコンバートかー。Scalaだったらよかったのだけど... できないのかな?
  • Node.js vs Play vs SAStruts - hakobera's blog

    前置き Experiences with Node.js: Porting a RESTful Service Written in Java - ZiggyTech 上記記事では、実験的にJava (Jersey + Hibernate on Tomcat) で実装された REST API サーバを Node.js で書きなおしてみたら、少ないリソース(CPU/メモリ使用量)でほぼ同等のパフォーマンスが出せたよ(ただし、O/Rマッパーを使用しない場合)、と書いてあります。この件に関して @koichik さんとやり取りしていた中で以下のような意見を頂いたので、実際にやってみましたという記事です。 @hakobera メジャーってことだと,あの比較が Play ではなく Tomcat なのは正解.日的には Jersey ではなく Struts (もちろん 1 の方)なら更によかったw 2

    syanbi
    syanbi 2012/03/07
    node.jsとSAStruts, play(1.2.4)のそれぞれのパフォーマンス測定についての結果報告エントリ。
  • Island Life - O(n^2)正規表現

    About 南の島のプログラマ。 たまに役者。 Practical Schemeの主。 WiLiKi:Shiro 最近のエントリ 米国の大学進学無限cxr高校受験Defense振り返ってみると2019年は色々学んで楽...覚えるより忘れる方が難しい(こともある)眼鏡のつると3DプリンタIris Klein Acting ClassSAG-AFTRA conservatory: Voice Acting創作活動って自分を晒け出さねばならないと...More... 最近のコメント Jessica Kirkpatrick on CLtL2 (2025/06/28)shiro on 歳を取ると時間が速く過ぎるのは、新しいことに挑戦しないから? (2023/03/14)1357 on 歳を取ると時間が速く過ぎるのは、新しいことに挑戦しないから? (2023/03/01)ベアトリーチェ on ハイポハ

    Island Life - O(n^2)正規表現
    syanbi
    syanbi 2011/10/22
    Shiroさんによる正規表現エンジンの実装(参照元記事はNFAが原因とか書いてある)について原因はNFAではないということを解説しているエントリ
  • Twitterが、Ruby on RailsからJavaVMへ移行する理由

    オライリーが主催するイベント「Open Source Convention 2011」が7月25日から米国ポートランドで開催されました。 その中で、TwitterがなぜRuby on RailsベースのシステムをJavaVMベースへ移行しようとしているのかを解説したセッション「Twitter: From Ruby on Rails to the JVM」が行われ、ビデオが公開されています。 13分程度の短いセッションのポイントをまとめて紹介します。 世界最大のRuby on RailsによるWebサイトをJavaVMへ移行 Twitterのアプリケーションサービスグループ、Raffi Krikorian氏 Twitterは世界中からのツイートをリアルタイムで扱っている。リアルタイム処理が、ツイッターにおけるもっとも難しい処理だ。 Twitterは、おそらく世界最大のRuby on Rail

    Twitterが、Ruby on RailsからJavaVMへ移行する理由
    syanbi
    syanbi 2011/08/03
    Scalaきちんと学習しないとなぁ
  • quine リレー - まめめも

    Update (2013-07-15): I improved this program to 50-language version. 50 言語版にパワーアップさせました。 これはこのプログラム自身を出力する Unlambda プログラム、を出力する Whitespace プログラム、を出力する brainfuck プログラム、を出力する Java プログラム、を出力する C プログラム、を出力する Haskell プログラム、を出力する OCaml プログラム、を出力する Lua プログラム、を出力する Perl プログラム、を出力する Python プログラム、を出力する Ruby プログラム、です。 # ruby l=92.chr;eval s="s=s.dump[r=1..-2].gsub(/("+l*4+"){4,}(?!\")/){|t|'\"+l*%d+\"'%(t .s

    quine リレー - まめめも
    syanbi
    syanbi 2011/07/05
    話題になってたquineプログラム元ネタこれかーーーー
  • Javaメモリ、GCチューニングとそれにまつわるトラブル対応手順まとめ - 日記のような何か

    GC周りでトラブルシューティングした際の経験や、Web等で調べたことをまとめてみる。 前提 ・JVMは、Sun Javaを想定。(他は使ったことないです。。。) ・Sun Java 1.5-1.6を想定。 目標 マイナーGC、Full GCそれぞれが頻発することなく、かつそれぞれの実行時間を1秒未満に抑えること。 マイナーGCは1秒未満どころではなく、もっと短くなるべき。どれくらいが理想かは?(0.1秒未満ぐらいを目指したい?) 連続した負荷状態(想定されるピークアクセス)でもOutOfMemoryErrorが発生しないこと。 理想的な状態は、上記に加えて、Full GCの発生が低頻度であること。 具体的には、できるだけマイナーGCで短命オブジェクト(1回使ったらもう使わないようなオブジェクト。逆にセッションオブジェクト等は長命オブジェクトとなる)を破棄させて、短命オブジェクトが、Tenu

    Javaメモリ、GCチューニングとそれにまつわるトラブル対応手順まとめ - 日記のような何か
    syanbi
    syanbi 2011/06/19
    java起動オプションまとめ
  • 一歩先行くJavaプログラマが読むべきオープンソースソフトウェア10選 - 設計と実装の狭間で。

    10万行コード読んだらJava分かるよってTwitterに書いたらすげぇ勢いでRTされたので、調子に乗って捕捉エントリ書くよ。 Java Core API JDKインストールしたディレクトリに入ってるsrc.zipを展開すると入ってるから読むと良いよ。 すぐ近くにあるのから読むってのはメンタル的に楽でいい。 厳密にはOSSじゃなくて単に公開されてるってだけなんだけども、JavaプログラマなのにコアAPIのコード読んでないとか無いよね? どれから読めば良いか分からんかったら、 java.lang java.util java.io java.text 辺りをまずはキチンと理解すること。当然コードを読み終わったら、それを使ってコードを書く事。 OpenJDK http://hg.openjdk.java.net/jdk7/jdk7 OpenJDKを読むことで、プログラム言語してのJavaではな

    一歩先行くJavaプログラマが読むべきオープンソースソフトウェア10選 - 設計と実装の狭間で。
  • JavaとJSの区別がつかないベンチャーナウが意味なく頑に修正要請に応じないという謎

    豚 @butabuta_bot ベンチャーナウに気でアタマにきた。向こうが電話取材でJavaJavaScriptについて聞き間違えたくせに「鍵括弧内の修正には一切応じられない」と。僕がJavaJavaScriptを間違えるわけないだろ!記事の確認もさせなかったくせに http://ht.ly/55L3C 2011-05-30 17:14:56 豚 @butabuta_bot 挙げ句、なんだよ「Java(Script)」って。めちゃくちゃだ。ベンチャー媒体を語る資格すらない。恥ずかしくないのか? Javaのワケないだろ。記者が不勉強なせいで僕まで馬鹿だと思われてしまうだろうが。しかも削除要求には応じないということなので法的手段に訴えることにした 2011-05-30 17:16:20

    JavaとJSの区別がつかないベンチャーナウが意味なく頑に修正要請に応じないという謎
  • Java SE 7徹底理解 第1回 言語仕様の小さな変更 - Project Coin

    今月から、久々のJavaのメジャーバージョンアップであるJava SE 7を紹介していきます。 Java SE 6がリリースされたのが2006年12月ですから、もう5年にもなろうとしています。これだけの時間がかかってしまったことからもわかるように、Java SE 7の仕様が決まるまでは紆余曲折の歴史でした。 もともと、Java SE 7はJava SE 6と一緒に仕様を決め、簡単に実現できる機能をJava SE 6、実現に時間がかかる機能をJava SE 7にすることになっていました。その当時、Java SE 7に盛り込まれる機能としてリストアップされていたのが、クロージャやfriendです。 クロージャのすったもんだについては連載の「クロージャからProject Lambdaへ」で言及しました。その後、Project Lambdaは再び仕様が変更されています。 friendはスーパーパ

    Java SE 7徹底理解 第1回 言語仕様の小さな変更 - Project Coin
  • 普通のSI会社では評価されにくいのだけど、多くのシステムは研究熱心な技術者の小さな発見と工夫の積み重ねによって支えられているのでは? - 達人プログラマーを目指して

    昨晩遅く、id:backpaper0さんの以下のツイートが目にとまりました。 staticでない物の内部クラスは暗黙で外側のインスタンス(エンクロージングインスタンス)のthisにアクセスできる仕様なので、newを使った普通のインスタンス化の方法では決して外部のインスタンスが存在しない状態でnewできないようになっています。つまり、内部クラスのインスタンス化にはエンクロージングインスタンスの存在が前提となるというのが私が長年Javaのコードを書いてきた中での常識でした。 実際、エンクロージングインスタンスの外側で内部クラスのインスタンスを作成する場合、以下のようにnew演算子の前にエンクロージングインスタンスを書かなくてなならない仕様となっているため、これがnullでは決して内部クラスが生成できないように構文上工夫されています。 public class Outer { private

    普通のSI会社では評価されにくいのだけど、多くのシステムは研究熱心な技術者の小さな発見と工夫の積み重ねによって支えられているのでは? - 達人プログラマーを目指して