並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 221件

新着順 人気順

java list of mapの検索結果1 - 40 件 / 221件

  • 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`

    • Preparing for the end of third-party cookies  |  Privacy Sandbox

      Some Privacy Sandbox technologies are being phased out. See our Update on Plans for Privacy Sandbox Technologies. Privacy Sandbox feature status provides more information about the status of individual APIs and platform features. Send feedback Preparing for the end of third-party cookies Stay organized with collections Save and categorize content based on your preferences. If your site uses third-

        Preparing for the end of third-party cookies  |  Privacy Sandbox
      • 歴史・年表でみるAWS全サービス一覧 -アナウンス日、General Availability(GA)、AWSサービス概要のまとめ- - NRIネットコムBlog

        小西秀和です。 Amazon Web Services(AWS)に関する情報や魅力を様々な観点から記事にしてみていますが、技術史が好きなこともあって今回はAWSサービスの発表の歴史を年表でまとめました。 AWSからもWhat's Newとして公式アナウンスは発表されていますが、アナウンス日、GA日(一般提供開始日)、サービス名、サービス概要といった情報に圧縮して時系列でAWSサービス一覧を一枚もので確認できる記事が今まで欲しかったので自分で作成してみることにしました。 AWS全サービスの歴史年表の作成方法 AWS全サービスの歴史年表の対象となるAWSサービスは次の手順で選定しました。 AWSサービス・製品一覧「Cloud Products(英語版)」にあるサービスのうち「~ on AWS」といったサードパーティー製品がメインとなるサービスを除いたリストを作成 AWSサービス・製品一覧に記載

          歴史・年表でみるAWS全サービス一覧 -アナウンス日、General Availability(GA)、AWSサービス概要のまとめ- - NRIネットコムBlog
        • 業務アプリケーション開発にGoを採用する理由

          この記事は MICIN Advent Calendar 2022 の24日目の記事です。 前回は熊沢さんの2つの新規事業立ち上げで経験したタイプ別MVP検証の進め方でした。 はじめに 本記事では、業務アプリケーションのバックエンドとしてGoを採用することによるメリットを、実際の業務経験を振り返りつつ考察してみます。 近年では多くの企業でGoが採用されています。その採用理由は、「並行処理をたくさん行いたいから」「学習コストが低いから」「フットプリントが小さくコンテナベースのプラットフォームに向いてるから」「Googleが使ってるから」「高速だから」といったところが挙げられるんじゃないでしょうか。 一方で、単なるモノリスなAPIとしてGoを選ぶ必要はないんじゃないのか、といった声もよく聞きます。「初期フェーズはスピード重視でRuby on Railsが最強だ」「枯れた技術であるJava + S

            業務アプリケーション開発にGoを採用する理由
          • 【2020年】CTF Web問題の攻撃手法まとめ - こんとろーるしーこんとろーるぶい

            はじめに 対象イベント 読み方、使い方 Remote Code Execution(RCE) 親ディレクトリ指定によるopen_basedirのバイパス PHP-FPMのTCPソケット接続によるopen_basedirとdisable_functionsのバイパス JavaのRuntime.execでシェルを実行 Cross-Site Scripting(XSS) nginx環境でHTTPステータスコードが操作できる場合にCSPヘッダーを無効化 GoogleのClosureLibraryサニタイザーのXSS脆弱性 WebのProxy機能を介したService Workerの登録 括弧を使わないXSS /記号を使用せずに遷移先URLを指定 SOME(Same Origin Method Execution)を利用してdocument.writeを順次実行 SQL Injection MySQ

              【2020年】CTF Web問題の攻撃手法まとめ - こんとろーるしーこんとろーるぶい
            • MySQL のインデクスが利用されないクエリ等を自動検出する ExplainPolice の運用について

              LINE株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。 LINEヤフー Tech Blog LINE 株式会社 B2B Platform 開発担当フェローの Matsuno です。 LINE の Business Platform ではメインのデータベースとして MySQL を利用しています。MySQL は非常に高速に動く OSS の RDBMS なので、とても便利に利用させていただいております。 MySQL はとても高速なのですが、うっかり index を使わないクエリを発行した場合に実行がとても遅くなってしまうことがあります。LINE の Business Platform はとても多くのお客様が利用されるので、B2B としては異例なほどトラフィックが多く、少し遅いクエリが発生した結果としてサイト全体がダウンして

                MySQL のインデクスが利用されないクエリ等を自動検出する ExplainPolice の運用について
              • 関数型プログラミングはまずは純粋関数型言語を用いて、考え方から理解しよう

                この記事は、関数型プログラミングはまず考え方から理解しよう の記事を純粋関数型言語Elmで書き換え、一部の文章について批判的に言及させていただいた記事になります。この記事を書こうと思ったきっかけとしては、今回参考にさせていただきた記事が過去に書かれたものにも関わらず、今に渡っても見られていそうなこと。未だにパラダイムの理解に関する誤解が多く散見されること。改めて純粋関数型言語の実用性・有用性について、見直されるべきだと思い、この記事を執筆させていただきました。 次のステップアップ記事は、[超入門] FizzBuzzで考える関数型プログラミング学習を純粋関数型言語でやる理由です。 はじめに、この記事の主張を結論としてまとめておきます。 対比すべきは、関数型プログラミングとオブジェクト指向プログラミングではなく、関数型プログラミングと手続き型プログラミングである 関数型プログラミングの考えを学

                  関数型プログラミングはまずは純粋関数型言語を用いて、考え方から理解しよう
                • Rust concepts I wish I learned earlier

                  This past month, I have been enthralled by the Rust programming language given its unique edge for writing memory-safe, modern programs. Over the years, several languages have emerged as the most preferred by engineers to write resilient, backend software. The tides have shifted from Java/C++ into Go and Rust, which combine decades of programming language theory to build tools that are effective i

                    Rust concepts I wish I learned earlier
                  • Go: A Documentary

                    The historical release notes may helpful for general information: doc/go1release Go Release History doc/go1prerelease Pre-Go 1 Release History doc/go0release Weekly Release History (Before Go 1) Language Design General design/go0initial Rob Pike, Robert Griesemer, Ken Thompson. The Go Annotated Specification. Mar 3, 2008. design/go0spec0 The Go Programming Language. Language Specification. Mar 7,

                    • AWS Black Belt Online Seminar 一覧リストを作成しました (2025.7.18現在) | DevelopersIO

                      AWS Black Belt Online Seminar の全リストを一つページにまとめてみました。 AWSの学習に活用してください。 AWSの学習に最もオススメのコンテンツがAWS Black Belt Online Seminar(以下、Black Belt と略します)です。10年以上前から AWS Japan のみなさんより提供されてきて、AWSを学ぶエンジニアにとってバイブルのような存在です。私を含め、クラスメソッドの多くのエンジニアも、Black Belt にお世話になってきました。 以前は Black Belt のコンテンツ数もそこまで多くなく、1つのページに全リストが表示できていました。しかし、現在は複数ページで絞り込みながら目的のコンテンツを探すスタイルに変更されています。 目的を持って探す場合は便利なのですが、私のように全体に目を通しながら興味のある物を見つけるような

                        AWS Black Belt Online Seminar 一覧リストを作成しました (2025.7.18現在) | DevelopersIO
                      • ダイナミックスコープ再考 - 一休.com Developers Blog

                        一休.com Advent Calendar 2025の25日目の記事です。 一休.com レストランの開発を担当している恩田 @takashi_ondaです。 最近はあまり聞かれることのないダイナミックスコープの話をしてみたいと思います。 はじめに 現代のプログラミング言語ではレキシカルスコープがあまりに当たり前になってしまっていて、ダイナミックスコープという概念自体を聞いたことがない、という人も多いのではないかと思います。 プログラミング言語の歴史を学ぶ際に少し触れられている程度で、実際、手元の『コンピュータプログラミングの概念・技法・モデル』を繙いてみても、900ページ近い大著にもかかわらずダイナミックスコープについての言及は1ページにも満たないほどです。 このようにダイナミックスコープは歴史の中で消えていった概念のように見えます。ですが、用語としては廃れた一方で、今日でも似た仕組み

                          ダイナミックスコープ再考 - 一休.com Developers Blog
                        • 関数型はプログラミングスタイル

                          「関数型プログラミングは関数型言語じゃないとできないんでしょ?」という質問をたまに受けます。答えは「いいえ」です。もちろん、言語のサポートはあれば越したことはないです。 そもそも命令型及び関数型はプログラミングスタイルです。そして、命令型と関数型の間は0/1ではなく、グラデーションがあります。 なので、関数型プログラミングは関数型言語以外でも使えますし、プログラムをよい設計へ導く考え方ですよ、というのがこの記事の主張です。コード例も交えて説明してみます。 関数型へのアプローチ ロジックを書くとき 可変の変数(var)を使わず、不変の変数(val)を使う 可変のオブジェクト(mutable)を使わず、不変のオブジェクト(immutable)を使う voidやUnitなどの戻り値のない関数は使わず、戻り値を返す(高階)関数を使う 関数を定義するとき 参照透明な関数を定義する 必ず意味のある戻り

                            関数型はプログラミングスタイル
                          • BigQueryのアンチパターン認識ツールで独自のSQLリンターを開発しました - ZOZO TECH BLOG

                            こんにちは、株式会社ZOZOで25卒の内定者アルバイトをしている村井です。この記事では業務で取り組んでいる、BigQueryで使うSQLのリンターの作成方法について紹介します。 目次 目次 課題と解決策 課題 解決策 BigQueryのアンチパターン認識ツール ミニマムな使い方 日本語がSQL内に含まれている際の問題 アンチパターンを定義する リンターとしてBigQueryのアンチパターン認識ツールを使用する際に生じる課題と解決策 構成 APIサーバ化 Chrome拡張 動作例 まとめ 課題と解決策 課題 社内では様々なチームがSQLを書いており、動作はするものの良くない書き方をしている場合があります。そういった構文を検知して、前もって修正する必要があります。 解決策 BigQueryのコンソールで入力されたSQLの不正構文を検知、修正案を提示できるようにしました。 BigQueryのアン

                              BigQueryのアンチパターン認識ツールで独自のSQLリンターを開発しました - ZOZO TECH BLOG
                            • 何問解ける?Javaクイズ!(全13問) #techtekt Q - techtekt(テックテクト) | パーソルキャリアのエンジニアブログ

                              みなさまこんにちは。techtekt編集部です。 パーソルキャリアのエンジニアやデータサイエンティストなどが出題する「#techtekt Q」 前回は、TypeScript編をお届けしました。 techtekt.persol-career.co.jp 第2弾は、主に転職サービス「doda」やハイクラス転職サービス「iX」などの開発の主要言語であるJavaに関するクイズをプロダクト開発統括部 佐藤 政美さんからの出題です。 さぁ、あなたは何問解けますか??? 1問目 次のプログラムをコンパイル&実行するとどのような結果になるでしょうか? public class Quiz01 { public static void main(String[] args) { boolean b = true; if (b = false) { System.out.println("A"); } else

                                何問解ける?Javaクイズ!(全13問) #techtekt Q - techtekt(テックテクト) | パーソルキャリアのエンジニアブログ
                              • GitHub - modelcontextprotocol/servers: Model Context Protocol Servers

                                Official integrations are maintained by companies building production ready MCP servers for their platforms. 21st.dev Magic - Create crafted UI components inspired by the best 21st.dev design engineers. 2slides - An MCP server that provides tools to convert content into slides/PPT/presentation or generate slides/PPT/presentation with user intention. ActionKit by Paragon - Connect to 130+ SaaS inte

                                  GitHub - modelcontextprotocol/servers: Model Context Protocol Servers
                                • プロと読み解くRuby 4.0 NEWS - STORES Product Blog

                                  プロと読み解くRuby 4.0 NEWS テクノロジー部門技術推進グループの笹田(ko1)と遠藤(mame)です。Ruby (MRI: Matz Ruby Implementation、いわゆる ruby コマンド) の開発をしています。お金をもらって Ruby を開発しているのでプロの Ruby コミッタです。 本日 12/25 に、恒例のクリスマスリリースとして、Ruby 4.0.0 がリリースされました(Ruby 4.0.0 リリース | Ruby)。今年も STORES Product Blog にて Ruby 4.0 の NEWS.md ファイルの解説をします(ちなみに、STORES Advent Calendar 2025 の記事になります。他も読んでね)。NEWS ファイルとは何か、は以前の記事を見てください。 プロと読み解く Ruby 2.6 NEWS ファイル - クック

                                    プロと読み解くRuby 4.0 NEWS - STORES Product Blog
                                  • 2023年版!エンジニア必見のチートシート集 - Qiita

                                    2. 機械学習・AIチートシート まずは機械学習やAI開発に関わるチートシートからです! Machine Learning Cheat Sheet | DataCamp 主要な機械学習アルゴリズム、その利点と欠点、および使用ケースをガイドするものです。初心者からエキスパートまで、誰でも役立つリソースです。 機械学習アルゴリズム チートシート MicrosoftのAzureが提供している機械学習アルゴリズムに関するチートシートです。 TensorFlow Cheat Sheet https://zerotomastery.io/cheatsheets/tensorflow-cheat-sheet/ 機械学習と人工知能のためのオープンソースライブラリ、TensorFlowのチートシートです。基本的な概念やベストプラクティスがまとめられています。 (メールアドレスでサブスクライブするとPDFがダ

                                      2023年版!エンジニア必見のチートシート集 - Qiita
                                    • awesome-scalability

                                      The Patterns of Scalable, Reliable, and Performant Large-Scale Systems View the Project on GitHub View On GitHub An updated and organized reading list for illustrating the patterns of scalable, reliable, and performant large-scale systems. Concepts are explained in the articles of prominent engineers and credible references. Case studies are taken from battle-tested systems that serve millions to

                                      • タイムゾーン呪いの書 (Java 編)

                                        「タイムゾーン呪いの書」は、もともと 2018年に Qiita に投稿した記事でしたが、大幅な改訂を 2021年におこない、同時にこちらの Zenn に引っ越してきました。この改訂で記事全体が長大になったので、「知識編」・「実装編」・「Java 編」と記事を分けることにしました。 この「Java 編」は、「知識編」と「実装編」に続く最終章です。本記事全体を通して、「知識編」「実装編」を読んでいることを前提にしているので、ご注意ください。 はじめに 「知識編」と「実装編」では、言語やソフトウェア特有の話にはあまり踏み込まずに、時刻とタイムゾーンについてなるべく一般論を書いてきました。そんな中でも Java の JSR 310: Date and Time API は何度も参照しています。 JSR 310 は時刻やタイムゾーンという概念をけっこう上手に一般化していて、一般論の検討にもいいモデル

                                          タイムゾーン呪いの書 (Java 編)
                                        • 検索エンジンPyTerrierを使った日本語検索パイプラインの実装 - エムスリーテックブログ

                                          エムスリーエンジニアリンググループ AI・機械学習チームでソフトウェアエンジニアをしている中村(po3rin) です。検索とGoが好きです。 今回は社内でPyTerrierを採用して文書検索BatchをPythonで実装したので、PyTerrierの紹介とPyTerrierで日本語検索を実装する方法を紹介します(日本語でPyTerrierを扱う記事は多分初?)。 PyTerrierとは 弊社でのPyTerrier利用 PyTerrierで日本語検索 Phrase Queryの注意点 まとめ We're hiring !!! PyTerrierとは Terrierのロゴ PyTerrierは、Pythonでの情報検索実験のためのプラットフォームです。 JavaベースのTerrierを内部的に使用して、インデックス作成と検索操作を行うことができます。基本的なQuery RewritingやBM

                                            検索エンジンPyTerrierを使った日本語検索パイプラインの実装 - エムスリーテックブログ
                                          • Java の CLI アプリケーション用フレームワーク picocli はミスタイプ時にサジェスチョンを出してくれる - Mitsuyuki.Shiiba

                                            長くなっちゃったから最初にまとめ まとめ picocli は便利。 デフォルトでサジェスチョンの機能がついている。なので、オプションやサブコマンドの定義だけしておけば、ミスタイプしたときにサジェスチョンを出してくれる。 オプションの場合は、先頭2文字が一致するオプション一覧 サブコマンドの場合は、先頭2文字じゃなくて、似たものを出してくれる こんなつぶやきを見かけて がくぞさんのこんなつぶやきを見かけて そういえばCLIのオプションパーザのライブラリは多種あるけど、定義されてないオプションが指定されたときにオプション名から類推して正しくはコレじゃない?ってサジェストしてくれるような機構まで盛り込んだライブラリってあるのかな?— がくぞ (@gakuzzzz) August 11, 2021 あぁ、たしかにそういうのフレームワークに含まれてたら便利だなー、picocli だったらありそうだけ

                                              Java の CLI アプリケーション用フレームワーク picocli はミスタイプ時にサジェスチョンを出してくれる - Mitsuyuki.Shiiba
                                            • How modern browsers work

                                              Note: For those eager to dive deep into how browsers work, an excellent resource is Browser Engineering by Pavel Panchekha and Chris Harrelson (available at browser.engineering). Please do check it out. This article is an overview of how browsers work. Web developers often treat the browser as a black box that magically transforms HTML, CSS, and JavaScript into interactive web applications. In tru

                                                How modern browsers work
                                              • LogLog Games

                                                The article is also available in Chinese. Disclaimer: This post is a very long collection of thoughts and problems I've had over the years, and also addresses some of the arguments I've been repeatedly told. This post expresses my opinion the has been formed over using Rust for gamedev for many thousands of hours over many years, and multiple finished games. This isn't meant to brag or indicate su

                                                • Lessons from Writing a Compiler

                                                  The prototypical compilers textbook is: 600 pages on parsing theory. Three pages of type-checking a first-order type system like C. Zero pages on storing and checking the correctness of declarations (the “symbol table”). Zero pages on the compilation model, and efficiently implementing separate compilation. 450 pages on optimization and code generation. The standard academic literature is most use

                                                  • Google I/O 2021で驚いたところ - Qiita

                                                    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? Androidのエンジニア (Google Developers Expert for Androidでもある) なので、Androidが多めです。 特に驚いたところを太字で書いています。驚いたところもAndroidのものが多めです。 あとからもう一度見たものに☆をつけます。 なにか間違っているところなどあれば修正するので教えて下さい (他は割とてきとうにしか見れていないです) Keynote 以下に9分でまとまっている動画があるので見てみるとテクノロジーの進化を感じられて楽しいです! Smart canvas Notionみたいなもの

                                                      Google I/O 2021で驚いたところ - Qiita
                                                    • GitHub Actions Supply Chain Attack: A Targeted Attack on Coinbase Expanded to the Widespread tj-actions/changed-files Incident: Threat Assessment (Updated 4/2)

                                                      GitHub Actions Supply Chain Attack: A Targeted Attack on Coinbase Expanded to the Widespread tj-actions/changed-files Incident: Threat Assessment (Updated 4/2) Executive Summary Update April 2: Recent investigations have revealed preliminary steps in the tj-actions and reviewdog compromise that were not known until now. We have pieced together the stages that led to the original compromise, provid

                                                        GitHub Actions Supply Chain Attack: A Targeted Attack on Coinbase Expanded to the Widespread tj-actions/changed-files Incident: Threat Assessment (Updated 4/2)
                                                      • プログラムの内容ではChatGPTのトークン数はどのようになるか? - Taste of Tech Topics

                                                        枝差ししていたバジルが順調に成長して切り出し元の株と代替わりをしました、またバジル生活が始まりそうな菅野です。 皆さんはChatGPTのAPIを利用していますでしょうか? まだ利用していない、利用方法がわからないという方は以下の記事をご覧ください。 acro-engineer.hatenablog.com APIの仕組みの中でも直感的にわかりづらいトークン数について、今回はさらに深堀していこうと思います。 トークンとは、Chat Completions API等OpenAIが提供するAPIの処理単位です。 入力、出力共にByte Pair Encodingした結果を1トークンとして処理します。 英語の場合は通常1単語1トークン、日本語の場合は1文字でも複数トークン換算される場合がある模様です。 実際に利用する文章のトークン数が事前に知りたい場合は以下のページで確認することができます。 ht

                                                          プログラムの内容ではChatGPTのトークン数はどのようになるか? - Taste of Tech Topics
                                                        • Scala 3のマクロTips 100連発 - 貳佰伍拾陸夜日記

                                                          この記事はScala Advent Calendar 2023の12日目だ! Scala 3のマクロを書く上で役に立つ, メタれたTipsたちを紹介するぜ! 勢いに任せて書いていくからサンプルコードがちゃんと動かなかったらごめんな. 一応, Scala 3.3.1を想定しているぞ. マクロ 1. メソッドをマクロとして定義する 2. マクロの本体を実装する 3. マクロ実装の記法の意味を知る 4. マクロで生成されるコードの内容を確認する 5. 引数の式を評価せずに使う 6. 返り値の型をマクロの実行結果によって決める 7. マクロの返り値の型を制限する 8. マクロの返り値の型を書かない 9. マクロで計算された型をテストする 10. マクロで計算された型をScalaTestでテストする 式 11. 定数式の値を得る 12. 定数式でなければコンパイルエラーにする 13. 定数値の式を作

                                                            Scala 3のマクロTips 100連発 - 貳佰伍拾陸夜日記
                                                          • Claude Mythos Preview \ red.anthropic.com

                                                            Assessing Claude Mythos Preview’s cybersecurity capabilities April 7, 2026 Nicholas Carlini, Newton Cheng, Keane Lucas, Michael Moore, Milad Nasr, Vinay Prabhushankar, Winnie Xiao Hakeem Angulu, Evyatar Ben Asher, Jackie Bow, Keir Bradwell, Ben Buchanan, David Forsythe, Daniel Freeman, Alex Gaynor, Xinyang Ge, Logan Graham, Kyla Guru, Hasnain Lakhani, Matt McNiece, Mojtaba Mehrara, Renee Nichol, A

                                                            • RubyのGVLを消し去りたいあなたへ(翻訳)|TechRacho by BPS株式会社

                                                              概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: So You Want To Remove The GVL? | byroot’s blog 原文公開日: 2025/01/29 原著者: byroot -- Railsコアコミッター、Rubyコミッターであり、ShopifyのRuby/Railsインフラチームのシニアスタッフエンジニアです 日本語タイトルは内容に即したものにしました。 GVLは「グローバルVMロック」の略ですが、「ジャイアントVMロック」とされることもあります。 参考: Rubyの(グローバル)VMロックをトレースする(翻訳) 参考: スレッド (Ruby 3.4 リファレンスマニュアル) 私がやりたいのは、Pitchforkに関する記事を書いて、これがどんな理由でできたのか、なぜ現在のような形になったのか、そして今後どうなるのかについて説明することです。しかし

                                                                RubyのGVLを消し去りたいあなたへ(翻訳)|TechRacho by BPS株式会社
                                                              • Seeing through hardware counters: a journey to threefold performance increase | by Netflix Technology Blog | Nov, 2022 | Netflix TechBlog

                                                                By Vadim Filanovsky and Harshad Sane In one of our previous blogposts, A Microscope on Microservices we outlined three broad domains of observability (or “levels of magnification,” as we referred to them) — Fleet-wide, Microservice and Instance. We described the tools and techniques we use to gain insight within each domain. There is, however, a class of problems that requires an even stronger lev

                                                                  Seeing through hardware counters: a journey to threefold performance increase | by Netflix Technology Blog | Nov, 2022 | Netflix TechBlog
                                                                • Prototyping in Rust | corrode Rust Consulting

                                                                  Programming is an iterative process. As much as we would like to come up with the perfect solution from the start, it rarely works that way. Good programs often begin as quick prototypes. While many experiments remain prototypes, the best programs can evolve into production code. Whether you’re writing games, CLI tools, or designing library APIs, prototyping helps tremendously in finding the best

                                                                    Prototyping in Rust | corrode Rust Consulting
                                                                  • 缶つぶし機とソフトウェア移行技術 - Refactoring to Rust の読書感想文 - じゃあ、おうちで学べる

                                                                    はじめに ——あるいは、「知っている」と「理解している」の間 Rustのことは、知っていた。学習もしていた。実務でも使っていた。 でも、それは知っているつもりだった。 知ってるつもり 無知の科学 (ハヤカワ文庫NF) 作者:スティーブン スローマン,フィリップ ファーンバック早川書房Amazon 日々Rustで開発し、BoxとRcとArcを使い分け、tokio::spawnでタスクを生成し、?演算子を当たり前のように書いている。FFI?PyO3使えばいいでしょ。WebAssembly?wasm-bindgenがあるじゃない。技術的には、確かに「使える」レベルにはあった。 でも、心のどこかで感じていた違和感があった。 オートバイのエンジンを分解できる人と、エンジンが動く原理を理解している人は違う。コードが動くことと、なぜそう書くべきかを理解することも違う。私は前者だった。メカニックではあった

                                                                      缶つぶし機とソフトウェア移行技術 - Refactoring to Rust の読書感想文 - じゃあ、おうちで学べる
                                                                    • クラスが増えても大丈夫!成長するソフトウェアを支えるリファクタリングの技術 - BIGLOBE Style | BIGLOBEの「はたらく人」と「トガッた技術」

                                                                      開発部門(基盤本部)でエンジニアの育成を担当している高玉です。 基盤本部ではさまざまな勉強会を開催しています。先日も、BIGLOBE Styleでその様子をご紹介しました。 style.biglobe.co.jp 「クラスを増やすの、怖くないですか?」 オブジェクト指向プログラミング(OOP)を学んでいた時に聞かれたことです。業務ではJavaやドメイン駆動設計を活用しているので、クラスベースのOOPが題材になることが多いのです。OOPに慣れていない人からすると、クラスの数が増えることで全体を把握しづらくなったり、適切なクラスを見つけるのが大変になりそう、と感じるそうです。 「大丈夫!クラスを増やしたほうが楽になることがあるよ!」 と伝えたくて、この記事を書かせていただきました。何が楽になるのでしょう?それは、ソースコードを読むこと、です。「クラスを増やすと、ソースコードを読むのが楽になる?

                                                                        クラスが増えても大丈夫!成長するソフトウェアを支えるリファクタリングの技術 - BIGLOBE Style | BIGLOBEの「はたらく人」と「トガッた技術」
                                                                      • ScalaのビルドツールMillが生成するUberjarはZIPファイルの面白仕様を使ってシェルから直接実行できるようになっている - Lambdaカクテル

                                                                        プログラミング言語Scalaで最もよく使われているビルドツールといえばsbtだ。起動しっぱなしのインタラクティブ仕様なsbtがやや鈍重なきらいがある一方、もう1つのビルドツールであるMillが開発されており、こちらではnpmのようなシェル単位の操作体系を指向している。 https://mill-build.com/mill/Intro_to_Mill.htmlmill-build.com 単にコマンド体系のみならず、Millには他にも色々と面白い機能がある。例えばsbtと違って標準でassembly、すなわちUberjarへのパッケージング機能が搭載されているという点がありがたい。このUberjarを作る機能に面白い仕組みが盛り込まれていたので紹介するというエントリ。 謎の実行権限 中身を覗く ZIPは任意の場所に任意のデータを封入できる 追記 追記(2025-01-06) さて、JVM言

                                                                          ScalaのビルドツールMillが生成するUberjarはZIPファイルの面白仕様を使ってシェルから直接実行できるようになっている - Lambdaカクテル
                                                                        • Announcing TypeScript 5.2 - TypeScript

                                                                          Today we’re excited to announce the release of TypeScript 5.2! If you’re not familiar with TypeScript, it’s a language that builds on top of JavaScript by making it possible to declare and describe types. Writing types in our code allows us to explain intent and have other tools check our code to catch mistakes like typos, issues with null and undefined, and more. Types also power TypeScript’s edi

                                                                            Announcing TypeScript 5.2 - TypeScript
                                                                          • I have written a JVM in Rust

                                                                            Lately I've been spending quite a bit of time learning Rust, and as any sane person would do, after writing a few 100 lines programs I've decided to take on something a little bit more ambitious: I have written a (toy) Java Virtual Machine in Rust. 🎉 With a lot of originality, I have called it rjvm. The code is available on GitHub. I want to stress that this is a toy JVM, built for learning purpo

                                                                            • 大奥を観る | Netflix (ネットフリックス) 公式サイト

                                                                              '); doc.close(); } if (!doc) throw Error('base not supported'); var baseTag = doc.createElement('base'); baseTag.href = base; doc.getElementsByTagName('head')[0].appendChild(baseTag); var anchor = doc.createElement('a'); anchor.href = url; return anchor.href; } finally { if (iframe) iframe.parentNode.removeChild(iframe); } }()); } // An inner object implementing URLUtils (either a native URL // ob

                                                                                大奥を観る | Netflix (ネットフリックス) 公式サイト
                                                                              • マルチプロジェクト構成リポジトリにおいて変更の影響を受けるプロジェクトを検出する - Repro Tech Blog

                                                                                どうも、Repro Core Unit に所属している村上です。 Repro では現在、20 を超える Kafka Streams アプリケーションが稼働しています。 その中の半分くらいが Repro システムの共通基盤を構成する Kafka Streams アプリケーションであり、それらの運用は Repro Core が持つ責務の 1 つとなっています。 この共通基盤となる Kafka Streams アプリケーション群は、Gradle のマルチプロジェクト構成になっていてコードベースはモノレポで管理されています。 本稿では、この構成におけるデプロイ性の課題とそれに対するアプローチの話をします。 ディレクトリ構造 共通基盤のコードは以下のようなディレクトリ構成になっています。 . ├── Base ├── Deployments A │ └── Kafka Streams Applica

                                                                                  マルチプロジェクト構成リポジトリにおいて変更の影響を受けるプロジェクトを検出する - Repro Tech Blog
                                                                                • `X-Forwarded-For`ヘッダからクライアントのIPアドレスを取得する - Magnolia Tech

                                                                                  2022/7/24: Plack::Middleware::ReverseProxyが、X-Forwarded-Forをサポートしていますよ、と教えていただいたので、記載を修正しました。 @karupanerura++ Scalatra 3.0.0-M1がリリースされた。Scala3対応だ、めでたい。 github.com 最近Scalatraへあまり貢献できていなかったので、いくつかのコンパイル時の警告を消すPRを出した。コードを見直す中で、ふとX-Forwarded-ForヘッダからクライアントのIPアドレスを取得する箇所が目にとまった。 /** * The remote address the client is connected from. * This takes the load balancing header X-Forwarded-For into account *

                                                                                    `X-Forwarded-For`ヘッダからクライアントのIPアドレスを取得する - Magnolia Tech