並び順

ブックマーク数

期間指定

  • から
  • まで

441 - 480 件 / 8009件

新着順 人気順

println javaの検索結果441 - 480 件 / 8009件

  • サルでもわかる 逆引きデザインパターン 第2章 逆引きカタログ ロジック編 Singleton(シングルトン)

    イントロダクション オブジェクトを生成するnewは非常に負荷のかかる処理ですので、使いまわしが効くオブジェクトを毎回newするのはパフォーマンス上問題です。 たとえば、後述のファクトリメソッドパターンで取り上げるファクトリは毎回newする必要がないため、初めに生成したオブジェクトを再利用すぺきです。 また、データベースのコネクションプール数を制限したい場合、データベースアクセスオブジェクトの生成数を制限する必要があります。 このようにオブジェクトの生成数を制限したいときは、シングルトンパターンの出番です。 このパターンを使えば、オブジェクトを外部から直接生成させることを防ぐことができ、クラス自体に同時に生成できるオブジェクトの数を管理する機能を持たせることができます。 パターン解説 シングルトンパターンの特徴は、シングルトンクラスのオブジェクト生成を、シングルトンクラス自身が提供するオブジ

    • blog.8-p.info: sbt で Scala の開発サイクルを速くする (前編)

      Posted at 2010/01/06 00:53, Modified at 2010/01/06 01:54 fsc は速くなった のだけど、コンパイルしたらテストしたいし、テストしたら普通に実行したい。コンパイルだけ速くなっても開発のサイクル全体はそんなに速くならないのでは、といまさら気づいた。scalac, fsc 同様に scala コマンドの実行のために Java VM をあげさげするのを減らす必要がある。 Java VM のあげさげを減らすのは Java 界にも需要があるらしく、具体的な実装として、Ant を対話的にした antshell や Ant Console がある。Scala は Ant からも使えるので、これらもまま使えるはずだけど、実はページがどちらも消えてしまっていて試せていない。 どうしようと探していたら sbt が良さげだった。 sbt - simple

      • Javaで簡単に感情分析する方法

        ※サンプル・コード掲載 あらすじ 近年、AIの技術の活用分野は多岐に渡り、その中でも特に、人間の言葉を解釈する技術であるNLP(自然言語処理)が進歩してきています。 テキストマイニングや、対話システム等多岐に渡って使用され、人間のコミュニケーションを一部、チャットボットが代行するという所まで来ています。 今回は、そのNLPの一分野の感情分析と言われる分野で、テキストから人間の感情を読み取る技術について紹介をします。 この技術は、例えば、テキストに未成年に不適切な内容がある場合に、それをブロックするポルノフィルターや、暴力やヘイトスピーチを含んだ内容を検知する、オフェンシブフィルター等、実用的な活用が進んでいる分野です。 使用した環境 Windows or Macを仮定Eclipse(Neon3)を使用Java8.X(最新バージョン)を使用 形態素解析機器(Kuromoji)の準備 以下参照

          Javaで簡単に感情分析する方法
        • ImageIOクラスで画像ファイルを読み書きする - BufferedImageの使い方色々 - Java2D

          ここでは外部の画像ファイルなどをBufferedImageに読み込んで色々と加工してみます。 まずは画像の読み込みと書き込みから見ておきます。現在はImageIOクラスという便利なクラスがありますので、このクラスの使い方から見てみましょう。 まずjavax.imageio.ImageIOクラスのクラス図を見て下さい。 このクラスはfinalクラスです。コンストラクタはありません。いくつかのメソッドが用意されていますが、ファイルからの読み書きにはreadメソッドとwriteメソッドを使います。 とりあえずreadメソッドからです。 read public static BufferedImage read(File input) throws IOException 現在登録されているものの中から自動的に選択された ImageReader を使用して、 指定された File を復号化した結果

          • Introduction to GCJ (Fedora Core Expert, July 2005)

            Java Ahead-of-TimeコンパイラGCJ 首藤 一幸 注: このページの文章は Fedora Core Expert 誌 (2005年 7月発売) に掲載された以下の記事の元原稿です。 編集部の了承の元に、本ウェブページに掲載しております。 首藤一幸, "GCCのJavaコンパイラ "GCJ" ガイド", Fedora Core Expert, pp.180-191, (株)技術評論社, 2005年 7月 2日 GCJは、Javaプログラムを実行前にネイティブコードに変換するコンパイラです。 Fedora Core 4には、GCJ、およびGCJでコンパイルされたJavaプログラムが いくつか含まれています。 本稿では、Eclipseといった大きな実用プログラムが動作するくらいに成熟してきた GCJの機能と性能を紹介します。 もくじ GCJとは 準備 使い方 サポートしている

            • Dislable java

              Statistics Favorites 2 Downloads 0 Comments 0 Embed Views 36 Views on SlideShare 53 Total Views 89 Dislable java Presentation Transcript 第4回若手Webエンジニア交流会 in 2013/2/28 そういえば先週ですが… Ruby 20周年おめでとうございます 若手Webエンジニア= 基本的に新卒 3 年目前後のウェブエンジニア とのこと 大御所 LISP 55歳まだ若手 Perl 26歳 Haskell 23歳 Ruby 20歳 若手 Java 18歳 年齢で言うと JavaScript 18歳 18~27,8くらい? PHP 18歳 C# 11歳若すぎる Scala 10歳 Clojure 6歳 Go 4歳 大御所 LISP 55歳まだ若手 Perl

              • Javaアプリケーション メモ(Hishidama's Java-Application Memo)

                JavaアプリケーションはJavaソースを(C言語やC++等と同様に)コンパイルし、コンパイルして出来たファイルを実行するもの。 (実際にはJavaで作った全てのプログラムがコンパイル・実行するものだけれども、ここではJavaアプレットやサーブレットと区別する意味で「Javaアプリケーション」と呼んでいる) javacコマンドでコンパイルし、javaコマンドで実行する。 実行は、クラス内のpublic static void main(String[] args)メソッド(あるいは...)から行われる。 JDK1.5から、main()が実行される前にメソッドpremain()を呼ぶこともやろうと思えば出来るようになった。[2007-11-12] コンパイル方法と実行方法 [/2008-12-20] 単一ファイルソースコードの実行 [2018-10-01] クラスパスを指定する例 [/201

                • ラムダ式やストリーム API や新しい日時 API だけじゃない! Java8 のタイプ・アノテーションあの手この手 - 倭マン's BLOG

                  Java8 ではラムダ式やストリーム API に注目が集まってますが、何気にアノテーションに関しても機能拡張がされているようなので簡単な変更点や使い方を今夜試してみました。 ElementType の追加 TYPE_PARAMETER TYPE_USE 定義済みアノテーション @Repeatable アノテーション @FunctionalInterface アノテーション @Native アノテーション 目次 ラムダ式やストリーム API や新しい日時 API だけじゃない! Java8 のタイプ・アノテーションあの手この手 どんとこいタイプ・アノテーション! Checker Framework 導入あの手この手 ~without IDE 編~ どんとこいタイプ・アノテーション! IntelliJ IDE 独自のタイプ・アノテーション 参考 InfoQ 「Type Annotations

                    ラムダ式やストリーム API や新しい日時 API だけじゃない! Java8 のタイプ・アノテーションあの手この手 - 倭マン's BLOG
                  • 幅優先探索 | アルゴリズム[Ruby/Python][AOJ 0129]

                    『幅優先探索』をRuby/Pythonで解いてみました。AIZU Online Judgeで対応している問題は『Seven Puzzle』です。 🏀 概要深さ優先探査の説明は『通勤・通学中に理解する深さ優先探索と幅優先探索』、 『アルゴリズム図鑑:iOS & Androidアプリ』が分かりやすかったです。 要点は次のとおり。 根ノードで始まり隣接した全てのノードを探索。階層(根ノードからの距離が近い順)にルートを調べる 🐯 サンプル問題(AOJ)Seven Puzzle Aizu Online Judge。1-7までの数字と、1つ空白のあるパズルをとく問題。 😀 Rubyコード 01234567がそろった状態(ゴール)からスタートして、0を移動させる 幅優先探索で過去に到達していない状態になったら、手数(移動数)を記録 すでに到達済の状態であれば、スキップ(幅優先探索なら手数が同等か

                      幅優先探索 | アルゴリズム[Ruby/Python][AOJ 0129]
                    • Struts2のリモートコード実行可能脆弱性(CVE-2017-5638)を分析した - R42日記

                      またOGNL絡みの脆弱性が見つかりました。 アウトラインはid:Kango氏がまとめているこちらが参考になります。 http://d.hatena.ne.jp/Kango/20170307/1488907259 さて、この脆弱性の動作原理を調べてみました。 ファイルアップロード時のヘッダの処理方式に問題があるようです。 前述のURLで述べられているPoCはこんな感じ。 import requests import sys def poc(url): payload = "%{(#test='multipart/form-data').(#dm=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS).(#_memberAccess?(#_memberAccess=#dm):((#container=#context['com.opensymphony.xwork2.

                        Struts2のリモートコード実行可能脆弱性(CVE-2017-5638)を分析した - R42日記
                      • Groovy 2.0の新機能

                        静的型チェッカーは、戻り型や、代入時の値の整合性も検証します: import groovy.transform.TypeChecked @TypeChecked Date test() { // コンパイルエラー: // Date値はint型の変数には代入できない int object = new Date() String[] letters = ['a', 'b', 'c'] // コンパイルエラー: // String値はDate型の変数には代入できない Date aDateVariable = letters[0] // コンパイルエラー: // Date型を返すメソッドでString値を返すことはできない return "today" } この例では、int変数にDateは代入できないことや、メソッドシグネーチャで指定されているDate値のかわりにStringは返せないことをコン

                          Groovy 2.0の新機能
                        • 普通の業務系Java PGでなくても一度はハマる?JavaScriptのthisの奇妙な振る舞い - 達人プログラマーを目指して

                          先日書いた普通の業務系PGには意外と知られていないJavaとJavaScriptの相違点10選 - 達人プログラマーを目指してでは、これからJavaScriptを本格的に勉強する層のプログラマーの人を対象に、JavaとJavaScriptの違いを理解する上で重要な10個のポイントについて説明しました。いただいたコメントの中には、JavaScriptとJavaは当然まったく別の言語で、比較すること自体問題であるという趣旨のご指摘もいただきました。確かにその通りなのですが、実際、業務で本格的なプログラムの開発はJavaでしかしたことがないという開発者は結構自分のまわりにはたくさんいますし、時代の流れから言って、これから初めて本格的にJavaScriptを書くという人も今後たくさん出てくるのではないかと思います。そういう人にとっては、やはり、違いを意識するところから入っていくというのは学習のアプ

                            普通の業務系Java PGでなくても一度はハマる?JavaScriptのthisの奇妙な振る舞い - 達人プログラマーを目指して
                          • [java] モダンな Annocation Processor の開発手順まとめ - tokuhirom's blog

                            APT とは Annotation Processing Tool のことで、Java でコードの自動生成を行う際に利用される。 APT を利用すると、Java クラスやリソースの自動生成が可能となる。 インターネットに情報は結構あるのだが、昔のものが多くて、Eclipse に JAR を追加して云々とかそういう感じのものが多くて辛いので調べたことをまとめておく。 アノテーションを作る 適当なアノテーションを作る。 import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; @Retention(RetentionPolicy.SO

                            • Java 8から増えてたExplicit receiver parameters - 水まんじゅう2

                              Java 8からこういう書き方が出来るようになっていたようです。(初めて知った) public class Main { public String getString(Main this) { // thisで自分自身が引数になっている return this.toString(); } public static void main(String[] args) { Main main = new Main(); System.out.println(main.getString()); //呼び出すときは何も書かなくてもよい } } 何がうれしいかというと、自分自身を呼び出すときにアノテーションがつけれるようになる。(そして処理が出来るようになる) なんか、おおっ!という感じ。 呼び出すときに何も書かなくてよいというのがものすごくJavaっぽくないので驚きました。 http://bl

                                Java 8から増えてたExplicit receiver parameters - 水まんじゅう2
                              • Java8 Streamでバリバリやれるようになりたい人のためのFunctional Interfaceまとめ - mike-neckのブログ

                                こんにちわ、みけです。 もう、Streamの書きすぎで、 なんだか、for文が書けない身体になってしまいました(大袈裟) というわけで、Streamなのですが、 慣れていないと 「はよ!Supplier<?>、BinaryConsumer<?, ?>をはよ!」 とIDEにせかされて、 あれっ?これってなんだっけ?ってなってしまう のではないかと思います。 というわけで、Streamで使う用途で Functional Interfaceをまとめてみることにしました。 Streamの生成(source)に用いるもの Supplier<T> 引数なしで、オブジェクトを生成するFunctional Interfaceです。 Stream#generateメソッドで利用します。 例 @Test public void supplier_Tのサンプル () { final AtomicInteger

                                  Java8 Streamでバリバリやれるようになりたい人のためのFunctional Interfaceまとめ - mike-neckのブログ
                                • Java developer's Scala cheatsheet by mbonaci

                                  Shamelessly ripped off from Programming in Scala, second edition. I did ask for permission, though. Basically, while I'm going through the book, I'm taking notes and pushing them here, so I can later use this page as a Scala quick reference. If you, by some incredible chance, find any of this useful, please do buy the book. No, I don't get the kick back. As you can see, the book link is clean :) B

                                    Java developer's Scala cheatsheet by mbonaci
                                  • 世界のプログラミング言語(20) 「WebAssembly」ならブラウザで高速にCもRustもGoも動く

                                    今回紹介するのは、WebAssemblyです。これは、その名の通りWebブラウザ上で動かせるアセンブリ風の言語です。既に、C/C++言語、RustやGo言語などのプログラミング言語がWebAssemblyに対応しています。また、主要Webブラウザではサポートされており、JavaScriptよりも高速に実行できるため、ブラウザの可能性が大きく広がっています。今回は、WebAssemblyについて、また、実際にブラウザで実行する方法を紹介します。 Go言語でWebAssemblyを出力して実行したところ ブラウザにはJavaScriptがあるのになぜ? WebAssemblyはWebブラウザ上で動作する言語です。しかし、Webブラウザ上で動作する言語には、既にJavaScriptがあります。モダンブラウザであれば、どのブラウザを使っても同じようにJavaScriptのプログラムを動かすことがで

                                      世界のプログラミング言語(20) 「WebAssembly」ならブラウザで高速にCもRustもGoも動く
                                    • Eclipse3.5のコンパイラに致命的なバグ有り

                                      昔も書いたが、EclipseのJavaコンパイラとJDKのjavaコンパイラは別物。 昨日、原因究明に到るまで半日要したのだが、 Eclipse3.5のJavaコンパイラ(ecj)に致命的なバグがあることを発見した。 簡単に説明すると、 『非publicな親クラスから引き継いだpublicメンバーを、異なるパッケージにおいて子クラス経由でリフレクションで呼び出すとエラーになる』 というもの。まあコードを見たほうが早いので、下のコードを見るべし。 サンプルコード NonPublicParent.java package foo; class NonPublicParent { public void aMethod() { System.out.println("method1"); } } PublicChild.java package foo; public class PublicC

                                        Eclipse3.5のコンパイラに致命的なバグ有り
                                      • Go for gophers

                                        Go for gophers GopherCon closing keynote 25 April 2014 Andrew Gerrand Google, Inc. Video A video of this talk was recorded at GopherCon in Denver. Watch the talk on YouTube 2 About me I joined Google and the Go team in February 2010. Had to re-think some of my preconceptions about programming. Let me share what I have learned since. 3 Interfaces 4 Interfaces: first impressions I used to think abou

                                        • Java 8 Tutorial - winterbe

                                          “Java is still not dead—and people are starting to figure that out.” Welcome to my introduction to Java 8. This tutorial guides you step by step through all new language features. Backed by short and simple code samples you’ll learn how to use default interface methods, lambda expressions, method references and repeatable annotations. At the end of the article you’ll be familiar with the most rece

                                          • Javaスクリプト入門 - きしだのHatena

                                            みんなでJavaスクリプトに入門しましょう! クラスをちゃんと定義する それでは、まずはJavaっぽく書いてみましょう。 public class Main { public static void main(String[] args) { System.out.println("Hello!"); } } これを、任意のファイル名で保存します。たとえばhello。 実行するにはJava 11以降が必要です。みなさんすでにSDKMANを入れてると思うのでOracle OpenJDKの12.0.1を使ってみましょう。 $ sdk use java 12.0.1-open では実行します $ java --source 12 hello Hello! 実行できました! これではちょっと面白くないので、先ほどのファイルの先頭にちょっとなにか追加しておきます。 #! /home/naoki/.s

                                              Javaスクリプト入門 - きしだのHatena
                                            • 「tig」をつかってcommitをきれいに分割する - RAKUS Developers Blog | ラクス エンジニアブログ

                                              はじめに 2年目のエンジニアになりました、FM_Harmonyです。 Rakus Developers Blogでは4回目の投稿です。 ↓前回の記事はこちら tech-blog.rakus.co.jp さて、弊社ではビアバッシュというイベントを行っています。(ビアバッシュ・・・?という方はコチラ) 今回はその際に私が発表したことについて、補足も踏まえつつまとめたいと思います。 テーマはtigでcommitをきれいに!です。 はじめに tigとは? 準備 tigのインストール(windowsの場合) tigのインストール(macOSの場合) commitをきれいにする理由 使ってみる 実演の前準備 機能を追加して、まとめてcommitする git rebase -i で、commitの分割を始める tigを使ってcommitを分割する - その1 tigを使ってcommitを分割する - そ

                                                「tig」をつかってcommitをきれいに分割する - RAKUS Developers Blog | ラクス エンジニアブログ
                                              • Timerを使う。周期的に実行したり、一定時間後に実行したり

                                                javax.swing.Timer Swingのクラスライブラリの1つとして提供されている。一定時間後にイベントを実行することができる。これは、Swingのイベントスレッドで実行されるので、描画に関わる処理を記述していてもSwingスレッドと干渉しないで済むのがメリット。実行はSwingのイベントキューに載せられるため、正確性には欠ける。 java.util.Timer 汎用のタイマとして提供されている。処理を周期的に実行したり、一定時間経過後に実行したり、指定した日時に実行したりと多彩な機能を持つ。Swingとは無関係なので、ヘッドレス(GUIが無い環境)でも使用できる。Timer専用スレッドで管理され、正確性もjavax.swing.Timerよりは高い。しかし、java.util.Timerの実装上欠点がいくつかある。まず、スケジューリングにシステムクロックを使用するので、システムク

                                                • 【Perl】オブジェクト指向 for Java使い - (・∀・)イイ!!Memo

                                                  継承 † Java public SubClass extends SuperClass { SubClass () { } } Perl package SubClass; use base qw(SuperClass); sub new { bless {}, shift; } 1; use base qw(SuperClass?)とすると、SubClass?はSuperClass?の(コンストラクタ含む)関数をすべて継承する。 ↑ interface † Perlにはinterfaceといった文法はない。実装をうまくつかってinterfaceを実現する。 親クラスで、関数の中身をdieだけにし、子クラスでオーバーライドを強制する*1 Java public interface Person { public void whatIsYourName(); } public Clas

                                                  • Multi PaxosをJavaで実装してみた - As a Futurist...

                                                    Java の練習と分散システムの理解のために、Multi Paxos の実装をしてみてた。16 ファイルで 970 行程度で一応正常系は動くものはできたと思う。そろそろ疲れたので切り上げ。コードはださないけど、やったことをまとめ。 実装方針 この記事を何度も読んで、この通りに実装した。それに尽きる。 Understanding Paxos もちろんPaxos Made Simpleも読んだけど、実装するにあたっては上の記事がきれいにまとまってて必要十分だったので助かった。特に Multi Paxos について丁寧に説明があるのでありがたかった。 まずは Paxos を実装 Paxos は単一の値の合意をとるためのプロトコルで、まずはここを実装した。上の記事通りに、Proposer/Voter/Arbiter の 3 Role を class で実装。一応分けたけど、Peer としてはどれも

                                                      Multi PaxosをJavaで実装してみた - As a Futurist...
                                                    • Java SE 8で変わるJava EE開発──ラムダ式と並列処理用ライブラリで、エンタープライズ・アプリケーションの応答性能を高める - builder by ZDNet Japan

                                                      Java SE 8以降の開発ではfor文の利用頻度が減る。ラムダ式とStream APIが中心に Java EE 7から、サーバ・サイドにおいてもスレッド(並列処理)の実装が可能になりました。具体的には、「Concurrency Utilities for EE 7」により、スレッドをアプリケーション・サーバの管理下で動かせるようになっています。また、Java SE 8では、並列処理の実装を支援するクラスとしてCompletableFutureが追加されました。これらのAPIを組み合わせることにより並列処理の実装がどう楽になるのかを、次の例題で考えてみます。 この処理をJava SE環境で実装するとしたら、一般的には次のようになるでしょう。 手順(1):固定長のスレッド・プールを持つExecutorServiceオブジェクトを生成する 手順(2):ExecutorCompletionSer

                                                        Java SE 8で変わるJava EE開発──ラムダ式と並列処理用ライブラリで、エンタープライズ・アプリケーションの応答性能を高める - builder by ZDNet Japan
                                                      • Apache Sparkで始めるお手軽機械学習(Word2Vec編) | NTTデータ先端技術株式会社

                                                        Apache Sparkと機械学習 当社のコラムでも既に何度か取り上げてきたが、Apache Sparkがいよいよ本格的な流行の様子を見せている。Apache Sparkは下図のようなエコシステムを持っているが、特にその中でも、Spark Streamingによるリアルタイム処理とともに、MLlibによる機械学習処理が人気を博している。日本ではHiveを用いてのバッチ処理高速化にてHadoopが広く使われるようになったが、Apache Sparkの場合は、リアルタイム処理・機械学習処理を糸口にパラダイムシフトが行われていると言っても過言ではないだろう。 (出典:Apache Spark公式サイト ) 本コラムではMLlibを用いての機械学習処理について簡単な使い方を説明するものとする。 Apache Sparkは分散メモリRDDを活用することで、特定のデータに対する繰り返し処理に向くアーキ

                                                          Apache Sparkで始めるお手軽機械学習(Word2Vec編) | NTTデータ先端技術株式会社
                                                        • Goではどんなライブラリがデータベースにアクセスするときにベストか考える - ぷらすのブログ

                                                          この記事はGo5 Advent Calendar 2019の 1 日目の記事です。 はじめに Go のメジャーバージョンはいつの間にか 5 まで到達していたようですね、@p1assです。 Go でデータベースにアクセスするときに使うライブラリはdatabase/sqlや それをラップしたsqlx, gorm, gorpなど様々なライブラリがありますが、皆さんはどのライブラリを使っていますか? おそらく様々な理由があってどれか(ここに挙げられていないものかもしれない)を使っているでしょう。 しかし、それは本当にベストな選択だったのでしょうか? この記事では、Go でデータベースをアクセスする際に、どんな機能が必要かを考えつつ、上に挙げたのライブラリを比較していきます。 あくまでこの記事で述べるのは僕個人の意見ですが、この記事を通して皆さんが改めてライブラリ選定を考えるきっかけになれば幸いです

                                                            Goではどんなライブラリがデータベースにアクセスするときにベストか考える - ぷらすのブログ
                                                          • java使いのためのScala の勉強のための資料作り scalaって素晴らしい いろいろ1 - nazokingのブログ

                                                            http://d.hatena.ne.jp/nazoking/20100514/1273774142 の続き 細かいというか解説がいらないのいろいろ すべてがオブジェクト オブジェクト指向型言語javaにおいてObjectではないものがある。int,long,floatなど。 たとえば 1.toString() はコンパイルできない。 しかし! scalaでは「すべてがオブジェクト」なので、上のコードはなんの問題もなくコンパイルできる。javaではいろんなところでintとIntegerの変換をしてやる必要があるが、scalaではそれは全部コンパイラが面倒を見てくれる。 クラス階層はこんな感じ Any +--AnyVal | +-Int | +-Byte | +-: | +--AnyRef <=Object +- String +- 普通のクラス +- : デフォルト値付き引数 scala2

                                                              java使いのためのScala の勉強のための資料作り scalaって素晴らしい いろいろ1 - nazokingのブログ
                                                            • 今流行りのgRPCについて簡単にまとめてみた(Goのサンプルコード付き) - Qiita

                                                              はじめに (当時)Go歴1ヶ月の私が急遽gRPCを用いてバックエンドのAPIを開発してる業務に参画することになり、必要にかられて急いで学んだので、その時の学びを共有します✎ gRPCって最近よく聞くけど、「なにそれ?」って方も多いと思うので(私もそのうちの1人でした)、自分の学びを纏めるためにもgRPCのエントリー記事を書こうと決意し、Go 5 Advent Calendar 2020に登録しました! gRPCとは gRPCって良いらしい 最近gRPC流行ってるらしい 等聞いたことは多いと思いますが、簡単に説明すると RPC (Remote Procedure Call) を実現するためにGoogleが開発したプロトコルの1つ Protocol Buffers を使ってデータをシリアライズし、高速な通信を実現できる IDL(インターフェース定義言語)を使ってあらかじめAPI仕様を .pro

                                                                今流行りのgRPCについて簡単にまとめてみた(Goのサンプルコード付き) - Qiita
                                                              • Scala を用いたスクリプティング · eed3si9n

                                                                2014-05-11 / scala 現実問題として正規表現が必要になることがある。いくつかのテキストファイルに変換をかけたりする度に find コマンド、zsh のドキュメントや Perl 関連の StackOverflow の質問を手探りしながら作業することになる。苦労しながら Perl を書くよりは Scala を使いたい。結局、僕個人の慣れの問題だ。 例えば、今手元に 100以上の reStructuredText ファイルがあって、それを markdown に変換する必要がある。まずは pandoc を試してみて、それはそれなりにうまくいった。だけど、中身をよく読んでみるとコードリテラルの多くがちゃんとフォーマットされてないことに気づいた。これは単一のバッククォート (backtick) で囲まれていたり、Interpreted Text を使っているからみたいだ。このテキストを

                                                                • [結] 2002年4月 - 結城浩の日記 - 複数の仕事をすることについて

                                                                  目次 2002年4月30日 - Reinaさんの個展に行く / 2002年4月28日 - Javaクイズ / 『絵でみるこどもとおとなのはじめての聖書』 / 2002年4月27日 - 正かな / 2002年4月26日 - しっぽ / いろいろ / 2002年4月25日 - 神さまからのメッセージ / しっぽ / 疲労 / メール / 2002年4月23日 - 仕事 / 2002年4月22日 - 次男風邪 / Perlの「はみだし情報」 / 2002年4月21日 - 変なウイルスメール / dtd2xsd / Thread-Specific Storageパターン / お休み / 2002年4月19日 - 飲み会 / 青木薫さん / 2002年4月18日 - 多忙 / フェルマーの最終定理 / 2002年4月17日 - 文章教室 / 3600円で世界征服 / 日記ダイジェスト / 否定的な言

                                                                  • FindBugsパターン説明

                                                                    FindBugs とは、プログラム中に存在するバグを検出するツールです。 プログラミングで問題となり得るバグパターンを検知し、ユーザにそれを知らせます。 以下、FindBugs が定義するバグパターンの一覧と簡単なサンプルコードを示します。 対象バージョンは 1.2.1 です。 Limy Eclipse Plugin を使えば、Findbugsによるコードチェックを簡単に行えます! Bad practice このカテゴリのバグパターンは、「バッド・プラクティス」。 良くないコード記述法を指します。 AM: Creates an empty jar file entry 空のjarファイルを作成しています。 putNextEntry() メソッド呼出の後、すぐに closeEntry() を呼び出しています。 jar圧縮するコンテンツは putNextEntry() メソッドを呼び出した後で

                                                                    • Dockerで最小のGoのイメージを作成する(cgo編) - Qiita

                                                                      「最小のNode.jsのDockerイメージを目指すスレ」、「JavaでもDockerでマルチステージビルド」というエントリーでは、Node.jsとJavaを使ったアプリケーションのイメージをなるべく小さくするトライアルをしました。 今度はGoでやってみます。ただし、Pure Goで最小というのはすでに方法があって、scratchという何も含まれないイメージを元に、静的リンクしたバイナリを配置するという方法です。 Building Minimal Docker Containers for Go Applications Goを使う場合に、一部cgoで使われたパッケージを利用したいこともあるでしょうし、雑にコマンドラインを利用することもあるだろう、ということで、今回も、できることを減らさずに(やりたいことにしたがって細かく作戦を微調整する必要がない)、なるべく小さく、という方針でいきたいと

                                                                        Dockerで最小のGoのイメージを作成する(cgo編) - Qiita
                                                                      • research!rsc: Coroutines for Go

                                                                        This post is about why we need a coroutine package for Go, and what it would look like. But first, what are coroutines? Every programmer today is familiar with function calls (subroutines): F calls G, which stops F and runs G. G does its work, potentially calling and waiting for other functions, and eventually returns. When G returns, G is gone and F continues running. In this pattern, only one fu

                                                                        • Gradleによるビルドとパッケージ作成 - 猫好きモバイルアプリケーション開発者記録

                                                                          前回の続きです。 Gradleのプロジェクトの設定が終わっただけでは当然ながら終わりません。 次はビルドが必要になります。 プロジェクト構成は前回の例をそのまま踏襲するとして、 実際にビルドをするときのコマンドを紹介します。 WARとJARのビルド WARのビルドは以下のコマンドで行います。 (build.gradle ファイルのあるディレクトリへ移動してコマンドを実行します) 1 gradle --daemon war なんとこれだけでWARのビルドが出来ます。 非常に簡潔です。 Gradleコマンドは立ち上がりが遅いのですが、上記のように —daemon というオプションを指定することでバックグラウンドに常駐するようになり、2回目以降のコマンドの立ち上がりが早くなります。 さて、前回のプロジェクト構成ですと、WARプロジェクトではないbatchプロジェクトが存在していたかと思います。

                                                                          • High performance servers without the event loop

                                                                            High performance servers without the event loop OSCON, Portland 21 July 2015 Dave Cheney whoami(1) Sysadmin before Devops Transitioned to Go 5 years ago Work for Canonical contributing to the Go project 2 Who is this presentation for ? The horror! As an admin in a past life, the most stressful times in my career were defined by unsatisfying performance. I got into Go because of its potential to bu

                                                                            • try { return } finally {} | POSTD

                                                                              class Test { public int aaa() { int x = 1; try { return ++x; } catch (Exception e) { } finally { ++x; } return x; } public static void main(String[] args) { Test t = new Test(); int y = t.aaa(); System.out.println(y); } } 上の質問に回答する前に、次の問題には答えられるでしょうか? try ブロック内に return 文がある場合、 finally ブロックは return の実行時に処理されるのでしょうか。 finally が実行されるなら、いかにして return と finally の両方の実行が実現するのでしょうか。 もし答えが分からなければ、どうぞこのまま読み進め

                                                                                try { return } finally {} | POSTD
                                                                              • パフォーマンスチューニングする時の基礎の基礎 - 宇宙行きたい

                                                                                みんなパフォーマンスチューニングの環境とかってどうやってるのかなぁと 思ったので書いてみますた. 全然専門外なのでまったく自信無いですが,僕はこうやってるよって事で まずは普通に実装 最初からパフォーマンスを気にして書いちゃうと, 何が有効で何があまり有効でないかわからなくなっちゃうので, とりあえず普通に実装する. (ifelse より switch の方が早いとかやっても微々たるものだし) もちろん,後々のために TDD でやっておく. 計測環境を作る テストケースとして記載する 重い処理を探すために,100回くらい繰り返して実行して 平均を見れるようにする. Java の実行時最適化とかの影響もあると思うので, 最初の一回の時間と平均を見れるようにする. assert も書いておくと,何秒以内を目指すのかが, 残せるので書いておく. StopWatch stopWatch = new

                                                                                  パフォーマンスチューニングする時の基礎の基礎 - 宇宙行きたい
                                                                                • Java Persistenceを使ったアーキテクチュア:パターンと戦略

                                                                                  図1:データベースとJavaプログラミング言語のミスマッチ このギャップを埋め、Javaアプリケーションとデータベースのシームレスな接続を実現するために、私たちはさまざまなデザインパターンとアーキテクチャアプローチに依存している。これらのパターンはトランスレータとして機能し、インピーダンスのミスマッチの影響を軽減し、2つの世界を調和して動作させるのに役立つ。 これらのデザインパターンは、車輪の再発明ではない。これらは、アプリケーションとデータベースのパラダイム間のインピーダンスのミスマッチを緩和するのに有効であることが証明されている、確立されたソリューションである。Driverパターン、Mapperパターン、Active Recordパターン、Repositoryパターンなどがある。 Java Persistenceにおけるデータパターンのナビゲート このセクションでは、アプリケーション開

                                                                                    Java Persistenceを使ったアーキテクチュア:パターンと戦略