Java 8以降になってAPIドキュメント以外をあまり見ていなかったのですが、いろんなドキュメントが見やすくなって いるんだなぁと。 JDK 11ドキュメント - ホーム で、こちらのドキュメントがちょっと気になりまして。 ガベージ・コレクションのチューニングの概要 Java 8の頃に比べると、だいぶ差が。 Java Platform, Standard Edition HotSpot Virtual Machineガベージ・コレクション・チューニング・ガイド, リリース8 どうしてこのあたりを見ているかというと、Java 9以降でデフォルトになったG1GCですがどれくらいのヒープサイズ以上が 目安なのか、どこかに書いてあったかなぁということで探してみたと。 書いてありました。 最大10GBまたはそれ以上のヒープ・サイズ(Javaヒープの50%超がライブ・データで占められている)。 ガベー
Let’s compare the performance of all supported runtimes + 2 custom runtimes (Rust and GraalVM). Will compare cold start and warm. Source code is here: https://github.com/Aleksandr-Filichkin/aws-lambda-runtimes-performance. It requires the minimum local setup(almost all is Dockerized) NodeJs (14.x)Python (3.9)Go(1.x)Ruby(2.7).Net(3.1)Java (11)Rust(1.54.0)GraalVM(21.2)Disclaimer:All benchmarks were
世界中で広く使用されるオブジェクト指向プログラミング言語Java。日本におけるこの言語の普及に、とても重要な役割を果たしたのが鈴木雄介さんです。鈴木さんは20年以上前からJavaに触れ、プログラミングだけではなく執筆・講演などの活動も精力的に行ってきました。 また、2007年に設立された日本Javaユーザグループ(Japan Java User Group:JJUG)に当初から在籍し、2012年4月から2019年3月までは会長を、2019年4月からJJUG CCC運営委員長を務めています。 なぜ鈴木さんはJavaに大きな魅力を感じているのでしょうか。そして、さまざまな普及活動を続ける過程で見えてきたものとは。Javaとともに歩んだ20年をふり返っていただきました。 *…取材はリモートにて実施しました。 Javaをテキストエディタで書くのが当たり前だった時代 ──鈴木さんはいつごろJavaと
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 分類については独断です。また、こつこつ「ひとこと説明」を追加していく予定です。 Selenium関連については Awesome Selenium : 素晴しい Selenium ライブラリの数々 - Qiita が参考になります。 FAQ なんで***を除いているのか 恣意的に除いていることはないので、編集リクエストかコメントをください GUIテスト自動化ツール モバイル・デスクトップアプリ・ブラウザのうち複数の対象のGUIを操作できるテスト自動化ツール。 有料 インストール型 UFT One QTP(Quick Test Profes
こんにちは、Red Hat Middleware Technical Account Manager のイアンです。 お客様のサポートケースの対応では、現象を再現させるために稼働しているJavaアプリケーションのコードを修正/パッチする場合があります。そのときには、Bytemanをよく使っていますが、新しいツールを紹介したいと思います。 Java Runtime (De)compiler (以降JRDとして略)は弊社社員が作って提供しているJavaのデコンパイルと修正したコードをアプリケーションへ挿入するためのツールです1。最新バージョン 7.2 は Java 11 以降に対応していますが、古いバージョン 6 は Java 8 でも使えるように見えます(未検証ですが)。 簡単な例で使い方を説明いたします。 環境準備 この例では、以下の製品とソフトウェアを使用します。 OpenJDK 11
LINE株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。 LINEヤフー Tech Blog LINE の Business Platform 開発担当フェローの Matsuno です。 今回は Spring Boot でアプリケーションを開発した場合のメトリクスの勘所についてご紹介しようと思います。 我々のチームでは Kotlin + Spring Boot での開発がデファクトスタンダードとなっているのですが、正直まだまだこのテクニカルスタックで開発しているエンジニアは日本では少ないのです。そこで、実際の運用の雰囲気を感じていただければと思いまして今回の記事を書くことにしました。 メトリクス取得の基本 我々のチームではメトリクスの格納先として Prometheus を利用しています。 Prometheus で格納し
「タイムゾーン呪いの書」は、もともと 2018年に Qiita に投稿した記事でしたが、大幅な改訂を 2021年におこない、同時にこちらの Zenn に引っ越してきました。この改訂で記事全体が長大になったので、「知識編」・「実装編」・「Java 編」と記事を分けることにしました。 この「Java 編」は、「知識編」と「実装編」に続く最終章です。本記事全体を通して、「知識編」「実装編」を読んでいることを前提にしているので、ご注意ください。 はじめに 「知識編」と「実装編」では、言語やソフトウェア特有の話にはあまり踏み込まずに、時刻とタイムゾーンについてなるべく一般論を書いてきました。そんな中でも Java の JSR 310: Date and Time API は何度も参照しています。 JSR 310 は時刻やタイムゾーンという概念をけっこう上手に一般化していて、一般論の検討にもいいモデル
【 デジスマチーム ブログリレー1日目】 こんにちは。 デジスマチームの山本です。 クリニック向けDXサービスであるデジスマ診療のWeb フロントエンド・バックエンド・インフラを担当しています。 今回は先日AWSから発表されたaws-advanced-jdbc-wrapperについて紹介します。 はじめに AWS Advanced JDBC Wrapper 提供Plugin フェイルオーバーとは これまでのフェイルオーバー対策 AWS Advanced JDBC Wrapperを利用した場合のフェイルオーバー対策 Failover Connection Plugin Host Monitoring Connection Plugin 導入方法 Gradle(Kotlin)での依存先の追加 Spring Boot + HikariCPでの設定例 実際に動かしてみた 何も設定しない場合 設定後
DeNAの多様に展開する事業や、それぞれの個性やライフステージに応じたフレキシブルな働き方、それらを受容するDeNAが根底に持つ考え方などを伝えるDeNA TechCon 2022 Autumn。ここで、株式会社ディー・エヌ・エーのAndroidエンジニアである手塚悠太氏が、『グランブルーファンタジー』推奨ブラウザ「SkyLeap」の開発を例に、リファクタリングの仕方について紹介しました。 リファクタリングはできていますか? 手塚悠太氏:それでは、「レガシーな実装を丁寧にリファクタしてモダンな実装にする技術」について、手塚悠太が発表いたします。 自己紹介です。2019年にDeNAに中途入社し、当時はMOV、現在の名前はGOですね、こちらのタクシーアプリの乗務員さん向けアプリケーションを開発していました。またタクシーフードデリバリーサービス「GO Dine」のアプリケーション開発も担当をして
ITシステムを効率良く開発するには、実装する機能に合わせたプログラミング言語の選定が重要になる。現在、多種多様なプログラミング言語が存在するが、言語によって実装しやすい機能が異なるためだ。 システムの機能が多岐にわたる中、日経クロステックの読者はどのような言語を利用しているのか。これを確かめるため、日経クロステックではアンケート調査「プログラミング言語利用実態調査2023」を実施した。調査期間は2023年9月21日~10月18日。358人から回答を得た。 Pythonが首位をキープ アンケートではまず、現在使っているプログラミング言語を3つまで挙げてもらった。利用言語の第1位は「Python」だった。回答者358人うち45.3%の162人が使っているという結果だった。 「あなたが現在使っているプログラミング言語は何ですか」という設問に対する回答の内訳。最大3つ選択してもらった。グラフには回
1959年に開発されたプログラミング言語「COBOL」は、自然言語に近いコマンド構文が採用されていることから、金融や自動車、医療業界などで広く使用されています。しかし、柔軟性に欠けるCOBOLを扱える人材は減少傾向にあり、COBOLを用いたシステムは窮地に陥っています。このような状況を打開するために、IBMはCOBOLをモダンなプログラミング言語に変換できるジェネレーティブAI「watsonx Code Assistant」を開発しています。 The World Depends on 60-Year-Old Code No One Knows Anymore | PCMag https://www.pcmag.com/articles/ibms-plan-to-update-cobol-with-watson 1959年に開発されたCOBOLは、「コーディングが複雑」「タイピング量が他言語
search infra teamのmrkm4ntrです。我々のチームではElasticsearchをKubernetes上で多数運用しています。歴史的経緯によりElasticsearchのクラスタは全てElasticsearchクラスタ専用のnode pool上で動作していました。ElasticsearchのPodは使用するリソースが大きいため、このnode poolのbin packingが難しくコストを最適化できないという問題がありました。そこで全てのElasticsearchクラスタを専用のnode poolから他のワークロードと共存可能なnode poolへ移行しました。ほとんどのクラスタが問題なく移行できたのですが、唯一移行後にlatencyのスパイクが多発してしまうものがありました。 この記事では、その原因を調査する方法と発見した解消方法について説明します。 発生した現象 共
フューチャーのGitHubリポジトリで公開しているJavaコーディング規約をJava 17に対応させたのでその宣伝記事です。 Future Enterprise Coding Standards | Javaコーディング規約 Java 17先日の2021年9月14日にJava 17がリリースされました。 Java 17は長期サポートされる(LTS)バージョンです。前回のLTSのJava 11からすると、3年ぶりのLTS版のリリースとなります。 Java 12からJava 17の新機能前回のLTS版から追加されたみてJava 17まででどんな機能が追加されたのかを簡単にまとめると以下です(これら以外にもあります)。 switch式とswitch新構文 テキストブロック レコード パターンマッチング シールクラス 次のページが大変参考になります。 Oracle Help Center | Ja
New Relic アニキこと清水さんから共著書「New Relic実践入門」をいただきました。ありがとうございます。清水さんにはかつてRDBMSの性能調査をいかに効率的かつ実践的にするかご教示いただいた恩があるのですが、今もその道を追求し活躍されていると知れて嬉しく思います。 破壊的イノベーションを現場の「あたりまえ」にする本書 さて本書は「Part 1. New Relicを知る」「Part 2. New Relicを始める」「Part 3. New Relicを活用する」の3部で構成されていますが、特に「Part 1. New Relicを知る」が割り切った構成になっています。「監視とは何か?」「既存手法にはどのような限界があったか?」「近年の技術革新による新たな課題は?」といった背景をすべてすっとばし、いきなり「オブザーバビリティとは何か?」の説明から入っているのです。まるでTyp
開発者にはしばしば必要なものがないという状況が訪れます。デベロッパーエバンジェリストの成瀬氏が、実際に10名弱のチームで新規プロダクトを作る際にクリーンアーキテクチャの構成を実践してみた話をしました。 Part.3はクリーンアーキテクチャの実装例について。動画はこちら。 これに従って実装すれば、見えるものがあるんじゃない?詳しくいきましょうか。実装例がどういうものか? 右下の図がすごく大事という話をしましたよね。これをもっと細かくしましょう。そういう図が実はクリーンアーキテクチャのWebと書籍にもありました。Robert C. Martin、この人はかなり有名な人で、あのSOLID原則を定義した人です。Robert C. Martinがこのクリーンアーキテクチャというのを発表して、iOSクリーンアーキ……iOSのほうでかな。発表して(※のちに勘違いだったとYouTube説明欄で訂正)、その
TypetalkのEC2インスタンスをインテルプロセッサからARMベースのAWS Graviton2に完全移行。性能向上と費用削減を実現 はじめに こんにちは。SREの二橋です。最近の楽しみは、キャンプと釣りの動画を見ながら、お家で妄想を膨らませることです。 この度、TypetalkのEC2のインスタンスをインテルプロセッサを搭載したM5系からARMベースのAWS Graviton2を搭載したM6g系に完全移行しました。そこで、Graviton2の概要から移行しようと思った理由、作業内容、移行の効果などをお伝えしたいと思います。 AWS Graviton2とは? Graviton2はAWSがArm Neoverse コアをベースに独自開発したプロセッサです。2020年夏にAmazon EC2で一般用途向け(M6gとM6gd)、コンピューティング最適化(C6gとC6gd)、メモリ最適化(R6
LINE Developer MeetupはLINEが定期的に開催する技術者向けミートアップです。66回目の今回はLINEの新規サービス開発に携わる奥山氏が社内フレームワークArmeriaを使って簡単にgRPCサーバーを実装する方法を共有しました。 gRPCって何だったっけ?奥山裕也氏(以下、奥山):LINEの開発4センター、 Official Account開発室の奥山が、「OA DevにおけるgRPC」についてお話しします。 まず簡単に自己紹介しますと、私は2019年の4月に新卒で入社しました。Official Account開発室というチームで、LINE公式アカウント関連の新規サービスを主に開発しています。コードは、サーバサイドで主にKotlinを書いています。また、line-bot-sdk-pythonというMessaging API SDKのメンテナーもしています。 今日は、最初
Java 14とJava 15の新機能についてJJUG CCC 2020 Springで話す予定だった内容が中止になり、Java 15のリリースも近づいてきたので新たに資料を加筆修正して以下のLINE Developer Meetupで発表しました! line.connpass.com 本イベントでは話す予定ではない部分も(JJUG CCCで話す予定だったので)資料にはあり、オンラインでの発表だったということもあり原稿も準備していました。そこで折角ですので情報保障を兼ねて共有したいと思います。情報保障についてはこちらを見てみてください。 なお、今回はかなり特殊な事例であり、基本的には原稿が公開されるケースは少ないと考えています。LINE Developer Meetupでは他の分野でもスライドに書かれていない内容を聞くことができるので、ぜひイベントを聴講してみてください :) なお、スライ
と思うのは、とてもいいこと。 前置き もし行いたいテストが外的振る舞いを示すものであれば(少なくともテストにより観測できる見通しがなければ「テストしたい」とは思わないだろうから、何かしら外から観測可能なものではある可能性は高い)、それがprivateに閉じていていいものではないと言う気づきのきっかけになる。 と言うのは教科書的回答だけど、外には見せたくないけれど複雑なロジックを包含していて、入念かつ局所的にテストしたいと思うこともある。 この動機はすごく自然。きっとそこはテストしなかったらバグってるし。テストしてもバグが見つからないと言うのもよくあるんだけど。 この手のがどうあるのがいいのかはチーム体制も含めたプロダクトによると思っている。 綺麗な考え方は、独立したコンポーネントとして関心ごとや複雑性を閉じ込め、テストしたいと思った内容にもっと高い格を与える。「格」なんて表現は他で使ったこ
LINEが定期的に開催する技術者向けミートアップ「LINE Developer Meetup」。65回目は「Java」というテーマで、JavaのカンファレンスなどでJavaの新機能について紹介しているLINEの久保田祐史氏が、Java14やJava15で利用可能な新機能と変更点について紹介しました。関連資料はこちら。 Java14やJava15で利用可能な新機能と変更点久保田祐史氏(以下、久保田):簡単に自己紹介から始めたいと思います。LINEでソフトウェアエンジニアとして働いている久保田祐史と言います。現在はKafkaのプラットフォームを提供しているチーム内で働いています。私はよくJJUG CCCという、国内のJavaのカンファレンスでGCやJVMのセッションの他に、専らJavaの新機能について紹介することが多いのですが、今日も同じようにJava14やJava15で利用可能な新機能と変更
@IT編集部は2022年8月22日、デジタルイベント「@IT ソフトウェア品質向上セミナー」を開催した。基調講演では、「SBOMによるサプライチェーン攻撃対策~自社ソフトウェアのリスク、把握していますか?~」と題して、JFrog Japanの横田紋奈氏(デベロッパーアドボケイト兼Java女子部・JJUG運営)が、企業におけるオープンソースソフトウェア(OSS)の使用に潜むリスクにはどのようなものがあり、それにどう対処していけばよいかについて解説した。 ソフトウェアのセキュリティで注目されるソフトウェアサプライチェーン攻撃 SBOMとソフトウェアサプライチェーンの話題の前に、横田氏はDevSecOpsとは何かから話を始めた。DevOpsは、開発者と運用者が協力してサービスを改善していくもの。ユーザーからのフィードバックなどを受けて取り組みを繰り返し、改善を継続する。そのための考え方であり、組
PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring) Webアプリケーションにおいて、マルチテナント型、つまり複数のユーザー組織がアプリケーションとデータベースを共有する構成にすることがあります。この構成の持つリスクとして、万が一バグにより他テナントの情報が見えてしまうとそれは情報漏洩となり、重大なインシデントとなってしまうことがあります。この重要性を考えると、「気を付けて実装する」だけではなく、仕組みで漏洩を防ぐような対策には価値があります。 そこで、今回はPostgresSQLの行レベルセキュリティと、SpringAOPによる処理を組み合わせて、ログインしているテナントのデータにしかアクセスできなくする仕組みを実現しました。 導入にあたり考慮した複数の選択肢、乗り越えたいくつかの壁
関連キーワード Java | アプリケーション開発 | プログラミング プログラミング言語の選択は開発プロジェクトの成否を左右する。人気のプログラミング言語「Java」と「Python」は、内部構造や設計思想に大きな違いがある。両言語を複数の観点から比較することで、それぞれの言語が目指す方向性と、その結果として生じる長所および短所が明確に見えてくる。開発者が気にすべき違いとは何か。 JavaとPythonを4つの視点で比べると? 併せて読みたいお薦め記事 連載:JavaとPythonを比較 前編:Javaの「main」メソッドは何のためにあるのか 中編:Hello Worldプログラムから見る「Python」の“本質”とは? JavaとPythonについて知る 「Oracle JDK」からの移行で賢くJavaを使い続ける方法とは? 「Python離れ」まで起きかねない“GIL廃止”の波紋
ファイルの読み書きをマルチスレッドで並列に行うための仕組みを、各種プログラミング言語(C++、C、Java、Ruby、Python)で利用できるようにライブラリを整備した。メモリマップI/O、通常I/O、ダイレクトI/Oを同じインターフェイスで利用できる。Tkrzw-0.9.38からこの機能が利用できる。メモリマップI/Oと通常I/Oは全ての処理系で、ダイレクトI/OはLinuxとMacとWindowsで利用できる。 データベースライブラリTkrzwはマルチスレッド環境での並列処理性能を重視して開発しているが、そこで利用しているファイル層の機能を直接利用できるようにAPIを整備した。データベースとしてではなく、単なるフラットなファイルとして利用するためのAPIである。テキストにもバイナリにも利用できる。 C++ API C API Java API Python API Ruby API
はじめに Java中心で仕事をしていた人がGoを書いてみると様々な文化の違いにぶつかると思います。そもそもオブジェクト指向言語と手続き型言語であるなど根本的に異なる点は多いのですが、「よりシンプルに」をモットーとするGoにはよりJavaエンジニアを困惑させる文化がたくさんあるように見受けられます。 本記事ではJavaエンジニアがGoを書いた際に感じた独特な文化を経験ベースで書いてみます。Goをこれから書くであろうJavaエンジニアのお役に立てれば幸いです。 対象読者 これからGoを書くことになりそうなJavaエンジニア Javaと比べたGo特有の文化を知りたい人 実際にGoの開発をするにあたって役に立つ思想を知りたい人 本記事の対象でない人 Goの構文や書き方を基本から学びたい人 とりあえずプロダクトを作って動かしてみたい人 実際に開発する上で意識しない裏の仕組みやアーキテクチャを知りたい
こんにちは。かえると言います。 Twitterでは https://twitter.com/harukaeru_en で活動しています。日本人です。 日本語版: https://twitter.com/harukaeru1981 何番煎じかわかりませんが、log4j2の任意コード実行ができるようなので、実際に実行してみて、どれぐらい危険なのかをここに書くことにしました。 どういう脆弱性なのか?(TL;DR) 簡単にいうと、Webサイトやゲームサーバなどのテキストボックスで のように書くと、そこのサイトにあるJavaのclassファイルを、標的のサーバ内で実行することができます。(実際はこれとはちょっと書き方は違っていて、これは擬似コードなので動きません) 標的のサーバでは、そのclassファイルを使って自由にコマンドを呼び出せます。 ↓のように、こういったコマンドをjavaファイルの中に書
Updates [04-13] "Data Binding Rules Vulnerability CVE-2022-22968" follow-up blog post published, related to the "disallowedFields" from the Suggested Workarounds [04-08] Snyk announces an additional attack vector for Glassfish and Payara. See also related Payara, upcoming release announcement [04-04] Updated Am I Impacted with improved description for deployment requirements [04-01] Updated Am I I
はじめに こむろです。 Spring4Shell についてです。どうせお前ら調査してたんだろ?と思ったあなた、大正解です。 結論 非常に広範な影響がありましたが、現時点で、Spring Framework 本体への修正パッチがすでに適用されています。そのためこれに準じたアップデートを実施することで脆弱性を回避できます。 spring-boot-2-6-6 spring-boot-2-5-12 spring-framework-5.3.18 Tomcat 9.0.62 またこれらのアップデートができない場合、以下の対応を取ることもできます。 不要なパラメータのマッピングを行わないようにコードを追加する (Binding のブラックリストへ class.* 系を追加) Java8 へ一旦ダウングレードする Tomcat 9.0.62 へ Update することで設定値自体の書き換えをできないよ
3年ぶりの長期サポート版となる「Java 17」正式版がリリース。M1 Macのサポート、Sealed Classの追加など Javaの新バージョン「Java 17」が正式にリリースされました。Java 17は、Java 11以来3年ぶりの長期サポート対象となるJavaのバージョンです。 Java 17 is now available! #Java17 #JDK17 #OpenJDK Download now: https://t.co/ui83Aehxoq Release notes: https://t.co/VKB0vfaPsP API Javadoc: https://t.co/VHs6UWdka8 Documentation: https://t.co/74Dk6r23Dt pic.twitter.com/NZvvxchXGT — Java (@java) September
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く