質とスピード(2020春版) 2020/02/13 @ デブサミ2020
要約 技術的な話だけ教えて、という方のために先に結論だけ書いておきますと、PostgreSQLはクエリを実行した時点で全レコードの情報を一気に読んできてヒープを埋めてしまう場合がある、ということ話です。 たとえば、ResultSet#nextメソッドを使いながら処理を回すようなコードを書いて、少ないヒープでも処理できるようにするのは常套手段だと思いますが、そういうコードを書いていても一気にヒープを消費してしまうことがあるのです。詳しくはこのドキュメントを見てください。 https://jdbc.postgresql.org/documentation/head/query.html#query-with-cursor ことの発端 ちょっと仕事でJava + jOOQ + PostgreSQLで、DBのデータを集計するようなバッチ処理を書いてまして、もちろん俺様の書いたコードにバグなんてある
開戦1年前の2021年2月24日、ウクライナ軍に引き渡されるT-72AMT戦車(写真:ロイター/アフロ) ウクライナ軍が最近の数日でハルキウ州での大規模な突破に成功。バラクリヤ市を奪還し東進を続けてクピャンスク市とオスキル川に到達後に南下を始めて、あっという間に要衝のイジューム市に進入して奪還しました。たった4日間で旋回しながら80~100km(直線距離では50~60km)を進撃する驚異的な速度です。ロシア軍の防衛線は崩壊、大規模な退却が始まりました。 ハルキウ大突破:オスキル川到達まで 戦況アニメーション解説動画 オスキル川の幅が広い部分はダムで堰き止めた「オスキル貯水池」動画の右上の黄色い楕円が第一目標クピャンスク市(ハルキウ州東部)動画の中央下の黄色い円が第二目標イジューム市(ハルキウ州南東部)動画投稿翌日にウクライナ軍は南方向に旋回してイジューム市に到達 ※9月12日追記:ウクライ
研修がはじまるという画像でサーブレットJSPの本が並んでて、サーブレットを最初に勉強させるのをやめてあげてほしいと思った話。 オブジェクト指向もそうなんだけど、現状で使わなくなっているにもかかわらず情報更新がされずオブジェクト指向やサーブレットJSPが教えられ続け本が売り続けられるという現状がある。 でももうさすがに変わってほしさ。 ただ、JSPはそこまで悪くないので、サーブレットで話を進める。(ただし、サーブレットが動かない環境ではJSPは動かない) 使われていない まず、いまの案件の多くがSpring / Spring Bootになってて、サーブレットをさわるということは少ない。 2020年のJetBrainsの調査ではこんな感じ https://blog.jetbrains.com/ja/idea/2020/10/a-picture-of-java-in-2020-ja/ 2021年
社民党(社会民主党)は機関紙の社会新報2022年2月23日号の記事(Web投稿日は2022年2月18日)、タイトル名「ウクライナを戦場にするな~米ロ両国は冷静な対話で緊張緩和を~」において明確にウクライナ危機についてロシアへの支持を打ち出しました。他政党は日本共産党も含めてロシアを非難している中で異彩を放っています。 米国のバイデン政権や主流メディアはイラク戦争時のように怪しげな情報を拡散しながら、「ロシアのウクライナ侵攻」を宣伝している。だが真に論議されるべき課題は、ロシアが求めている安全の保障なのだ。 ~中略~ 本来であれば、国際社会はロシアの懸念を正当なものとして認め、米国に交渉を促すべきだが、ロシアを悪玉に仕立てた「侵攻」説が飛び交うことで、そうした気運は乏しい。米国発の一方的な宣伝に惑わされず、何が本質的な課題なのかを見極める姿勢が必要だ。 出典:Web Archive | ウク
ガザからのイスラエルに向けたロケット弾攻撃 5月10日からパレスチナ・ガザ地区のハマスが無差別ロケット弾攻撃をイスラエルの都市に行い、3日間で既に1500発以上が発射されています。約半数は何も無い砂漠の無人地帯に落下しましたが数百発が市街地に向かって飛来し、アイアンドーム防空システムが9割近くを撃墜するも数十発を撃ち漏らし、民間人に死傷者が出ています。防空戦闘の規模はアイアンドーム実戦配備から10年経ちますが過去最大のもので、重点防御されているテルアビブ上空では数十発の迎撃ミサイルが同時に撃ち上がる凄まじいものとなっています。 これに対しイスラエル軍はガザへの報復爆撃を開始、民間人を直接狙ってはいませんが巻き添えで多数の民間人が死傷しています。またガザ地区の境界線付近ではハマスからの対戦車ミサイル攻撃でイスラエル軍車両が撃破され戦死者が出ており、イスラエル軍は戦車を集結させて地上戦の準備を
Spring以前 RPC 業務で使うシステムはサーバー間で連携することが多い。2019年現在ではREST apiに対してjsonやprotocolbufferで呼び出す事が当たり前のように行われているが、まだjsonも発見されていない時代はもっと複雑な仕組みが取られていた1。異機種間でやりとりするためのCORBAや、機種に依存しないデータプロトコルのASN.1なども利用されていたが、仕様は複雑でそれぞれをハンドリングするライブラリは有償で売られ、ベンダーからサポートを受けながら使用するようなものだった。 RMI Javaの世界ではJava同士でやりとりするためのRMIが定義され、比較的に楽にRPCできるようになった2。とはいえhttpでrestをコールすることに比べたらアホみたいな複雑さである。 https://docs.oracle.com/javase/jp/1.3/guide/rmi
何度か教えていただいているので、今度こそしっかり覚えておきたくて、まきさんからのコメントを記録。 ## メモリサイズの考え方 SpringBootのアプリをコンテナとして動かす場合には768MB以上必要で、1GBくらいは割り当てる必要があるのではないかという僕のコメントに対していただいたコメント。 それは不正確..Tomcatを使う場合は最大コネクション(スレッド)がデフォルト200で+50スレッドくらい余裕を見ると250M (-Xss1M)でデフォルトのReservervedCodeCacheSize 240MとDirectMemorySize 10M加えた上にMaxMetaSpaceSizeがざっくり50Mくらい足すと550Mくらい使ってこれHeapを足すとコンテナサイズ— Toshiaki Maki (@making) November 16, 2019 その前提であればHeap 2
群馬県草津町の黒岩信忠町長から性被害を受けたと訴えていた新井祥子・元町議が、民事裁判のなかで、レイプ被害の訴えは虚偽だと認めたという報道がありました(「朝日」11月16日付など)。これを受け、元町議に連帯を表明していた性被害の当事者団体「一般社団法人Spring」は5日、見解を発表し、性暴力の虚偽の訴えは人権侵害だとして元町議への、連帯の表明を撤回し、草津町長ら関係者に謝罪を表明しました。 同団体は、元町議がリコールされたことに抗議して、2020年12月11日におこなわれた「草津町フラワーデモ」にたいして、SNS上で連帯を表明していました。 草津デモの記事は削除します 「しんぶん赤旗」は2020年12月12日付で、全国46都市で行われたフラワーデモのうち、東京と草津町のフラワーデモを紹介しました。草津町のデモは「訴え排除しない社会に」の見出しで報道しましたが、新井氏の訴えが虚偽であったこと
はじめに 先日、JakartaOne Live Japan 2022というイベントで登壇させていただく機会を頂きました。 QuarkusやHelidonのような新しめのEEフレームワークがこれまでのPayaraやWebLogicとどう違うのか? CloudRunのようなサーバレス環境でMicroProfileのどの機能が効果的に働くのか? という点を最近のWeb開発周りのトレンドと絡めながら話ました。上記のようにアーカイブ動画も公開されていますが、せっかくなのでQuarkusがサーバレス環境で実行に最適化されるまでの周辺事情等をまとめたいと思います。Javaだけに留まらず最近の環境事情の整理にも役立つかと思います。 TL;DR Quarkus/Helidonは軽量で高速な新しいEEフレームワーク コンテナや、サーバレス、クラウドネイティブなど最新のトレンドに基づいた設計 GCPのCloud
はじめに 2018 年 10 月に Cloud Native Buildpacks は Cloud Native Computing Foundation (CNCF)に Sandbox として受け入れられました。 CNCF には Kubernetes, Prometheus, Envoy, Fluentd など有名プロジェクトも多く受け入れられています。 Buildpacks を使うことで、Dockerfile を書かなくても Docker イメージを作成できます。 また、作成されるイメージはかなり軽量でした。 buildpacks.io 試してみた 今回は、以下のリポジトリの Java アプリケーションの Docker イメージを作成します。 github.com インストール # Mac $ brew install buildpacks/tap/pack # Linux $ wge
2022年3月31日、Spring Frameworkに致命的な脆弱性が確認され、修正版が公開されました。ここでは関連する情報をまとめます。 1.何が起きたの? JDK9以上で実行されるSpringMVC、SpringWebFluxでリモートコード実行が可能な脆弱性(CVE-2022-22965)が確認された。脆弱性の通称にSpring4shellまたはSpringShellが用いられている。 Spring FrameworkはJavaで採用される主流なフレームワークの1つのため、Javaで実行されるWebアプリケーションで利用している可能性がある。 2022年3月31日時点で脆弱性のExploitコードが出回っており、関連するインターネット上の活動が既に報告されている。 2.脆弱性を悪用されると何が起きるの? 脆弱性を悪用された場合、リモートから任意コード実行が行われることで、機密情報の
Java IDEにもいろいろあるけど、それぞれの特性としてIDEがどれだけJavaを知っているかということで決まるということをTwitterに書いたので、ちょっと具体的に書いてみます。 IDEの使いやすさについて、そのIDEがどれだけちゃんと言語を知っているか依存するんだけど、IntelliJ IDEAが一番Java言語を知っていて、NetBeansはJavaのエコシステムを知っていて、EclipseはJavaビジネスを知っている・・・ VS Codeはまとめサイトで見たレベルでJavaを知ってる感— きしだൠ(K8S(Kishidades)) (@kis) 2020年10月30日 ちなみに、全体としてNetBeans推しです。 使い分けとしてはこんなこと書いてます。 Java IDEの選び方 機能いらんけど使いやすくて安定したのがいい→IntelliJ IDEA CE 機能多いのがいいけ
どうも、趣味でOpenJDKのコミッタをしてます。 とあるブログを読んでいたら気になる点があったので検証してみました。 JITと暖気 Javaプロセスはアプリケーションを動かしながら必要に応じてバックグラウンドでバイトコードをネイティブコードにコンパイルします。このコンパイル時にはCPUリソースを使用します。 コンパイルにはいくつかのレベルがありますが、コンパイルされる前やレベルの低いコンパイルのコードはCPUのリソース効率が悪かったり、アプリケーションの処理中にコンパイルが実行されるとCPUリソースを奪いあったりなどが問題になります。 そのため、Java のアプリケーションで性能を気にする要件がある場合、本番に近いリクエストを投げてコードをJITコンパイルする事があります。これをよく暖気と言います。これにより本番のリクエストが来る前にコードを最適化し、よりCPUリソース効率の高いコードで
ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは! Yahoo!ショッピングクーポンチームの小倉です。 前回のフロントエンド技術刷新の話とは打って変わり、今回は2019年に行ったバックエンド技術刷新の話です。 刷新前のシステムはノンフレームワークPHPのモノリスでしたが、現在は主にJava/Spring Bootでマイクロサービス化しています。今回は、その中でもっとも仕様が複雑だったマイクロサービスにおいて、ドメイン駆動設計(Domain Driven Design:DDD)を実践した話をご紹介します。 ショッピングクーポンの自由度を知る みなさんは、ショッピングの商品が割引になるクーポンをご存じでしょうか? 実は、クーポンには、ヤフーが予算をだして発行する「モールク
ハイクラス求人TOPIT記事一覧Spring Boot 3の新機能を使ってみよう! 2からアップグレードする手順、Observability機能、ネイティブイメージ化 Spring Boot 3の新機能を使ってみよう! 2からアップグレードする手順、Observability機能、ネイティブイメージ化 Javaの開発フレームワークであるSpringの最新バージョンとして、Spring Boot 3が2022年11月にリリースされました。この記事ではSpring Boot 2で書かれたサンプルコードをSpring Boot 3にアップグレードしながら、考慮点や新機能を体感していただきます。ヴイエムウェア株式会社の星野真知さんによる解説です。 Javaのエコシステム、その中でも世界で一番の人気を誇るのが(JetBrains社の調査によると)Spring FrameworkおよびSpring B
こんにちは。techtekt編集部です。 6/4に開催された「JJUG CCC 2023 Spring」にて弊社のリードエンジニアである齋藤 悠太が登壇しました。 資料公開に関する声を多く頂戴し、当日の資料を公開します。 ぜひご覧ください! APIによるレガシーシステムの改善 それでは次回のtechtektもお楽しみに! 齋藤 悠太 Yuta Saito システムアーキテクト部 dodaアーキテクトグループ リードエンジニア SIerや事業会社業務での開発を経験し、2020年9月にパーソルキャリアに入社。現在はdodaサイト開発に携わっている。好きな技術領域はJava、Spring、AWS。 ※2023年6月登壇時点の情報です。
「Spring Native」ベータ版公開、GraalVMによりSpring FramworkのJava/Kotlinアプリをネイティブイメージにコンパイル。JavaVMに依存せず瞬時に起動可能 Spring Frameworkの開発チームとGraalVMの開発チームは、GraalVMを用いてSpring Frameworkのアプリケーションをネイティブイメージにコンパイルする「Spring Native」がベータ版として公開されたことを発表しました。 Announcing Spring Native Beta! Read the blog post https://t.co/5klXV6kSVB and check out the video for more details. #spring #native #graalvm https://t.co/83pI3vNYEr — Spri
この記事について 事ある度に書いたり言ったりしている通り、2020年を迎えようとしている現在でも、信頼できるSpring関連書籍は下記の2冊しかありません。 Spring徹底入門 改訂新版Spring入門 2冊(以下「書籍」)とも超良書なのですが、どちらもリリースされたのが2016年で、対応しているSpringのバージョンが4.2と古くなっています。 2019年末時点での最新版はSpring 5.2です。この記事では、上記書籍を令和の今読む際、特に気をつけるべき点をいくつか紹介していきます。 4.x->5.xの差分すべてについては、GitHubのWikiを確認してください。 JDKは8以上を使うべし Spring 5.0以降から、JDKのベースラインが8になりました(Spring 4はJDK 6ベース)。今からSpringを使おうと言う人が、JDK 6とか7を使おうとはしないと思いますが・
Ubie(ユビー)株式会社でソフトウェアエンジニアをしている八木(@sys1yagi)です。Ubieに入社してすでに1年8ヶ月くらい経ってますが(2019年4月入社)、入社エントリを書いていなかったので書きます。 【特にこんな人に読んでほしい】 ・Ubieに興味があるけど、技術スタック全然違うしな〜って思ってる人 ・キャリアとか転職とか皆どういう観点で考えてるんだろと気になる人これまでのキャリアソフトウェアエンジニアになって2021年でちょうど15年になります。Ubieに入社する2019年までは10年間ほどAndroidアプリケーションエンジニアをしていました。クックパッドのAndroid版をスクラッチしたり、新規事業のAndroid部分を担当したり(当時は一つのクックパッドアプリケーション内で複数事業の機能が入ってました)、新規事業がMBOして独立する際に技術部長を兼任しつつAndroi
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く