並び順

ブックマーク数

期間指定

  • から
  • まで

241 - 280 件 / 8007件

新着順 人気順

println javaの検索結果241 - 280 件 / 8007件

  • EJBコンテナが分散コンポーネントモデルから軽量なDIコンテナに変化してきた歴史を振り返る - 達人プログラマーを目指して

    十年一昔といいますが、文字通り一昔前の書籍ではJ2EEのEJBコンポーネントはプロセスが分散化されたリモート呼び出しにより処理を行う分散コンポーネントとして説明されています。そして、残念ながら現状Java EE関連の日本語の書籍はこうした古い時代に書かれたものがほとんどとなっています。それゆえ、 開発効率がきわめて悪い 実行性能が悪い*1 仕様がきわめて複雑で理解が大変 といった悪いイメージが定着してしまっているのではないかと思います。しかしながら、最新バージョンのJava EE6では、Spring、Guice、SeamなどのOSSの軽量コンテナのアイデアを取り込むことにより、以前とは比較にならないくらい開発効率が改善されているという事実があります。 ここでは、Hello WorldのEJBの書き方を以前の古いバージョンから順次振り返りながら比較してみることで、EJBのプログラミングモデル

      EJBコンテナが分散コンポーネントモデルから軽量なDIコンテナに変化してきた歴史を振り返る - 達人プログラマーを目指して
    • マルチスレッドプログラムのバグ (JavaWorld 2002/1)

      マルチスレッドプログラムのバグ 首藤 一幸 産業技術総合研究所 グリッド研究センター 注: このページの文章は JavaWorld 誌 2002年 1月号に掲載された以下の記事の元原稿です。 JavaWorld 誌編集部の了承の元に、本ウェブページに掲載しております。 首藤一幸, "マルチスレッドプログラムに対するデバッギングの心得", 月刊ジャバワールド 2002年 1月号, pp.64-73, IDGジャパン, 2001年 11月 もくじ 序文 1. はじめに 2. レース状態 3. ロック 4. Java言語のモニタ 5. デッドロック スレッドの異常終了によるデッドロック Threadクラスのstop()とsuspend()メソッド 6. 再現性の低さ 7. 予防が肝腎 8. デバッグ assertion機能 デッドロックの検査 9. 注意一秒ケガ一生 参考文献 序文 スレッドは

      • ブラウザ上でデータ分析が出来る!Clojure/Gorilla入門 - あんちべ!

        概要 この記事は、Gorillaという ブラウザ上でClojureという言語を利用出来るライブラリを利用し、 ブラウザ上でデータ分析環境を構築するための入門記事です。 Clojureの事前知識は一切不要で、 ClojureやGorillaのインストールから、ブラウザ上で各種手法を コピペだけで実践出来るになるまでを説明しています。 なお、各種分析手法の詳細には言及しておりません。 とにかくGorillaを動かす 「説明は良いから、とにかく動かしたい」 という方向けに要点だけ説明します。 leiningenをインストールし、作業フォルダにてlein new gorillaでプロジェクトを作り、 生成されたgoraillaフォルダ直下にあるproject.cljに下記をコピペし保存、 lein gorillaと打ち込み、少し待つと Running at http://localhost:XXX

          ブラウザ上でデータ分析が出来る!Clojure/Gorilla入門 - あんちべ!
        • Java8でのプログラムの構造を変えるOptional、ただしモナドではない - きしだのHatena

          ※ 5/29 3:23 追記:なんかモナドになったかも。最下部参照 さて、Java8での拡張をいろいろ見てきたわけですが、ではアプリケーションプログラムでFunctionを受け取るメソッドをがんがん定義するかというとそういうことはあまりなく、フレームワーク的な部分で数個定義する感じになると思います。もちろん数個でも効果はでかいのですが。 また、おそらくStreamを受け取ったり返したりするメソッドを定義することは、めったにないのではないかと思います。 Mapでの拡張も、メソッド内部での処理記述がかわる話で、メソッドの引数や戻り値はMapのまま変わりありません。 Javaでのプログラムの構造というのは、メソッドの引数や戻り値の型がなんであるかで決まると言うことができます。その意味では、lambdaやStreamというのは処理の記述は変わるけどプログラムの構造は変わらないとなります。 けれども

            Java8でのプログラムの構造を変えるOptional、ただしモナドではない - きしだのHatena
          • Scala2.10.0のDependent method typesと型クラスを組み合わせた『The Magnet Pattern』がヤバい件 - ( ꒪⌓꒪) ゆるよろ日記

            これが……型の力かッ……!! spray | Blog » The Magnet Patternという記事で、「The Magnet Pattern」というデザインパターンが紹介されている。 これは、メソッドオーバーロードで解決していた問題を、型クラスとDependent method typesを組み合わせて置き換えることで、オーバーロードの際の様々な制約(Type Erasureなど)を突破し、より柔軟な拡張性を得ることができるというもの。このパターンでは、引数の型に応じて異なる結果型を返すようにできる。 この記事で、今まで何のために使われるのかわからんかったDependent method typesの有効性が理解でき、あらためて型の力を思い知った。 以前に"Generalized type constraints"(Scalaで<:<とか=:=を使ったgeneraliz

              Scala2.10.0のDependent method typesと型クラスを組み合わせた『The Magnet Pattern』がヤバい件 - ( ꒪⌓꒪) ゆるよろ日記
            • Androidアプリからnode.js+Socket.IOと双方向通信する | DevelopersIO

              AndroidアプリからWebViewなどを介さずにnode.js+Socket.IOと双方向通信するための簡単なサンプルを紹介します。 サーバ側の実装 Androidアプリからnode.js+Socket.IO間で双方向通信するには、socket.io-java-clientというライブラリを使用します。 今回はサーバ側には弊社うえじゅん氏が公開している記事で作ったチャットアプリを使用しますので、まずは以下の記事を参考にチャットアプリを作っちゃってください。 Node + Socket.IO で簡単なチャットアプリの作成 チャットアプリの準備が終わったら、早速Androidアプリ側の準備をしましょう。 Androidアプリの実装 サンプルプロジェクトのダウンロード 今回紹介するAndroidアプリのソースコードをGitHubにあげてあるのでダウンロードしてください。 hakamata/S

              • Javaでいかにifやfor文を使わないでコードを書くか考えてみよう : IT速報

                1: 以下、\(^o^)/でVIPがお送りします 2014/12/29(月) 13:23:22.49 ID:aDj/zqBFNIKU.net if文for文使いまくってるのってキモいよな 2: 以下、\(^o^)/でVIPがお送りします 2014/12/29(月) 13:24:15.50 ID:/y8HWckGNIKU.net じゃあ代わりにswitchとwhile使う 3: 以下、\(^o^)/でVIPがお送りします 2014/12/29(月) 13:24:18.06 ID:afkjonbrNIKU.net switch 6: 以下、\(^o^)/でVIPがお送りします 2014/12/29(月) 13:25:46.44 ID:5e4wCC7eNIKU.net 3重switchできたった 4: 以下、\(^o^)/でVIPがお送りします 2014/12/29(月) 13:25:07.80

                  Javaでいかにifやfor文を使わないでコードを書くか考えてみよう : IT速報
                • Python使いをJuliaに引き込むサンプル集 | mwSoft

                  前書き Juliaという言語をご存知ですか? Pythonと同じ動的型付け言語ですが、実行時にコンパイルされることでC並の速度で動くこともあるとかないとか言われている話題のプログラミング言語です。比較される言語としてよくRやPythonが挙げられることからもわかる通り、統計や機械学習などの分野で力を発揮します。 2012年生まれとまだ若く、RやPythonが持つ多様なライブラリの力には及ばないところはありますが、CやPythonのコードを手軽に呼べる機能が用意されていたり、iPython NotebookやPyLabを呼ぶ為のインターフェースが用意されていたりと、既存の資産へのアクセス方法を用意することでその弱点をカバーしようとしています。 本記事では、Juliaのサンプルコードを紹介しながら、PythonユーザがJuliaに移った際に得られるメリットを紹介していきます。 Pythonの実

                  • Javaを使ってPDFからテキストを抽出する(Apache PDFBox 編) - デベルマン

                    最新の情報を利用する場合は、キャッシュレス・消費者還元事業(https://cashless.go.jp/)のページより入手してください。 処理実装今回読み取りに使用するPDFは、以下のように店舗が一覧化されています。この一覧から、「No.」「都道府県」「市区町村」「事業所名(屋号)」「業種」「業種(サブカテゴリ)」「還元率」の7種類の情報を個別の文字列として取得しましょう。 ちなみにいろいろひっかかるこの一覧。「伊達の牛タン本舗」の各店でスペース有り無しが混在しているのが細かいけどすごく気になるし、No.10001にはおそらく間違いが2つ存在してます。まず気になる文字化けはハイフン。その上で「だし廊」と「だし廊 -NIBO-」は別店舗。この一覧の作者は詰めが甘いように思う。。 こんにちは!だし廊本店です! 遅くなり申し訳ございません! 今週の限定の献立表が出来ました! 今週もだし廊でお待

                    • A Tour of Go を一通りやってみて、 Go言語の印象に残った機能や特徴などの感想 - ブログのおんがえし

                      はじめてのGo言語 - ブログのおんがえし に続いて A Tour of Go を最後までやってみました。 コードを実際に実行させながら基本的なGoの使い方を学ぶことで出来るのでおすすめです。日本語版もあります。 英語の勉強にもなるので私は英語版を使いました。どうしても意味が分からない時だけ日本語版を読むようにしたのですが、コードもあるし全体の80%くらいは英語だけでなんとか分かりました。プログラマはコード例などが付いているものの方が英語学習が捗ると思っています。 解答例 以下を大分参考にさせてもらいました。 A Tour of Go で Go に入門した - ゆううきブログ 私の解答は GitHub に。 ongaeshi/tour-of-go 演習問題は少し難しいけどGo言語の得意分野がなんとなく分かるのでおすすめです。どうしても分からない時は解答を読んで理解してみるといいです。 印象

                        A Tour of Go を一通りやってみて、 Go言語の印象に残った機能や特徴などの感想 - ブログのおんがえし
                      • 常識なんてクソ食らえ!最高にクレイジーなプログラミング言語4選+α - NaeNote

                        2016 - 06 - 01 常識なんてクソ食らえ!最高にクレイジーなプログラミング言語4選+α テクノロジー テクノロジー-雑学・トリビア SPONSORED LINK シェアする Google Pocket LINE こんにちは、NAEです。 プログラミング教育という言葉をよく聞くようになりました。そろそろプログラミングを勉強しようかな、という方もいらっしゃると思います。 CやC++、JavaやJavascript、Python、Ruby、GoLang・・・有名便利で使いやすい言語は実にいろいろあります。さて、それらとは一線を画した キワモノプログラミング言語 が存在するのをご存知ですか? 今回はそんなお話。 プログラミング言語とは プログラミング言語とは、 アプリやシステムで実行される処理を記述するための言語 です。コンピュータに対して命令を下し動かすための指示書を書くための言葉、と

                          常識なんてクソ食らえ!最高にクレイジーなプログラミング言語4選+α - NaeNote
                        • 色々な言語・環境(計8言語12種類)でAWSを触ってみた | DevelopersIO

                          様々なAWSのAPIやツールを紹介:『Tools for Amazon Web Services』 AWS SDKs & Tools しばらく前に、上記『Tools for Amazon Web Services』というページが公開されました。AWS利用に関するToolやAPIが整理され、ここを見ればどんな情報が用意され、何が出来るのか…そういった事が一目で把握出来るようになりました。 ただ、見渡してみるとその種類の多さにちょっと面食らいますw (※種類数は2013年04月末現在のもの) SDKs:8種類 IDE Toolkits:2種類 Command Line Tools:23種類 Command Line Tools(復数サービス対応):2種類 既に使っている言語でAWSを利用する、またはAWS利用に当たって言語や環境が決まっている、と言うのであればそこまで悩むものでも無いかも知れま

                            色々な言語・環境(計8言語12種類)でAWSを触ってみた | DevelopersIO
                          • Rust concepts I wish I learned earlier

                            This past month, I have been enthralled by the Rust programming language given its unique edge for writing memory-safe, modern programs. Over the years, several languages have emerged as the most preferred by engineers to write resilient, backend software. The tides have shifted from Java/C++ into Go and Rust, which combine decades of programming language theory to build tools that are effective i

                              Rust concepts I wish I learned earlier
                            • 直列加算と並列加算でdoubleの足し算の結果が変わる話 - きしだのHatena

                              Javaに限った話ではないのだけど、Javaで並列加算が気軽にできるようになったので、気に留めておいたほうがいい話。 まず、次のようなコードを動かしてみます。 public static void main(String[] args){ double[] data = { 1.234E80, -1.234E80, 2, 3}; System.out.println(Arrays.stream(data).sum()); System.out.println(Arrays.stream(data).parallel().sum()); } 1.234×10^80と-1.234×10^80という、桁が大きくて符号の違う数を並べて、そのあとに2と3という1桁の数値を置いています。 これらを加算すると、1.234×10^80と-1.234×10^80は符号が違うだけなので、当然結果は0になります

                                直列加算と並列加算でdoubleの足し算の結果が変わる話 - きしだのHatena
                              • AsyncTaskの使い方考察 - プログラマーの脳みそ

                                Androidでの開発ではAndroid OSをある種のフレームワークと捉えてその作法に則ってうまく「使われる」プログラムを書かなくてはならない。なのでそのフレームワークがどういう仕組で、どういう流れで僕らの書いたコードを呼び出すのかということを理解することがよい設計に結びつく。と、大風呂敷を広げているが僕もさほどAndroidに精通していないのでこれは努力目標みたいなもんです。 大雑把に割愛して、今回のテーマに関係の深いところをピックアップする感じでいきますか。 テーマのAsyncTaskだけども、要は非同期処理をしたい時に使う。Javaで非同期処理といえばThreadなんだけどもAndroidでは一般にAsyncTaskを使う。AsyncTaskではUIスレッドを使った非同期処理を簡単に(?)実装できるという触れ込み。 UIスレッドとは? そこでまずUIスレッドとは何かを理解せねばなる

                                  AsyncTaskの使い方考察 - プログラマーの脳みそ
                                • [結] 2005年8月 - 結城浩の日記 - テストが困難な性質

                                  目次 2005年8月31日 - Perl版の「メモ化(memoization), 再帰関数定義関数, 最小不動点」 / スマトラ沖地震・津波 / 2005年8月30日 - Windowsで、手早くPerl6で遊ぶ / 他の人から学べない「何か」 / 2005年8月29日 - ミルズの外科手術チーム / 2005年8月27日 - POPFile / 2005年8月26日 - 今日も仕事 / 2005年8月25日 - 今日も仕事 / 2005年8月24日 - 今日も仕事 / 人月はなぜ神話か / 2005年8月23日 - 説明文を書く2つのフェーズ / 秋は勉強の季節 / 2005年8月22日 - 仕事 / プログラマのダイエット / 2005年8月21日 - ジェネリクス・クイズ(2) / 2005年8月19日 - ジェネリクス・クイズ(1) / テストが困難な性質 / 2005年8月18日

                                  • Javaでのnullチェックのパフォーマンス - きしだのHatena

                                    Javaでのプログラムでは、Optionalが入ったとはいえ、nullとのつきあいは依然として重要です。 そんな中で、nullが入ってると困る処理を書くときには、nullチェックを行うほうが安全です。 そのとき、どのようにnullチェックを行うかというのが問題になります。 Java7からは、Objects.requiredNonNullというメソッドが導入されたので、このメソッドを使って、以降の処理でnullじゃないことを保証するということができます。 けど、このrequiredNonNullが遅いんじゃないかという話があるので、どう遅いのか調べてみました。 requireNonNullと同様に、値がnullだったらNullPointerExceptionを吐いて、null以外だったら素通りするという書き方のひとつに、getClassメソッドを呼び出すというものがあるので、これと比べてみま

                                      Javaでのnullチェックのパフォーマンス - きしだのHatena
                                    • Vimプラグインが出来るまで - ぼっち勉強会

                                      備忘的なVimプラグイン入門。 最近やっとVim scriptを書き始めて、プラグインの形でもってGithubにて公開というところまで辿り着きました。 いろいろと足りない部分は多いんですが、それでも初のプラグインであり初のオープンソースです。 で、こういう「初めて」の頃の感覚や手順って、後々になると覚えていなかったりするのでまとめておきます。 プラグインのヘルプはまだ書いてないから、「出来上がって」はいないんですけどね。 事前準備 日本語版のヘルプを手に入れましょう。 ヘルプは必須です。これがなければ始まりません。 英語が読める人は英語でもいいと思いますが、ぼくはすらすら読めないので日本語版を入れています。 どこかで「日本語ヘルプが許されるのは初心者まで」というのを見た気がしますが、ぼくはまだ初心者なので問題ありません。 インストールにあたっては、今だとここが最新情報なのかな? HowTo

                                        Vimプラグインが出来るまで - ぼっち勉強会
                                      • Web UIテスト自動化の実行環境をSelenium Gridで - ZOZO TECH BLOG

                                        どうも品質管理部エンジニアチームの木村です。 最近の話ではないんですがWeb UIテスト自動化をしようとなった時の事を書きます。 まずは初期段階の実行環境についてです、自動テストスクリプトの構築や処理そのものはまた次回。 Seleniumでテストを自動化したい! ZOZOTOWN に限らず最近のサービスはなんでもリリース頻度が高いです。 そして何故なのか、いついかなる時も、開発スケジュールは押し気味になります。 これは業界七不思議の1つです。たぶん。 品質管理部としてのテストは開発スケジュールの一番最後に置かれます。 つまり…短期決戦必須となります…。 そんなよくある話からSeleniumを使ってWeb UIテストを自動にしたいという流れになりました。 リリース頻度が高ければ高いほど、リグレッションテストはおろそかになると思うので、そこを自動テストで改善できると素敵です。 じゃあ自動テスト

                                          Web UIテスト自動化の実行環境をSelenium Gridで - ZOZO TECH BLOG
                                        • GoogleがKotlinによるAndroid開発をサポートしたのでJavaから移行するためのTipsを書きます(その1) - teratail blog

                                          こんにちは。teratail開発チームの草間(@tkow39)です。 先日のAndroid I/OでGoogleがAndroid Oの開発に対して、公式にKotlinをサポートすることを発表しました。今までもAndroid Studioのプラグインや直接Kotlinをインストールして、Androidアプリを開発することはできたのですが、あまりメジャーな選択肢ではありませんでした。しかし、じわじわ人気が高まってきていた昨今、今回のGoogle発表で、注目が集まっています。 私が1年ほど前にKotlinを触り始めた際は(Android Studiを2.3にバージョンアップした時にプラグインが使えなくなったり,JVMのバージョンをあげると主要なJSONライブラリが使えなくなったりと悲しい目にあったこともありましたが)「これは今まで触った中でも本当にすごい言語だ。今後はKotlinでAndroid

                                            GoogleがKotlinによるAndroid開発をサポートしたのでJavaから移行するためのTipsを書きます(その1) - teratail blog
                                          • いろんなプログラミング言語で1582年10月5日を扱ってみる| mwSoft

                                            概要 1582年10月5日〜1582年10月14日までの10日間は、何らかの自然現象(ゴゴゴゴゴ)によって時間が消し去れてた期間として知られています。プログラミング言語を使ってこの日を取り扱おうとすると、いろんな結果が出力されます。 今日はそんな素敵な日付である1582年10月5日と戯れて、貴重な1日を無駄にしてみたいと思います。 Java とりあえずJavaから。バージョンは7。 // 1582/10/05をパース Date dt1 = new SimpleDateFormat("yyyy/MM/dd").parse("1582/10/05"); System.out.println(dt1); // 1582/10/04をパース Date dt2 = new SimpleDateFormat("yyyy/MM/dd").parse("1582/10/04"); System.out.p

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

                                              JavaとScalaと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を開発する日記
                                              • Scalaで型クラス入門 - still deeper

                                                型クラスについてつらつら考えていたことをまとめておきます。マサカリ歓迎。 型クラスって? 型クラスとは一言でいうと。 アドホック多相 を実現するもの です。モから始まる名状し難いあれとは直接は関係ありません。 ではアドホック多相とは何かというと 異なる型の間で共通したインターフェースでの異なる振る舞いを 定義済みの型に対して拡張する ような多相のことです。 異なる型間での共通したインターフェースでの異なる振る舞い Javaの継承やインターフェース、Scalaのtraitを用いることで、異なる型間での共通したインターフェースを管理することができます。 trait SomeTrait { def someMethod(): String } class Foo extends SomeTrait { def someMethod(): String = "foo" } class Bar ex

                                                • かわいいリレーショナルデータベース作った - きしだのHatena

                                                  リレーショナルデータベースの勉強用に、最低限の機能をもったリレーショナルデータベースを作ってみました。 今回実装した最低限の機能というのは、射影(select)・選択(where)・結合(join)です。 テーブル作成 テーブル作成は次のようになります。 Table shohin = Table.create("shohin", new String[]{"shohin_id", "shohin_name", "kubun_id", "price"}); shohin.insert(1, "りんご", 1, 300) .insert(2, "みかん", 1, 130) .insert(3, "キャベツ", 2, 200) .insert(4, "わかめ", null, 250) .insert(5, "しいたけ", 3, 180); System.out.println(shohin);

                                                    かわいいリレーショナルデータベース作った - きしだのHatena
                                                  • Clojure のエレガントなところ - hozumiの日記

                                                    リスト、ハッシュマップ、ベクタ、集合のリテラルがある ;リスト (1 2 3 4) ;ハッシュマップ {:a 1, :b 2, :c 3} ;ベクタ [1 2 3 4] ;集合 #{1 2 3 4} よく使う基本データ型のリテラルがあるというのはソースコードに図が入ってるみたいで考えるよりも早く理解できる。しかもいじりやすい。他の多くの言語でもこれらの基本データ型のリテラルは用意されているが、Clojure ではこれらはとてもよく使う重要なビルディングブロック。 リスト、ハッシュマップ、ベクタ、集合、文字列 をシーケンスとして抽象化 (take 2 '(a b c d)) ;リスト ;=> (a b) (take 2 {:a 1 :b 2 :c 3 :d 4}) ;ハッシュマップ ;=> ([:a 1] [:b 2]) (take 2 [:a :b :c :d]) ;ベクタ ;=> (:a

                                                      Clojure のエレガントなところ - hozumiの日記
                                                    • Clojure/Incanter/clj-mlでデータマイニング入門 - あんちべ!

                                                      概要 Clojureでデータマイニングに必要な各手法を解説する記事です。 本記事を読むと、全くClojureを知らない方でも データ抽出・集計 可視化 機械学習(決定木、ランダムフォレスト、k-meansクラスタリング) をClojureで実行できるようになります。 はじめに ClojureとはJVM上で動く(つまりOSを問わず沢山の環境で動く上に Java資産をそのまま使える)Lisp系の言語です。 Clojureではデータマイニングを行う際、 Incanterとclj-mlという2つの便利なツールがあります。 Incanterは統計処理用の専門ライブラリで、 単体で様々な統計分析を行ったり集計を便利にしたりする機能が沢山用意されています。 clj-mlはwekaという機械学習系のツールをClojureで簡単に使えるようにしたラッパーで、 決定木やランダムフォレストなどの分類器や 各種ク

                                                        Clojure/Incanter/clj-mlでデータマイニング入門 - あんちべ!
                                                      • Java を使うなら覚えておいて欲しい書き方 - 配列・リスト・マップ - ぐるぐる~

                                                        元ねた:Javaを使うなら必ず覚えておきたいデータ構造 - 配列・リスト・マップ - いろいろ解析日記 なんか色々と足りないよね、ってことで、色々と補足を。 配列 配列の生成 配列に含める要素が既に分かっている場合、例えば、 String[] strs = new String[2]; strs[0] = "hoge"; strs[1] = "piyo"; このような場合、以下のように記述できる。 String[] strs = { "hoge", "piyo" }; 独自のクラスだったとしても、 Hoge[] hs = { new Hoge(), new Hoge() }; と、普通に可能。 これを使うと、引数を 2 つ受け取って配列にまとめて返すメソッドは、 Hoge[] toArray(Hoge a, Hoge b) { Hoge[] result = { a, b }; retur

                                                          Java を使うなら覚えておいて欲しい書き方 - 配列・リスト・マップ - ぐるぐる~
                                                        • オブジェクト指向言語としてGolangをやろうとするとハマること - Qiita

                                                          埋め込み(embedded)に要注意というお話です。あるいは、GolangもC++のようなゼロオーバーヘッドを目指していると考えれば腑に落ちるよね、的な。 Goはオブジェクト指向言語っぽく使うことができます。次のような機能を提供しています。 interfaceを使ったコーディング 埋め込み(embedded)を使った実装継承 インタフェースは次のような感じです。 // ポニーは歩ける type Pony interface { Walk() } // アースポニーも歩けるので、Ponyインタフェースに渡せる type EarthPony struct { } func (ep *EarthPony) Walk() { fmt.Println("歩くよ") } インタフェースはメソッド宣言しかかけません。実装は書けません。でも、定義されたメソッドを持てば、それはすべて「これの仲間だ」という感

                                                            オブジェクト指向言語としてGolangをやろうとするとハマること - Qiita
                                                          • Excel方眼紙を支える技術 - たけぞう瀕死ブログ

                                                            最近仕事でExcel方眼紙を読んだり書いたりするプログラムばかり書いているのですが、そんなExcel方眼紙を支える最新のJava技術を紹介したいと思います。 なにはなくともPOI JavaでExcelと言えば外せないのがPOIです。以前はJExcel APIという対抗馬もあったのですが、Excel 2007に対応していないので現在ではPOIが唯一の選択肢といっていいでしょう。 POIは非常にプリミティブなAPIを提供するライブラリで、使いこなすにはそれなりの修練が必要です。そのため、可能であれば実際の読み書きには後述するXLSBeansやjXLSなどを使った方がよいでしょう。ただし、jXLSのようなテンプレートエンジンでは細かいセルのスタイル設定などはできないため、POIを併用しないとならないケースも多いです。Excel方眼紙を支える技術のベースとして押さえておくべきライブラリといえるでし

                                                              Excel方眼紙を支える技術 - たけぞう瀕死ブログ
                                                            • ECS のアプリケーションを正常にシャットダウンする方法 | Amazon Web Services

                                                              Amazon Web Services ブログ ECS のアプリケーションを正常にシャットダウンする方法 この記事は Graceful shutdowns with ECS を翻訳したものです。 — はじめに Amazon Elastic Container Service (Amazon ECS) を利用することで、お客様はさまざまな方法でコンテナ化されたアプリケーションを柔軟にスケールできます。リクエストの急増に対してタスクをスケールアウトすることも、コスト削減のためにタスクをスケールインすることもできます。ECS ではさまざまなデプロイの選択肢があり、ローリングデプロイ・ブルー/グリーンデプロイ・カナリアデプロイなどがサポートされています。さらに、ECS では柔軟なコンピューティングの選択肢が用意されています。Amazon EC2 のオンデマンド/スポットのキャパシティ上や、マネージ

                                                                ECS のアプリケーションを正常にシャットダウンする方法 | Amazon Web Services
                                                              • 処理速度の遅いcurrentTimeMillis() – 前編 | POSTD

                                                                今日はJavaライブラリの中でも非常に基本的でよく使われるメソッド、 System.currentTimeMillis() を見ていきましょう。 このメソッドはミリ秒単位の精度で現在時刻を知らせます。このことから、このメソッドの処理能力は重要ではないと思う人もいるかもしれません。計測間隔が100ミリ秒や500ミリ秒なのであれば、現在時刻を取得するのに0.1や0.2ミリ秒かかったからといって誰も気にしないでしょう。しかし、やはり頻繁にこのメソッドを呼び出したいケースがありそうです。下記に例を挙げます。 異常に長い実行時間を検知し知らせる場合。例えば、HTTPリクエストを実行するのにかかる時間を計測するケースを考えます。この場合、1ミリ秒以下が計測されると思われることでしょうが、実際にはこのメソッドを使えばゼロが出力されることに注意して下さい。しかし時間が異常に長い(例えば100ミリ秒以上)場

                                                                  処理速度の遅いcurrentTimeMillis() – 前編 | POSTD
                                                                • Scala変態技法最速マスター - kmizuの日記

                                                                  Java変態文法最速マスターなんてのがかなりブクマされてるみたいだが、変態さならJavaなんてScalaの足元にも及ばないぜ!!ということで、Scala版を書いてみました。しかし、実はあまり変態ではないかもしれません。元ネタと違って、これを読めば何かがわかる、という意味の実用性はあまり無いでしょう。 implicit conversion編 基本 Scalaのimplicit conversionは使いようによってはScalaの強力な型システムを台無しにしてしまう力を持っています。たとえば、 implicit def string2int(x: String): Int = Integer.parseInt(x) というimplicit conversionを定義してやると、"300" / 3が100になるなどというキモい挙動を実現することができます。また、さらにカスタマイズして、16進数

                                                                    Scala変態技法最速マスター - kmizuの日記
                                                                  • GoとDockerでLet's try gRPC - LiBz Tech Blog

                                                                    はじめに gRPCとは gRPCの特徴 gRPCが解決するマイクロサービスの課題 gRPCの課題 Let's try gRPC 1. 準備 2. protoファイルの作成 3. server側の処理 4. client側(リクエスト)の処理 5. buildして実行 最後に はじめに こんにちは!エンジニアの渡邊です。早いもので、11月でLiBに入社して丸1年がたちました。 このブログへの投稿も4回目になります。 前回の とってもRailsライクなサーバーレスフレームワーク「Ruby on Jets」を本番環境に導入した話 では、jetsの開発者であるtongueroo氏や、Rubyの生みの親まつもとゆきひろ氏をはじめ、多くの方にシェアをしていただき大変励みになりました!みなさんありがとうございました。 今回はGoogleが開発したRPCフレームワークgRPCについて書こうと思います。 g

                                                                      GoとDockerでLet's try gRPC - LiBz Tech Blog
                                                                    • Java8 Lambdaの文法拡張まとめ - きしだのHatena

                                                                      デフォルトメソッドは前に解説しました。 Java8で最もインパクトのある構文拡張、デフォルトメソッド ここでは、それ以外の構文拡張についてまとめておきます。 ラムダ式 実装すべきメソッドがひとつだけのインタフェースを関数型インタフェースといいます。 UnaryOperatorインタフェースは実装すべきメソッドがapplyメソッドひとつだけなので、関数型インタフェースになります。 たとえば、UnaryOperatorインタフェースを実装したクラスを定義すると次のようになります。 class MyOp implements UnaryOperator<String>{ @Override public String apply(String t) { return "** " + t + " **"; } } このUnaryOperatorインタフェースを使う、List#replaceAllを

                                                                        Java8 Lambdaの文法拡張まとめ - きしだのHatena
                                                                      • カード番号をSalt無しのSHA256でトークン化するのがどのくらい危険か試してみた

                                                                        はじめに 後輩から実データからトークンキーを生成するの「SHA256とかでハッシュ化でも良いですか?」と聞かれたので「少なくともSaltは必須だね」的な話をしたところ「Saltは(短い可能性があるから)パスワードとかには使うイメージだったけど元データがそれなりに長ければ要らないと思ってました」的な話題になりました。 十分な時間を掛ければ解けるのでもちろんダメなのですが、そういえば十分な時間ってどのくらいだろうと思いちょっと試してみました。 そこそこ長くて識別子に使われる可能性がある番号だとクレジットカード番号が16桁で良い感じなので試してみました。 クレジットカード番号は何通り? 16桁で0-9の値ですが数字なので先頭に0はおけませんから以下のような式になります。 その数なんと9000兆通り! 果たしてこれは計算しきれるのでしょうか? ちなみに実際にはクレジットカード番号には下記のように取

                                                                          カード番号をSalt無しのSHA256でトークン化するのがどのくらい危険か試してみた
                                                                        • インターフェースと型クラスの違いを考える

                                                                          この記事では、JavaライクなインターフェースとHaskellライクな型クラスを比較します。どちらも、複数の異なる型を統一的に扱うための仕組みです。 インターフェース インターフェースはご存知の方も多いと思いますが、コード例を載せておきます。 // インターフェースの定義 interface Greetable { String greet(); } // 実装の例1 class Hello implements Greetable { String message; Hello(String m) { this.message = m; } public String greet() { return "Hello " + message + "!"; } } // 実装の例2 class Goodbye implements Greetable { public String gree

                                                                            インターフェースと型クラスの違いを考える
                                                                          • ついにベールを脱いだJavaFX:第1回 JavaFXの概要と基本|gihyo.jp … 技術評論社

                                                                            2008年12月4日(米国時間⁠)⁠、とうとうJavaFXがリリースされました。2007年のJavaOneで発表されて以来1年半、やっとリリースまでこぎつけました。そこで、このたびリリースされたJavaFX 1.0をベースに、短期集中連載としてJavaFXを解説していきます。 JavaFXとは何だ JavaFXはSun Microsystems(以下Sunと表記します)が提供するリッチクライアント向けの新しいプラットフォームです。Javaという名前が入っていますが、Javaとは別個のプラットフォームです。とはいうものの、技術的にはJavaがベースになっています。 JavaFXの開発はオープンソースで行われています。java.netのOpenJFXプロジェクトを中心に、OpenJFX-CompilerプロジェクトやSceneGraphプロジェクトなどで精力的に開発が行われています。ただし、現

                                                                              ついにベールを脱いだJavaFX:第1回 JavaFXの概要と基本|gihyo.jp … 技術評論社
                                                                            • Java直列化メモ(Hishidama's Java Serializable Memo)

                                                                              直列化/整列化とは [/2007-12-07] シリアライズの実装方法 [/2007-06-13] シリアライズの実行方法 [2007-05-02] serialVersionUID [/2020-03-21] シリアライズの対象/非対象フィールド [/2007-06-11] シリアライズ方法の独自定義 [/2010-04-29] Externalizable [2010-04-28] シリアライズできないクラス シリアライズのあるべき姿(?) [/2008-07-05] @Serial [2020-03-21] 直列化とは Javaの説明(Javadocとか)を見ていると、よく「直列化」「直列化可能」「直列化された形式」という言葉に遭遇する。 これはserializeの訳語みたいだけど、なんだか意味不明…。 VC++でシリアライズと言えば、「ファイルへのデータ保存」「ファイルからのデータ

                                                                              • 関数型プログラミングを業務開発に適用するための架空の社内勉強会資料 - Qiita

                                                                                関数型プログラミングを業務開発で活用するために HaskellやScala、Erlang/Elixir、Clojureなどの関数型プログラミング言語に興味がある人は多いと思いますが、自分らが日常行なっている業務での開発では到底それらの関数型言語を採用できないのが現実、という場合があるかもしれません。 なので、当面はJavaやGroovy、JS,Ruby,Pythonなどの非関数型プログラミング言語の上で関数型プログラミングスタイルや考え方をなるべく使っていくことでFPの考え方や技法に馴染み広めていき、利点を享受しつつ、将来は大手を振って転職業務開発で本格的な関数型言語を使えるようにしていこうというのが現実的な戦略かもしれません。 以下はそのような目的での洗脳勉強会をやるための架空の資料の目次(案)のようなものです。 「独自研究」の注意 「FPとは何か」の定義について、現時点で一般に合意のあ

                                                                                  関数型プログラミングを業務開発に適用するための架空の社内勉強会資料 - Qiita
                                                                                • 意外に簡単!LINEのような電話番号認証の作り方(Twilio-SMS編) - @i2key のBlog

                                                                                  LINEで使われているような電話番号による認証を試しに作ってみたので、ブログにまとめておきます。 電話番号認証とはこんなのです。 まず、電話番号を用いた認証ですが、方式が2通りありますので、それらの概要を説明します。 SMS利用パターン 電話番号をアプリ側で入力すると、サーバから4桁の暗証番号入りのSMSが届き、その4桁の暗証番号をアプリ側で入力することで電話番号が正しいことを証明するやりかたです。 SMSを送信するには送信元の番号が必要になります。また、例えばアメリカ、カナダのようにショートコード(SMSで利用される事業者コード)を取得する必要のある国もあります。ショートコードは審査が入るため、数ヶ月取得に要することがあります。今回は送信者番号は通常の電話番号にします。 IVR利用パターン IVRとはInteractive Voice Responseの略で、自動音声応答による認証です。

                                                                                    意外に簡単!LINEのような電話番号認証の作り方(Twilio-SMS編) - @i2key のBlog