前置き 先日Twitterでこのような興味深いツイートを拝見しました。 なるほどと思ったので、自分が技術選定/アーキテクチャ設計において「どのような時にScalaを選択し、どのような時に選択しないのか」をあらためて言語化してみることにしました。 ちなみにこの記事タイトルは Scala福岡 2019 で講演させて頂いたものと同じタイトルですが、当時の資料は説明が無いと誤解を招く部分も多く非公開にしているため、その焼き直しも含めてこの記事を書いています。 また、ここで記載している内容は2022年8月現在の事情を元にした考えになります。言語の機能やとりまく状況などは日々変わっていくものであり、前提が変われば結論が変わることも当然にあります。あくまで現時点での意見の一つとして参考程度にして頂ければ幸いです。 また、この記事では主に言語機構や周辺ライブラリ・エコシステムといった側面からの判断を中心と
Introduction At LinkedIn, we are committed to deliver a best-in-class platform experience for our members. One of the technologies that we use to do that is Java, an object-oriented programming language that produces software for multiple platforms. We are a huge consumer of Java, running over 1000 Java applications on 320,000+ hosts. Based on the promised performance improvements of the G1 garbag
2021年12月10日、Javaベースのログ出力ライブラリ「Apache Log4j」の2.x系バージョン(以降はLog4j2と記載)で確認された深刻な脆弱性を修正したバージョンが公開されました。セキュリティ関係組織では過去話題になったHeartbleedやShellshockと同レベルの脆弱性とも評価しています。ここでは関連する情報をまとめます。 1.何が起きたの? Javaベースのログ出力ライブラリLog4j2で深刻な脆弱性(CVE-2021-44228)を修正したバージョンが公開された。その後も修正が不完全であったことなどを理由に2件の脆弱性が修正された。 広く利用されているライブラリであるため影響を受ける対象が多く存在するとみられ、攻撃が容易であることから2014年のHeartbleed、Shellshock以来の危険性があるとみる向きもあり、The Apache Software
Red Hat で Solution Architect として OpenJDK を担当している伊藤ちひろ(@chiroito)です。 この記事は、Red Hat Developerのブログ記事、Creating and deploying a Java 8 runtime container image | Red Hat Developer の翻訳記事です。 Javaの実行環境はコンパイルされたソースコードを実行できるものでなければならないが、例えばOpenJDKのような開発キットには、ソースコードをコンパイルして実行するためのライブラリ/バイナリがすべて含まれている。基本的に、後者は実行環境の上位集合です。OpenJDKのサポートとライフサイクルに関する詳細はこちらをご覧ください。 Red Hat は、Java 8 と 11 の両方の OpenJDK を搭載したコンテナイメージを出荷
はじめに この記事は、2020年3月13日に正式出版された共著『みんなのJava』タイアップ企画としてお送りします。 英語版の記事は「Summary of information about OpenJDK and JDK Distributions」を参照ください。(リンク先も若干異なる箇所があります。) 【新刊】2020年3月13日発売『みんなのJava OpenJDKから始まる大変革期!』本体2,280円+税、きしだ なおき、吉田 真也、山田 貴裕、蓮沼 賢志、阪田 浩一、前多 賢太郎 著 Javaの変化を一気にキャッチアップ! https://t.co/ec8tnNF3g7 pic.twitter.com/IMEhI3w989 — 技術評論社販売促進部 (@gihyo_hansoku) February 21, 2020 簡単に紹介したときのブログ記事はこちらですが、私の担当した2
Java 16が2021/3/16にリリースされました。 多くのプログラマに関係ありそうな変更は、record、instanceofパターンマッチの正式化、Stream.toListです。またTLS1.0と1.1が無効になっているので古いMySQLなどへの接続でハマることがあるかもしれません。 詳細はこちら Java SE 16 Platform JSR 391 JDK 16 GA Release APIドキュメントはこちら Overview (Java SE 16) MacやLinuxでのインストールにはSDKMAN!をお勧めします Oracle OpenJDK以外に無償で商用利用できるディストリビューションとしては、次のようなものがあります。 AdoptOpenJDK Liberica JDK Amazon Corretto 16 Microsoft Build of OpenJDK
こんにちは、ミドルウェア開発チームの青木(@a_o_k_i_n_g)です。将来の夢は川口浩探検隊に入ることです。 先日、弊社のアプリケーションサーバーで大量にメモリを消費するという現象に遭遇しました。アクセス頻度の低いサーバーがメモリを大量消費するという謎深いものでした。 発生当初の状況はこんな感じです。 アプリケーションサーバーでは Jetty が稼働 現象が発生した JVM は 5GB 程度のメモリを消費しており、明らかに通常ではない量のメモリを消費している 複数台のサーバーで発生していたが、全てで発生したわけではない。 また、発生したサーバーはいずれもアクセス頻度が少ないサーバーだった。 ヒープ、パーマネント、スタック ひとまず、JVM でトラブルが発生した時は何はともあれヒープダンプとスレッドダンプを見るに限ります。各種情報の取得をインフラ部隊へ依頼し、得られたヒープを解析すると、
What is Apache Ratis™? Apache Ratis is a highly customizable Raft protocol implementation in Java. Raft is a easily understandable consensus algorithm to manage replicated state. Apache Ratis could be used in any Java application where state should be replicated between multiple instances. Pluggable transport Ratis provides a pluggable transport layer. By default gRPC, Netty+Protobuf and Apache Ha
アプリケーションエンジニアの宮田です。 自分のチームでは、10月から既存のSpringBootプロジェクトへKotlinの導入を進めています。 今回は、そんな中で直面した課題への対策として、「KotlinフレンドリーなBeanPropertyRowMapper的なもの」を作った件についてまとめます。 BeanPropertyRowMapperとは まずはじめに、RowMapperインターフェースと、その実装の1つであるBeanPropertyRowMapperについて説明します。 RowMapperとは、JdbcTemplate::query等の処理を実行した際に、DBから取得した結果とJavaのオブジェクトとを紐づける機能のインターフェースです。 RowMapperを手動で書いた場合、以下のようになります。 ResultSetからカラム名と対応する型でそれぞれ取得を行い、SampleCl
2019年7月に #kanjava #okajug #jjug で話したセッション資料です。Read less
5/17 Oracle Code Tokyo 2019、5/18 JJUG CCCのセッション資料です。https://togetter.com/li/1356223 も併せて参照ください。 以下、Oracle Code Tokyo 2019 https://www.oracle.co.jp/events/code/2019/ でのセッション概要より転記します。 -------- 2019年1月末で、Oracle JDK/JRE 8の商用ユーザー向けのPublic Updatesが終了しました。また、Java 9以降ではJDKのリリースモデルが変更になり、並行してOracle JDK 8までの商用機能がOpenJDKに寄贈されていきました。 こうした流れにより、特にJava 9がリリースされた2017年9月以降には様々なOpenJDKディストリビューションが出てきており、選択肢が大きく増え
Zabbix 2.4でJVMの監視を設定してみたメモです JMXの監視をZabbixに統合するにはZabbix Java gatewayを利用します 公式ドキュメントでは、インストール手順について「5 Java gateway」に、JMXによるJavaアプリケーションの監視設定について「14 JMX monitoring」に記述されています Java gatewayは2.0から導入された機能で、JMXをネイティブに監視することが可能です。 監視対象のJavaのアプリケーションとしてTomcatを用意してJMXを設定し、ZabbixのHostsに追加するところまでまとめてみます 以下のように、Zabbixサーバーおよびフロントエンドがインストール済みの環境にJavaゲートウェイを追加するように構成してみます Zabbixサーバー、フロントエンドとエージェントのインストールと設定方法については
オラクルは、イスラエルとその市民に対するテロ攻撃を許しません。オラクルは、当社の従業員、イスラエル政府、および同国の防衛組織に必要なあらゆる支援を提供する方針です。 Magen David Adomは、イスラエル市民に緊急医療サービスを提供する非営利団体で、あらゆる場所で人間の苦しみを軽減し、すべての人々の健康と尊厳を守ることに尽力しています。オラクルは、当社の従業員から寄せられた寄付金と同額を上乗せして、この重要な組織に寄付します。#istandwithisrael
Jib 1.0.0 is GA—building Java Docker images has never been easier Last year, we set out to make it easier for developers to containerize their Java applications. We had noticed that developers were having a hard time with the existing tools. Build times were slow. Dockerfiles were messy. The containers were too large. We built Jib to change that. Jib is an open-source tool that containerizes your
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く