並び順

ブックマーク数

期間指定

  • から
  • まで

81 - 120 件 / 246件

新着順 人気順

scalaの検索結果81 - 120 件 / 246件

  • Scala3の開発体験がScala2時代に比べてめちゃくちゃ良くなっていた話 - Qiita

    ドワンゴのN予備校という教育サービスでプログラミング講師をしている @sifue といいます。N高等学校/S高等学校のプログラミング講師もしており、学内のツール開発や運用などもしたりしています。 最近は生成AIが流行ったこともあって、Pythonだったり、UIが必要なものはどうしてもTypeScriptとReactで実装することも多いのですが、久しぶりにScalaを使っての開発をしてみました。 自身は、Scalaでの開発はニコニコ生放送のサービスを開発するときに使っていた他、N予備校内で提供している大規模Webアプリの教材やドワンゴが当初作成していたScalaテキストの作成などにも関わらせてもらいました。 その当時のScalaは2.12であったわけなのですが、その後2.13が出て、さらに今はScala3系になって3.3.1までバージョンが進み、開発環境が変わってすごく使い勝手がよくなったと

      Scala3の開発体験がScala2時代に比べてめちゃくちゃ良くなっていた話 - Qiita
    • OpenAIのAudio Transcription APIで遊んだ - Lambdaカクテル

      最近OpenAIがオーディオ系のAPIをいくつか出していた。といってもけっこう前の話だ。 そんな中、最近OpenAIが色々なサービスを展開している。自分も触って習熟しておいたほうが、面白いアイデアを思い付いたときにすぐにプロダクトを作れて役に立つはずだ。そういうわけで色々APIを見ていたところ、その中でも面白そうだった書き起こしAPIを使うことにした。自分が喋った内容を書き起こしてもらいたい。上手くいくだろうか?ボソボソ喋るオタクボイスでも? openai.itshinan.jp このAPIを使うと、オーディオ音声(wavとかflacとか色々な入力形式を使える)から各言語の書き起こしをやってくれる。イクゾー 素材音声 小銭を払う Scalaから呼び出す 所見 まとめ 素材音声 今回用意した自分の音声はこれ。過去の自分の記事の内容の一部をボソボソ読み上げている。お世辞にも上手ではないし、AP

        OpenAIのAudio Transcription APIで遊んだ - Lambdaカクテル
      • Scala 3のmatch typeで数独チェッカーを作った - xuwei-k's blog

        なんかtweet流れてきたので TypeScriptの型がどれほど強力かというと、コードエディタ上で直接数独ができるほどの複雑な型を作成した方がいるほどです。このSudoku型を使用すると、TypeScriptの型チェッカーが間違いを正確に指摘してくれます。 pic.twitter.com/mCXXjGqK9D— Jeffry Alvarado (@jalva_dev) September 7, 2024 github.com Scala 3のmatch type自体の詳細な説明は省略しますが、compile時計算的なことができて、チューリング完全です https://tarao.hatenablog.com/entry/lambda-scala3 あくまで答えがvalidか?のcheckerだけで、プレースホルダー部分実装してない それも実装しました。下記に貼った 少なくともIntell

          Scala 3のmatch typeで数独チェッカーを作った - xuwei-k's blog
        • プログラミング言語Flixに関するMagnus Madsen氏へのインタビュー

          原文(投稿日:2022/02/25)へのリンク Flixは多くのプログラミング言語にインスパイアされたオープンソースのプログラミング言語であり、開発者は関数型、命令型、論理型のスタイルでコードを書くことが可能である。FlixはScalaに似ており、Hindley-Milnerに基づく型システムとGoにインスパイアされた並行処理モデルを採用している。JVM言語はポリモーフィックエフェクトシステムやDatalog制約などのユニークな機能をサポートしている。 FlixのプログラムはJVMバイトコードにコンパイルされ、開発者はFlix Visual Studio Code拡張機能を使用するか、online playgroundを使用して言語を評価することができる。 コミュニティはいくつかの原則に基づいて言語を開発している。例えば、NULL値を使わない、デフォルトでprivate、リフレクションを使

            プログラミング言語Flixに関するMagnus Madsen氏へのインタビュー
          • map関数の内部実装から探るJVM言語のコレクション: Scala, Kotlin, Clojureコレクションの基本的な設計を理解しよう | ドクセル

            スライド概要 主要なJVM言語Scala, Kotlin, Clojureの標準ライブラリにおける高階関数mapの実装を探ることを通して、各言語の特徴的なコレクション設計について理解を深めよう。 JJUG CCC 2024 Fallセッション概要: https://sessionize.com/s/lagenorhynque/mapguan-shu-nonei-bu-shi-zhuang-karatan-rujvmyan-y/105241

              map関数の内部実装から探るJVM言語のコレクション: Scala, Kotlin, Clojureコレクションの基本的な設計を理解しよう | ドクセル
            • TypeScript で Cake Pattern - Object.create(null)

              TypeScript で Cake Pattern っぽい DI (依存性注入) をするためのライブラリを作ったので, そのご紹介です. この記事での解説や他の手法との比較は前回の記事を前提とするので, まずはこちらをお読みください. Scala における Cake Pattern Cake Pattern は Scala で DI を実現する方法の一つで, ライブラリやアノテーションを使わず Scala の言語機能のみで完結するシンプルさが特徴です. 以下の例では前回の記事から引き続き, 時刻と乱数を扱うコンポーネントと, それらに依存したコンポーネントがある, というものを使います. まずはコンポーネント ClockComponent, RandomComponent, MyServiceComponent を定義します. Scala の trait は TypeScript でいうと

                TypeScript で Cake Pattern - Object.create(null)
              • Scala is a Maintenance Nightmare - MungingData

                Scala is a Maintenance Nightmare This post explains why Scala projects are difficult to maintain. Scala is a powerful programming language that can make certain small teams hyper-productive. Scala can also slow productivity by drowning teams in in code complexity or burning them in dependency hell. Scala is famous for crazy, complex code - everyone knows about that risk factor already. The rest of

                • Scala記事を書き続けている話 - Lambdaカクテル

                  Table of Contents はじめに 最近Scalaまわりのアウトプットを積極的にやっている Scalaの裾野を広げたい 高度な記事はあるけれど 入門的な記事を増やす お高く留まらない言語にしていく お高く留まった言語から滅んでいく 裾野がプログラミング言語を支えている はじめに この記事は、はてなアドベントカレンダー2022の20日目の記事です。 昨日の記事はid:id:tokizuohによる『毎日行う動作を習慣にするためにメニューバー常駐macOSアプリを作った』でした。 この記事では、最近行っているScalaまわりのアウトプットについて紹介します。 最近Scalaまわりのアウトプットを積極的にやっている 最近個人的に継続している試みとして、 Scalaのライブラリや言語機能にかんする記事をどんどん書くというものがあります。 例えば一番最近だと入門⚡Shapelessという記事

                    Scala記事を書き続けている話 - Lambdaカクテル
                  • Scala の Wasm バックエンドを実装した

                    Scala.js 1.17.0 で実験的な Wasm backend がサポートされました! リリースノートに書いてあるとおり、以下のような設定をすることでScala.jsがJSの代わりにWasmモジュール(とモジュールに渡すJS object)を生成することができます。 @JSExport によるモジュールのexportがサポートされていませんが、それ以外のsemanticsはサポートされており、既存のScala.jsアプリケーションを変更なしにWasmにビルドすることが可能なはずです。(もし何か問題があれば教えて下さい!) // Emit ES modules with the Wasm backend scalaJSLinkerConfig := { scalaJSLinkerConfig.value .withExperimentalUseWebAssembly(true) //

                      Scala の Wasm バックエンドを実装した
                    • 刮目せよ!! 2023年秋、TS連携もファイルサイズもUIもイケるようになった最近のScala.js事情の紹介 - Lambdaカクテル

                      最近Scala.jsの話をすると結構な人がRTしてくれる。TypeScriptの他にAltJSには今どんなのがあるのかな、という話に引用RTでScala.js今アツいですよという話をしたら結構ウケた。世間的にはTypeScript alternativeに興味がある人も多いようだ。一方、ネットに残っているScala.js情報は数年前のものが多いようで、あまり積極的に日本語での情報発信がなされていない様子。そこで、ここ最近Scala.jsはどういう感じなのか、そしてどうすれば始められるのかという情報をまとめると需要があるかもしれないと思い、書くことにした。 Scala.jsは数年前まではオモチャみたいな感じだったんですが最近はTSのライブラリから自動で型が生える仕組みがあったりめちゃバンドル小さくなったりとめちゃくちゃ進化してます!! https://t.co/c06IZGWhYF— Win

                        刮目せよ!! 2023年秋、TS連携もファイルサイズもUIもイケるようになった最近のScala.js事情の紹介 - Lambdaカクテル
                      • the-algorithm/home-mixer/server/src/main/scala/com/twitter/home_mixer/functional_component/decorator/HomeTweetTypePredicates.scala at 7f90d0ca342b928b479b512ec51ac2c3821f5922 · twitter/the-algorithm

                        You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

                          the-algorithm/home-mixer/server/src/main/scala/com/twitter/home_mixer/functional_component/decorator/HomeTweetTypePredicates.scala at 7f90d0ca342b928b479b512ec51ac2c3821f5922 · twitter/the-algorithm
                        • AWS Lambda FunctionをScala.jsで書いて爆速Scalaを満喫しよう - Lambdaカクテル

                          この記事は、Scala Advent Calendar 2023の5日目の記事です。 qiita.com 大遅刻してしまいましたが、Scalaは遅延評価できるのでモーマンタイですね。 この記事では、Scalaをクラウドネイティブな環境で使う例の紹介として、ScalaをJavaScriptコードにトランスパイルしてAWS Lambdaで動作させる方法を紹介します。 愉快な遠足の始まりだ!!! Scalaプラットフォームの発展 Scalaはクラウドネイティブ時代に乗り遅れている?(いえいえ) 想定環境 Scala.jsで快適にLambda関数を書いてみよう 最低限のScala.jsを実装する 設定 トランスパイル Scala.jsコードをLambda関数の呼び出し規約に合わせる 規約を実装する Lambda関数を作成する イベントなどの入力 ここまでのまとめ Scala.jsでライブラリを利用

                            AWS Lambda FunctionをScala.jsで書いて爆速Scalaを満喫しよう - Lambdaカクテル
                          • Scalaわいわい勉強会 参加した - ふんわり放牧

                            scala-tokyo.connpass.com 株式会社はてな 東京オフィスで開催されたScalaわいわい勉強会に参加した。 発表内容の感想ではなく、参加して漠然と思ったことについて書く。個人の日記です。 Scala、10年前に本当に少しだけ触った程度で何も覚えていない(github.comに辛うじてコードが残っている)のだけれど、 この1年はJVM言語で仕事をしているのもあり、勉強会の運営をしている id:Windymelt にも紹介いただいたのもあって、ふらっと参加してきた。 Scalaのコミュニティというか関数型プログラミング言語のコミュニティ、ふらっと参加するには恐れ多い印象があったのだけれども*1、 これくらいのノリであれば全然次回も参加したいな〜となるくらいの感じであったな。 参加前に これだけ読めばOK!Scalaの環境構築2023 - Lambdaカクテル を読んでて、手

                              Scalaわいわい勉強会 参加した - ふんわり放牧
                            • Scala 3でデータ指向プログラミングは可能か - かとじゅんの技術日誌

                              Scala 3におけるデータ指向プログラミング(以下DOP)について深掘りする。久々にScalaの話題を取り上げるが、これはScala Advent Calendar 2023の14日目の内容でもある。 早速だけど、DOPの基本原則は意外とシンプルだ。 コード(動作)をデータから切り離す データを汎用的なデータ構造で表現する データをイミュータブル(不変)として扱う データスキーマをデータ表現から切り離す イミュータブルなデータは採用することは多いと思うが、これをそのまま実践している人はどのくらいいるだろうか。Scalaではクラス中心の関数型プログラミングが主流だと思うし、私もそうしている。 DOPの詳細は下記の本(以下DOP本)を参照してほしい。 データ指向プログラミング 作者:Yehonathan Sharvit翔泳社Amazon ちなみに留意すべき点がある。DOP本とJavaのPro

                                Scala 3でデータ指向プログラミングは可能か - かとじゅんの技術日誌
                              • ハマったポイントたくさんあったけどPlay3.0/Scala3.3へバージョンアップできたよ - エムスリーテックブログ

                                こんにちは。エムスリーエンジニアリンググループでScalaとマミさんが好きな安江です。今回は私が所属している製薬企業向けプラットフォームチームのPlay製プロダクトのPlay/Scalaバージョンアップのお話です。当初Play2.8にバージョンアップしていたのですが、その最中にPlay2.9/Play3.0やScala LTSが出たりもしました。最終的にPlay3.0/Scala3.3にバージョンアップできて本番稼働できたサービスもあるので、そのバージョンアップの経緯をご紹介します。 Play2.8への道のり Play3.0へのバージョンアップ ハマり1:依存ライブラリがPlay2系に依存している ハマり2:ScalikeJDBCの依存関係 ハマり3:サーバーバックエンドの変更 ハマり4:sttpのバックエンドの変更 ハマり5:if式が値を返さない まとめ We are hiring !!

                                  ハマったポイントたくさんあったけどPlay3.0/Scala3.3へバージョンアップできたよ - エムスリーテックブログ
                                • 東京科学大学情報理工学院 修士課程を修了しました - たにしきんぐダム

                                  大学院卒業しました pic.twitter.com/Lhzl8mYJZK— tanishiking👑 (@tanishiking) September 22, 2025 先日、東京科学大学情報理工学院 数理・計算科学系を修了し、修士(理学)を獲得しました。 大学院の入学は2021年4月で、卒業するのに4年半もかかってしまった(そのうち2年間は休学)。入学当初は東京工業大学だったんですけどね... 2017年に学部(工学部情報学科)を卒業した後4年ほどWebエンジニアとして仕事をした後に大学院入学し、在学中は業務委託で仕事を受け空いた時間に大学院に通ったり休学したりする感じの生活をしていました。 大学院の研究室の雰囲気はとても良くボスは教育熱心で、自分の想像と強いエビデンスのある主張を分類し、自分の頭で論理的にものを考えて相手に伝わるようにアウトプットするという訓練をよく積むことができたと

                                    東京科学大学情報理工学院 修士課程を修了しました - たにしきんぐダム
                                  • Scalaのimplicitをもう少し楽に追いかけたい - 風に吹かれても

                                    Implicitな値の由来が分からん 3行要約 詳細 implicit args implicit conversions and classes inferred type まとめ Implicitな値の由来が分からん Scalaのコードを読んでいるときに、どこから来ているか分からないimplicitな引数があって困っていた。 このことをツイートしたらアドバイスをもらえて、解決できたので備忘録的にブログに上げる。 scala の implicit 追いかけるの、metalsとかでもう少し楽にならない?ってなるけどコンテキストで変わるし難しいのかなぁ— あずきバー (@azukibar_D) 2023年3月31日 プラグインによっては「今見えてるはずのimplicit出す」みたいなのができるっス— @windymelt@mstdn.takuya-a.net に引っ越しました (@windy

                                      Scalaのimplicitをもう少し楽に追いかけたい - 風に吹かれても
                                    • ZIO Lambdaを用いてScalaネイティブバイナリをAWS Lambdaで動かしてみた - エムスリーテックブログ

                                      こんにちは。エムスリーエンジニアリンググループでScalaとマミさんが好きな安江です。今回は私が所属しているデジカルチームのお話です。ZIO Lambdaを使ってScalaネイティブバイナリをAWS Lambdaで動かしてみました。こちらの技術スタックの紹介をします。 ZIO Lambda 背景 技術スタック Scala ZIO ZIO Lambda GraalVM Native Image 実装 プロジェクトの作成 ライブラリの追加 ハンドラーの作成 ネイティブバイナリのビルド AWS Lambdaへのデプロイ まとめ We are hiring !! 背景 特定の処理で、外部から提供されたJARライブラリを使う必要がありました。弊社電子カルテはRails製なのですが、別のバックエンドにSkinny(Scala)製のサーバーを使っていたため、そのサーバーに処理を相乗りさせました。しかし、

                                        ZIO Lambdaを用いてScalaネイティブバイナリをAWS Lambdaで動かしてみた - エムスリーテックブログ
                                      • プログラミング言語の実行速度比較(2023/4)

                                        お知らせ この記事へのフィードバックを受けて、以下に更新版「プログラミング言語の実行速度比較(2023/5)」を公開しています。コメントをお寄せくださった皆様ありがとうございます。 プログラミング言語の実行速度比較(2023/5) はじめに 2019年に「言語間の速度比較」という記事を投稿した。 それから4年近く経過したので、それぞれの言語の最新版で再度検証する。また、サポートが終了したPython2の代わりに近年人気が高いRustを追加する。さらにC言語で算出した素数の格納をrealloc()で確保した領域にする評価も追加した。評価には、シングルスレッドで順次既知の素数で割ることで1億までの素数を求めるプログラムを使用(ソースはここ)

                                          プログラミング言語の実行速度比較(2023/4)
                                        • 株式会社ドワンゴ会場提供でScalaわいわい勉強会 #2を開催しました #scala_waiwai - Scalaわいわいブログ

                                          Scalaわいわいランドは2024年2月27日にScalaわいわい勉強会2を開催しました。 scala-tokyo.connpass.com ハッシュタグは前回に引き続いて #scala_waiwai となっております。現場の様子はTwitter(X)でご確認いただけます。 発表資料紹介 今回は発表3本、LT3本の構成となりました。発表順に紹介します。 @nomadblacky: ReckonerのScalaプロジェクトにおけるオブザーバビリティの取り組み speakerdeck.com 一番最初の発表はオブザーバビリティの話。最近は OpenTelemetry が広がりを見せており、Scalaでもotel4sといったライブラリが出ていたり、そもそもOpenTelemetryのリファレンス実装がJavaで書かれていたりと、結構Scalaユーザにとっては嬉しい環境が整っているんですよね。Op

                                            株式会社ドワンゴ会場提供でScalaわいわい勉強会 #2を開催しました #scala_waiwai - Scalaわいわいブログ
                                          • EitherT_with_Future

                                            【オフライン】Scalaわいわい勉強会 #3【東京】 https://scala-tokyo.connpass.com/event/325327/ 発表資料です。

                                              EitherT_with_Future
                                            • 過去のGitHub Actionsのbuild時間を取得して集計してグラフにする - xuwei-k's blog

                                              継続的にメンテナンスするのではなくて、雑な使い捨てでいいならshellscriptとjq職人芸でいけるので頑張ってしまったけれど、継続的にやるならもっと違うもので書いた方がメンテナンスしやすいと思います。 細かい部分はいくらでも改善の余地があるとは思いますが、とりあえず動いたのでヨシ・・・!? 以前も多少似たような何か作ったけど、こういうの誰か既にもっと綺麗に作ってないんですかね。 xuwei-k.hatenablog.com GitHub Actionsのログはデフォルトでは90日保存されてるはずなので、その程度の期間をなんとなく集計したいだけならば、こうやって後から集計するだけで十分ですね。 もちろん、yamlの内部の構造がすごく変わっていると集計が難しいか実質不可能になるリスクはありますが。 もっとしっかり計測したいならば、buildした時点で専用の場所に綺麗に記録して、他のもっとリ

                                                過去のGitHub Actionsのbuild時間を取得して集計してグラフにする - xuwei-k's blog
                                              • Scala 3.3.0から標準で使えるようになるfewerBraces記法のまとめ - Lambdaカクテル

                                                先日、Scala CLI v1.0.0がついにリリースされた。これまではv0系列だったので、満を持しての正式版リリースだ。おめでとう! github.com いちおう説明しておくとScala CLIは総合的なScalaのコマンドラインツールで、以下のようなことができる: Uber JAR(単体で動作するJARファイル)の生成 GraalVMを使ったバイナリの生成 Scala Nativeを使ったバイナリの生成 REPL Scala Scriptの実行環境 このように多彩な機能を持つScala CLIは、現在のscalaコマンドを置換して将来的なscalaコマンドになることが決まっている。 さて、リリースノートによればScala CLIではv1.0.0からScala 3.3.0をデフォルトで利用することになった。Scala 3.3.0にはいくつもの修正や追加機能が含まれているが、今回はその中

                                                  Scala 3.3.0から標準で使えるようになるfewerBraces記法のまとめ - Lambdaカクテル
                                                • Tagged Type(Branded Type)を使って飛行機の不時着や人工衛星紛失を防ごう / Scala 3ではTagged Typeを簡単に作れる - Lambdaカクテル

                                                  Tagged Type というテクニックがある(TypeScript界隈などではBranded Typeと呼ばれているようだ)。実行時の型としては同じだが、型システム上はこれを区別して別物として扱い、混同できなくする仕組みを作るためのものだ。 AIくん!サムネイラスト作って!と頼んで作ってもらった画像 Tagged Type 単位の取り違えによる事故は後を絶たない。世の中には、キログラムとポンドを混同して飛行機があわや墜落しかけたり、メートルとヤードを混同して人工衛星がどっかに行ったりしている。尊い人命や国民の血税と比べるといささか霞むかもしれないが、ユーザIDとペイロードを間違えて送信したり、金額と口座番号を取り違えて送金したり、秘密鍵と公開鍵を間違えて表示したりしてしまえば、プログラマが大変な苦労をするか、会社そのものが傾くだろう。 しかしながら、データとしてはどちらも同じDouble

                                                    Tagged Type(Branded Type)を使って飛行機の不時着や人工衛星紛失を防ごう / Scala 3ではTagged Typeを簡単に作れる - Lambdaカクテル
                                                  • 普段はPerlとScalaを書いていますが #rubykaigi 2022に参加してきました / 吸えそうな知見 - Lambdaカクテル

                                                    普段はPerlとScalaを書いて暮らしていて、Rubyを書くのはcapistranoを使うとき・・・という位のWebアプリケーションエンジニア、 id:Windymelt です。株式会社はてなで、はてなブックマークを開発しています。 普段は、関数型テクニックの話をよく記事に書いています。ちょっと見てやってください。 blog.3qe.us 今回、近所の言語の動向も見てみたい!! && 知人エンジニアにRubyistが多い && 今回の開催地は比較的近所 というわけで参加することにしました(三重県津市での開催でした)。 うおーうおー #rubykaigi pic.twitter.com/2XCGMN2Iiw— Windymelt (@windymelt) 2022年9月8日 撮影した日はちょっとどんよりしていましたが、二日目以降はよく晴れました 自分の暮らしに生かせそうだなと思った知見 B

                                                      普段はPerlとScalaを書いていますが #rubykaigi 2022に参加してきました / 吸えそうな知見 - Lambdaカクテル
                                                    • Scala 3に備える社内勉強会の取り組みについて - kubell Creator's Note

                                                      みなさん、こんにちは!Chatworkの原田 (@shinharad) です。 今回は、最近弊社で取り組んでいる Scala 3 の社内勉強会について、このような流れでご紹介したいと思います。 最初に Scala 3 の今の状況をざっと確認 Chatworkでは Scala 3 の社内勉強会を継続的に開催している 勉強会で使っている資料、情報源のご紹介 勉強会でやったことをいくつかご紹介 Scala 3 の状況 まずは、Scala 3 の今の状況について軽く確認しておきましょう。 待ちに待った Scala 3 は、この記事を執筆している時点での最新版が Scala 3.0.0-RC3 で、大きな問題がなければこの5月中にも安定版がリリースされる予定です。 Scala 3 は、Scala 2 で不便だった機能や、煩雑で分かりづらかった機能が大幅に見直されました。 具体的には、代数的データ型(

                                                        Scala 3に備える社内勉強会の取り組みについて - kubell Creator's Note
                                                      • Scala(スカラ)とは?言語の特徴や開発手法、Javaとの違いや共通点について解説! - システム開発のプロが発注成功を手助けする【発注ラウンジ】

                                                        近年、アメリカのIT企業での導入数が増加傾向にあるプログラミング言語の1つが「Scala(スカラ)」です。Javaとの互換性が良く、その使い勝手の良さで人気を集めています。今後、日本でも導入が増える可能性が高く、すぐにでも勉強したいと思っているエンジニアも多いでしょう。 今回は、Scalaの特徴や開発手法を解説するとともに、Javaとの関係についても触れていきます。Scalaを使ったシステム開発を考えている方は必見の内容です。 目次 Scalaは、2001年にスイス連邦工科大学のマーティン・オーダスキー教授によって開発され、2003年に内部で公開、2004年にJavaのプラットフォームにリリースされたプログラミング言語です。プログラミング言語として定着しているJavaが登場したのが1995年であり、Scalaは比較的新しい言語といえます。 Scalaは現在も進化を続けており、2006年には

                                                          Scala(スカラ)とは?言語の特徴や開発手法、Javaとの違いや共通点について解説! - システム開発のプロが発注成功を手助けする【発注ラウンジ】
                                                        • Scala Love in the CityでGitBucketの発表をさせていただきました - たけぞう瀕死ブログ

                                                          主催者のOliさんからのDMで急遽 Scala Love in the City で話させていただくことになり、あまり時間もなかったので準備なしでも話せるGitBucketの紹介をさせていただきました。スライドは以下になります。 GitBucket: Open source self-hosting Git server built by Scala from takezoe www.slideshare.net 他のトークはScalaでの関数型プログラミングやScala3の話題が多かったと思いますが、具体的なアプリケーションレイヤから見たScalaという観点での話ができればと思い、前半はGitBucketの紹介、後半は8年間開発を続けてきて難しかったこととしてScala 2.12へのアップグレードについて話させていただきました。 なぜScala 2.12へのアップグレードが辛かったのかと

                                                            Scala Love in the CityでGitBucketの発表をさせていただきました - たけぞう瀕死ブログ
                                                          • Cyclic Barrierで安全なじゃんけんを実装する feat. Scala + Cats Effect - Lambdaカクテル

                                                            じゃんけんという遊びがある。 じゃんけんは、離散的に定義された三つの手(グー・チョキ・パー)の非推移的な優劣関係――グーはチョキに勝ち、チョキはパーに勝ち、パーはグーに勝つ――を用いて勝敗を決定する二人以上参加可能な競技的ゲームです。遊戯手順は、参加者が向き合って「じゃんけん」の掛け声とともに拳を振り下ろし、合図(「ぽん」「ほい」など)で選択した手を同時に提示し、その瞬間に優劣規則を適用して勝者・敗者・あいこ(同手による引き分け)を判定し、あいこの場合は同一手順を繰り返すだけという、実装・解析が容易で確率論やゲーム理論の導入例としても活用される簡潔なゲームです。 -- ChatGPT o3 この知的なゲームには問題がある。「じゃん」「けん」「ぽん」のタイミングで各プレイヤーが同期しなければならないのだ。同期せずに手を出すことは重大なルール違反だ。 Scalaの並行プログラミング用のライブラ

                                                              Cyclic Barrierで安全なじゃんけんを実装する feat. Scala + Cats Effect - Lambdaカクテル
                                                            • EmacsによるScala開発 2022年版 (補完編) - Lambdaカクテル

                                                              最近ちまちまEmacsでScalaを書けるようにしているのですが、そのメモ的な記事です。特に、補完の話に注目して書きます。 補完 じゃあどうすればいいの 相性の悪いプラグイン 参考elisp 01_company.el 02_lsp.el 03_scala.el 補完 補完を行うためには、まずは言語を認識して適切な解析を行うメカニズムが必要になります。この仕組みはデファクトスタンダードが確立しています。それはLSP (Language Server Protocol) です。LSPはエディタと解析ツールとの間の共通語を定義して、どんなエディタでも等しく補完や解析の恩恵に与れるようにするものです。ScalaのデファクトスタンダードなLSPバックエンドはMetalsです。MetalsはLSPの上で各種エディタにScalaの解析メカニズムやリファクタ機能等を提供します。 次に、エディタがLSPに

                                                                EmacsによるScala開発 2022年版 (補完編) - Lambdaカクテル
                                                              • Playframework 3.0.0にアップデートしてみた - Assured Tech Blog

                                                                こんにちは、エンジニアの岩松です。 この記事はScala Advent Calendar 2023 20日目の記事となります。つまり今日は12月20日です。 AssuredではバックエンドアプリケーションにScalaおよびPlayframeworkを採用しており、直近メジャーアップデートとなる3.0.0が公開されたため、2.8.x→3.0.0のアップデート対応をしていました。作業メモとして公開しますのでご参考になれば幸いです。 何が変わったのか? ハマったこと Pekko関連ライブラリがバージョン解決できずDI(Dependency Injection)が失敗する 設定ファイル経由でのExecutionContext生成ができない Dockerコンテナが動かない おわりに 何が変わったのか? Playframeworkのメジャーアップデートは久しぶりで、今回2.9.0と3.0.0が同時期に

                                                                  Playframework 3.0.0にアップデートしてみた - Assured Tech Blog
                                                                • KamonによるAPM導入 - Akka gRPCを用いたScalaアプリケーション編 - ZOZO TECH BLOG

                                                                  計測プラットフォーム部バックエンドチームの鈴木です。 この記事では、Akka gRPCを利用しているScalaアプリケーションのZOZOMATに対してKamonを通じてAPMを導入した際に得られた知見、うまくいかなかった内容やその対応策を紹介します。 Akkaとは 最初にAkkaについて簡単に紹介します。Akkaは、JVM上で並行および分散アプリケーションの構築を容易にするツールキットとランタイムです。 Actorモデルの実装であるAkka Actorsを中心とし、Akka StreamsやAkka HTTP、Akka Clusterなど様々なツールが提供されています。詳しくは公式ドキュメントやAkka実践バイブルを読むことで深く理解できます。書籍で紹介されているAkkaのAPIは、今では古いものとなっていますが、Akkaの楽しさを知るにはとても良い本です。 私たちが開発しているZOZOM

                                                                    KamonによるAPM導入 - Akka gRPCを用いたScalaアプリケーション編 - ZOZO TECH BLOG
                                                                  • 2023年10月時点のplayframeworkの今後の予定 - xuwei-k's blog

                                                                    すごく重要な予定が色々と決まりつつあるので、独断で勝手に?雑に?選んで紹介しておきます。 単なる翻訳というよりは、自分の感想や主観みたいなものが入ってます。 詳細な原文を知りたい人は、以下のあたりを読んでください https://github.com/playframework/playframework/blob/80da98b0352e1d3e7e1ba034ec9c5e4c15e1cb3e/documentation/manual/General.md https://github.com/playframework/playframework/blob/80da98b0352e1d3e7e1ba034ec9c5e4c15e1cb3e/documentation/manual/releases/release29/migration29/Migration29.md https://

                                                                      2023年10月時点のplayframeworkの今後の予定 - xuwei-k's blog
                                                                    • AWSでCQRS Event Sourcing するにはどうすればいいのか

                                                                      世の中にはクラウドを採用していても、スケーラビリティのないサービスを開発・運用しているエンジニアは少なくないと思います。過去の私もその一人でした。CQRS/Event Sourcingはその解の一つです。私自身も2016年にCQRS/ESに出会って以来、AWS上でその根本的な課題に取り組んで来ました。そ…

                                                                        AWSでCQRS Event Sourcing するにはどうすればいいのか
                                                                      • Scalaをスクリプト言語にしよう! Ammonite文法最速マスター - Lambdaカクテル

                                                                        追記(2023-04-04): Scala CLIを使いましょう Ammoniteをベースにより洗練されたScala CLIが開発され、Scalaのデファクトスタンダードとして定着しつつあります。公式にscalaと入力した際の標準アプリケーションとなることも予見されているため、こちらを学ぶとよいでしょう。 scala-cli.virtuslab.org tanishiking24.hatenablog.com zenn.dev Ammonite文法最速マスター この記事は、Scalaのスクリプティング環境でありREPLでもあるAmmoniteの基礎的な利用方法をマスターし、ちょっと凝ったシェルスクリプトをAmmoniteスクリプトに書き換えられる程度のAmmonite力を手に入れるためのものです。 追記(2023-04-04): Scala CLIを使いましょう Ammonite文法最速マ

                                                                          Scalaをスクリプト言語にしよう! Ammonite文法最速マスター - Lambdaカクテル
                                                                        • On the future of Play Framework | @lightbend

                                                                          TL;DR - We are working to form a community-led organization that would take responsibility for the future development of Play Framework outside of Lightbend. Ever since I started Lightbend (formerly known as Typesafe) with Martin Odersky, now more than 10 years ago, Open Source Software (OSS) has been at the heart of what we do. It is fair to say that Lightbend would not exist without the transfor

                                                                            On the future of Play Framework | @lightbend
                                                                          • Scalaでoverrideした際の共変戻り値型と型推論 - xuwei-k's blog

                                                                            ScalaでもJavaでも、overrideする際に、sub typeでoverrideすることが可能です。 (すごく古い1.4以前のJavaでは不可能だったはずだが) Javaの仕様書で英語だと covariant return type というはず?の機能です。 https://docs.oracle.com/javase/specs/jls/se11/html/jls-8.html#d5e14373 $ jshell | Welcome to JShell -- Version 17.0.6 | For an introduction type: /help intro jshell> interface A { Object a(); } | created interface A jshell> class B implements A { @Override public St

                                                                              Scalaでoverrideした際の共変戻り値型と型推論 - xuwei-k's blog
                                                                            • Scalaわいわい勉強会 #3【東京】へ参加してきた、楽しかった、最高だった - Magnolia Tech

                                                                              scala-tokyo.connpass.com 久しぶりのScalaのイベント「Scalaわいわい勉強会 #3【東京】」に参加してきました いやーディープなScalaの話が聞ける場所は貴重なので、最高でした 会場は乃木坂のWeWork! 開始時間を完全に間違えて18:30スタートだったのに、19:00に会場到着 (しかも、参加者に送られてはずのWeWork入館メールを紛失してしまい、運営の方に開けてもらって入場...ありがとうございました) 残念ながらちょうど一つ目の発表が終わったところで完全に聞き逃してしまいました さいわい、スライドが公開されていました speakerdeck.com コード同士の合成がシステマチックにできるところがScalaの最大のメリットだと思っていて、ただそれがちょっと複雑な構造になってくると逆に読み解くのが難しくなったり、ネストしたデータ構造を分解して詰め直す

                                                                                Scalaわいわい勉強会 #3【東京】へ参加してきた、楽しかった、最高だった - Magnolia Tech
                                                                              • record4s --- Extensible Records for Scala 3, and Domain Modeling with Structural Types

                                                                                In this talk, we learn about the basics of my library called "record4s", which provides type-safe extensible records for Scala 3. It runs on JVM, JS, an…

                                                                                  record4s --- Extensible Records for Scala 3, and Domain Modeling with Structural Types
                                                                                • Release 📣 Play 3.0.0 · playframework/playframework

                                                                                  The Play Team is thrilled to announce the release of Play 3.0.0! 🎉 This release brings highly anticipated new features, including support for the latest Java LTS versions and Scala 3. It continues our commitment to making Play more modular, flexible, and secure. Play 3.0, together with Play 2.9, represents a significant milestone as they are the first major releases in almost four years and the f

                                                                                    Release 📣 Play 3.0.0 · playframework/playframework

                                                                                  新着記事