並び順

ブックマーク数

期間指定

  • から
  • まで

361 - 400 件 / 8001件

新着順 人気順

println javaの検索結果361 - 400 件 / 8001件

  • Java8のOptionalがモナドになったよ! - きしだのHatena

    Java8にはOptionalクラスが導入されたのですが、5月にエントリを書いた時点ではモナドではありませんでした。 Java8でのプログラムの構造を変えるOptional、ただしモナドではない それが、5月末にどうもソースにモナドに必要なメソッドが追加されたらしいということになって、いつ使えるようになるか待っていたら、いつの間にか使えるようになっていました。 Optional (Java Platform SE 8 b101) こちらからダウンロードできます。 JDK8 Early Access Releases ― Project Kenai 他にもいくつか便利メソッドが追加されたおかげで、このようなコードが書けるようになりました。 String str = "abcd"; Optional.ofNullable(str) .map(st -> st.toUpperCase()) .f

      Java8のOptionalがモナドになったよ! - きしだのHatena
    • Java いまふたたびのJDBC

      この記事は Java Advent Calendar 2018 の 9 日目のエントリーです。 流行をとらえた話題が多いなか、10~15年前感のあるコンテンツです。化石です。 しかし化石とはいえ、よく使う技術ではあります。 ということで、何気なく使ってたけど改めて勉強し直しました。 検証バージョンjava 1.8.0_181JDBCドライバ postgresql 42.2.5PostgreSQL 10.5 自前ビルド検証環境Java動作環境 Windows 10 Pro ver.1803CPU 4コア(Hyper-Vと共用)RAM 16GB(うち、Hyper-Vへ8GB割り当て)Intel Core i5-4690 CPU 3.50GHzSSDPostgreSQL動作環境 Hyper-V 仮想インスタンスCentOS Linux release 7.1.1503 (Core)CPU 4コア

        Java いまふたたびのJDBC
      • 最小のdockerイメージを作る

        Dec 9, 2014 この記事はDocker Advent Calendar 2014の9日目です。 書こうと思ってたことが完全にネタかぶりしたので今日はどうでもいい小ネタを書きます。 dockerのイメージをDockerfileで作るにはベースイメージが必要ですよね。例えばgoを使ったWebアプリケーションを作ろうと思ったら公式のgolangイメージを使う人が多いだろうと思います。 公式の安心感もあるし基本的にそれでいいと僕も思うんですが、サイズが大きいんですよね。今手元でdocker pull golang:latestしたら448MBあるみたいです。 僕が欲しいのはgoでビルドしたらバイナリの実行環境であって全てが揃った完全なdebianではないのです。 ということで、今日のテーマは可能な限り小さいdockerイメージを作ることです。 scratchイメージ 公式にscratchと

        • 第3回 RedisによるWebアプリケーション開発(1) | gihyo.jp

          前回までに、Redisの概要と、コマンドラインクライアントによる基本的なコマンド操作を見てきました。今回からは、Redisのデータ型を使ったアプリケーション開発について、簡単なサンプルコードと、ニコニコ生放送での事例を交えて紹介していきます。 クライアントライブラリを用いた開発 WebアプリケーションからRedisにアクセスするには、言語ごとのクライアントライブラリを導入することになります。公式サイトにライブラリがリストアップされていますので、各々の環境に合ったものを探してください。 ニコニコ生放送では、PHPによる開発の場合にはphpredisを、Javaで実装している検索サーバーなどではJedisやJRedisを使っています。 今回から掲載するサンプルコードでもこれらのライブラリを使っていきますので、他のライブラリを導入される方はそれぞれ対応するAPIに置き換えてご覧ください。 LIS

            第3回 RedisによるWebアプリケーション開発(1) | gihyo.jp
          • デザインパターンを読み解く

            ポリモーフィズム(サブクラスによる切り替え、抽象化) ここに分類されるのは、オブジェクト指向の第3原則、ポリモーフィズムを使用したパターンです。ポリモーフィズムを使用すると、動的に使用するクラスを切り替えることができます。<参照> 他に分類されているものでも、ポリモーフィズムが重要な位置を占めているものもありますが、ここではそれしか使われていないものを扱います。 ただデザインパターン全体を通して強調されているのは、インターフェースでプログラミングするということです。実装への依存をなくし、そうすることによって設計の骨組みを明らかにするのです。 Template 次のようなメソッドがあった場合に、処理Bのところを条件によって変えたい場合があるとします。 class Hogehoge { void doit() { ... 処理A ... ... 処理B ... ... 処理C ... } }

            • ゆの in languageとは コンピュータの人気・最新記事を集めました - はてな

              結構趣旨が違うものもありますが、どこからが違うか微妙なので全部載せてあります。 並び順は言語名アルファベット順、同一言語内は概ね時系列順。 言語 リンク AWK http://gauc.no-ip.org/awk-users-jp/blis.cgi/DoukakuAWK_033 ActionScript3.0 ゆの in ActionScript3 - #生存戦略 、それは - subtech ActionScript3.0 ゆの in ActionScript3.0 - BeInteractive!@g1986 - ハチロク世代 ActiveBasic ゆの in ActiveBasic - イグトランスの頭の中 Ada ゆの in Ada | 指向性メモ - 技術 Apache 2008-07-16 AspectJ おくむらたんぶら - ゆの in Java feat. AspectJ

                ゆの in languageとは コンピュータの人気・最新記事を集めました - はてな
              • Java7 Update6 で String クラスがさらにリファクタリングされていました - 地平線に行く

                2012年8月14日に登場した Java SE 7 Update6 で、またしても String クラスがリファクタリングされていました! そこで、そこがどういう風に変わったのかを詳しく調べてみました。 フィールド変数 count と offset が削除されました Stringクラスにあった4つのフィールド変数のうち、count と offset が削除されました。 /** The value is used for character storage. */ private final char value[]; - /** The offset is the first index of the storage that is used. */ - private final int offset; - - /** The count is the number of charact

                  Java7 Update6 で String クラスがさらにリファクタリングされていました - 地平線に行く
                • 第127回 Ruby vs Java ダックタイピングとインタフェースで見る多態性 - bingo_nakanishiの他言語出身者のためのPerl入門

                  前回は、Perlで書いたのだけど、 Rubyでも書いてみたので載せます。 動的型付け言語と静的型付け言語における多態性 オブジェクト指向では、多態性(ポリモーフィズム)という発想がでてくる。 この多態性を実現する方法を今回は2つ紹介する。 Rubyは動的型付け言語であり、ダックタイピングという手法で、多態性を実現できる。 対して、静的型付け言語であるJavaでは上位の型を作ることで多態性を実現できる(今回はインタフェースを用いてみた)。 ダックタイピング Rubyでのタックタイピングを見てみよう。 human = Human.new dog = Dog.new duck = Duck.new human.touch(dog) human.touch(duck)いま、このようにhumanがtouchすると、おのおのの動物が鳴くソースを書いてみる。 duck(アヒル)はhuman(人間)に触ら

                    第127回 Ruby vs Java ダックタイピングとインタフェースで見る多態性 - bingo_nakanishiの他言語出身者のためのPerl入門
                  • Jenkinsの公式Dockerイメージ使ってみた - knjnameのブログ

                    以前のエントリ( http://knjname.hateblo.jp/entry/2014/05/03/190842 )で自分でJenkinsのDockerイメージを作成したりしてみましたが、 Jenkins公式でDockerイメージを配布するようになったので、それを使用したほうがいいと思います。 Github https://github.com/cloudbees/jenkins-ci.org-docker DockerHub https://registry.hub.docker.com/_/jenkins/ 普通に使うだけなら、下記のようにすればいいだけですが、 docker run -p 8080:8080 jenkins これだと何も細かいことを設定できていないので、いくつか補足。 Dockerイメージ内のJenkinsのバージョンについて 永続化ディレクトリ(JENKINS_

                      Jenkinsの公式Dockerイメージ使ってみた - knjnameのブログ
                    • Apache Mahoutで機械学習してみるべ - 都元ダイスケ IT-PRESS

                      Mahoutシリーズ目次(随時更新) 非分散レコメンデーション Apache Mahoutで機械学習してみるべ - 都元ダイスケ IT-PRESS (これ) レコメンデーションの簡単な原理を視覚的に把握してから実際に計算してみる - 都元ダイスケ IT-PRESS 機械学習における重大な"仮定"と、アルゴリズムの評価 - 都元ダイスケ IT-PRESS 分散レコメンデーション Mahoutで分散レコメンド(1) - 都元ダイスケ IT-PRESS Mahoutで分散レコメンド(2) - 都元ダイスケ IT-PRESS Mahoutで分散レコメンド(3) - 都元ダイスケ IT-PRESS クラスタリング 今度はMahoutでクラスタリング - 都元ダイスケ IT-PRESS 今度はMahoutでクラスタリング(ソース編) - 都元ダイスケ IT-PRESS では、本文いきます。 Apach

                        Apache Mahoutで機械学習してみるべ - 都元ダイスケ IT-PRESS
                      • 『たのしい Scala』

                        はじめに 初めまして。 2011年度入社のつちはしと申します。 アメーバのゲーム部門でエンジニアをしています。 今回はエンジニアブログを書く機会を頂きましたので、大好きな Scala について書かせていただきました。 「たのしさ」というとらえどころのない話しゆえ、すこしゆるーくなっておりますが、ご了承くださいませ。 というわけで、よく「Ruby は使っていて楽しいお 気持ちいいお」と聞くけど、 Scala も楽しいし気持ちいいんだよー! とゆうのを伝えたいです。。 伝わるといいです。。 (この記事は私が Scala の楽しいと感じる部分に的を絞って書いています。 Scala には楽しくない部分もいろいろありますが、それに関してはここでは触れません。 Scala たんは俺の嫁) さくっと書いてためしてみることが出来るの 本題に入る前に。。 Ruby には irb という、その場でプログラムを

                          『たのしい Scala』
                        • Javaパフォーマンス計測 そんなタイマーで大丈夫か? - プログラマーの脳みそ

                          駄目だ。大問題だ。 long t1 = System.currentTimeMillis(); long t2 = System.currentTimeMillis(); System.out.println(t2-t1); 結果はなんとでるか? 99.9%以上の確率で0が表示される。そもそもSystem.currentTimeMillis()は時刻をミリ秒で返す。1行のプログラムを実行するのに1ミリ秒もかかってたら、たかだか1000行分動いただけで1秒かかってしまう。今のコンピュータはそんなに遅くない。 そもそもドキュメントをちゃんと読むと ミリ秒で表される現在の時間を返します。戻り値の時間単位はミリ秒ですが、値の粒度は基本となるオペレーティングシステムによって異なり、単位がより大きくなる場合があります。たとえば、多くのオペレーティングシステムでは、時間を 10 ミリ秒の単位で計測します

                            Javaパフォーマンス計測 そんなタイマーで大丈夫か? - プログラマーの脳みそ
                          • JUnitの知識を棚卸し #JJUG - 日々常々

                            Java Advent Calendar 2011の16日目です。 前:JSFUnitでテストしよう! | Kokuzawaの日記 次:JavaEE使ってウェブアプリケーションつくろうよ - 水まんじゅう 書いてること JUnit の話です。使い始めからちょっとだけ踏み込んだ辺りですかね。ちょっとだけなので普通に使ってる方には不要な内容かと思います。私の今持ってる知識を書き殴ってみた感じになりましたが、微妙な理解と残念な文章力の相乗効果でグダグダになってます。お察しください。 内容は Assertion->カスタムAssertion、Matcher->カスタムMatcher、Rule->カスタムRule です。 Assertion JUnitは assert があってこそです。まず org.junit.Assert にある馴染み深い assert を並べてみます。 assertEquals

                              JUnitの知識を棚卸し #JJUG - 日々常々
                            • セキュアなトークンの作り方 - astamuse Lab

                              開発部のにゃんです。主にバックエンドを弄っております。 Webアプリケーションではセキュリティ対策のためにランダムな文字列を使用する場面が多々あります。例えば CSRF対策のトークン OAuthやOpenID Connectで使用するnonce, state, code_verifier メールの到達確認用URLのトークン パスワードをhashする際に使用するsalt セッションID これらの値は単に衝突しなければOKというものではありません。十分なセキュリティ強度を確保するためには推測不可能なランダム値を使う必要があります。 以下は推測不可能なランダム値ではありません。セキュリティが求められる場面では使ってはいけません。 Math.randomなどの疑似乱数 日付やユーザ情報のハッシュ ではどのような値が適切なのでしょうか? /dev/randomと/dev/urandom Linuxに

                                セキュアなトークンの作り方 - astamuse Lab
                              • Javaを使ってBOM付きUTF-8でハマる - Gobble up pudding

                                Javaのサーバアプリにクライアント側からPOSTで文字列でXMLを送りつけたらXMLの解析時にパースエラーになって1時間ほどハマった時の話。 結論を先に言いますと、BOM付きのまま文字列としてサーバに送信してしまったのでJAXBでコケた。ということです。対策としてはファイルをBOMなしにしました。 当初Python内で文字列を書いてそれをJavaのサーバアプリ側にPOSTしていたときは問題が起こらなかったが、XMLファイルをあらかじめつくっておいてそれをPythonで読み込んでPOSTしたときにエラーになってしまった。 XMLのパースにつかっていたライブラリはJAXBというもの。 // クライアントからPOSTで受け取ったXML文字列をパース JAXBContext jaxbContext = JAXBContext.newInstance(Foo.class); Foo foo = (

                                  Javaを使ってBOM付きUTF-8でハマる - Gobble up pudding
                                • Java最新フレームワーク、Helidon、Micronaut、Quarkusをnative-imageまでまとめて試す - きしだのHatena

                                  最近でてきたフレームワーク、Helidon、Micronaut、Quarkusのクイックスタート、Native-Imageをまとめて試しましょう。 準備 SDKMANインストール 今回はSDKMANで環境を作っていきます。 https://sdkman.io/ コマンドラインで次のコマンドを実行します。Windowsの場合はCygwinかWSLで。 $ curl -s "https://get.sdkman.io" | bash ターミナルを開きなおすか次のコマンドを実行するとSDKMANが有効になります。 $ source "$HOME/.sdkman/bin/sdkman-init.sh" JDKインストール 今回はnative-imageまで使うのでGraalVMを使っておきましょう。 $ sdk use java 19.1.0-grl native-imageの準備も行います。Cy

                                    Java最新フレームワーク、Helidon、Micronaut、Quarkusをnative-imageまでまとめて試す - きしだのHatena
                                  • NILScript

                                    NILScript(エヌアイエルスクリプト)は、JavaScriptベースのスクリプト実行環境です。 現在の所、SpiderMonkeyを使用したWindows用のスクリプトホストである「NG with JSAPI for Win32(仮称)」のスクリプトとして実装された処理系が存在します。 動作確認は32ビット版WindowsXPでしか行っていませんが、Windows7や64ビット版での動作例もあるようです。9x系及び2000未満のNT系では動作しないはずです。 Wine環境では一部の機能が正常に動作しませんが、そのうち(Wine側で修正されなければ)改善予定です。 Download Latest zipped package(executable binary + base scripts + samples + documents) ※テスト版であるため、頻繁に更新される可能性があり

                                    • Ehcache

                                      Ehcache is an open source, standards-based cache that boosts performance, offloads your database, and simplifies scalability. It's the most widely-used Java-based cache because it's robust, proven, full-featured, and integrates with other popular libraries and frameworks. Ehcache scales from in-process caching, all the way to mixed in-process/out-of-process deployments with terabyte-sized caches.

                                      • 関数型はプログラミングスタイル

                                        「関数型プログラミングは関数型言語じゃないとできないんでしょ?」という質問をたまに受けます。答えは「いいえ」です。もちろん、言語のサポートはあれば越したことはないです。 そもそも命令型及び関数型はプログラミングスタイルです。そして、命令型と関数型の間は0/1ではなく、グラデーションがあります。 なので、関数型プログラミングは関数型言語以外でも使えますし、プログラムをよい設計へ導く考え方ですよ、というのがこの記事の主張です。コード例も交えて説明してみます。 関数型へのアプローチ ロジックを書くとき 可変の変数(var)を使わず、不変の変数(val)を使う 可変のオブジェクト(mutable)を使わず、不変のオブジェクト(immutable)を使う voidやUnitなどの戻り値のない関数は使わず、戻り値を返す(高階)関数を使う 関数を定義するとき 参照透明な関数を定義する 必ず意味のある戻り

                                          関数型はプログラミングスタイル
                                        • Javaの型システムとコンストラクタ - プログラマーの脳みそ

                                          今回はJavaの型システムのコンストラクタについて考えてみたい。 Javaの型システム、あるいはJavaのオブジェクト指向において、コンストラクタという存在は特殊な存在だ。 コンストラクタ内からはそのクラスのインスタンスフィールドにアクセスできる。これは通常のインスタンスメソッドと同等のスコープであってstaticメソッドのそれとは異なる。しかし、コンストラクタを呼び出すにあたってはインスタンスのメソッドという体ではなく、staticメソッドのように(インスタンスではなく)クラスに属するものとして呼び出すことになる。(もっともnewという専用のキーワードを用いるのでそうは見えないかもしれないが) クラスやinterface、つまりJavaの「型」によるポリモフィズムの世界を考えるとき、コンストラクタはのけものである。継承関係を持つクラスであってもコンストラクタは継承されないし、オーバーライ

                                            Javaの型システムとコンストラクタ - プログラマーの脳みそ
                                          • オブジェクト指向とは結局何なのか あるいはプログラミングをする上で気をつけるべきたった一つのこと

                                            本題の前に まず「オブジェクト指向」という言葉を知っただけのまったくの初心者の方のために例を出してイメージをつかんでもらいます。あくまで例なので色々不完全なのはご了承ください。言語はJavaですがJavaを知らなくても何となく分かるように書きます。 オブジェクト指向とは (即物的に言えば) データとそれに関わるメソッドを クラス(class) にまとめてプログラミングすることです。 例えば友達の情報を管理するために以下のような「友人」クラスを考えてみましょう。 class Friend { String name;//名前 String phoneNumber;//電話番号 String mailAddress;//メールアドレス Friend(String name, String phoneNumber, String mailAddress) { //thisは自身を意味する thi

                                              オブジェクト指向とは結局何なのか あるいはプログラミングをする上で気をつけるべきたった一つのこと
                                            • Rustのトレイトは「高カインド多相のない型クラス」である - なんか考えてることとか

                                              Rustのトレイト(以降Rustトレイトとつなげて呼ぶことにする)は一体何なのか、様々な他言語の概念を通して調べていたが、やっと(「やはり」でもあるのだが)結論が出たので書いていこうと思う。 また、Rustトレイトはインターフェースなのか、MixInなのか、はたまたトレイトなのかということについて書き直したかったのでそれもついでに書く。 Rustのトレイトにおける否定 前置き Rustのトレイトはインターフェースではない RustのトレイトはJavaのインターフェースではない RustのトレイトはC#のインターフェースではない RustのトレイトはMixInではない Rustのトレイトはトレイトではない Rustのトレイトは「高カインド多相のない型クラス」だった 根拠1: 型クラスと用法が同じである 根拠2: 重複する関数があった際の挙動も同じ Rustのトレイトでは高カインド多相ができな

                                                Rustのトレイトは「高カインド多相のない型クラス」である - なんか考えてることとか
                                              • Object Computing, Inc. - Java News Brief - March 2009

                                                Introduction The goal of this article is to provide a fairly comprehensive introduction to the Clojure programming language. A large number of features are covered, each in a fairly brief manner. Feel free to skip around to the sections of most interest. Please send feedback on errors and ways to improve explanations to mark@objectcomputing.com, or fork the repository and send a pull-request. I'm

                                                • Javaの7大禁じ手 - Kengo's blog

                                                  「Javaの7大禁じ手」というブログタイトルを思いついたので、なんとかして7つダメコードをでっちあげたいless than a minute ago via Twitter for iPhone Favorite Retweet ReplyKengo TODA eller86 などと書き込んだところいくつかネタ提供を頂きましたので、自分のネタと合わせてまとめてみました。Thanks to @flyaway ! Stringインスタンス同士を==で比較 Javaプログラムを始めた人がまず引っかかるのがこれでしょう。厄介なのは System.out.println("abc" == "abc"); // => true System.out.println("a" + "bc" == "abc"); // => true といったコードが期待通りに動作してしまうということです。 System.

                                                  • javascriptのfor-in文は、for-each文の代わりじゃない - うろ覚えメモ

                                                    例えばJAVAには、for-each文という便利な構文があります。 class Test { public static void main(String args[]) { int [] ary = new int[] { 1, 2, 3, 4, 5 }; for(int num : ary) { System.out.println(num + ","); } } } 実行結果 1,2,3,4,5, これは拡張for文とも言われ、配列のすべての要素にアクセスすることができます。 Javascriptにも似たような構文のfor-in文があります。 が、このfor-in文実に曲者で、JAVAのfor-each文と同じ感覚で使うと、必ずどこかで痛い目を見ます。 例文を見てみましょう。 <html> <head> <title>for inテスト</title> </head> <body>

                                                    • Java10のvarをどう使うか - きしだのHatena

                                                      Java 10でvarが追加されました。が、いろいろ使い方は悩ましい気がします。 いろいろ議論をしたので、そこで考えたことをまとめておきます。 JShellでは読むことを考えなくていいのでガンガン使いましょう。 あと、OpenJDKのStyle Guidelinesも見ておくとよさげ。 Style Guidelines for Local Variable Type Inference in Java ローカルメソッドの定義にvarを使う 通常の変数定義でのvarの使い分けは長くなりそうなので、最初にこれだけ書いておきます。 いままで、メソッド内で使えるローカルメソッドを使おうと思うと、Functional Interfaceを使うくらいしかありませんでした。 Function<Integer, Integer> twice = x -> x * 2; println(twice.appl

                                                        Java10のvarをどう使うか - きしだのHatena
                                                      • Java製形態素解析エンジン「Igo」を試してみる

                                                        IgoはJavaで作られた形態素解析エンジンです。 JavaはJVMという閉じた空間で動作する分、Cなどのネイティブアプリと連携する際の安定性や性能がイマイチ。 そのため形態素解析をしたい場合もMeCabを使わずにJava製のものを利用するケースが目立ちます。IgoはJavaで形態素解析をする場合に選択肢の1つとして挙げられます。 @Date 2010/12/18 @Env Igo0.4.2/Fedora14 IgoはMeCabの辞書を利用することができ、ほぼMeCabと同じ解析結果を返すことを意識して作られているそうです(詳細は公式サイト参照)。 Igo - Java形態素解析器 http://igo.sourceforge.jp/ 下記ページによると、実行速度もMeCabと比べてそれほど大きく劣ることはないようです。 Igo : MeCabと形態素解析速度比較 http://d.hat

                                                        • JavaプロジェクトでGroovyを導入すべき5つの理由 - うさぎ組

                                                          前段 TDDBootCamp in Tokyo 1.5にJavaグループの一員として参加させていただきました。 そこでGroovyをやりたいというホットなエンジニアと出会いまして、GroovyでTDDをさせていただきました。 いきなりGroovyでプロダクトを書く事はなかなかないと思っているので、Javaのプロダクトコードに対して、Groovyのテストコードを書く。という方法で演習しました。 そこで、皆様がGroovyへ多少なりとも注目してくださいましたので、このエントリーを書いてみようと思いました。 JavaプロジェクトでGroovyテストコードを導入すべき5つの理由 以下であげる5つのポイントは「Groovyを知らないJavaプログラマーがすぐに始められるGroovyの強力な機能」をとりあげました。 もちろんここにあげた以外にもたくさんのGroovyの強力な機能はありますが、それらの威

                                                            JavaプロジェクトでGroovyを導入すべき5つの理由 - うさぎ組
                                                          • コミットしたらβ版がリリースされるように自動化してみた | 明日の鍵

                                                            いまがんばっているアプリ「漫画で学ぶ英語」のインフラ整備をしました。 目次 1. やりたいこと 2. 全体の構成を考える 3. プロジェクトの構成 4. どのテスト配信プラットフォームを使うか 5. ビルド毎にバージョンをあげること 5.1. versionCodeの採番体型を考える 5.2. バージョンアップスクリプト 6. 開発ビルド、リリースビルド、βビルドを作成する 7. ビルドごとに異なるアプリケーションアイコンを設定する 8. DeployGateにプッシュするタスクを追加する 9. APTを実行する 10. BitBucketのコミット時にJenkinsでビルドする 11. Jenkinsでビルドを走らせる 11.1. BitBucketからソースコードを取得する 11.2. Gradle clean 11.3. 署名鍵をコピーする 11.4.

                                                              コミットしたらβ版がリリースされるように自動化してみた | 明日の鍵
                                                            • Go Proverbsを勉強がてら和訳して少し解説した - nametake-blog

                                                              Go (その3) Advent Calendar 2016 11日目の記事です。 Go言語の生みの親、Rob Pikeが2015年のGopherfestのセッションで 言っていた、Go Proverbsを自分の勉強がてら和訳してちょっと解説してみる。 後半に行くに連れて集中力が切れたり、いろいろ調査不足のところや、認識違いの部分もあると思うので、 そういう部分のところがあったら是非指摘してください。自分でも気づいたら修正していきます。 ちなみにタイトルの「Go Proverbs」は、動画の冒頭で囲碁の話をしているとおり「碁の格言」の直訳で、 「Goの格言」にかかっていておしゃれ。 メモリを共有して通信したり、通信してメモリを共有してはならない 原文は"Don't communicate by sharing memory, share memory by communicating." こ

                                                                Go Proverbsを勉強がてら和訳して少し解説した - nametake-blog
                                                              • 統計的に正しいランキングを行う方法をJavaで書く - バイオインフォマティクスって何ですか?

                                                                Java | 統計的に正しいランキングを行う方法を見たのでちょっとJavaで書いてみる。はじめになにがしたいかというと、「レイティング」というのをご存じでしょうか。Amazonとかで商品を購入者が星つけて評価したりしてるやつ。ああいうので「良かったランキング」というのを作りたい。みんなが「購入して良かった」という評価をつけてる商品は、他の人にとっても「良かった商品」になる可能性が高い。いい商品だということがわかるわけです。問題点じゃあどういうふうにランキングをつければいいの?ということを考えると、次の問題にぶちあたる。評価してる人の数の違い。例えば、Aという商品は100人が評価していて、平均の星の数は 4.8 だとする。一方、Bの商品は1人が星5つで評価していたとする。このとき、Aの商品とBの商品ではどちらをランキング上位にすればいいだろうか?あなたならどちらを買いたい?Aはたくさんの人が

                                                                • Scalaのマクロの基礎。評価タイミング、評価回数と、健全性 - xuwei-k's blog

                                                                  Scalaのマクロというより、一般的にマクロに共通する基本であり重要な部分です。それをScala使って説明するだけです。 Scalaのマクロは、未だexperimentalという位置づけで、他の機能に比べれば仕様やAPIが変わりやすい状態です。そして、機能が搭載されてからあまり時間が経っていないこともあって*1あまり一般的に使われているとはいえない状態でしょう。しかし、Cなどのマクロとは違い、Scalaのものはある程度は本格的にコンパイル時に抽象構文木を自由にいじれるものであり、使いこなせるようになってくるとなかなかおもしろいです。 マクロというと、ある程度の人はLispを思い浮かべると思いますが(?)、先ほど書いた「本格的に抽象構文木いじれる」という点はまさにLispと共通する部分もあります(もちろん異なる部分も多くあります)。 つまり、これから説明することは、On Lisp*2 On

                                                                    Scalaのマクロの基礎。評価タイミング、評価回数と、健全性 - xuwei-k's blog
                                                                  • 第29回 JavaオブジェクトとJSONオブジェクトの変換に便利な「Google Gson」 | gihyo.jp

                                                                    基本型→JSONの変換 前回は2回にわたってJavaプログラムでJSONデータを扱うための「Jackson Java JSON-processor」を紹介しました。今回はJSONデータを扱うもう1つのJavaライブラリ「Google Gson」を紹介します。Gsonの特徴は、JavaオブジェクトとJSONオブジェクトの変換を、シンプルなコードで行うことができる点です。字句解析を行えるような低レベルのAPIも備えていますが、それよりもオブジェクト変換の簡潔さに注力しているあたりがJacksonとの大きな違いと言えます。 Gsonはこのページよりダウンロードすることができます。「⁠google-gson-2.1-release.zip 」をダウンロードして解凍し、中のjarファイルをクラスパスに含めて使用します。 Gsonを使う場合に重要なのは、GsonクラスのtoJson()メソッドとfro

                                                                      第29回 JavaオブジェクトとJSONオブジェクトの変換に便利な「Google Gson」 | gihyo.jp
                                                                    • ScalaでWebAPIをたたいてXMLを処理するための定型パターンのまとめ - ( ꒪⌓꒪) ゆるよろ日記

                                                                      俺はLTなどの資料に使うためのネタ画像をTumblrで収集してるのですが、いざスライドに画像を貼ろうと思ったらTumblrから検索して落としてこなきゃいけなくてめんどくさいです。 ってことで、Tumblrから画像を落とすプログラムをscalaで書いてみました。 せっかくなので、この手のフィードのようなXML的なものをげとしてほげるための定型パターンをまとめたいと思います。 まぁ処理にもよりますが、だいたい50〜60行くらいでかけるので、scalaの練習にもちょうどいいと思います。 今まで書いたのは、Gistにおいてあります。 ゆろよろのGist もっといい書き方があるよ!って場合は、おしえてくだしあ>< URLとか引数とか 引数にIDをもらって、String#formatを使ってURLを生成します。 "http://hogehoge/%s".format( args.first ) XML

                                                                        ScalaでWebAPIをたたいてXMLを処理するための定型パターンのまとめ - ( ꒪⌓꒪) ゆるよろ日記
                                                                      • Why Generics? - The Go Programming Language

                                                                        This article is about what it would mean to add generics to Go, and why I think we should do it. I’ll also touch on an update to a possible design for adding generics to Go. Go was released on November 10, 2009. Less than 24 hours later we saw the first comment about generics. (That comment also mentions exceptions, which we added to the language, in the form of panic and recover, in early 2010.)

                                                                          Why Generics? - The Go Programming Language
                                                                        • Java7 で String クラスがリファクタリングされていました - 地平線に行く

                                                                          先日、ついに JavaSE 7 がリリースされました! そこで、早速ダウンロードして、Java7 のソースコード(src.zip)を Java6と比較してみたところ、公表はされていないのですが、ちょこちょことリファクタリングされていることがわかりました。 そこで、そのうち String クラスについて調べてみました。 splitメソッド - 独自処理による高速化 いままでは、String#split(〜) は正規表現 (Patternクラス) に処理を移譲するだけでした。 // (Java6) Stringクラス、2291行目〜 public String[] split(String regex, int limit) { return Pattern.compile(regex).split(this, limit); } それが、単純な区切り文字なら正規表現を使わないで独自に処理をす

                                                                            Java7 で String クラスがリファクタリングされていました - 地平線に行く
                                                                          • Javaで新元号に対応する - Qiita

                                                                            新元号に対応したjdkは今後リリースされるはずだけど、そんな簡単にアップデートできない方(自分含む)に。 前提 Oracle JDK 8u92 $JAVA_HOME設定済み 諸々文字コードはutf-8 確認用コード import java.text.*; import java.util.*; public class JapaneseEra { public static void main(String[] args) throws ParseException { DateFormat df = new SimpleDateFormat("GGGGy年M月d日", new Locale("ja", "JP", "JP")); System.out.println(df.format(new Date(System.currentTimeMillis()))); System.out.

                                                                              Javaで新元号に対応する - Qiita
                                                                            • 『ビルド・リリース自動化への足掛かりとしてのGroovy・Gradle・Spock』

                                                                              はじめまして!Ameba事業本部プラットフォームDivでアプリケーションエンジニアをしている池田(@yukung)です。 私は2011年5月に大手SIerから転職し、サイバーエージェントへ入社しました。前職では主に金融業界をターゲットにしたBtoB向けのシステム開発に多く携わってきましたが、開発作業の中でこんな経験を割とたくさんしてきました。 ・ソースコードやドキュメントの管理にバージョン管理ツールを使わずに、Hoge_yyyyMMdd.javaとかDB設計_yyyyMMdd.xlsみたいなファイル管理をしてどれが正しいドキュメントかわからなくなりカオスになる ・ソースコードの静的チェックツール(CheckStyleやFindbugsなど)を使わずに、目視と気合でひたすらソースコードレビューする ・Excel表で書かれたテストケースを睨みながら、手でケースに沿ったオペレーションをしてデバッ

                                                                                『ビルド・リリース自動化への足掛かりとしてのGroovy・Gradle・Spock』
                                                                              • 日本語の単語を適切な位置で区切って読みやすく改行してくれる軽量でオープンソースなライブラリ「BudouX」の機能&採用例&デモはこんな感じ、Chrome 119に実装予定で簡単に利用できる見込み

                                                                                日本語のページをブラウザで見ているとおかしな位置で改行されることが多いのですが、単語と単語の間にスペースを入れる英語などと異なり、日本語では分かち書きがされていないのが原因。単語の途中で文章が折り返されてしまう原因になっています。BudouXは機械学習モデルを利用して容量を抑えつつ、サードパーティーのAPIやライブラリに依存せずに分かち書きを行ってくれるオープンソースライブラリなので、読みやすい改行が実現できます。 Google Developers Japan: BudouX: 読みやすい改行のための軽量な分かち書き器 https://developers-jp.googleblog.com/2023/09/budoux-adobe.html BudouXの使用イメージは下図の通り。従来は画面幅によっては「最先端」や「テクノロジー」などの単語の途中で改行が行われてしまう事がありましたが、

                                                                                  日本語の単語を適切な位置で区切って読みやすく改行してくれる軽量でオープンソースなライブラリ「BudouX」の機能&採用例&デモはこんな感じ、Chrome 119に実装予定で簡単に利用できる見込み
                                                                                • 何問解ける?Javaクイズ!(全13問) #techtekt Q - techtekt

                                                                                  みなさまこんにちは。techtekt編集部です。 パーソルキャリアのエンジニアやデータサイエンティストなどが出題する「#techtekt Q」 前回は、TypeScript編をお届けしました。 techtekt.persol-career.co.jp 第2弾は、主に転職サービス「doda」やハイクラス転職サービス「iX」などの開発の主要言語であるJavaに関するクイズをプロダクト開発統括部 佐藤 政美さんからの出題です。 さぁ、あなたは何問解けますか??? 1問目 次のプログラムをコンパイル&実行するとどのような結果になるでしょうか? public class Quiz01 { public static void main(String[] args) { boolean b = true; if (b = false) { System.out.println("A"); } else

                                                                                    何問解ける?Javaクイズ!(全13問) #techtekt Q - techtekt