並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 143件

新着順 人気順

scalaの検索結果1 - 40 件 / 143件

  • map / filter などの高階関数よりも古典的な for文の方が読みやすいと感じるあなたへ

    class: center, middle # map / filter などの<br>高階関数よりも<br>古典的な for文の方が<br>読みやすいと感じる<br>あなたへ BuriKaigi 2025 2025/02/01<br> @gakuzzzz --- class: left, top ## 自己紹介 * 中村 学/Manabu NAKAMURA * Twitter: [@gakuzzzz](https://twitter.com/gakuzzzz) * [Tech to Value Co.,Ltd.](https://www.t2v.jp/) CEO * [Alp, Inc.](https://thealp.co.jp/) Tech Lead --- class: left, top ## はじめに 昨今のメジャーなプログラミング言語では、 `map` や `filter`

    • 何かがそれほど得意でなくても、世の中の平均よりは得意だと思っておいたほうがよい - Lambdaカクテル

      仕事とかプライベートとかで、ものすごく頭が回るときと、エンストしたようにまるで回転しないときとがあり、その差はどこから来るのだろうと考えていた時期があった。 結論から言うと、自分の場合、「それを得意だと思っているかどうか」によって頭の回転具合がかなり変わるらしいことがわかった。 例えば、自分はこうした執筆がそこそこにできて、プログラミング言語でいえばScalaが他人よりも得意だが、こうした、自分の脳が「これは得意だぞ」と思っていることがらと相対すると、脳はやらせてくれやらせてくれと元気に働き始める。成功が目に見えているからね。 他方で、これそんなに得意じゃないな〜、とか、自分がやったら時間かかるだろうな〜、と思っているような、つまり自分の脳が「これ不得意だぞ」と思っていることがらと相対すると、脳はたちどころにその動きを鈍らせてしまう。誰だって失敗したりうまくいかない状況に放り込まれたくない

        何かがそれほど得意でなくても、世の中の平均よりは得意だと思っておいたほうがよい - Lambdaカクテル
      • 日本のエンジニアは甘すぎ? 「初学者への育成論」が米国からみると超不毛な理由 - エンジニアtype | 転職type

        2024.12.09 ITニュース お金マネジメント 「つよつよエンジニアは、初学者に厳しすぎ」 「いやいや、自力で調べて解決するのがエンジニアだろ」 「自分で考えろ、って効率悪くない?」 「育成スタンスが優しくないから、いつまで経ってもIT人材不足」 先日もX上で話題になった「エンジニア育成」の議論。もはや、一生議論されているテーマと言っても過言ではないが、世界トップレベルの「つよつよエンジニア」がひしめく米国からみると、この議論は一体どのように見えるのだろうか。 米国のテック業界やそこで働くエンジニア事情にも詳しいブランドンさんに聞いた。 Founder & CEO btrax Brandon K. Hillさん(@BrandonKHill) 北海道生まれの日米ハーフ。サンフランシスコと東京のデザイン会社btrax代表。サンフランシスコ州立大学デザイン科卒。 サンフラン市長アドバイザー

          日本のエンジニアは甘すぎ? 「初学者への育成論」が米国からみると超不毛な理由 - エンジニアtype | 転職type
        • 読まないと後悔する技術書30選 - Qiita

          Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに 現代の人に名著以外の本を読むような時間はない こんにちは、Watanabe Jin (@Sicut_study)です みなさんは何か新しい技術を学ぶときにどんなコンテンツを利用するでしょうか? 最近ではUdemyなどの動画講座を利用する人が多いと思いますが、本を読んで学ぶという人もまだまだ多いのではないかと思います 今回は私がこれまで5年間読んできた150冊以上の中から厳選した30冊の本を紹介します。広く多くの人に役立つものから、特定の技術の書籍までどれを読んでもあなたの大切な一冊になるのでぜひ読んでみてください 現代人には時

            読まないと後悔する技術書30選 - Qiita
          • 2024年読んで印象に残った本(技術書編) - Don't Repeat Yourself

            2024年に読んで印象に残った本の技術書編です。去年はそんなに多くの冊数は読めていません。というか、技術書を執筆して出版したので、技術書そのものにお腹いっぱいだったのは大きいと思います。 本を書いたという話は下記です。 blog-dry.com 非技術書編を先に書いているので、よかったらこちらもどうぞ。 blog-dry.com 免責事項ですが、記憶を元に書いている箇所が含まれることがあります。また、書籍のリンクにはアフィリエイトコードが付与されているので、苦手な方はURLから外してご購入ください。 目次 ルールズ・オブ・プログラミング Tidy First? Domain Modeling Made Functional 大規模データセットのためのアルゴリズムとデータ構造 コード×AIーソフトウェア開発者のための生成AI実践入門 モデル検査器をつくる〜Goで実装して学ぶ形式手法〜 まとめ

              2024年読んで印象に残った本(技術書編) - Don't Repeat Yourself
            • じゃあ何すか、COBOL以外では4.8 - 4.7 - 0.1できないってことっすか / ScalaとSpireで安心安全な計算ライフを実現しよう - Lambdaカクテル

              先日こういうツイートが流れてきた。 Q:なぜ金融系では未だにCOBOLが使われるんですか? A:お手元にExcelがありましたら任意のセルに「=4.8-4.7-0.1」って入れてみてください。— 遊撃部長F/S&RWAs (@fstora) 2024年6月6日 Q:なぜ金融系では未だにCOBOLが使われるんですか? A:お手元にExcelがありましたら任意のセルに「=4.8-4.7-0.1」って入れてみてください。 普段我々がゴリゴリ馬車馬のように使っているソフトウェアでよく利用されている浮動小数点型、すなわちfloatやdoubleなどは特定の算術に弱いことが知られている。というかもうこの手の話題はあまりに拡散されてしまったので、なぜかネット民はみんな知っている基礎教養、三毛別羆事件とかデーモンコアみたいな感じになっている。 ちなみにこれはCOBOLかそうではないか、という軸が問題になっ

                じゃあ何すか、COBOL以外では4.8 - 4.7 - 0.1できないってことっすか / ScalaとSpireで安心安全な計算ライフを実現しよう - Lambdaカクテル
              • 2024年末にデザインパターンについて考える - Qiita

                Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? Futureアドベントカレンダーの3日目のエントリーです。昨日は@yamat2667さんのFlutterの記事でした。 デザインパターンというと、普段のプログラミングから一歩踏み込んで設計力を上げたい人が履修すべきコンテンツのように思われているようなツイートなりを見かけます。オブジェクト指向言語全般に使える知識だ、とか、開発者同士のコミュニケーションに使えるぞ、とか、コードの質が上がるぞ、とか。 一方で、パターンを詰め込もうとすると逆にコード量が増えて、パターン由来の変なクラス名が増えたりして、設計が歪むぞ、というのも当初から言われてき

                • 株式会社一休に入社しました - 貳佰伍拾陸夜日記

                  転職のお知らせ、あるいは個人の日記です。 6月から以下のように所属変更となっています。 From 株式会社はてな To 株式会社一休 マネージャではなく、とくに役職のないソフトウェアエンジニアとして働きます。いわゆるIC (individual contributor)というやつです。 きっかけ はてなには新卒として入社して以来11年も勤めて、インターンやアルバイトとして関わった時期から数えると16年になります。出入りの激しいこの業界でずっと1社しか知らずに過ごすのは負い目に感じていました。また、年齢的にも今年で40歳になることもあって、そろそろ転職を経験しておかないとまずいという焦りもありました。 そんなときに、大学の同期でプライベートでも仲良くさせてもらっているid:suzakから声をかけてもらい、ちょっと真剣に転職を考えたのがきっかけでした。 できることではなくやりたいこと はてなで

                    株式会社一休に入社しました - 貳佰伍拾陸夜日記
                  • 新しいチームでTypeScriptに素早くキャッチアップするためにやったこと - KAKEHASHI Tech Blog

                    カケハシのプラットフォームチームでソフトウェアエンジニアをしているすてにゃん (id:stefafafan) です。今回は、私が TypeScript をメイン言語として採用しているチームに参加した際、言語や周辺技術のキャッチアップを行った方法について紹介します。 この記事は秋の技術特集 2024の 3 記事目です。 この記事の想定読者 私が元々持っていたスキルセット 認知負荷の増加 TypeScript 学習のためにやったこと 学習の進め方 テックリードとの 1on1 の中で壁打ちや相談 ペアプログラミング 輪読会 もくもく会 学習コンテンツ O'Reilly Online Learning を使った学習 TypeScript Deep Dive プロを目指す人のための TypeScript 入門 安全なコードの書き方から高度な型の使い方まで type-challenges 公式ドキュメ

                      新しいチームでTypeScriptに素早くキャッチアップするためにやったこと - KAKEHASHI Tech Blog
                    • 日本経済新聞社を退職しました

                      業務委託期間を含めて4年在籍した日本経済新聞社を退職しました。 日経に入るまで 自分が日経に入った理由は3つあり、 そろそろ健康保険が切れそうだったから Web標準への理解が求められる仕事をしたかったから 情報を編纂すること、発信すること自体に興味があり、興味と事業ドメインがマッチするから です。なんと自己中な・・・ 前の会社を辞めてフリーランス(と名乗ってはいたがどちらかというと無職の方が実態には近かった)になったときの話も書いておくと、元々は営業から入社した職場で活躍できず逃げるようにエンジニアになったものの、その道で進んでいこうにも未経験で基礎的な能力が無かったので勉強期間を作りたくなって辞めました。当時社会人を経験して思ったのは、社会では期待される人に成長できる仕事が任されていくので、ブートストラップに失敗した自分はこれから常に不利な戦いを強いられ続けそうだということです。なので勉

                        日本経済新聞社を退職しました
                      • TypeScriptの型と値とバリデーション

                        TypeScript は本質的に自分に型が付与されていると思っているだけの JavaScript です。 いくら型を付与しようが、それが実行時に影響を与えることはありません。 コードレビューをしているとここを誤解している人が本当に多いです。何度も解説しているのですが、なかなか浸透しないので、TypeScript におけるバリデーションという視点で記事を書くことにしました。 あと TS でバリデータ使って色々作ろうとしている友人と、プログラミング始めたてで zod と openapi を使っいる友人がいたので、彼らが想定読者です。 型と値の名前空間 TypeScript 上での名前空間(スコープ)は2つに分類できます。 値: 実行時にランタイム上のメモリに存在するもの 型: 静的解析時にのみ参照可能なもの。コンパイル時に完全に消滅する。 TypeScript は基本的に JavaScript

                          TypeScriptの型と値とバリデーション
                        • プログラマーにとって必須の 15 個のソフトウェアをすべて所有していますか? - Qiita

                          Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? デジタル時代において、プログラマーの役割はますます重要になっています。彼らの使命は、単にコードを書くことだけでなく、無限の可能性に満ちた新しい世界を構築することです。効率性と創造的プロセスの楽しさを高めるためには、適切な開発ツールを選択することが重要です。 ここでは、開発効率を大幅に向上させ、全体のワークフローをスムーズにするための高く評価されているソフトウェアツールをいくつか紹介します。初心者から経験豊富なプロフェッショナルまで、これらのツールは、コードの整理、プログラムのデバッグ、プロジェクト管理、効果的なコラボレーションをサポート

                            プログラマーにとって必須の 15 個のソフトウェアをすべて所有していますか? - Qiita
                          • アナリスト出身の人にバッチ処理を書いてもらう際にレクチャー & サポートしたことメモ - yasuhisa's blog

                            あまりよくある話ではないと思うんですが、アナリスト/Analytics Engineerの人にバッチ処理を書いてもらう機会がありました。基本的にはSQLを普段書かれていて*1、場合によってはTerraformを少し書くこともあるというバックグラウンドの方です。これに対して私はレクチャーやサポートする形になったので、メンター的でどういうことを考えていたかをこのエントリでは書こうと思います。 対象のタスク レクチャーしたこと Step by Stepで実装する APIやjqに慣れる Dockerfileを使って環境構築する 正常系を実装する 適切な関数やクラスに分割する コマンドライン引数や環境変数を使う 型アノテーションを付ける loggerについて知る 異常系を考慮する テストどうする問題 脱線 バッチ処理をアナリスト出身の人に書いてもらうのは適切か? バッチ処理初心者とLLMの付き合い方

                              アナリスト出身の人にバッチ処理を書いてもらう際にレクチャー & サポートしたことメモ - yasuhisa's blog
                            • 関数型まつり:新たな関数型プログラミングのテックカンファレンスを開催します! - 関数型まつり運営ブログ

                              こんにちは!関数型まつり 運営チームの池田です。 このたび、ScalaMatsuriが進化し、新しい関数型プログラミングのカンファレンス「関数型まつり」を開催することをお知らせいたします!🎉 関数型まつりとは? 関数型まつりは、プログラミングにおける「関数型」の思想や技術にフォーカスした新しいテックカンファレンスです。 言語に限定されることなく、あらゆるプログラミング言語の壁を越えて、関数型プログラミングというものについて広く学び共有する場です。たとえば、あなたがHaskellを愛する開発者でも、JavaScriptで関数型っぽく書いているフロントエンドエンジニアでも、あるいは「関数型って興味あるけどよくわからない」という初心者でも、きっとこのイベントで新しい発見があるはずです。 イベント詳細 イベント名 関数型まつり 開催時期 2025年夏頃 開催場所 都内 なぜ「関数型まつり」を今や

                                関数型まつり:新たな関数型プログラミングのテックカンファレンスを開催します! - 関数型まつり運営ブログ
                              • モダンな開発環境のBtoB SaaSアーキテクチャ特集 技術選定のポイントと今後の展望 - Findy Tools

                                ご好評頂いているアーキテクチャ特集の第三弾となる今回は、BtoB SaaSを提供する企業10社にご協力頂き、技術選定のこだわりや今後の展望をご寄稿いただきました。アーキテクチャを通して、各社の事業特性や設計思想にも触れられる内容となっております。※ご紹介は企業名のアルファベット順となっております 株式会社あしたのチーム会員限定コンテンツ無料登録してアーキテクチャを見る あしたのチームは「誰もが "ワクワク" 働ける世界を創る」をビジョンに掲げ、人事評価制度の構築・運用・クラウド化で "人と組織の成長" を支援しています。今回は、2024年4月にリリースされた同社の新サービス:パフォーマンスマネジメントプラットフォーム『Cateras™』のアーキテクチャについてご説明します。 アーキテクチャ選択の背景や意図 サービス立ち上げ初期はエンジニアの数が少ないこともあり、開発メンバーが開発と兼任でイ

                                  モダンな開発環境のBtoB SaaSアーキテクチャ特集 技術選定のポイントと今後の展望 - Findy Tools
                                • ちっちゃなScalaコンテナを作つコツ(6 MiBだぞ) - Lambdaカクテル

                                  おなじみの画像 JavaやScalaといったJVM言語のDockerイメージは、JVMを同梱しなければならない都合で肥大化しがちである。特に何もしなくても、例えば一般的なamazoncorretto:21のイメージサイズは217.7 MBもある。 hub.docker.com これにさらにビルド済みのJARファイルが載ってくるので、結構大きくなってしまうのだ。 そこで、Scalaのコンテナイメージのサイズをなんとか小さくできないかと、考えた。すると、JVMを使ったまま70 MiBくらいに縮めることができた。 github.com コンテナイメージのサイズを小さくするために、何をしたかを書いていく。ちなみに題材としたアプリケーションはちょっとしたHello, Worldをするだけのもので、ライブラリはCatsに依存させた。 JVM使う編 マルチステージビルドを行う Alpineなどの軽量ラン

                                    ちっちゃなScalaコンテナを作つコツ(6 MiBだぞ) - Lambdaカクテル
                                  • AI時代にこそRustだと思う話

                                    はじめに 本記事は AI時代にこそTDDだと思う話 https://zenn.dev/akfm/articles/tdd-with-copilot をパクってオマージュしてタイトルをつけたが、特にそれには言及しない。 本記事はRustを好きで使用している人間が書くポジショントークということを前提に読んでほしい。また、現状でRustを選択するべきだという主張をする記事ではなく、長期的に見るとRustとAIの組み合わせは親和性が高くなるのではないかという個人的予想を記載しているのみである。 本記事は自分用に雑に書いていた箇条書きメモをo1と対話しながら人に見せられる構造にまとめたものであり、文章構成に不自然な点が残っているかもしれない。 背景: AIの発達とプログラム責任の問題 昨今はAIによるプログラム生成の力に拍車がかかっている。いまやAIがあれば、品質度外視ではあるが素人でもコードを生成

                                      AI時代にこそRustだと思う話
                                    • DSL作りたいんだけど何もわからないので識者に教えてもらいたい - Lambdaカクテル

                                      トランスパイルするDSLを作りたいが何を読んだらいいのかまだよくわかっていないので、誰か教えてほしい、という記事です。 あらすじ DSL作りたい あらすじ 最近色々な技術を勉強している。具体的にはロガーの実装を読んだりRefinement Typesの勉強をしたりしている。仕事で必要というのが半分、興味半分といった具合で、素振りも兼ねてやっているので結果的に仕事で役立ったりしている。 個人的には、こういう暮らしの勉強みたいなところだと、本業で勉強しなければならないものに加えて、シナジーが生じるような勉強をしたり購買をすると良いのだろうなと思っている。 たとえばラズパイとかN100のマシンを買ってちょっとしたk3sクラスタを作ってみたりするとクラスタ技術の良い勉強になる。さらに電子工作の勉強をしておくとラズパイと組み合わせてIoT的なこともできるようになる。 そんな中、ずっと自分が勉強したい

                                        DSL作りたいんだけど何もわからないので識者に教えてもらいたい - Lambdaカクテル
                                      • 『関数型ドメインモデリング』はF#の本なのか? - 詩と創作・思索のひろば

                                        関数型ドメインモデリング ドメイン駆動設計とF#でソフトウェアの複雑さに立ち向かおう 日本語版出版に際し、訳者の猪股さんにご恵贈いただきました。ありがとうございます! すでに原著の『Domain Modeling Made Functional』を読んでいて、そのときの感想は以前に書いたとおり。そこからの差分としては、はてな社内でこの本の輪読をはじめたこと。輪読がはじまったその週に日本語版の出版が告知され嘆息する一同でしたが、日本最速で輪読を開始できたのは間違いないと思う。 この本の特徴をひとつ挙げろと言われれば、実装に使われている言語がF#であること、というのが大方の回答になるとおもうが、一方でこの本をやるのにF#を実践する必要はない、と考えている。そういうわけで今回輪読における実装言語にはGoとTypeScriptを指名しており、その後Scala勢力も増えたのだけど、進度的には実際にコ

                                          『関数型ドメインモデリング』はF#の本なのか? - 詩と創作・思索のひろば
                                        • TwitterがScalaを採用した大昔を振り返ってScalaについて色々考えてみる - xuwei-k's blog

                                          雑にtweetしたら多少反応があったというか、新しいもの書くばかりではなく歴史を振り返る方が、場合によっては面白いというかためになるというか、 そもそもプログラミングに限らず現在や未来は過去の延長線上でしかないので、歴史を振り返ることは大事ですね。 先に断っておきますが「X(旧Twitter)」と書くの面倒だし「X」だけだとわかりにくいので、*1単にTwitterと記述すると思います。 あと自分はTwitterの中の人や昔Twitterの中の人だった人と軽く話したことはある程度で、もちろん自分はTwitterの中の人だったことはないです。外から観察した情報を書くだけです。 さて、どこから振り返ればいいのか難しいのと、そもそも歴史そのものを正確に詳細に振り返るというよりは、当時(から現在に至るまで)の雰囲気を伝えることや、それに対する自分なりの解釈などを書きつつ、これの読者に同じように過去を

                                            TwitterがScalaを採用した大昔を振り返ってScalaについて色々考えてみる - xuwei-k's blog
                                          • Lensを始めとするOpticsがプログラミングをどう変えるか / 複雑なデータのモデリングをサボるには - Lambdaカクテル

                                            仕事でLensを使う機会があった。Lensは複雑で入り組んだデータ構造の読み書きに非常に効果的な手法であるにもかかわらず、関数型プログラマ以外にはあまり知られていないように思える。 そこでこの記事では、Lensとは何なのか、なにが良いのか、具体的にどのようなケースでLensが役立ったか、そしてLensの亜種について紹介する。業務でも使ってます! AIくんが考えるLens 前提条件 Lensとは Lensの使いどころ データをモデリングする場合 (とても つらい) Lensを使う場合: Lensはアクセスパスである Lensと愉快な仲間たち Lensの合成 -- andThenでひっつけよう Lens Law Monocleの便利機能 Lensの自動生成でサボる Focusでもっとサボる Lensがもたらしたもの まとめ あわせて読みたい 前提条件 この記事ではLensを紹介する言語としてS

                                              Lensを始めとするOpticsがプログラミングをどう変えるか / 複雑なデータのモデリングをサボるには - Lambdaカクテル
                                            • 筒で理解する反変・共変

                                              この記事では、Java、Scala、TypeScriptなど、サブタイピング(subtyping)をサポートする言語であれば間違いなくサポートしているであろう「反変(contravariant)」・「共変(covariant)」について、視覚的なアナロジーを用いつつ解説したいと思います。コード例を含め全てTypeScriptを前提とした説明ですが、同様の機能を持った言語であれば概ね同じことが言えるはずです。 そもそもサブタイピングとは サブタイピングとは、型と型との間にサブタイプ(subtype)・スーパータイプ(supertype)という関係を定めて、スーパータイプである型の代わりとして、サブタイプである型を利用できるようにする仕組みです。 例えば、TypeScriptではstring型はObject型のサブタイプであるので、次のようにObject型の変数にstring型の値を代入するこ

                                                筒で理解する反変・共変
                                              • ZOZOMETRYでのマルチテナントシステム設計のアプローチ 〜テナント間分離の変遷〜 - ZOZO TECH BLOG

                                                目次 目次 はじめに 我々のチームについて ZOZOMETRYについて ZOZOMETRYでのBtoB開発で取り入れたこと プールモデルによるマルチテナント管理 Cognito+DBによるユーザー情報の管理 RLSによる行単位でのデータアクセス制御 RLSの利用を見送った理由 理由1 : コネクションプールの管理 理由2 : O/RマッパーでのRLSの利用 DDDにおけるテナントのアクセス制御 MySQLを採用した理由 AWS Auroraとの互換性 PostgreSQL独自の機能の不使用 チームの経験と学習コスト 計測プロダクトとの整合性 PostgreSQLを採用したいケース Gitの運用フロー まとめ 最後に はじめに こんにちは。計測プラットフォーム開発本部バックエンドブロックの髙橋です。 先日、ZOZOMETRYという新規サービスをローンチしました。 corp.zozo.com

                                                  ZOZOMETRYでのマルチテナントシステム設計のアプローチ 〜テナント間分離の変遷〜 - ZOZO TECH BLOG
                                                • 型のメンタルモデル | TypeScript入門『サバイバルTypeScript』

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

                                                    型のメンタルモデル | TypeScript入門『サバイバルTypeScript』
                                                  • Stop saying Rust is Complicated

                                                    Stop Saying Rust Is Complicated Rust often gets labeled as “too hard” or “too complicated” because it forces you to think carefully about memory, concurrency, and error handling. But here’s the catch: those aren’t just “Rust problems.” They’re software engineering problems that show up in any sufficiently complex system. Rust’s approach may feel strict, but it’s essentially teaching you fundamenta

                                                    • なっとく!関数型プログラミング を読んで関数型プログラミングを学んだ - Qiita

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

                                                        なっとく!関数型プログラミング を読んで関数型プログラミングを学んだ - Qiita
                                                      • 計測システムにおける計測データの管理方法の進化 - ZOZO TECH BLOG

                                                        はじめに こんにちは。計測プラットフォーム開発本部バックエンドチームの佐次田です。普段はZOZOMATやZOZOMETRYなどの計測技術に関わるシステムの開発、運用に携わっています。 本記事では計測システムにおける計測データの管理方法を進化させた点についてご紹介します。 目次 はじめに 目次 計測プラットフォーム開発本部 バックエンドチームとは ユビキタス言語 3Dデータ 計測箇所 計測値 ZOZOMETRYとは ZOZOMETRYのコア機能 計測箇所のカスタマイズに関する課題 計測処理をサーバーが担当する解決アプローチ システム構成図 既存プロダクトのシステム構成 ZOZOMETRYにおけるシステム構成 システム構成の変更点 計測セットを元に計測箇所をカスタマイズする 計測セットのドメインモデル 計測シーケンスの概要 3Dデータと計測値の保存先を分離する 3DデータをAPIサーバーで管理

                                                          計測システムにおける計測データの管理方法の進化 - ZOZO TECH BLOG
                                                        • 更新可能なデータレイクを構築するテーブルフォーマット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
                                                          • WASM will replace containers

                                                            In the year 2030, no one will remember Kubernetes. PortabilityContainers solved a lot of important problems in software development. We had VMs before containers, but they were not as ergonomic to use. The experience of containers was, by comparison, a true delight. Fast(er) builds, near-instant startup, no virtualization, etc. Now we're in an era where containers are annoying to work with. The pr

                                                              WASM will replace containers
                                                            • Kotlinエバンジェリスト・長澤太郎氏が薦める、Kotlinへの理解を深める3冊

                                                              Kotlinエバンジェリスト・長澤太郎氏が薦める、Kotlinへの理解を深める3冊 2024年9月5日 Kotlinエバンジェリスト 長澤 太郎 Ubie株式会社のソフトウェアエンジニア。「テクノロジーで人々を適切な医療に案内する」をミッションに、日々開発に勤しむ。 本業のかたわら、自称Kotlinエバンジェリストとして、講演や執筆などを通じて啓蒙活動に尽力。国内最大のKotlin技術カンファレンス「Kotlin Fest」の代表を務める。 X: @ngsw_taro 1. 『Kotlinイン・アクション』Dmitry Jemerov 著、Svetlana Isakova 著、長澤 太郎 監修・翻訳、 藤原 聖 監修・翻訳、山本 純平 監修・翻訳、 yy_yank 監修・翻訳 2. 『Kotlinスタートブック』長澤 太郎 著 3. 『Kotlin サーバーサイドプログラミング実践開発』竹

                                                                Kotlinエバンジェリスト・長澤太郎氏が薦める、Kotlinへの理解を深める3冊
                                                              • テストコード品質を高めるためにJS向けMutation Testingライブラリ・Strykerを実戦導入してみた

                                                                はじめに 株式会社hitocolorのKanonとしてはお初にお目にかかります。実は2024年2月からhitocolor様に副業先としてジョインさせていただいてます。 hitocolor様ではkokoroeというeラーニングサービスの開発をお手伝いしています! hitocolor様にjoin後、最初に着手した本格的な案件が今回の記事で書くStrykerの導入です。 Stryker自体は本業[1]の方の社内勉強会で登場したTOPICSで、その時から関心を持っていました。 本業の方ではそれよりも優先度の高いタスクがたくさんだったので導入の目処がなかったのですが、hitocolor様の方で提案したところ「いいね!」とおっしゃっていただき導入する運びになりました。 そして導入にあたっていろいろやったことを、「せっかくなので記事として公開してみよう!」とお話をいただき今に至ります。 Mutation

                                                                  テストコード品質を高めるためにJS向けMutation Testingライブラリ・Strykerを実戦導入してみた
                                                                • 退職予定と仕事募集のお知らせ - xuwei-k's blog

                                                                  多少長くなるかもしれないので、先にまとめというか概要を書いておくと 「2025年3月末で現職を退職することになったけれど、次はフリーランスになろうかなぁ、と思っているけど、詳細決まっていないので退職報告記事、かつ、仕事募集記事だよ!」 という内容です。 2019年2月から、約6年間働いた某社を2025年3月末で退職することになりました。 細かいことを書いておくと、在籍期間としてはこのまま勤めあげれば6年と2ヶ月になるはずで自分としては過去最長です。途中、約半年くらいの育児休暇や、その他数年ごとに約1ヶ月*1もらえる休暇があるなどしたので、そういうのを加味したら実際6年も働いてませんが。 あと入社した時と現在で、統合により厳密には所属している会社名変わってますが、特に自分の視点からはほぼやること変わらなかったので、特に触れません。 特に隠していたわけでもないですが、あまり積極的にまとめて書い

                                                                    退職予定と仕事募集のお知らせ - xuwei-k's blog
                                                                  • プロダクトオーナー目線でふりかえる大規模DBリプレイス - kubell Creator's Note

                                                                    みなさんこんにちは、株式会社kubell(旧Chatwork株式会社)で エンジニアリング・マネージャー(まだ見習い)兼プロダクトオーナー(これも半人前)をやっております、辻(@crossroad0201)です。 この記事は弊社 kubell の Advent Calendar 2024 、12月20日の記事です。 こちらのアドベントカレンダーではエンジニアのみならず、プロダクトマネージャーやデザイナー、弊社のさまざまな職種のメンバーが記事を寄せていますので、ぜひほかの記事も見てみていただければと思います。 この記事では、私の所属チームが今年取り組んだ仕事の中でも最も規模が大きかった「メッセージDBリプレイスプロジェクト」についてふりかえりたいと思います。 技術的なことは後日エンジニアが記事を書いてくれるはず(!)なので、私からはプロダクトオーナー目線、プロジェクト運営の観点から見てみます

                                                                      プロダクトオーナー目線でふりかえる大規模DBリプレイス - kubell Creator's Note
                                                                    • 勉強会タダ飯人間問題を暗号通貨とNFTでなんとかしたい - Lambdaカクテル

                                                                      ジャストアイデアなのでできるかどうかとかは全然考えていない。思い付いたのでメモという感じ。NFTで金儲けみたいな話では一切ないです。そこ勘違いしないよう。 前提 勉強会でタダ飯を喰らう人間がいて迷惑している、という話がITエンジニアならよく知る話だと思うが、これが最近は大きなメディアにも取り上げられだしたようで、一般の人間の識るところとなりつつある。 さいわいにも自分が運営しているScalaわいわい勉強会にはそういう人間は出ていないように思われる(もしかしたら気付いてないだけかも)が、なんでそういう人間が出現するのかというとタダだからである。 タダだから障壁が低くなり、われわれがコストを負担させられるという構造になっている。 有料化すべし そこで、勉強会は有料にするのが良いのではないか、と思っている。有料といっても数万円取るのではなくて、思い留まるくらいであればよい。3000円とか取るのが

                                                                        勉強会タダ飯人間問題を暗号通貨とNFTでなんとかしたい - Lambdaカクテル
                                                                      • プログラミングで気になるあの娘と一夏の青春を送る無料恋愛ノベルゲーム×「初恋プログラミング研究会〜海に行こうよ〜」遊んでみたレビュー

                                                                        少女から出題されるプログラミングの問題を解いていくことで、少女との思い出を増やしていき、一夏の青春を送るノベルゲーム「初恋プログラミング研究会〜海に行こうよ〜」をpaizaがリリースしたので、プログラミング初心者である編集部員が実際にプログラミングの問題を解きながら、少女との仲をじっくりと深めてみました。 初恋プログラミング研究会〜海に行こうよ〜 https://paiza.jp/entry/proken_g paizaのアカウントにログインした状態で、「初恋プログラミング研究会~海に行こうよ~」にアクセスし、「ゲームスタート」をクリックします。paizaのアカウントは新規登録ページから、無料で登録可能です。 「初恋プログラミング研究会~海に行こうよ~」のあらすじはこんな感じ。 高校2年の夏、俺は勇気を出して同じプログラミング研究会に所属する橘まりかを海に誘った。 彼女はいたずらな笑みで

                                                                          プログラミングで気になるあの娘と一夏の青春を送る無料恋愛ノベルゲーム×「初恋プログラミング研究会〜海に行こうよ〜」遊んでみたレビュー
                                                                        • Wvlet: Redesigning 50-Year-Old SQL for Modern Data Analytics | Wvlet

                                                                          We are excited to announce the release of Wvlet version 2024.9, an open-source flow-style query language designed to help users to write efficient queries for SQL engines. You can try Wvlet, pronounced as weave-let, directly in your web browser at Wvlet Playground. The source code of Wvlet compiler is available at GitHub wvlet/wvlet. Why Wvlet?​ At Treasure Data, we process over 3 million SQL quer

                                                                            Wvlet: Redesigning 50-Year-Old SQL for Modern Data Analytics | Wvlet
                                                                          • Software Design総集編で生成AIについての記事を書きました

                                                                            はじめに 10月12日発売の、Software Design総集編【2018~2023】における特集「生成AI時代を生き抜くITエンジニアの生きる技術」で、第1章「プログラミング」を担当させていただきました。 雑誌発売から一ヶ月近く経っているのでやや時期を逸した感もあるのですが、所属会社の名前を出して書いた記事でもあるので、この場を借りて宣伝をさせていただければと思います。 書影と記事抜粋 経緯 私は元々AIについては門外漢なのですが、生成AI(LLM)については特にChatGPTが公開された直後から興味をもちはじめました(辺りがガチの人からするとにわか感が満々ですが)。 特にプログラミング言語処理におけるポテンシャルの高さに魅了され、現在に至るまでChatGPT(OpenAI), Claude(Anthropic), Gemini(Google)など大手のLLMにとどまらずローカルのLL

                                                                              Software Design総集編で生成AIについての記事を書きました
                                                                            • 2024年のはてなスタッフのアウトプットまとめ - Hatena Developer Blog

                                                                              こんにちは、id:onk です。 去年 に引き続き、はてなスタッフの登壇まとめをします。去年は 88 件でしたが、今年は 119 件あるようです。実に 1.3 倍ですね。いや素朴に凄いな。発表の場が増えたのもあるし、発表しようと動いたのもあるなー、とまとめていて思いました。 それでは見ていきましょー。 1/12 ToKyoto.js #02 - Kyoto.js in Tokyo 1/26 Nextbeat Tech Bar:第五回関数型プログラミング(仮)の会 1/30 Hatena Engineer Seminar #28 個人開発編 1/30 Mackerel Drink UP #14 アラート対応やSLI/SLO、エラーバジェットの運用を学ぼう 1/31 hatena.go #1 2/10 YAPC::Hiroshima 2024 2/15 OpenTelemetry Meetup

                                                                                2024年のはてなスタッフのアウトプットまとめ - Hatena Developer Blog
                                                                              • 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
                                                                                • Go で型変換を含んだイテレータの処理をメソッドチェーンっぽく記述する - Unengineered Weblog

                                                                                  この記事は「はてなエンジニア Advent Calendar 2024 - Hatena Developer Blog」の44日目の記事です。 JavaScript や Scala などで配列やリストを処理するときメソッドチェーンを使って書くことが多い。例えば次のコードは JavaScript のコードである。 type thing = { count: number; name: string; }; const somethings: thing[] = ...; somethings .filter(x => x.count > 10) .sort((a, b) => a.count - b.count) .map(x => x.name) Method chaining - Wikipedia から引用して加筆。 このコードにおいて map が行う型の変換に注目してほしい。 thi

                                                                                    Go で型変換を含んだイテレータの処理をメソッドチェーンっぽく記述する - Unengineered Weblog