並び順

ブックマーク数

期間指定

  • から
  • まで

321 - 360 件 / 4118件

新着順 人気順

scalaの検索結果321 - 360 件 / 4118件

  • 技術に対して的確に投資をしている | はてなで働く yutailang0119 にアンケート [#7] - Hatena Developer Blog

    こんにちは、id:hitode909です。今回は、はてなブックマークのスマートフォンアプリチームのテックリードである、id:yutailang0119の話を聞きました。 チーム内でのテックリード業や新機能開発のような動きから、技術カンファレンスの運営といったコミュニティ活動まで、幅広く語っていただきます。 id:yutailang0119にアンケート はてなidとその由来を教えてください いつどんなきっかけで入社されましたか? 現在の仕事を教えてください チーム内の立ち位置を教えてください 今日一日の流れを教えてください 最近うまくいったことは何ですか? 最近うまくいってないことは何ですか? ふだん大切にしていることは何ですか? はてなはどんな会社ですか? おわりに id:yutailang0119にアンケート はてなidとその由来を教えてください "yutailang0119" と書いて

      技術に対して的確に投資をしている | はてなで働く yutailang0119 にアンケート [#7] - Hatena Developer Blog
    • 型のメンタルモデル | TypeScript入門『サバイバルTypeScript』

      型システムの背景理論​プログラミング言語の型システムにはそれぞれ固有の世界観があり、言語ごとに型の機能が異なります。 その一方で複数の言語で共通している機能もあり、それらのさまざまな型の機能は唐突にどこからともなく出現してきたわけではありません。背景として大きくは型理論(type theory)と呼ばれる数学的な研究分野があり、各言語の型システムは型理論に基づいて実装されています。 たとえば、TypeScriptのunknown型やnever型のような一見何のためにあるか分からないような型であっても、型理論においてはその役割や機能を一般的に説明することができます。これらの型はトップ型やボトム型と呼ばれる型の種類に分類され、部分型関係が作る階層構造の両端点に位置する型として振る舞います。 部分型階層の両端点に位置する型型理論的な観点からの知識を持つことで似たような型システムを持つ他の言語にお

        型のメンタルモデル | TypeScript入門『サバイバルTypeScript』
      • Rustでもモナドは実装できるのか?(再) - Don't Repeat Yourself

        この記事は言語実装Advent Calendar 2020 25日目の記事です。(2022-11-06: 記事の内容を追記していますが、この記事の結論としては「似たようなものは作れるが、完全体にはならない」です) 前提知識 高階カインド型 モナド 従来のエミュレーション方法 Generic Associated Types を用いたエミュレーション(new!) 型クラスを定義する Functor を用意する Pointed を用意する Applicative を用意する Monad を用意する いくつか型を実装していく 現状実装できないもの do 記法 Generic Associated Types(GATs)とは何か 追記(2022-11-06) リポジトリ 参考文献 モナドに関する話題が言語実装アドベントカレンダーの範疇に入るのかわかっていませんが*1、プログラミング言語がお好きな方

          Rustでもモナドは実装できるのか?(再) - Don't Repeat Yourself
        • なっとく!関数型プログラミング を読んで関数型プログラミングを学んだ - Qiita

          EDOCODEでエンジニアをしているYutakaです。 こちらは社内勉強会で発表した資料を元にしています。 関数型言語の知識がほとんどないエンジニアがなっとく!関数型プログラミングで学んだ用語を一部まとめました。原著はGrokking Functional Programmingです。本書はScalaとJavaで説明がされていますが、できる限り社内で使われている言語(Go, JavaScript, TypeScript)でサンプルコードを記載しました。 書籍のソースコードはこちらに全て公開されています。 そもそも関数型プログラミングとは? プログラミングのパラダイムには大きく①命令型プログラミング②宣言型プログラミングがあります。 ①命令型プログラミングとは どのよう(HOW)に計算するかに焦点を合わせ、段階的なアルゴリズムを詳細に定義します。これは実際のハードウェアの計算処理の流れに沿っ

            なっとく!関数型プログラミング を読んで関数型プログラミングを学んだ - Qiita
          • 非同期処理の基本とアクターモデルが解決する課題とは

            はじめまして、マーベリック株式会社のリチャード 伊真岡です。この連載では非同期処理に役立つアクターモデルを学ぶため、JavaとScalaから使えるOSSであり、アクターモデルの実装を提供するAkkaを紹介します。連載の前半では非同期処理とActorの基礎的な部分を、後半では非同期処理から分散システムへと話を進めていきます。分散システムは現代のシステム構築において重要性を増しているので、Akkaが非同期処理のツールから始まって、どんな分散システムのアーキテクチャーのパターンを可能にしてくれるのかを紹介したいと思います。連載の第一回である今回は非同期処理の現状や歴史をおさらいし、そしてアクターモデルによって非同期処理の中でも、どういった問題が解決されるのかお話します。 非同期処理とは 現代のアプリケーション開発では非同期処理を扱う機会が数多くあるといえるでしょう。非同期処理[1]とは、処理を開

              非同期処理の基本とアクターモデルが解決する課題とは
            • Reconstructing TypeScript, part 0: intro and background

              Jake Donham > Technical Difficulties > Reconstructing TypeScript, part 0 Reconstructing TypeScript, part 0: intro and background2021-09-07I've been building a "document development environment" called Programmable Matter that supports live code embedded in documents, with a simple TypeScript-like programming language. It's been fun figuring out how to implement it—the type system in TypeScript is

              • 約4年続いた長期プロジェクトに途中参加して学んだ反省と教訓【Backlog Play 化プロジェクト】 | Backlogブログ

                こんにちは。Raspberry Pi4でようやくギガビットLANにネイティブ対応したことにテンションが上がっているBacklog開発チームの佐藤です。 ヌーラボでは2015年11月から2019年の7月まで、BacklogをJavaからScala / Play Frameworkに移行するという大規模なリプレイスプロジェクト(以下、Play化プロジェクト)を行っていました。 私は2017年の夏からプロジェクト完了までこのプロジェクトに参加していました。 今回の記事では、Play化プロジェクトに途中参加した立場で、プロジェクト中に起きた出来事と当時の心境、問題をどう乗り越えたのか、反省と教訓についてもお届けします。 プロジェクトに参加する前は何をしていたか 出来事:Backlogの機能改善チームからPlay化プロジェクトチームへ移動 心境:不安だがトップダウンで決まったのではなく、自分自身の意

                  約4年続いた長期プロジェクトに途中参加して学んだ反省と教訓【Backlog Play 化プロジェクト】 | Backlogブログ
                • Twitter、サブスクリプション制度導入を模索中。どんな内容になるかは不明 | スラド IT

                  Twitterがサブスクリプション制度導入を検討しているようだ。7月の頭ごろにはコードネーム「Gryphon」と呼ばれるサブスクリプションプラットフォーム開発のため、Scalaを使えるソフトウェアエンジニアの求人が出されていたそうだ(CNN、Engadget、GIGAZINE)。 またTwitterの投資家向けアカウントでも、サブスクリプションなどを含む広告ビジネスを補完する収益商品を模索しているという趣旨の発言が行われている(投資家向けアカウントの発言)。 とはいえ、サブスクリプションが、いつ、どういった形で導入されるのかといった具体的な内容は不明。TwitterのCEOであるJack Dorsey氏の発言からしても、今使っているTwitterがいきなり有料化されることはないと思われるが、今の予想は広告レスで特定のカスタマイズが可能なサービスが提供される的なものが多いようだ(TechCr

                  • Why We Are Changing the License for Akka | @lightbend

                    Today, we are announcing a change to Akka’s license model so that Akka can be a thriving project for many decades. I created Akka 13 years ago out of love for programming, distributed systems, learning new things, and open source. It’s been a fantastic journey so far (read about Akka’s inception and early days here). Today, Akka is exceptionally reliable, scalable, and performant. It is the runtim

                      Why We Are Changing the License for Akka | @lightbend
                    • Dart/Flutterでドメイン駆動設計(DDD)してみた - 導入編 - のんびり精進

                      カテゴリ別にメモを管理できるアプリの開発を DDD(Domain-driven design)でやってみたものです。 github.com 二つの記事から成り、この記事はその一つ目です。 導入編(本記事) 解決しようとした問題点や、DDD と関連用語の意味の他、モデリング・レイヤ分け・ディレクトリ構成の検討において考えたことなどをまとめています。 実装編 Dart/Flutter での実装を中心としますが、一つ目で触れていない点(集約など)の説明も含みます。 やってみようと思った経緯 何かを作るとき、設計がメチャクチャであっても運良くそれっぽく出来上がることがあります。 小さなものなら直しやすかったり、あるいは問題があまり顕在化しなかったりするかもしれません。 しかし、大きなものでは次第に破綻してしまうことが容易に想像できます。 Flutter でも、小さなアプリを作って学ぶ間は「なんて簡

                        Dart/Flutterでドメイン駆動設計(DDD)してみた - 導入編 - のんびり精進
                      • なぜ僕たちはサーバレスでJavaを諦めTypescriptを採用したか - Qiita

                        この記事は個人ブログのうち技術に関する箇所のみを抜粋した転載です。 なぜ僕たちはサーバレスでJavaを諦めTypescriptを採用したか -Junks, GC cannot sweep- またブログには書いたのですが、諸事情により先に英語版が存在します。 こちらも書いたのは僕なので、剽窃などではないことはご了承ください。 [元記事]: Why we replaced Java with Typescript for Serverless in dev.to はじめに サーバレス(serverless)は昨今もっとも注目を集める設計手法の一つで、おそらく多くの開発者が大なり小なり自分のプロダクトに応用し始めているのではないでしょうか? 僕自身、完全にサーバレスに魅せられてしまい、昔ながらの自分でサーバやミドルウェアを管理しながら運用するみたいな世界には戻れる気がしません。 そもそもスケーリ

                          なぜ僕たちはサーバレスでJavaを諦めTypescriptを採用したか - Qiita
                        • ZOZOFIT 認証フローにおけるJVM言語実装のLambda関数のパフォーマンス改善 - ZOZO TECH BLOG

                          はじめに こんにちは。計測プラットフォーム開発本部バックエンドチームの岡山です。普段はZOZOMATやZOZOGLASSなどの計測技術に関わるシステムの開発、運用に携わっています。去年の夏にZOZOFITというサービスを北米向けにローンチし、そのシステムも同様に開発、運用に携わっています。 本記事では、ZOZOFITの認証フローで実行されるScala実装のAWS Lambda関数が抱えていたパフォーマンス課題と、その課題の解決に至るまでの取り組みについてご紹介します。 目次 はじめに 目次 ZOZOFITとは ZOZOFITが利用する認証サービス カスタム認証フローとは パフォーマンスに関する課題 カスタム認証フローにおけるボトルネックの特定 Lambda関数のボトルネック調査 Lambda関数のメモリ設定最適化 パフォーマンス改善結果 終わりに ZOZOFITとは ZOZOFITは202

                            ZOZOFIT 認証フローにおけるJVM言語実装のLambda関数のパフォーマンス改善 - ZOZO TECH BLOG
                          • 『実践プロパティベーステスト ― PropErとErlang/Elixirではじめよう』は、言語に関係なくプロパティベーステストを学びたい人はすぐ買うべき - Magnolia Tech

                            実践プロパティベーステスト ― PropErとErlang/Elixirではじめよう 作者:Fred HebertラムダノートAmazon Erlang/ElixirのPropErというライブラリをベースに、プロパティベーステストの考え方、テストの実践的な書き方を学ぶための本です。 『実践プロパティベーステスト ― PropErとErlang/Elixirではじめよう』www.lambdanote.com 書名だけ見ると「Erlang/Elixirは使ってないからなー」と避けてしまうかもしれませんが、それはもったいなく、言語に関係なく、”プロパティベーステスティング”という手法の本質的な活用の仕方が学べるようになっています。 ここしばらくScalaのScalaCheckというプロパティベーステストライブラリを使ってテストを書くことに挑戦していたのですが、今一つより良い書き方が分からず、何か

                              『実践プロパティベーステスト ― PropErとErlang/Elixirではじめよう』は、言語に関係なくプロパティベーステストを学びたい人はすぐ買うべき - Magnolia Tech
                            • CircleCIからもAWS APIへアクセスキーなしでリクエストできる仕組みをTerraformで構築する - BOOK☆WALKER inside

                              こんにちは。 メディアサービス開発部バックエンド開発グループのフサギコ(髙﨑)です。 Ruby on Railsによるバックエンドの実装運用と、AWSによるサービスインフラの設計構築を中心とした、いわゆるテックリードのような立ち位置で働いています。 CircleCIでもOpenID ConnectのIDプロバイダ機能がリリースされた 私が書いた一つ前の記事では、GitHub ActionsとAWS IAMをOpenID Connectを使って連携させ、TypeScriptで記述したアプリケーション(Next.js, Serverless Framework)のデプロイや、TerrafromのリポジトリにPRを出した際の自動planを永続的アクセスキー不要で行っているとお話ししました。 developers.bookwalker.jp 一方で、TypeScriptやTerraform以外のア

                                CircleCIからもAWS APIへアクセスキーなしでリクエストできる仕組みをTerraformで構築する - BOOK☆WALKER inside
                              • Functional programming is finally going mainstream

                                Paul Louth had a great development team at Meddbase, the healthcare software company he founded in 2005. But as the company grew, so did their bug count. That’s expected, up to a point. More code and more features mean more defects. But the defect rate was growing faster than Louth expected. “We were seeing more and more of the same types of bugs,” Louth says. “It was clear that there was an issue

                                  Functional programming is finally going mainstream
                                • Google、脆弱性検出ツール「OSS-Fuzz」のJavaVM対応を発表。Java/Kotlin/Scalaなどの脆弱性を検出可能に

                                  Google、脆弱性検出ツール「OSS-Fuzz」のJavaVM対応を発表。Java/Kotlin/Scalaなどの脆弱性を検出可能に Googleは、脆弱性検出ツールとしてオープンソースで公開している「OSS-Fuzz」をJavaVM言語にも対応させたことを明らかにしました。 OSS-FuzzはGoogleが2016年にオープンソースとして公開しました。 参考:Google、脆弱性検出のためのファジング(Fuzzing)を機械的に実行する「OSS-Fuzz」、ベータ公開 OSS-Fuzzは、ファジング(Fuzzing)と呼ばれる、「検査対象のソフトウェアに『ファズ(英名:fuzz)』と呼ばれる問題を引き起こしそうなデータを大量に送り込み、その応答や挙動を監視することで脆弱性を検出する検査手法」を実行してくれるツールです。 今回、ドイツのCode Intelligence社のファジングツー

                                    Google、脆弱性検出ツール「OSS-Fuzz」のJavaVM対応を発表。Java/Kotlin/Scalaなどの脆弱性を検出可能に
                                  • N予備校ってどんなサービス? - ドワンゴ教育サービス開発者ブログ

                                    N予備校ってどんなサービス? 私達ドワンゴ教育事業本部ではN予備校を開発しています。 この記事では、N予備校がどんな機能やコンテンツを提供しているのか、ひととおり説明します。 N予備校サービス全体像 N予備校は月額1100円(税込)で様々なコンテンツを学ぶことができます。 予備校とサービス名にはついていますが、大学受験以外にもプログラミングなど幅広いジャンルの教材を取り揃えています。 また、アカウントさえあれば高校生に限らず利用可能です。 中学生で高校の内容を学んだり、社会人が学び直しに使ったりできます。 多くの機能が学習をサポートします。 教材:自分のペースで学習を進めることができます 授業:先生の授業を聞きながら、ときに質問したりコメントしたりして理解を深めることができます フォーラム:Q&A形式でわからないことを質問できます VR:VRならではの教材でより理解を深めることができます

                                      N予備校ってどんなサービス? - ドワンゴ教育サービス開発者ブログ
                                    • 技術ごとのスペシャリスト制度に関して - Adwaysエンジニアブログ

                                      どうも、大曲です。 リモートワークにも慣れて来ました。 今回は技術に特化した人材のための「技術ごとのスペシャリスト制度」の背景や責任部分を紹介します。 初めはコントリビューターという名前にしていたのですが、浸透しなかったりしてこの名前になりました。 ※アドウェイズ全体の制度ではありません。あくまで自分が管轄している組織の話です。 この制度が出来るまでのタイムライン 最初は自分一人で動きや成果を検証しつつ作っていきました。 徐々に関わる人を増やしていき最終的に2020/04に制度として確立させました。 そのため、この制度にたどり着くまで1年以上かかりました。 この制度に関わった人の人数の変化。 各技術ごとの取り組みの動き。 現在はScala、Vue.js(TypeScriptも含む)、Ansibleの3つの言語でこの制度に基づいて改善などを行なっています。 目的 特定の技術(主に言語)に特化

                                        技術ごとのスペシャリスト制度に関して - Adwaysエンジニアブログ
                                      • オブザーバビリティの成熟度を表す4つのステップについて解説

                                        Observability(可観測性)に関するオンラインイベント「Observability Japan Online」の第1回が2020年3月17日に開催されました。最初のセッション「オブザーバビリティ成熟モデルについて。」では、New RelicでSenior Customer Success Managerを務めるkatzchang氏が、オブザーバビリティの成熟度合を4段階で表したモデルについて説明。オブザーバビリティとモニタリングの違いや、オブザーバビリティが成熟することによって何ができるようになるのかについて、段階を追って解説しました。 Observability成熟モデルについて katzchang氏(以下、katzchang):では、話をしていきます。今日は、New RelicでObservability成熟モデルというのがあるので、その話をします。New Relicのことは

                                          オブザーバビリティの成熟度を表す4つのステップについて解説
                                        • Javaの記法を初心者向けに大幅改良、「魅力を高めて若い世代の心をつかむ」

                                          Javaは、企業のITシステムの開発になくてはならないプログラミング言語としての地位を確立している。一方で、PythonやJavaScriptといった若い世代に人気がある言語と比較すると、煩雑な記法が多く堅苦しいイメージは否めない。 こうしたイメージを一新してJavaの生産性を高める試みが「Project Amber(プロジェクト・アンバー)」だ。同プロジェクトではこれまで、Javaプログラムの可読性を高めるために数々の記法の改良を行ってきた。 その成果の1つとして、2023年秋に公開予定の「JDK(Java Development Kit) 21」に導入されるのが、Javaプログラムの実行の起点である「mainメソッド」の大幅な簡略化だ。Javaの新機能は「JEP(JDK拡張提案)」として管理されており、mainメソッドの簡略化は「JEP 445」で規定されている。 Javaの開発にかか

                                            Javaの記法を初心者向けに大幅改良、「魅力を高めて若い世代の心をつかむ」
                                          • 更新可能なデータレイクを構築するテーブルフォーマットApache Hudiについて - Repro Tech Blog

                                            Reproでチーフアーキテクトを担当しているjoker1007です。 今回、社内のデータストレージの将来的な選択肢の一つとしてApache Hudiというテーブルデータフォーマットについて調査と実データでの検証を実施しました。 この記事では2回に分けて、そもそもhudiってどんなフォーマットなのか、どういうデータで検証してどんな結果が得られたのかについて紹介します。 ということで第1回は、hudiそのものについての紹介をしていきます。 この記事はhudi-0.14.1を利用して検証した時のものです。また社内向けに書いた資料の手直しであるため丁寧語でないことに御留意ください。 Hudiとは何か、その目的 hudiは更新可能なデータレイクを構築するためのテーブルフォーマットである。 ストリーミングによるデータインサートや、upsert, deleteをサポートする。 通常、データ分析に向いたデ

                                              更新可能なデータレイクを構築するテーブルフォーマットApache Hudiについて - Repro Tech Blog
                                            • JavaScript/WebAssemblyをCDNエッジで実行するCloudflare Workersが、Python、Scala、Kotlin、Dart、Reasonへの対応を発表

                                              JavaScript/WebAssemblyをCDNエッジで実行するCloudflare Workersが、Python、Scala、Kotlin、Dart、Reasonへの対応を発表 Cloudflareは、JavaScript/WebAssemblyをCDNエッジで実行するサーバレス基盤「Cloudflare Workers」が、Python、Scala、Kotlin、Dart、Reasonの各言語に対応したことを発表しました。 #ServerlessWeek continues at Cloudflare. Today, we’re excited to announce that you can also build applications on Cloudflare Workers using Python, Scala, Kotlin, Reason and Dart htt

                                                JavaScript/WebAssemblyをCDNエッジで実行するCloudflare Workersが、Python、Scala、Kotlin、Dart、Reasonへの対応を発表
                                              • Best Practices for Working with Configuration in Python Applications - Preferred Networks Research & Development

                                                Home Blog Best Practices for Working with Configuration in Python Applications Most computer applications can be configured to behave a certain way, be it via command line flags, environment variables, or configuration files. For you as a software developer, dealing with configuration comes with challenges such as parsing untrusted input, validating it, and accessing it on all layers of your progr

                                                  Best Practices for Working with Configuration in Python Applications - Preferred Networks Research & Development
                                                • AWS版「GitHub Copilot」な「Amazon CodeWhisperer」が正式版に 個人ユーザーは無料、VSCodeに対応

                                                  参考:AWSも、プログラミングを機械学習で支援する「Amazon CodeWhisperer」プレビュー公開。コメントを書くとコードを提案 コメントや書きかけのコードからコードを自動生成 Amazon CodeWhispererは、オープンソースリポジトリ、Amazon内部リポジトリ、APIドキュメント、フォーラムなどから収集した数十億行のコードを基にした機械学習から、プログラマが書き始めたコードの続きや、コメントの内容からコードを提案してくれるサービスです。 コードを生成してくれる代表的なAIサービスであるGitHub Copilotの、AWS版と言ってよいでしょう。 下記は、1行目と2行目に自然言語で書かれたコメントから、3行目以降のコードが自動生成された様子です。 特にAmazon内部のリポジトリを基に学習されているため、AWSのサービスを活用するコードの生成は得意とされています。例

                                                    AWS版「GitHub Copilot」な「Amazon CodeWhisperer」が正式版に 個人ユーザーは無料、VSCodeに対応
                                                  • Why Dark didn't choose Rust

                                                    Welcome again HN! Dark is a programming language, structured editor, and infrastructure—all in one—whose goal is to make it 100x easier to build backend services. Check out the website, our What is Dark post, and How Dark deploys in 50ms for more. Thanks for checking us out! This is the third or a 3-part series: Leaving OCaml and Dark's new backend will be in F#. You can enjoy this without reading

                                                      Why Dark didn't choose Rust
                                                    • Web フロントエンドチームの紹介 - ドワンゴ教育サービス開発者ブログ

                                                      はじめに こんにちは。N 予備校 Web フロントエンド開発チームの三橋です。 この記事では Web フロントエンドチームについてご紹介します。 メンバー(実施時点 9 名)にカジュアル面談でよくご質問いただく項目を含めたアンケートに協力してもらいました。 チームメンバーの雰囲気を知りたい チームメンバーがどんな働き方をしているか知りたい という方に読んでいただきたい内容になっています。 概要 新卒/中途 中途採用されたメンバーがこの 1~2 年で増えて、現在では新卒採用の方に比べて中途採用の方が多くなりました。 年齢のボリュームゾーン 30 代が 5 名と最多ですが、年齢に関係なく疑問を投げかけたり提案したりしている気がしますね。 お住まい エンジニアは原則として テレワーク なので、東京都が最多ですが地方にお住まいの方もおられます。 普段のコミュニケーションは Slack でテキストベ

                                                        Web フロントエンドチームの紹介 - ドワンゴ教育サービス開発者ブログ
                                                      • なんとなく使わないGradle

                                                        はじめに 最近スパイスカレーを食べるのはもちろん、作るのにもハマっている小林(@mako-makok)です。 近所のお気に入りのお店の閉店が決まってしまい、悲しみに暮れていますが頑張ってアドカレの記事を書きました。 この記事は株式会社ログラスProductチームの2022年12/18(日)の記事です。 株式会社ログラス Product チーム のカレンダー | Advent Calendar 2022 - Qiita なぜ今更Gradleかというと、最近社内で構築しているSheetlinというライブラリがあります。 ニッチな話になりますが、Sheetlin のインターフェース設計に関する話をKotlin Fest Reject Conference 2022でしてきたので、よろしければこちらもご覧ください。 そんなSheetlinですが、ビルドツールはGradleを利用しています。 私も雰

                                                          なんとなく使わないGradle
                                                        • TypeScript における型の集合性と階層性

                                                          宣伝 (本を作成しました) この記事についての発展的研究内容を以下の本としてまとめました。この記事を読んで興味が湧いたら、ぜひ読んでみてください。 はじめに 前回の記事 では TypeScript における型の拡大 (Widening) について解説しました。Narrowing の記事を書く前に (Widening を深く理解するためにも) 必要な知識や考え方がいくつかあると思ったので、今回は型の集合性と階層性について見ていきたいと思います (短いですが内容的に切り出してもかなり興味深いので)。 この記事の最後で別の型の変数同士で代入できるかどうかを示す「Assignability (代入可能性あるいは割当可能性)」について解説しますが、集合と階層の概念で考えることで見通しが非常によくなり、型一般についてもスッキリと理解できることが多くなります。また、never や unknown といっ

                                                            TypeScript における型の集合性と階層性
                                                          • Kafka Brokerのcompaction動作の詳細とチューニング方法について - Repro Tech Blog

                                                            Reproでチーフアーキテクトとして働いているid:joker1007です。 今回、Kafka Brokerのcompaction動作について調査しチューニングすることでパフォーマンス改善の成果が得られたため、そのノウハウをブログにまとめておきました。 かなりマニアックな内容なので、需要は多くないと思いますが、私が調査した限りでは日本語で同じ様な内容のブログ記事はほとんど存在しなかったため、Kafkaを自前で運用している人にとっては役に立つ内容かもしれません。 compactionとは (参考: https://kafka.apache.org/documentation/#compaction) Kafkaの基本的なデータ削除ポリシーは一定時間が経過したら過去のデータをそのまま削除するdeleteというポリシーを使う。 これは、log.retention.hoursという設定でコントロー

                                                              Kafka Brokerのcompaction動作の詳細とチューニング方法について - Repro Tech Blog
                                                            • TypeScriptで型安全性を破壊する方法をまとめたリポジトリを作った

                                                              実用的な静的型付き言語には、たいていの場合危険なことをするバックドアが存在するものですが[1]、TypeScriptには一見してわからない場所にバックドアが存在するという特徴があります。 というわけで、様々な方法でunsafe_cast<T, U>(x: T): Uを書いてみました。便利。 謝辞: テクニックの多くはtkr氏の記事に依っています。 脚注 ScalaのasInstanceOf[T], HaskellのunsafeCoerce, OCamlのObj.magic, ... ↩︎

                                                                TypeScriptで型安全性を破壊する方法をまとめたリポジトリを作った
                                                              • エスカレーター ラテン語で「e=(ここから)外に」「scala=梯子(でよじのぼ..

                                                                エスカレーター ラテン語で「e=(ここから)外に」「scala=梯子(でよじのぼる)」「tor=するもの」。 直訳すると「上の階によじのぼるもの」といった感じか。 エレベーター ラテン語で「e=(ここから)外に」「levare=持ちあげる」「tor=するもの」。 直訳すると「上の階に持ち上げるもの」といった感じか。 scalaは「梯子」という意味。 scale(スケール)は「目盛り」や「ものさし」の意味、また「音階」という意味もある。 vectorに対するscalar(スカラー)は「量を増大・減少させる大きさ」。 つまり「梯子」から「段階的な変化」を意味するようになった。 ちなみにエスカレーターという言葉から「エスカレート(徐々に激しくなる)」という動詞が生まれた。逆ではない。 levareは、「軽い」という意味のlevisに由来する。 たとえば「levitation(レビテーション)」は

                                                                  エスカレーター ラテン語で「e=(ここから)外に」「scala=梯子(でよじのぼ..
                                                                • GoにはなぜXという機能がないのか? 〜テスト関数ごとの暗黙的な初期化処理の実現を考察する | gihyo.jp

                                                                  つきなみGo GoにはなぜXという機能がないのか? 〜テスト関数ごとの暗黙的な初期化処理の実現を考察する はじめに 筆者はGoだけではなく、Scalaなど他言語を扱った経験もあり、しばしばGoには他の言語にあるXという機能がなぜないのだろう?と考えることがあります。 たとえば、テスト関数ごとに暗黙的に呼ばれる初期化関数の定義があります。データベースに対するDrop・Create・Insertなどの処理をテストごとに実行したい場合に定義できると便利でしょう。同じ処理を都度書いているとテストケースが増えてきた時にメンテナンス性が下がってしまったり、初期化処理を追加し忘れてしまう恐れなどもあります。 しかし、Goにはこのようなテスト関数ごとに暗黙的に実行される初期化処理を定義できません。Goが他言語に劣っているようにもみえますが、本当にそうなのでしょうか? 公式のFAQにもあるように、とある機能

                                                                    GoにはなぜXという機能がないのか? 〜テスト関数ごとの暗黙的な初期化処理の実現を考察する | gihyo.jp
                                                                  • トイルを自動化したら、チームにひろまった話 - エムスリーテックブログ

                                                                    こんにちは。Scalaとまどマギのマミさんが大好きな安江です。この記事ではとある日常業務のトイルを自動化したこと、その後の広まりについて紹介したいと思います。 ここにトイルがあるじゃろ? 自動化、その前に 簡単に捨てられるようにする 既存の手作業の仕組みも残す 最初に一番インパクトがある適用箇所を狙う これをこうして…こうじゃ その後の広まり We are hiring! ここにトイルがあるじゃろ? 私が所属するチームでは、コードレビューする際、GitLabのマージリクエスト機能に加えて、JIRAにコードレビュー用の課題を作成するワークフローになっています。業務進捗をJIRAの課題で管理しているので、JIRA上では各人が通常の業務に加えて、どれだけコードレビューを抱えているかを把握できるようになっています。 コードレビューを依頼する時、レビュアはチームメンバーからランダムで選出します。JI

                                                                      トイルを自動化したら、チームにひろまった話 - エムスリーテックブログ
                                                                    • 機械学習をコモディティ化する AutoML ツールの評価 - RAKUS Developers Blog | ラクス エンジニアブログ

                                                                      こんにちは、開発エンジニアの amdaba_sk(ペンネーム未定)です。 昨年度まで、ラクスの開発部ではこれまで社内で利用していなかった技術要素を自社の開発に適合するか検証し、ビジネス要求に対して迅速に応えられるようにそなえる 「開(か)発の未(み)来に先(せん)手をうつプロジェクト(通称:かみせんプロジェクト)」というプロジェクトがありました。本年度からは規模を拡大し、「技術推進プロジェクト」と名称を改めて再スタートされました。 本記事では、昨年度かみせんプロジェクトとしての最後のテーマとなった機械学習テーマの延長として 2020 年度上期に行った「AutoML ツールの調査と評価」について取り組み結果を報告します。 (ちなみに機械学習テーマは前年度から継続していたこともあり、上期で終了となってしまいました。残念……) なお過去の報告記事はかみせんカテゴリからどうぞ。技術推進プロジェクト

                                                                        機械学習をコモディティ化する AutoML ツールの評価 - RAKUS Developers Blog | ラクス エンジニアブログ
                                                                      • Java/Scalaの最新版Webアプリケーションフレームワーク「Play Framework 3.0」正式リリース。Akkaに代わりApache Pekkoを採用

                                                                        Java/Scalaの最新版Webアプリケーションフレームワーク「Play Framework 3.0」正式リリース。Akkaに代わりApache Pekkoを採用 Play Framework開発チームは、JavaとScalaに対応したWebアプリケーションフレームワークの最新版となる「Play Framework 3.0」の正式リリースを発表しました。 Houston, Play developers here. The eagle has landed! Play 2.9 (https://t.co/ars6Le2VUw) and 3.0 (https://t.co/Eus82EOS9c) are available now! To everyone out there helping and sponsoring: You are the best! THANK YOU SO MU

                                                                          Java/Scalaの最新版Webアプリケーションフレームワーク「Play Framework 3.0」正式リリース。Akkaに代わりApache Pekkoを採用
                                                                        • VSCodeの拡張機能としてJupyter NotebookをベースにJavaScript/Mermaid/SQLなど多言語対応にした「Polyglot Notebooks」が正式リリース

                                                                          VSCodeの拡張機能としてJupyter NotebookをベースにJavaScript/Mermaid/SQLなど多言語対応にした「Polyglot Notebooks」が正式リリース Jupyter Notebookはシンプルなエディタ画面にPythonやScala、Rなどのコードを打ち込んですぐに実行できる、インタラクティブなコード実行環境で、特にデータサイエンティストなどで重宝されているツールです。 結果も同じNotebook上に表やグラフ形式で表示可能なのに加えて、Markdown/LateX/HTMLなどを記述することでリッチなテキスト表現と画像や動画の埋め込みなどもできます。 このJupyter Notebookをベースに、C#やF#、JavaScript、Mermaid、SQLなど、さらに多くのプログラミング言語やマークアップ言語への対応を行ったVisual Studio

                                                                            VSCodeの拡張機能としてJupyter NotebookをベースにJavaScript/Mermaid/SQLなど多言語対応にした「Polyglot Notebooks」が正式リリース
                                                                          • ITエンジニア向けのトレンド情報 | Forkwell Press (フォークウェルプレス)

                                                                            2016年にメイン言語をPHPからRubyに移行したメドピア株式会社(以下、メドピア)は、大きな転換期を迎えました。 Rubyの生みの親として世界的に名の知れるまつもとゆきひろ(松本行弘)氏を技術アドバイザーに迎えたのです。 「コミュニティの熱量の高さがRubyを選んだ決め手」と語るメドピア株式会社CTO福村氏とまつもと氏に、アドバイザー就任の経緯やメドピアの目指す事業の方向性、Rubyの今後の可能性について伺いました。 Rubyを選んだ決め手はコミュニティの圧倒的な熱量 メドピアは、2004年に現役医師が創業したヘルステック企業。「集合知により医療を再発明する」というビジョンを掲げ、医師や薬剤師などの医療従事者をサポートしながら、その専門家ネットワークと「集合知」を活用して様々なシナジーを生み出しています。 なかでもコアサービスとなる医師専用コミュニティサイト「MedPeer」の会員数は

                                                                              ITエンジニア向けのトレンド情報 | Forkwell Press (フォークウェルプレス)
                                                                            • ZodでAlways-Valid Domain Modelを実現する

                                                                              課題意識 特定の商品を数量を指定して購入できるECサービスのドメインモデルを表現とします。TypeScriptで構築する際に、「数量」を単にnumber型で扱うことは可能ですが、よりロバストな設計を目指す上で以下の2つの方法論があります。 Refinements(値の制約を表す): 「数量」は一般的に自然数です。1度の注文で指定できる上限を設けるビジネスルールがあると仮定します。この場合、number型に「自然数」「上限付き」の制約を加えた値として表現します。 Branded Types: (同じ構造の型を区別する): 「価格」などの他のnumber型と混同されないように、これらの数値を型レベルで区別したいです。JavaやC#に見られる公称型の概念をTypeScriptで模倣するBranded Typesのテクニックを用いることで、これらの誤った利用を型システムで防ぐことができます。 Br

                                                                                ZodでAlways-Valid Domain Modelを実現する
                                                                              • コンパイル時計算でラムダ計算の構文解析器・評価器・型推論器を実現 (Scala 3編) - 貳佰伍拾陸夜日記

                                                                                またか. またなのか. 何回目だ. ということで, ラムダ計算のインタプリタの実装としては4回目くらい*1, コンパイル時計算でやるものとしても3回目くらいになってしまうけど, ラムダ計算の処理系をまた書いてしまった. 今回の目的は, Scala 3にはmatch typesという機能があり, これだけでチューリング完全なのではないか, というのを検証するため. また, 文字列リテラル型を操作する型レベル関数が3.1.2-RC1にきていて, これを使えば構文解析器だって書ける. 経緯 過去の事例 関数と返り値 パターンマッチと再帰呼出し Scala 3の型レベル言語 match types リテラル型操作 ラムダ計算の実装 評価 印字 構文解析 型推論 (型検査) おわりに 経緯 もともとは, id:xuweiさんが文字列リテラル型でコンパイル時に動作する構文解析器を実装していたのが始まり

                                                                                  コンパイル時計算でラムダ計算の構文解析器・評価器・型推論器を実現 (Scala 3編) - 貳佰伍拾陸夜日記
                                                                                • Databricks + BigQueryでSSOTを実現しようとしている話 - バイセル Tech Blog

                                                                                  テクノロジー戦略本部データサイエンス部の近藤です。 バイセルはリユース事業を営む会社で急激な成長を遂げていますが、どちらかというと今まではテクノロジーにあまり頼ることなく成長してきました。 そんな中、テクノロジーをちゃんと導入していけばどこまで成長するのか試してみたく、2022年7月にバイセルに入社しました。 バイセルではSSOTの実現のために、RDBのデータをBigQueryにニアリアルタイムで同期する実装を進めていますが、 新たにDatabricksの導入を決めました。 バイセルにどういう課題があり、なぜDatabricksを導入するのかをお話しします。 SSOTとは バイセルの今の課題と未来 どうやって課題を解決するのか なぜApache Sparkなのか Databricksの利点 Databricks導入後の世界 データサイエンス部の野望 SSOTとは データマネジメントでは「S

                                                                                    Databricks + BigQueryでSSOTを実現しようとしている話 - バイセル Tech Blog