並び順

ブックマーク数

期間指定

  • から
  • まで

281 - 320 件 / 4060件

新着順 人気順

Scalaの検索結果281 - 320 件 / 4060件

  • TypeScript で幽霊型っぽいものをつくる

    この実装だと当然エンコード済みの文字列も渡せてしまい、多重エンコードが起きる。未エンコードの文字列だけが渡ってくることをコンパイラレベルで検出したい。 幽霊型(Phantom Type) こういうとき、他の言語ではよく幽霊型が用いられる。次のリンク先は Scala での実装例を紹介している https://www.slideshare.net/AkinoriAbe1/aja-2016623 // 上記スライドの 6 枚目より class Str[T] (val str: String) trait Normal trait Encoded def encode(x: Str[Normal]) = new Str[Encoded](...) 内部では利用されない型パラメータ( Normal Encoded )を使って、Str[T] にはそういう種類があること、 Str[Normal] と S

      TypeScript で幽霊型っぽいものをつくる
    • Hatena Engineer Seminar #18 を1月26日にオンライン開催します #hatenatech - Hatena Developer Blog

      こんにちは. はてなWebアプリケーションエンジニアの id:papix です. 2022年1月26日(水)に, Hatena Enegineer Seminar #18 の開催が決定しましたのでお知らせします. 今回は2021年に新卒入社したエンジニア7名が登壇します. 自社サービスである「はてなブログ」「はてなブックマーク」, 共同開発や開発支援のプロジェクトを担当するエンジニアが, それぞれのチームでのサービス開発や運営での取り組み, そこで得た学びを発信します. 新しく取り組んだ技術や新機能開発の進め方, 他部署や他職種との連携の工夫, チームの改善やGraphQLの話まで幅広い内容となっています. 開催はオンラインです. (詳しくはconnpassのイベントページをご確認ください). 皆様のご参加をお待ちしております! イベント概要 日時: 2022年1月26日(水) 19:00

        Hatena Engineer Seminar #18 を1月26日にオンライン開催します #hatenatech - Hatena Developer Blog
      • Akkaのライセンス変更について - kubell Creator's Note

        こんにちは、かとじゅんです。 『Chatwork Product Day 2022』に関連してブログを書こうということで、Akkaのプラグインの改善などをテーマに記事を書こうと思ったのですが、Akkaのライセンス変更が界隈ではちょっとしたニュースになりました。「Chatworkさんはどうするの?」とよく聞かれるので、Chatwork社での今後の方針について簡単にまとめてみたいと思います。 Akkaのライセンス変更 www.lightbend.com Akka 2.7 から Apache License Version 2.0 から Business Source License (BSL) v1.1 に変わりました。BSLはMariaDBでも採用されているライセンスです。 The new license for Akka is the Business Source License (BS

          Akkaのライセンス変更について - kubell Creator's Note
        • 現在時刻が関わるコードを関数型で書いてテスタビリティを見てみた - Qiita

          最近、現在時刻が関わるプログラムを題材に、高テスタビリティなプログラミング作法を解説した素晴らしい記事が復刻されて、感想などがTLに流れてきたので、自分もそのお題を関数型プログラミングで解いてみた記事。 はじめに 最近、こんな引用ツイートをした。 関数型界隈だと、参照透過な部分とそうでない部分(現在時刻, 乱数, etc.)を分離しといて使うところで合成する作法が尊重されてて、simplicity と composability の結果として、テスタビリティや柔軟性が高くなる(低くならない)ということがよく謳われている。あとで自分もFPでお題解いてみよう。 https://t.co/00TwqXmtC7 — yasuabe (@yasuabe2613) September 30, 2019 元記事は、t-wadaさんの『現在時刻が関わるユニットテストから、テスト容易性設計を学ぶ 』で、めち

            現在時刻が関わるコードを関数型で書いてテスタビリティを見てみた - Qiita
          • 2021年にやったこと - k0kubun's blog

            2020年にやったこと 2019年にやったこと 2018年にやったこと 2017年にやったこと 2016年にやったこと 2015年にやったこと というわけでこれ毎年書いてるんですけど、 なんか参戦したくなったので Rubyist近況 Advent Calendar 2021 24日目です。 入居者募集 記事があるくらいですし、自由に書こうと思います。メリークリスマス。 発表 1歳児がいる状況で家を留守にしたり夜に声を出したりすると家族に負担がかかるので、録画提出できるカンファレンスにしか基本参加しないことにしているのだけど、コロナが長引いていることにより今年も登壇しやすい状況が続いた。 とはいえ、ハイブリッド開催だったRubyConfに関しては、国内の渡航だけでShopifyのYJITチーム全員 (や当地のRubyフレンズ) と対面で話せる貴重な機会だったので、行けなかったのは惜しいなあと

              2021年にやったこと - k0kubun's blog
            • OSSへの貢献 - Issueから始めるチーム活動 - ZOZO TECH BLOG

              はじめに こんにちは、計測プラットフォーム部バックエンドチームのリーダー、児島(@cozima0210)です。この記事では、今年4月に社内で策定されたOSSポリシーに基づいて、チームでOSSに貢献する活動に取り組んだ話を紹介します。社内のOSSポリシーが策定された経緯については、こちらの記事をご覧ください。 なお、これはZOZOテクノロジーズ Advent Calender 2020 #3の5日目の記事です。 背景 私たちのチームでは、ZOZOSUIT/ZOZOMATから生成されるデータ及びそれを元とする計算データを高速に扱うため、様々なライブラリの使用を試みてきました。それらの中には、調査や試用の段階で不具合を発見したライブラリがありました。しかし、プロダクトの開発及び運用の過程では、そうした不具合の根本原因を探る時間を持つことは難しいものでした。そのため、代替ライブラリの選択を検討した

                OSSへの貢献 - Issueから始めるチーム活動 - ZOZO TECH BLOG
              • 数としての赤黒木 - エムスリーテックブログ

                エンジニアリンググループの高島(@rst76)です。 社内の勉強会で、計算機科学の有名な教科書、アルゴリズムイントロダクション(Introduction to Algorithms)を輪読しています。 ちょうど赤黒木の章を私が担当したので、要点をかいつまんでご紹介したいと思います。 今回お話したいのは「ある条件の下で、赤黒木は記数法表現と見ることができる」という話です。 赤黒木の例 赤黒木 二分木というデータ構造があります。 計算機科学では一般的なデータ構造で、ランダムなデータであれば、検索や挿入などの操作を で実現できます。 ただ、データの与え方によっては偏った木ができてしまうことがあり、そうすると各操作の性能が に落ちてしまうので、どうやって木の平衡性を維持するかが課題です。 赤黒木は二分木の一種で、ノード(節点)を赤と黒に塗り分けて、赤と黒の組み合わせによって平衡性を保つための調整を

                  数としての赤黒木 - エムスリーテックブログ
                • OSSへの貢献をさらに良い形にしたい | はてなで働く itchyny にアンケート [#13] - Hatena Developer Blog

                  はてなで働くエンジニアにアンケートシリーズ第13回は、ブックマークチームのWebアプリケーションエンジニア、id:itchynyに話を聞きました。 はてなidはかぶらないように適当に付けた Haskellが得意な自分ならScalaも書けるだろうと思って チーム間で協力しながら新しいAPIの仕様を策定 TLとして、チーム横断での依頼の窓口にも 夕方から深夜にかけて頭が冴える より戦略的にOSSへ貢献する体制作りをしたい スプリントごとに常に方法を改善 実装力を活かして良いシステム構成にできた時に手応えが 意思決定の過程を書き残すのは重要なこと 意欲がある人はいくらでも学べる会社 はてなidはかぶらないように適当に付けた ── Q1. はてなidとその由来を教えてください id:itchyny (いちにぃ)です。本名ばれせず、かつかぶらないよう適当に付けたので、由来はありません。 Haskel

                    OSSへの貢献をさらに良い形にしたい | はてなで働く itchyny にアンケート [#13] - Hatena Developer Blog
                  • 仕様の複雑化、過渡期特有の難解なコード、技術スタックの老朽化… システムの健全な成長を妨げる要因に対する基本戦略

                    仕様の複雑化、過渡期特有の難解なコード、技術スタックの老朽化… システムの健全な成長を妨げる要因に対する基本戦略 アーキテクチャ刷新の現場:未知の技術を採用するために #1/2 アーキテクチャ刷新の現場における取り組みと成果を発表 成瀬允宣氏:みなさん、こんにちは。GMOインターネットグループでデベロッパーエキスパートとして活動しています、成瀬允宣と申します。本日はよろしくお願いします。 私、所属はGMOインターネットグループ株式会社で、システム統括本部に所属している一般のプログラマーではありますが、私からお送りするお話は、「アーキテクチャ刷新の現場」で、ここ数年……2年ほどですかね、アーキテクチャを刷新する現場で一番前を走っていたので、その現場のお話をしようかなと思っています。 非常に苦労して、やっと花開いてきたところなので、今日は、何を予測して、何を準備して、そして何を失敗したのか。そ

                      仕様の複雑化、過渡期特有の難解なコード、技術スタックの老朽化… システムの健全な成長を妨げる要因に対する基本戦略
                    • 全ての開発者が学ぶべき5つの言語 - Qiita

                      「どの言語を学ぶべきか」という議論はエンジニア向け記事の定番ネタですが、HackerNoonに投稿された5 Programming Languages Every Master Developer Should Learnという記事がなかなか興味深かったので翻訳してみました。 (2018/11/04追記) こちらの記事に関する「別視点からの意見」として下記のような記事を追加いたしました。宜しければこちらも併せてご参照ください。 Ruby->Go->Scalaという習得順序がエンジニアの爆速の成長に最適である理由 はじめに 「プログラマーは新しい言語を毎年1つは習得するべきだ」という趣旨の文章をどこかで読みました。(多分CODE COMPLETEだったと思いますが) もしそれが難しくても、キャリアの中で最低限この後に紹介する5つの言語に通じておくことをお薦めします。 あらゆる会社は、多言語を

                        全ての開発者が学ぶべき5つの言語 - Qiita
                      • 秘密情報をGitLabに格納することなくGoogle Cloud / AWSに対して認証する - エムスリーテックブログ

                        エムスリーエンジニアリンググループ AI・機械学習チームの笹川です。 趣味はバスケと筋トレで、このところはNBAはオフシーズンですが、代わりにユーロバスケが盛り上がっていて、NBAに来ていない良いプレーヤーがたくさんいるんだなーと思いながら見ています。 夜ご飯を催促するためデスク横で待機する犬氏(かわいい) 今回は、パブリッククラウドへの認証に必要な秘密情報をGitLab自体に格納することなく、安全に認証する方法について紹介します。 CI/CDの実行時のパブリッククラウドに対する認証 ナイーブな手法とその問題点 OpenID Connectを用いた認証 Terraformでパブリッククラウド側の設定を記述する Google Cloudの場合 AWSの場合 GitLab CI/CDで認証する Google Cloudの場合 AWSの場合 認証ステップの共通化 まとめ We are hirin

                          秘密情報をGitLabに格納することなくGoogle Cloud / AWSに対して認証する - エムスリーテックブログ
                        • 【現役エンジニア解説】2020年に初心者が最初に学ぶべきプログラミング言語 - 仮想サーファーの日常

                          「プログラミングを学んで、自分に向いているならエンジニアとして転職したいけど、最初に学ぶ言語ってどれがいいんだろう?」 「2020年にプログラミングを学び始めるなら、どの言語をどんな目的で学べばいいんだろう?」 と、最初のプログラミング言語って何がいいのか、悩んでしまいますよね。 ぼく自身も未経験からエンジニアに職種を変更する決断をしたとき、最初に学ぶべきプログラミング言語がわからなかったので、いろんな記事を読みあさった記憶があります。 今回は、2020年これからプログラミングを学び始めるならどの言語がオススメなのか、現役Webエンジニアとして働いている立場のぼくが「初心者の学習のしやすさ」と「求人・案件数の多さ」と「今後の需要が伸びる可能性」の観点から紹介していきます。 プログラミング初心者が最初に学ぶ言語の重要性 プログラミングを勉強する上で、なぜ最初に学ぶ言語選びをこだわる必要がある

                            【現役エンジニア解説】2020年に初心者が最初に学ぶべきプログラミング言語 - 仮想サーファーの日常
                          • GraphVizをECSでHTTPサービス化して社内どこからでも使えるようにした話 - Lambdaカクテル

                            グラフ作成ツールであるGraphvizを社内でHTTPサービス化し、どこからでも使えるようにした話です。 こういう感じで使えます。 $ curl -X POST http://graphviz.ほげほげ.example.com/ -d 'digraph { foo -> bar -> buzz; }' https://ほげほげふがふが.amazonaws.com/958508bb186ef076c2cbb92c1e0c34ea0e51316e2d9bfe46620d2d6278db0f94.png URLを開くとこういう画像になっています。ヤバイ!! Graphviz便利だけどやや不便 困り HTTP化することで得られるめでたさ アーキテクチャ ファイル構成 Dockerfile server.py conv.sh CD用ファイル task-definition.json .github/

                            • Webシステム開発で関わる技術のまとめ(2022年に知った物) - Qiita

                              はじめに Webシステムの開発に携わりたくて転職して9か月,知らない事ばかりで日々勉強しております。 自分の勉強用メモとして知っておくべき技術をまとめようと思いました。 (こちらの記事にインスパイアされたものです) 技術用語について,なるべく2~3行で概要を説明できる事を目指しています。 情報が多過ぎるので,主流な技術は見出しを赤字にしています。(主観強め) また,今後需要が増えそうな技術は青字にしています。(かなり主観強め) とはいえ,新しい技術が登場すれば,数年でトレンドが変わってしまう事も多々あると思います。 ほとんどはあくまでも初心者がネットで情報をかき集めた程度のものです。 誤りがあればご指摘,ご意見など頂きたいです。 ※2023/2/6追記 不正確・不十分だと思った記載はひっそりと随時修正しています。 また,「そういえばこんなんあったな」という項目も追記しています。 あと,自分

                                Webシステム開発で関わる技術のまとめ(2022年に知った物) - Qiita
                              • Best Practices Around Production Ready Web Apps with Docker Compose — Nick Janetakis

                                Learn Docker With My Newest CourseDive into Docker takes you from "What is Docker?" to confidently applying Docker to your own projects. It's packed with best practices and examples. Start Learning Docker → Updated on June 1, 2021 in #docker, #elixir, #flask, #javascript, #ruby-on-rails Best Practices Around Production Ready Web Apps with Docker Compose Here's a few patterns I've picked up based o

                                  Best Practices Around Production Ready Web Apps with Docker Compose — Nick Janetakis
                                • 仕事で使うHaskell

                                  TL;DR Haskellはいいぞ。ただ仕事で使うならビルド、デプロイ周辺は工夫する必要が色々出てくるぞ。 あ、nixもいいぞ。 はじめに Haskellを用いている会社HERPに転職してからそろそろ1年が経つので久しぶりに記事でも書いてみます。そういえばzennでは初投稿ですね。 最近はHERPでHaskellを書きつつシステム基盤整備みたいなことをやっています。あとマネージメントみたいなこともやってたりします。 僕の書いたHaskell microserviceは既に稼働して売り上げに貢献しています。 あ、HERPはHaskell FoundationのFunctorスポンサーになっています。スポンサーの名前が面白いですよね。 Haskellを仕事で使う感想 最高ですね。簡単便利十分速い保守楽拡張楽、という感じです。 並行プログラミングツールとしてstmが提供されているのがお気に入りで

                                    仕事で使うHaskell
                                  • 私のコード履歴書 - それが僕には楽しかったんです。

                                    satoru-takeuchi.hatenablog.com ↑この記事が Twitter の TL に流れてたから読んでみたら面白かったのでコードを書き始めた7年前*1から振り返りながら書いてみる。 コードが残っていたりするものは載せていきたい。思い出せる限りなるべく時系列順で書いていく。多少前後する。 「独学でプログラミングを始めるなら C 言語から」という文言に載せられ Windows のコマンドプロンプト*2で動く簡単のプログラムをいくつか作った。ほとんど入門書の写経 + αだった。例によってポインタがわからず、もっと酷いことに return もわからなくて*3一旦距離を置く。return がわからなかったので関数を使うことを割けていたので全部 main 関数に書いていた気がする。初めて黒い画面にバババーっと文字が出てきたときはめちゃくちゃ楽しかった。 Java とかいう言語を使い

                                      私のコード履歴書 - それが僕には楽しかったんです。
                                    • まつもとゆきひろさんと、なかだのぶよしさんと、Rubyについてのお話 - ポッドキャスト | Heroku

                                      永野: 私は、SalesforceでHerokuを担当している永野智です。このエピソードは、Deeply Technicalがテーマとなります。今回はゲストとして、「Rubyのパパ」、Matzこと まつもとゆきひろ さん、そして「さすらいのパッチモンスター」なかだのぶよし さん。また、Herokuのサポートエンジニア 澤光映さんをゲストにお迎えしてお送りいたします。皆さんよろしくお願いします。 Matz, Nobu, 澤: よろしくお願いします。 永野: まずは、もう皆さん知ってると思うんですが、自己紹介から始めたいと思いますので、じゃまずMatzさんから自己紹介をお願いいたします。 Matz: はい、 まつもとゆきひろ と申します。Rubyを作った人ですね。「Rubyのパパ」って名乗ってますけれども。日本では、平仮名で まつもとゆきひろ で、海外では M, A, T, Zで Matzって

                                        まつもとゆきひろさんと、なかだのぶよしさんと、Rubyについてのお話 - ポッドキャスト | Heroku
                                      • はてなブックマークのお気に入りの整理のしようがないという話。 - 深淵

                                        お気に入りに666人いれている事になってても、ここの画面で出てくるのは50人まで。 がんばってJSON形式で引っ張っても、実は495人なんですよ。 幾らScalaとかで書いたとしても、プログラムのあちこちにマジックナンバーが仕込まれてそうって感じなので、既に技術的負債は相当な量溜まっていると思います。

                                          はてなブックマークのお気に入りの整理のしようがないという話。 - 深淵
                                        • 同時編集可能なドラッグアンドドロップによる並び替えを実装する | Wantedly Engineer Blog

                                          こんにちは。Wantedlyでエンジニアをしている小林(@kbys_02)です。最近、ドラッグアンドドロップで並び替えをする機能を実装していて、技術的に面白いトピックだと思ったので記事にしました。 前提「Pulse」というモチベーション管理ツールにある1on1機能の開発を行なっています。 1on1で話をするトピックの優先度を変更できるようにするという施策を実現するため、ドラッグアンドドロップによる並び替え機能を実装しました。 1on1機能には、1on1に参加する2人が編集した内容がお互い同期更新されるという仕様があります。並び替え時にも同じように、参加者2人が同時に並び替えを行った時にロジックが壊れないようにする必要がありました。 浮動小数を利用した並び替えアルゴリズムこのような、リストにあるアイテムの並び替えを実装しようとした時に最初に思い浮かぶのは、連番による方法です。まず、上から順に

                                            同時編集可能なドラッグアンドドロップによる並び替えを実装する | Wantedly Engineer Blog
                                          • PySparkはじめました - 分散処理デビューする前にやったこと - JX通信社エンジニアブログ

                                            「JX通信社Advent Calendar 2019」10日目の記事です. 昨日は, @rychhrさんの「Pure WebSocketsをサポートしたAWS AppSyncでWebとiOS間のリアルタイムチャットを作ってみた(1)」でした. 改めまして, こんにちは. JX通信社でシニア・エンジニア&データ基盤エンジニアをしています, @shinyorke(しんよーく)と申します. JX通信社では, データ駆動での意思決定および施策実施をより円滑に進めるため, データ基盤の構築・運用を進めながらトライアル的に様々なFrameworkやツールの検証を行っています.*1 このエントリーでは, 私がシュッとPySparkで分散処理をする...前に, 手元で試したときの感想とその知見 のお話を残していきたいと思います. なお, 分散処理そのものの知見・ノウハウではなく, する前にPySparkに

                                              PySparkはじめました - 分散処理デビューする前にやったこと - JX通信社エンジニアブログ
                                            • Scalaで圏論チョット学ぶ

                                              ࠓ೔ͷΰʔϧ 6 関数型プログラミング のライブラリ ・Scalaz ・Cats etc… 圏論 ・圏 ・関⼿ ・⾃然変換 etc… 概念を 使っている 使う ⾒え隠れしても怖くない! チョットわかる! ※ エンジニアのよく⾔う 「完全に理解した」→ 「全然わからん」 →「チョットわかる」の「チョットわかる」ではなく ⽂字通りの「チョットわかる」がゴールです

                                                Scalaで圏論チョット学ぶ
                                              • 🚀 Visualizing memory management in V8 Engine (JavaScript, NodeJS, Deno, WebAssembly)

                                                This is part of my "Memory Management" series 🚀 Demystifying memory management in modern programming languages🚀 Visualizing memory management in JVM(Java, Kotlin, Scala, Groovy, Clojure)🚀 Visualizing memory management in V8 Engine (JavaScript, NodeJS, Deno, WebAssembly)🚀 Visualizing memory management in Golang🚀 Visualizing memory management in RustAvoiding Memory Leaks in NodeJS: Best Practic

                                                  🚀 Visualizing memory management in V8 Engine (JavaScript, NodeJS, Deno, WebAssembly)
                                                • Blog|OS コマンドインジェクション その危険性と対策

                                                  OS コマンドインジェクション(OS Command Injection) は、オペレーティングシステムのコマンドを不正に実行できてしまう脆弱性および攻撃手法です。 コマンド注入攻撃、コマンドインジェクションとも呼ばれます。 Web アプリケーションのコードに OS コマンドの呼び出し処理があり、ユーザーが入力したデータがコマンドの一部分を構成している場合に発生します。 本記事では、OS コマンドインジェクション(以下、コマンドインジェクション)の概要と攻撃による影響、対策について解説していきます。 コマンドインジェクションとはなにかコマンドインジェクションは、攻撃者が Web アプリケーションを通して、Web サーバが動作する OS でコマンドを実行できてしまう脆弱性です。 コマンドインジェクションが起きるまでの流れ 攻撃者は、Cookie やフォームのデータ、URL のクエリパラメータ

                                                    Blog|OS コマンドインジェクション その危険性と対策
                                                  • 松竹梅はsortしても松竹梅になる - Lambdaカクテル

                                                    物事の順位付けをするとき、松竹梅という雅な表現がよく使われる。自分もよく使う。 blog.3qe.us コンピュータにとってもそうなのだろうか?そう考えた私は実際にソートしてみることにした。 % echo $LANG ja_JP.UTF-8 % sort --version sort (GNU coreutils) 9.3 Copyright (C) 2023 Free Software Foundation, Inc. ライセンス GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permit

                                                      松竹梅はsortしても松竹梅になる - Lambdaカクテル
                                                    • 技術に対して的確に投資をしている | はてなで働く 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
                                                                            • 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
                                                                              • 『実践プロパティベーステスト ― 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
                                                                                • 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