特に意味はないけどおしゃれかなと思って貼ったスクショ Scala Advent Calendar 2020 - Qiita 3日目です ここ2,3年の間にScalaの開発ツールチェーンは進化を続けていて、Scalaの開発体験はめちゃくちゃ良くなってきています。例えば、数年前だと IDEは基本的にIntelliJ一択、vimとかemacsで開発環境作れなくもないけどかなり大変 IntelliJの型チェックがうまく行かなくて、ちょっと複雑なコード書くとコンパイルは通るのに画面が真っ赤になる コンパイルが遅い(インクリメンタルビルドしても遅い) という感じだったのですが、現状はかなり改善されていて IntelliJ 以外にも metals という Language Server がかなり使いやすくなっていてあらゆるエディタで簡単にScalaを書けるようになった IntelliJ も metals
本記事は「珠玉のアドベントカレンダー記事をリバイバル公開します」企画のために、以前Qiitaに投稿した記事を改訂したものです。 はじめにPub/Sub型のメッセージングアーキテクチャを採用するにあたっては、kafkaなどのブローカーミドルウェアや、Amazon SNS、Google Cloud Pub/Subなどのマネージドサービスを利用するケースが多いかと思います。ところでPostgreSQLでも実はPub/Subができます。 すでに業務でPostgreSQLを使っていれば、新たにPub/Subブローカーを構築しなくても、疎結合なシステム間通信を簡易的に実現できます。 本記事ではこの機能の紹介と、Pub/SubクライアントをJavaで実装する場合の選択肢、考慮点を示しています。 ※実行環境はPostgreSQL 16.2とJava 21です ※データベースの文字コードはUTF-8としてい
皆さんおはようございます。見ている人は見ていたかもしれませんが、昨夜はかなり遅くまで巷で話題沸騰のChatGPTによくわからんクエリを投げて、その結果をみてげらげら笑っていました。特に存在しないプログラミング言語であり「ScalaにHaskellと同じ型推論を加えた」言語Scalayがあることにしたら、ChatGPTが本当にHaskellぽい(単なるHMでなく、Haskellぽいというのは型クラスまで推論される辺り)型推論を持つ架空のScalayコードを解釈実行してくれたりしたところは、控えめに言っても予想外の結果で深夜なのに部屋で忍び笑いをしていました。 Scalaに引数の型推論を追加したようなパチもんのプログラミング言語Scalay(仮)ができてしまった(ChatGPTと対話してる間だけの短い命)。 一応、add: (Int, Int) => Int が推論されてるのすばらですね。 p
主要なJavaScriptランタイムであるNode.jsの作者であり、現在もDenoの開発を進めているライアン・ダール氏は、JavaScriptの商標を所有しているオラクルに対して商標を手放すように要請する公開書簡「Oracle, it’s time to free JavaScript.」を公開しました。 オラクルへの要請は今回で2回目 同氏がオラクルにJavaScriptの商標を手放すように要請する試みは2回目です。1回目は2022年9月に行われています。 参考:Denoのライアン・ダール氏「親愛なるオラクル殿、どうかJavaScriptの商標を手放して」と呼びかけ JavaScriptはNetscapeがWebブラウザ用に開発したプログラミング言語であることはよく知られていますが、その名称はサン・マイクロシステムズが登録商標として所有し、同社がオラクルに買収されたことで現在はオラクル
Java 21が2023/9/19にリリースされました。 https://mail.openjdk.org/pipermail/jdk-dev/2023-September/008267.html The Arrival of Java 21! LTSであり、パターンマッチングや仮想スレッドが正式化され、プレビューとして入ったString Templatesや無名クラス&インスタンスメインメソッドも面白い機能なので、大切なリリースになっていると思います。 詳細はこちら JDK 21 Release Notes Java SE 21 Platform JSR 396 OpenJDK JDK 21 GA Release APIドキュメントはこちら Overview (Java SE 21 & JDK 21) 追加されたAPIまとめはこちら https://docs.oracle.com/en/
WebAssemblyでOpenJDKのJavaランタイムを実装、JarファイルをそのままWebブラウザで実行できる「CheerpJ 3.0」正式リリース Webブラウザ上で実行可能なWebAssembly製JavaVM 前バージョンのCheerpJは、Javaのバイトコードを事前コンパイルによりJavaScriptコードに変換することで、Webブラウザ上でJavaアプリケーションを実行可能にするコンパイラを中心とするツール群でした。 今回の新バージョン「CheerpJ 3.0」では、WebAssemblyによってOpenJDKのJavaランタイムを完全に実装したと説明されています。これにより、JITコンパイラなどを含むJavaVMの機能をWebブラウザ上で実行できるようになりました。 Javaアプリケーションのソースコードは不要で、ビルド済みのJarファイルをそのままWebブラウザで実行
Java 19が正式リリース。より軽量な仮想スレッド、RISC-Vへの移植など新機能。1年後のJava 21が次のLTS版に Javaの新バージョン「Java 19」正式版がリリースされました。 Java 19 is now available! #Java19 #JDK19 #openjdk Download now: https://t.co/dKovWtNGrs Release notes: https://t.co/EOyaGTLHrl API Javadoc: https://t.co/ViIj9H4JrI Features: https://t.co/XuEExSR7gs Inside Java on JDK 19: https://t.co/q5WGZwxMzb pic.twitter.com/XYYA06ll0m — Java (@java) September 20, 2
オープンソースのプログラミング言語「Kotlin」の開発元であるJetBrainsは、Kotlinでデスクトップアプリケーションの開発を容易にするUIライブラリ「Jetpack Compose for Desktop」(以下、Compose for Desktop)を発表しました。 We just published Compose for Desktop Milestone 1! It provides a declarative & reactive way to create desktop user interfaces with pure Kotlin, and you can even share your UI with @AndroidDev! Read about it, try it & go build some desktop UIs!https://t.co/Jp
LTSとなるJava17が出ました。組織が今後もJavaを使っていけるかの試金石になるバージョンだと思います。 実際のとこLTSだから特別安定してるとかそんなことはないと思うし、6バージョン(3年)ごとにLTSにするってのもたぶんOracleさんが言ってみただけで、いろんなとこがそれに乗っかってるから、実質的に節目になってるに過ぎない。はず。 その程度のものなんだけど、私のようなのは乗っかりますし、たぶん多数派なんじゃないかなぁ……この派閥が運用で使うJavaのバージョンは8、11、17で、他のバージョンは評価に使うくらいでしょう。 11から17のジャンプになるんで、かなりたくさんの変更がありますが、業務アプリケーションの表層に関係するものはそこまで多くありません。パフォーマンスとかに影響のあるものは多々ありますが、基本的には早くなるはずで、問題になることは稀です。稀なことはよくあるんです
arm Mac と向き合う Web アプリケーション開発環境 しない話: Docker Desktop の課金回避 問題意識 Mac の CPU が arm になってしまった結果、以下のような問題がある JVM 系を中心に amd64 な Docker image が Mac で挙動が怪しい ネイティブ開発すっか!!となるとライブラリのバンドリングとかでおかしいことになりがち Ruby の nokogiri とか ネイティブだと古いものはわりと動かない そういう問題がなかったとして arm で開発したものを amd64 環境にデプロイするのはちょっと勇気がいる。 古い環境はアップデートせえやという話なのだが、リソース不足してるものはどうにもならず、結果として古い JVM 環境を延命させてたやつとかはまじでどうにもならなくなったりする。えてしてそういうものは皆さんの手元にあることでしょう。
JavaとJavaScriptを混同する人に、名前がかぶってるだけの別モノという指摘がされることもあります。間違いではない。 技術的にも実務的にもコミュニティ的にもそのとおりではあります。 ただ、そう言い続けられた結果、ほんとに単にLiveScriptの名前にJavaをもってきてJavaScriptにしただけという誤解があるようです。 JavaScriptはJavaのScript版、少なくともそうであろうという努力はされていました。 JavaScriptリリース時のCNETの記事には「JavaScript is based on Java」という記述があります。 Netscape and Sun Unveil JavaScript - CNET 実際には、LiveScriptにJavaから文法やライブラリなどを持ち込んでリリースにこぎつけたというのがあります。 JavaScriptのDat
[速報]古いJavaや.NETのコードを最新のJavaにAIが自動変換する「Amazon Q Code Transformation」、AWSが発表。AWS re:Invent 2023 Amazon Web Services(AWS)は、ラスベガスで開催中のイベント「AWS re:Invent 2023」の基調講演で、生成AIを用いて多様なAIサービスを提供する「Amazon Q」を発表。Amazon Qの機能の一部として、古いJavaや.NETのコードを最新のJavaや.NET対応に自動変換する「Amazon Q Code Transformation」を合わせて発表しました。 参考:[速報]AWS、Copilot対抗となる「Amazon Q」発表。生成AIによるシステム開発支援や業務支援など、多様なAIサービスを提供。AWS re:Invent 2023 Amazon Q Code
毎年なにかを殺さないと気が済まないエンジニアのみんなが書いたなんとかis deadの記事をまとめてみた。 PHP id deadPHPはもうすぐ死ぬPHP is deadその2CakePHP is deadRuby is deadRuby is dead? 2019Ruby on Rails is dead?2019Ruby on Rails is deadRuby on Rails is dead?その1Ruby on Rails is dead?その2Ruby on Rails is deadその3Python is deadReact is deadnodejs is deadJava is deadGCP is deadVim is dead 2013emacs is dead 2014emacs is dead (英訳) 所感 現在使われている技術を死んだとかもうだめとかいうのは
SLF4JとLogbackの中の人はここ数年活発ではないのでLog4j2などを代わりに使いましょう。 SLF4Jの活動は最近活発ではない SLF4JはVCSとしてGitHubを利用しています。最後の変更が2020年2月、最後のリリースが2019年12月となっていることからも、あまり活発ではないことが伺えます。 またBTSとしてJIRAを使っていますが、こちらもメンテナンスされていません。昨夏SLF4J-209が既にクローズ可能な状態であることやSLF4J-186が修正可能であることなどをコメントしましたが、1年近く経った今もすべて返信がない状態です。 2020年12月にイシューを閉じていたりするので全く動きがないわけではないのですが、年間で22つ作成されたのに対して2つしか閉じられていないので、充分にメンテされているとは言い難い状況です。 2021年5月31日時点での過去360日のイシュー
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? Javaの開発と言っても、各種ミドルウェアやフレームワーク、ライブラリ、ツールなどが豊富にあり選択に悩むことは少なくないと思います。 そこで関連技術のインデックスになればと作成しました。 あくまで知っている範囲で記述しているので、コメントしてもらえれば随時追加します! すべてを書くと膨大な量になるため、現状採用が減ってきているものや、そもそもあまり採用されていないもの、後継があったり、類似のものと比較した場合に明らかに劣っているものは省いています。 ちなみにライブラリには高機能なものも多いので、分類は参考程度にご覧下さい。 サーバ系 A
マイクロソフト、Javaの仕様を策定するJava Community Process(JCP)への参加を発表。Javaへのコミットをさらに強める マイクロソフトは、Javaの仕様策定や関連技術の開発、実装などを行う「Java Community Process」(JCP)への参加を発表しました。 Microsoft Deepens Its Investments in #Javahttps://t.co/9nHnyCpEIP pic.twitter.com/8ijU3TYeAn — Java at Microsoft (@JavaAtMicrosoft) November 4, 2021 JCPにはオブザーバ、パートナーメンバー、アソシエイトメンバー、フルメンバーなどのメンバーの種類がありますが、今回マイクロソフトは Java Specification Participation Agr
オラクルはJavaをサーバレス環境で実行するのに最適化した技術「GraalOS」を発表しました。 同時に、Oracle Cloudのサーバレス実行基盤である「Oracle Cloud Functions」でGraalOSの機能を提供することも発表されました。 Javaをコンパイルし、ネイティブバイナリを実行 GraalOSは名称にOSと付いているものの、LinuxやWindowsのようなOSではなく、Javaをデプロイする新たな技術とその基盤を指します。 具体的には、同社が提供しているJava実行環境である「GraalVM」のコンパイラを用いてJavaをコンパイルしてネイティブバイナリを生成し、それをサーバレス基盤にデプロイし実行することで、サーバレスアプリケーションの瞬時の起動と高速な実行などを実現するというものです。 参考:Javaのネイティブバイナリ生成可能なGraalVMの全機能が
macOS Sonoma 14.4にアップデートするとJavaがクラッシュするとオラクルが注意喚起。Appleシリコン搭載Macで オラクルは、Appleシリコン搭載のMacでmacOS Sonoma 14.4にアップデートを行うと、Java 8以降のすべてのバージョンでJavaが予期せず終了する現象が発生するとして、Macユーザーに注意喚起を行っています。 今のところ回避策はなく、macOSをバージョンアップしてしまうと元に戻す簡単な方法もないため、Appleシリコン搭載のマシンでJavaを利用している開発者やユーザーは、この問題が解決するまでは最新のmacOSへの移行を延期することをオラクルは勧めています。 Javaが正常に動作しないことで、Javaに依存しているツールもmacOS Sonoma 14.4では動作しなくなります。Kotlinの開発元などで知られるJetBrainsは、J
こんにちは!関数型まつり 運営チームの池田です。 このたび、ScalaMatsuriが進化し、新しい関数型プログラミングのカンファレンス「関数型まつり」を開催することをお知らせいたします!🎉 関数型まつりとは? 関数型まつりは、プログラミングにおける「関数型」の思想や技術にフォーカスした新しいテックカンファレンスです。 言語に限定されることなく、あらゆるプログラミング言語の壁を越えて、関数型プログラミングというものについて広く学び共有する場です。たとえば、あなたがHaskellを愛する開発者でも、JavaScriptで関数型っぽく書いているフロントエンドエンジニアでも、あるいは「関数型って興味あるけどよくわからない」という初心者でも、きっとこのイベントで新しい発見があるはずです。 イベント詳細 イベント名 関数型まつり 開催時期 2025年夏頃 開催場所 都内 なぜ「関数型まつり」を今や
Java Champion 谷本 心 EverforthとAcroquestの2社で正社員として働くエンジニア。仕事のかたわらでコミュニティ活動も行っており、日本Javaユーザーグループの代表を務めるほか、アメリカで開催されたJavaOneやSpringOneなど国内外のイベントで登壇。その実績から日本で3人目の「Java Champion」に任命された。著書に『Java本格入門』(技術評論社)。趣味は対戦格闘ゲームと、BABYMETALを追いかけて世界中を旅すること。 X: @cero_t Blog: https://cero-t.hatenadiary.jp/ 1. 『Java本格入門~モダンスタイルによる基礎からオブジェクト指向・実用ライブラリまで』(谷本心、阪本雄一郎、岡田拓也、秋葉誠、村田賢一郎 著) 2. 『プロになるJava―仕事で必要なプログラミングの知識がゼロから身につく
先日騒ぎになっていた CVE-2021-44228 についてのアプリケーション側の対応について記載いたします。 緩和策としてすでに AWS WAF での Rule の Update 等が行われているため、AWS サービスの詳細については別途記事を御覧ください。 Log4jの脆弱性対策としてAWS WAFのマネージドルールに「Log4JRCE」が追加されました ここでは SpringBoot をベースとしたアプリケーションへの影響と対応可否の判断についてどのような調査を行ったかを記載します。 ひとまず結論 Spring 側から見解がすでに出ています。 Log4J2 Vulnerability and Spring Boot 以下抜粋します。 Spring Boot users are only affected by this vulnerability if they have switc
「Apache Log4j」の脆弱性が話題だけど、そもそもApacheとかJavaの語源って知ってる?:ヤマーとマツの、ねえこれ知ってる?(1/3 ページ) 経歴だけは長いベテラン記者・編集者の松尾(マツ)と、幾つものテック系編集部を渡り歩いてきた山川(ヤマー)が、ネット用語、テクノロジー用語で知らないことをお互い聞きあったり調べたりしながら成長していくコーナー。交代で執筆します。 ヤマー 昨日のヤマーとマツ+キーチ副編集長によるLog4j解説回、けっこう反響ありましたね。 「Log4j」のトラブルってどうヤバいの? 非エンジニアにも分かるように副編集長に解説させた 副編をこき使ってしまいましたが、われわれも勉強になりました。 「Apache」の由来って何? マツ 私も調べているうちに、そういえば、世間の方はLog4jなどを手掛けている「Apache」って何のことだか知らないんじゃないかと
世の中にはさまざまなタイプのエンジニアがいます。流行に合わせて次々と新しいプログラミング言語やフレームワークを習得する人もいれば、特定の技術に長く携わり専門性を高める人もいるでしょう。 後者のタイプの代表格と言える一人が、Javaのスペシャリストとして知られるLINE Fukuoka株式会社のきしだなおき(@kis)さん。 彼は20年以上にわたり、この言語と向き合いスキルを突き詰めてきました。 最近では、書籍『プロになるJava*』を執筆するなど、Javaの認知拡大・普及のための活動も行っています。 きしださんは、Javaへの興味が長く続いた理由として「技術コミュニティの存在が大きく影響している」と語ります。 今回はきしださんに、技術コミュニティに関連したエピソードとともに、キャリアを振り返っていただきました。 *…技術評論社より2022.3.19出版。きしだなおきさん、山本裕介さん、杉山
Google、Google Sheetsの計算エンジンをWebAssemblyに最適化し、2倍の性能を実現したと発表 GoogleはWebブラウザ上でスプレッドシート機能を提供する「Google Sheets」の計算エンジンの性能をWebAssembyで実装し、従来のJavaScriptによる実装と比較して性能を2倍に向上させたことを明らかにしました。 これにより単純なSUM計算から複雑なクエリまで、シート上でのあらゆる計算を始め、ピボットテーブルの作成、条件付きフォーマットなどさまざまな処理が高速になるとのことです。 この性能向上は、JavaScriptで構築されていた計算エンジンをWebAssemblyに最適化したことで実現していると説明されており、そのためにWebAssemby GC(ガベージコレクション)機能を用いたとのことです。 そのため現時点ではChromeとMicrosoft
ミラティブのAndroidエンジニアの chocomelon です。 MirrativのAndroidアプリでは、Androidアプリケーションの内部品質向上のために開発で以下を取り入れています。 データフローの単方向化(Flux導入) Viewからのロジック切り離し(Flux、Jetpack Compose導入など) 責務分割、依存方向の強制(Flux、マルチモジュール導入など) 今回の記事では特にマルチモジュールについてお話します。 MirrativのAndroidアプリは、配信/視聴機能、アバター機能、リッチなアニメーションなど複雑な要素を一つの画面で表現することが多々あります。 これらを考えなしに実装すると、可読性の悪化を招いたり、不具合が発生しやすく調査しづらいコードにしてしまいがちです。 複雑なアニメーションやアバター機能などを持つ配信画面 ミラティブでは多くのメンバーがネイテ
こんにちは。techtekt編集部です。 6/4に開催された「JJUG CCC 2023 Spring」にて弊社のリードエンジニアである齋藤 悠太が登壇しました。 資料公開に関する声を多く頂戴し、当日の資料を公開します。 ぜひご覧ください! APIによるレガシーシステムの改善 それでは次回のtechtektもお楽しみに! 齋藤 悠太 Yuta Saito システムアーキテクト部 dodaアーキテクトグループ リードエンジニア SIerや事業会社業務での開発を経験し、2020年9月にパーソルキャリアに入社。現在はdodaサイト開発に携わっている。好きな技術領域はJava、Spring、AWS。 ※2023年6月登壇時点の情報です。
インターネットやAIを駆使しながら、領域に捉われずにさらなる挑戦を行うDeNAの取り組みを紹介する「DeNA TechCon 2023」。ここで認証認可システムのリノベーションチームの岸直輝氏が登壇。Shift Leftの考え方を基に実践している静的解析や自動テスト、挙動の差分を自動で発見するための取り組みについて紹介します。全2回。後半は、各フェーズにおける、静的解析・ユニットテスト・E2Eテスト、それぞれの取り組みについて。前回はこちら。 静的解析のメリットとデメリット岸直輝氏:では、ここからは今お話ししたShift Leftの具体的な取り組みについて見ていきましょう。ここでは、各フェーズごとに対応する取り組みを、静的解析、ユニットテスト、E2Eテストの3つに分けて紹介します。 まずは静的解析について。静的解析は、プログラムを実行することなく、静的にさまざまな異常を検出する手法です。静
リクルートアドベントカレンダーの20日目の記事です。 adventar.org 最初にこの疑問を思ったのは、今も忘れない R-ISUCON 2021 というリクルートの社内ISUCONの運営で炎上していた時の話です。 ちなみに R-ISUCON 2021 は劇的な結果で終わっているので、興味のある方は見てみてください。 blog.recruit.co.jp R-ISUCON 2021 では、 Node.js (TypeScript), Go, Java の3パターンの実装が出てくることが通例になっていまして、今回は Java の実装から Node.js, Go に適用していた時に一緒に実装していたメンバーからの疑問が『例外には色々な議論があるけれど、「例外を初めて実装した言語」ってどういう気持ちで実装したんだろう』という話が挙げられたので、そのネタを持ってきました。 ちなみにここで指してい
※皆さまのご指摘に併せてアップデートをします。ストックに入れて置いて頂けますと便利です。 JavaはエンタープライズからWebサイトまで幅広く使われている言語です。その中で企業ユースではOracle JDKが広く使われてきている歴史があります。もちろん各社提供のOpenJDKも引き続き無償で提供され、様々なプラットフォームでサポートとライセンス付きのJDKが立ち上がり、各社から提供されています。 この記事では Oracle JDKのライセンス・サポートについて解説しています。 JDKいろいろ JDKは無償で提供されるOpenJDKから、各プラットフォーム上ではライセンス・サポートされるJDKと、商用ライセンス・サポートされるJDKと様々あります。この記事ではサーバーサイドで動かす場合を前提として記載します。分かりやすくするため、登場するのはOracle OpenJDK・Oracle JDK
LINEが定期的に開催する技術者向けミートアップ「LINE Developer Meetup」。65回目の は「Java」というテーマで、JavaのスペシャリストであるLINE Fukuoka株式会社のきしだなおき氏が、Java 9から14での細かい機能変更について紹介しました。関連資料はこちら。 Java9からJava14までの4つの細かい仕様変更きしだなおき氏(以下、きしだ):よろしくお願いします。僕のセッションでは「Java9からJava14までをおさらいをする」という話をします。 自己紹介ですが、きしだと言います。LINE Fukuokaで働いていて、最近7年ぐらい放置していた洗濯機をやっと買い替えて、「文明って便利だな」と思っているところです。 今日の話ですが、Java9からJava14まで、けっこういろいろな変更が積み重なっていて、大きい言語仕様の変更などはけっこう話題になるの
しかし、原版の Win32 Disk Imager には、以下の問題点があった。 Google Drive との相性問題。 Google Drive クライアントアプリケーションを稼働させている Windows 環境では、Win32 Disk Imager の起動時に、エラーが発生し、正常に利用できない。 この問題は、Google Drive の仮想ドライブ機能 (G:\ 等) が有効になっている場合に発生する。 Google 社は、オープンソースの Dokan (Windows 用 FUSE ドライバ) を改造した Windows NT カーネル用デバイスドライバを用いて Google Drive の仮想ドライブを実装している。しかし、この仮想デバイスドライバと Win32 Disk Imager とは相性が悪く、Win32 Disk Imager の起動時のデバイス列挙時にエラーが発生
クラウドネイティブ技術を日本にも浸透させることを目的に開催された「CLOUDNATIVE DAYS Spring 2021 ONLINE」。ここでVMwareの伊藤氏が「脱 Dockerfile! Cloud Native Buildpacksとkpackを使った簡単で安全なイメージ」をテーマに登壇。まずは、Dockerfileの問題点とCloud Native Buildpacksについて紹介しました。 トーク内容の目次 伊藤裕一氏(以下、伊藤):「脱 Dockerfile! Cloud Native Buildpacksとkpackを使った簡単で安全なイメージ」という内容について、伊藤がお話しします。 目次です。最初にDockerfileのおさらいと、問題点を話します。そして、Dockerfileを使わずにビルドを実施するCloud Native Buildpacks(CNB)の概要と
「Java 20」正式リリース。スレッド間で共有できるScoped Values、複数スレッド処理をまとめるStructured Concurrencyなど新機能 オラクルはJavaの最新バージョン「Java 20」正式版のリリースを発表しました。 Java 20 is now available! #Java20 #JDK20 #OpenJDK Download Now: https://t.co/6hZhod56WB Release notes: https://t.co/3eTwYKn1Cw API Javadoc: https://t.co/QUNgT4ol6Y Features: https://t.co/enLcqDmBQX Inside Java on JDK20: https://t.co/WIzDOeTgZl pic.twitter.com/7ahbOPF4LQ — Ja
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く