並び順

ブックマーク数

期間指定

  • から
  • まで

361 - 400 件 / 4087件

新着順 人気順

algorithmの検索結果361 - 400 件 / 4087件

  • 世界1位取った後3年間オセロAIを作り続けたらナニモワカラナクなってチョットダケデキルようになった話 - Qiita

    2021年、ふとしたきっかけでオセロAIを作り始め、オセロAIコンテストに作ったAIを提出し、なんやかんやあって半年かけてそのコンテストで世界1位になりました。 それで満足…?と思いきや、全然満足せず、コンテスト関係なしにオセロAIを作って早3年。この記事ではオセロAIが色々なところに私を連れて行ってくれた話と、オセロAIが深いという話をします。 この記事は2年ほど前に書いていっぱい読んでいただけた以下の記事「カンゼンニリカイシタ話」の続編、みたいな立ち位置です。単体で読んでも、以下の記事と合わせて読んでも楽しめます。 世界1位からさらに高みを目指す 私が参加したオセロAIのコンテスト(CodinGame Othello)は、コンテストという特性上、かなり厳しい制約が設けられていました。例えば着手する時間です。これは1手あたり0.15秒以下でないといけません。また、コード長にも制限があり

      世界1位取った後3年間オセロAIを作り続けたらナニモワカラナクなってチョットダケデキルようになった話 - Qiita
    • 自然言語系AIサービスと著作権侵害|知的財産・IT・人工知能・ベンチャービジネスの法律相談なら【STORIA法律事務所】

      第1 はじめに 自然言語処理技術の発展に伴い、自然言語AIを利用したサービスが大変盛り上がっています。 たとえば、検索、要約、翻訳、チャットボット、文章の自動生成、入力補完などのサービスで、近いところで有名なのは、2020年にOpenAIが発表した「GPT-3」ですかね。これは約45TBにおよぶ大規模なテキストデータを学習し、あたかも人間が書いたような文章を自動で生成することが可能な自然言語モデルです。 【参考リンク】 自然言語処理モデル「GPT-3」の紹介 進化が止まらない自然言語処理技術ですが、事業者が自然言語AIを利用したサービス(*ここでは、データの処理がクラウド上で自動的に行われるサービスを前提とします)を提供する際に検討しなければならないことは、大きく分けると、学習済みモデルの構築フェーズの問題と、モデルを利用したサービス提供フェーズに関する問題に分かれます。 このうち、モデル

        自然言語系AIサービスと著作権侵害|知的財産・IT・人工知能・ベンチャービジネスの法律相談なら【STORIA法律事務所】
      • 五次元チェスのもう少し詳しい話 - 小文化学会の生活

        五次元チェス、あるいは5D Chessというゲームがある。正式には5D Chess With Multiverse Time Travelという名前だ。 2020年の7月にリリースされたこのゲームは、日本語でもいくつかの紹介記事*1*2*3*4 が書かれ、Twitterでも何度か見かけた記憶があるので、それで知った人も多いのではないだろうか。 おそらく、ほとんどの人はこのゲームのコンセプトを知って面白いなと思い、しかし、それだけだっただろう。数%の人は購入を検討したかもしれないが、実際に購入したのは私のようなよっぽどの物好きだけに違いない。 これはいたって自然な流れであり、ネットではよくある話だ。しかし、実際に購入して遊んでみた結論として、このままで終わらせるのは少しもったいないなと私は思った。だから今この記事を書いている。要するに、この記事の目的は、もう少し詳細に五次元チェスを紹介するこ

          五次元チェスのもう少し詳しい話 - 小文化学会の生活
        • アニメーションをスムーズに見せるためのテクニック「指数平滑法」とはどんなものなのか?

          グラフィック系の開発者であるニキータ・リシッツァ氏が、「自身のプロダクトのあらゆる場所で使用している」と述べるお気に入りのテクニックである「指数平滑法」について解説を投稿しました。 My favourite animation trick: exponential smoothing | lisyarus blog https://lisyarus.github.io/blog/programming/2023/02/21/exponential-smoothing.html リシッツァ氏は下図のようなトグルボタンを例に解説を行っています。クリックすると「オン」「オフ」が切り替わります。まだアニメーションを何も設置しておらず、トグルボタンは左端と右端を瞬間移動しています。 機能的にはアニメーションが設定されていなくとも問題はないのですが、アニメーションを設定することでユーザーは何が起こって

            アニメーションをスムーズに見せるためのテクニック「指数平滑法」とはどんなものなのか?
          • 閲覧者のユーザーエージェントを三角関数で判定できるか? - Qiita

            概要 先日ふと自分のPCのフィンガープリントを取ってみたところ「IPアドレス」など様々な項目が並ぶ中に「Math.tan」という変な項目を見つけました。 「なぜ三角関数が出てくるの?」と気になって調べてみたところ、**三角関数の値はブラウザやOSの実装により微妙に異なることがあり、特定の式をブラウザに計算させることで利用者を識別する手段になり得る1**という話でした。 面白そうだなと思ったので、本記事ではその手法で実際どの程度までブラウザ/OSを判別できるのか調査してみました。 検証方法 今回は様々な文献12の情報を参考に、以下の式を各OSの各ブラウザに計算させました。 tan(-1e300) cosh(10)(厳密には三角関数の類似ですが) これら以外も10数種類ほど試したのですが、判別に使えたのはこの2つのみでした。 試したOSとバージョン macOS Catalina (ver.10

              閲覧者のユーザーエージェントを三角関数で判定できるか? - Qiita
            • 『GUILTY GEAR XX ΛCORE PLUS R』にてオンライン対戦の遅延を改善する“期待の技術”テスト開始。ほぼ遅延なしの対戦を実現する「ロールバックネットコード」とは何なのか? - AUTOMATON

              アークシステムワークスによる対戦格闘ゲーム『GUILTY GEAR XX ΛCORE PLUS R』(以下、GGXXACPR)のSteam版において、オンライン対戦の遅延を改善する「GGPO」と呼ばれるネットコードが試験的に導入された。このパブリックテストは10月29日から開始されている。また同時期に開催されているSteamのハロウィンセールによって同作は現在80%オフの296円にて購入することが可能だ。 Early reports say that #GuiltyGear XX Accent Core Plus R runs SMOOV with its new rollback code. You know what's SMOOV-ER than that? Picking it up for $2.99 on @Steam's Fall sale.https://t.co/JTkQ

                『GUILTY GEAR XX ΛCORE PLUS R』にてオンライン対戦の遅延を改善する“期待の技術”テスト開始。ほぼ遅延なしの対戦を実現する「ロールバックネットコード」とは何なのか? - AUTOMATON
              • BudouX: 読みやすい改行のための軽量な分かち書き器

                .app 1 .dev 1 #11WeeksOfAndroid 13 #11WeeksOfAndroid Android TV 1 #Android11 3 #DevFest16 1 #DevFest17 1 #DevFest18 1 #DevFest19 1 #DevFest20 1 #DevFest21 1 #DevFest22 1 #DevFest23 1 #hack4jp 3 11 weeks of Android 2 A MESSAGE FROM OUR CEO 1 A/B Testing 1 A4A 4 Accelerator 6 Accessibility 1 accuracy 1 Actions on Google 16 Activation Atlas 1 address validation API 1 Addy Osmani 1 ADK 2 AdMob 32 Ads

                  BudouX: 読みやすい改行のための軽量な分かち書き器
                • クリック率を最大化しない推薦システム

                  セレンディピティのある推薦、多様性のある推薦、コンテンツ生産者を配慮した推薦など、クリック率の最大化(だけ)を目指さない推薦システムについての紹介です。 連絡先: @joisino_ (T…

                    クリック率を最大化しない推薦システム
                  • 俺氏、将棋が二人零和有限確定完全情報ゲームでないことに気づいてしまうwww | やねうら王 公式サイト

                    このブログをご覧の方は将棋が二人零和有限確定完全情報ゲームであることはご存知でしょう。これは、ゲーム理論や探索アルゴリズムの教科書にでも載っています。「二人零和有限確定完全情報ゲームって何?」って方は、Wikipediaでも見ていただくことにして話を先に進めます。 零和とは? この「零和」というのは、和が零。英語で言うとゼロサムです。 零和(「ゼロ和」と読むのが一般的だが「レイワ」とも読む):プレイヤー間の利害が完全に対立し、一方のプレイヤーが利得を得ると、それと同量の損害が他方のプレイヤーに降りかかる https://ja.wikipedia.org/wiki/二人零和有限確定完全情報ゲーム つまり、自分が勝ちなら、相手は負け。相手が勝ちなら自分は負け。勝ちを+1点、負けを-1点、引き分けを0のように定めるなら、(ゲーム終局後に)自分と相手の点数を足すと0になる。なので、ゼロサムゲームと

                    • コーディング面接対策のために解きたいLeetCode 60問

                      自分がコーディング面接対策のために解いてよかった LeetCode の問題をコンセプトごとにまとめました。カバーするコンセプトは LinkedList Stack Heap, PriorityQueue HashMap Graph, BFS, DFS Tree, BT, BST Sort Dynamic Programming Binary search Recursion Sliding window Greedy + Backtracking です。 これらの問題が 30 分以内に実装できれば面接の準備は整ったと言っていいと思います。Easy と Medium で問題は構成されてます。進捗を管理するためにGoogle Spreadsheetを用意しました。コピペしてご自由にお使いください。 これらの問題は、LeetCode のリスト機能でも公開されています。クローンすれば自分がすでにど

                        コーディング面接対策のために解きたいLeetCode 60問
                      • 数式を使わないTransformerの解説(前編) - conceptualization

                        2023/3/23 追記: こちら半年以上前に執筆したもので、その後私の理解も進んで内容的に更新したいところが結構あるため、近日中に非公開とさせていただき,更新後に再公開させていただくつもりです。現時点での本記事の内容は、大きく間違ってはいないけどちらほら微妙なところがあるという感じです。 (ざっくり理解するだけでも良いという人にはそれでも良いかもしれませんが、そういう方向けには 今執筆中のこちらの記事 をおすすめします。) −−−− 最近話題のmidjourneyやDALL-E、凄いですよね。中身はディープラーニング(DNN)のようです。DNNといっても色んな技術がありますが、それらにはTransformerという手法が使われています。本記事は、その手法がどんなものであるかを数式を使わずに説明してみよう、という主旨になります。 ※なお本記事は機械学習のプロの研究者ではない私の独自の解釈が

                          数式を使わないTransformerの解説(前編) - conceptualization
                        • Amazon S3の脆弱な利用によるセキュリティリスクと対策 - Flatt Security Blog

                          はじめに こんにちは、株式会社Flatt Security セキュリティエンジニアの森岡(@scgajge12)です。 本稿では、Amazon S3 の脆弱な使い方によるセキュリティリスクと対策を解説し、実際の設定不備などに関する事例についても紹介します。 Flatt Security は専門家の視点でセキュリティリスクを調査するセキュリティ診断を提供しています。クラウドとアプリケーションの総合的な診断の事例として SmartHR 様の診断事例がございますので、是非インタビュー記事をご覧ください。GCP の事例ですが、もちろん今回取り上げる AWS でも同様の診断が可能です。 はじめに Amazon S3 とは バケット・オブジェクト バケット オブジェクト アクセスポリシー バケットポリシー アクセスコントロールリスト(ACL) IAM ポリシー 署名付き URL Amazon S3 に

                            Amazon S3の脆弱な利用によるセキュリティリスクと対策 - Flatt Security Blog
                          • 因果推論とグラフ理論 - エクサウィザーズ Engineer Blog

                            こんにちは。数理最適化ギルドでエンジニアをしている加藤です。 ある自社プロダクトの開発を通じて因果推論について勉強する機会がありました。因果推論は統計の分野ですが、その中で数理最適化の技術が使えることを知り、とても面白かったのでその内容をシェアしようと思います。具体的には組合せ最適化問題のひとつである最小カット問題が、因果推論のタスクの一部である識別可能性に利用できるという話をします。 前半は因果推論についての概説で特に予備知識は仮定していないです。後半は計算時間やネットワークフローなどのアルゴリズムを知っていると読みやすいと思います。 因果推論とは 因果推論の目的 統計的因果推論とは事象の間の因果効果を実験データや観測データから推定することを目的とした統計学の一分野です。単に因果推論といった場合は統計的因果推論を含むより広い概念を指すことがありますが、簡単のため以下では因果推論といえば統

                              因果推論とグラフ理論 - エクサウィザーズ Engineer Blog
                            • 主張:インターネットアーカイブ敗訴、図書館の未来を守れ

                              図書館はこれまで、知識にアクセスする機会をすべての人に平等に与えるという重要な使命を果たしてきた。だが、図書館によるデジタル化を認めない判決を米国の控訴裁判所が下したことで、危機的な状況にある。 by MIT Technology Review Editors2024.09.18 6 この記事の3つのポイント 図書館のデジタル貸出を制限する判決が米国で下された 判決は「制御されたデジタル貸出(CDL)」をフェアユースとして認めない内容 図書館を電子書籍のエコシステムに閉じ込め、危機的状況に陥れる可能性 summarized by Claude 3 私は1980年代から90年代にかけて育った。私の世代やその前の世代にとって、公共図書館はあらゆる町で平等を実現する力となっており、アメリカンドリームを目指して前進するすべての人を助ける存在だった。私が育ったヴァージニア州シャンティリーでは、コンピ

                                主張:インターネットアーカイブ敗訴、図書館の未来を守れ
                              • 再帰的な構造のデータの同値性判定はどうしたらいいか - 貳佰伍拾陸夜日記

                                数日前にTwitterで, JavaScriptのオブジェクトに対する===の挙動が初心者には難しいみたいな話を見かけた. 発端や周辺の議論をちゃんと追いかけてないからとくに出典は貼らない. たぶん元々の話は「へぇ, こういう挙動なんだ, 簡単ではないね」くらいの話だったのかもしれない. 自分のタイムラインの観測範囲では「そうだそうだ, (参照の同一性ではなく)同値性にしとけばいいのに」と思っている人もそれなりにいそうに見えた. 個人的にも同値性が簡単に確認できるとよい気はするものの, 「なんでそうしないんだ, オブジェクトの中身を確認していくだけだろ!」みたいな簡単な話ではないことも知っているため, 以下のようなツイートをしたのだった. JavaScriptのオブジェクトの同値性、再帰的な構造とか作るとぜんぜん自明じゃないんだよなぁ。リンクの構造は違うけどプロパティを辿ったときのパスはど

                                  再帰的な構造のデータの同値性判定はどうしたらいいか - 貳佰伍拾陸夜日記
                                • 計算できるもの、計算できないもの

                                  計算機による計算とは何か、計算できるものとできないものの境界はどこにあるのか―それを明らかにする計算理論は、計算機科学においてもっとも基本的、かつ重要なものです。本書では、概念の説明や、結果の証明にPythonプログラムを利用する実践的なアプローチにより、計算可能問題と計算不能問題、扱いやすい問題と扱いにくい問題があること、文章では簡単に表現できても計算機には解けない重要な問題が数多くあること、効率よく解ける問題と解けない問題があることなどを、計算理論の礎を築いたアラン・チューリングとリチャード・カープの論文の抜粋とともに解明します。チューリングマシン、有限オートマトン、万能計算、非決定性、チューリング還元、計算量クラス、NP完全性などのトピックをカバーしています。 謝辞 まえがき:教科書として使う方へ 全体像 1章 はじめに:計算できるもの, できないものとは 1.1 扱いやすい問題 1

                                    計算できるもの、計算できないもの
                                  • 共同編集を支える技術とライブラリの活用 - ICS MEDIA

                                    『Google Docs』や『Figma』といったリアルタイムな共同編集ツールの恩恵を受けている人は数多くいるでしょう。『Visual Studio Live Share』のようなエンジニアに嬉しいツールも生まれ、今日ではオンライン上でも円滑なコミュニケーションが可能になっています。 これらのツールの基礎にあるのが「共同編集」のテクノロジーです。本記事ではこの技術に焦点を当て、その仕組みと主にフロントエンドでの実用例について紹介します。 記事の前半では、リアルタイムな共同編集に用いられる技術やアルゴリズムについて、発展の歴史とあわせて紹介します。解説用のコードにはJavaScriptおよびTypeScriptを使用しますが、フロントエンドエンジニアに限らず共同編集の仕組みについて気になる読者が知識を深めるきっかけとなるはずです。 さらに後半ではフロントエンドの開発者目線で、前半で紹介した技

                                      共同編集を支える技術とライブラリの活用 - ICS MEDIA
                                    • 【実践】エンジニアの基礎教養-アルゴリズムを学べる本

                                      筆者は新卒エンジニア時代に社内でアルゴリズム勉強会を主催していました。 その内容を本形式に書き起こしたものになります。 【この本の特徴】 📗問題演習形式でアルゴリズムの基礎が身に付く構成となっています。 📗分かりにくい概念は丁寧に図解で解説しています。 📗基礎的なアルゴリズムがどのように世の中に役立っているのかを言及しています。 アルゴリズムに関して、皆さんの理解を深めるお手伝いができれば幸いです。

                                        【実践】エンジニアの基礎教養-アルゴリズムを学べる本
                                      • Popular git config options

                                        Hello! I always wish that command line tools came with data about how popular their various options are, like: “basically nobody uses this one” “80% of people use this, probably take a look” “this one has 6 possible values but people only really use these 2 in practice” So I asked about people’s favourite git config options on Mastodon: what are your favourite git config options to set? Right now

                                        • 時間順にソート可能なUUIDv6, UUIDv7, UUIDv8の提案仕様 - ASnoKaze blog

                                          IETFに「New UUID Formats」という提案仕様が提出されています。 これは、時系列順にソート可能なUUID version 6, UUID version 7, UUID version 8を新しく定義するものです。 詳しい背景は提案仕様にゆずりますが、ULIDを始めとして、時系列順にソート可能な一意な識別子を利用したいというユースケースがあります。例えば、データベースのキーとして使えば、ソートせずとも順番に並びますし、書き込む際も順々に書き込めるのでデータアクセスが局所的になります。 今回は簡単に、それぞれのUUIDのフォーマットを眺めていきます。なお、フォーマットは異なりますが、バージョンを示す値は同じ位置にあります。 UUIDv6 UUIDv6は128bit長で、UUIDv1と似てるフォーマットを取ります。 1582年10月15日(グレゴリオ暦)からの100ナノ秒単位で

                                            時間順にソート可能なUUIDv6, UUIDv7, UUIDv8の提案仕様 - ASnoKaze blog
                                          • 本当にtransactionは必要なのか? - 急がば回れ、選ぶなら近道

                                            前提 前提ですが。 transaction=Consistency/Isolationを担保する仕組みの話とする。 一般にtransactionが持つべき属性はACIDと言われる。C/Iに比べて、A/Dが“わかりやすい”のでAtomic/Durableの属性の方が人口に膾炙しているが、現在のtransactionではA/Dネタはあまり話題にならない。A/Dネタはローカルだけで見るのであれば普通にfile system /storageの話になる。元来Atomic/Durableはtransactionのコンテクストでは専らlogging / recoveryの話だった。そして、これは非同期のepoch-basedになるとそれ自体の取り扱い優先度が下がる。現代的なtransactionでは、「現時点ではread committedが保証されているFS/storageでA/Dの問題は(ある程度

                                              本当にtransactionは必要なのか? - 急がば回れ、選ぶなら近道
                                            • 「DIは必ずしも善ではない」| Dependency injection is not a virtue by DHH

                                              DHHの Dependency injection is not a virtue(2013) という記事は有名ですが、ちゃんとした日本語訳が意外とないようなので、書き出してみて思ったことを要約してみた。[1] Rubyのエンジニアの中には、何も考えずに他のモデルのnewを書いてる人の割合が多いという(コードレビュー時のヒアリングによる)体感があり、また8年前の記事なので経験の浅い人は読んだことがない人もいると思う。該当する方は是非読んでほしい。 全部読む時間が無い人は要約へ. 原文と訳文 In languages less open than Ruby, hard-coded class references can make testing tough. If your Java code has Date date = new Date(); buried in its guts,

                                                「DIは必ずしも善ではない」| Dependency injection is not a virtue by DHH
                                              • 「Googleのソフトウェアエンジニアリング」を読んだ - wyukawa's diary

                                                www.oreilly.co.jp 目次はこちら 第1部 主題 1章 ソフトウェアエンジニアリングとは何か 第2部 文化 2章 チームでうまく仕事をするには 3章 知識共有 4章 公正のためのエンジニアリング 5章 チームリーダー入門 6章 スケールするリーダー 7章 エンジニアリング生産性の計測 第3部 プロセス 8章 スタイルガイドとルール 9章 コードレビュー 10章 ドキュメンテーション 11章 テスト概観 12章 ユニットテスト 13章 テストダブル 14章 大規模テスト 15章 廃止 第4部 ツール 16章 バージョンコントロールとブランチ管理 17章 Code Search 18章 ビルドシステムとビルド哲学 19章 GoogleのコードレビューツールCritique 20章 静的解析 21章 依存関係管理 22章 大規模変更 23章 継続的インテグレーション 24章 継続的

                                                  「Googleのソフトウェアエンジニアリング」を読んだ - wyukawa's diary
                                                • おわりに - なぜ機械学習はうさん臭く感じられるのか? / 真面目なプログラマのためのディープラーニング入門

                                                  本講座では計8回にわたり、ディープニューラルネットワークの原理と実装について 説明してきた。ニューラルネットワークの原理は基本的には 勾配降下法であり、その基盤となっているのが関数の微分可能性である。 ニューラルネットワークにはさまざまな形態が存在するが、 画像処理・画像認識の場合は畳み込みニューラルネットワークが非常に 有効であることがわかっている。また、ニューラルネットワークの 出力形式や損失関数を変えることにより、ニューラルネットワークが 物体検出や奥行き推定など、さまざまなタスクに利用可能であることを紹介した。 さて、本講座は「真面目なプログラマのための」ディープラーニング入門、 と銘打っている。真面目なプログラマとは何か? 諸説いろいろあるだろうが、 多くのプログラマは、ソフトウェア開発において 仕様の明確さや、 システムの効率・堅牢性、そして 保守のしやすさといったものを 追求

                                                  • C++ Cheat Sheets & Infographics

                                                    Standard Algorithms

                                                      C++ Cheat Sheets & Infographics
                                                    • Twitter's Recommendation Algorithm

                                                      Twitter aims to deliver you the best of what’s happening in the world right now. This requires a recommendation algorithm to distill the roughly 500 million Tweets posted daily down to a handful of top Tweets that ultimately show up on your device’s For You timeline. This blog is an introduction to how the algorithm selects Tweets for your timeline. Our recommendation system is composed of many in

                                                        Twitter's Recommendation Algorithm
                                                      • Rustで古典的なDisk-Oriented DBMSを実装した話 - Write and Run

                                                        KOBA789 です。みなさん DBMS は好きですか。私は好きです。 最近、自作 DBMS をずっと作っていて、ようやく最低限の機能ができたので公開をしました。 (とはいえコードを書いていたのは正味2日ほど。設計と勉強に2週間かかった) github.com この記事ではこれを作った目的と、そのちょっとした詳細についてご紹介します。 目的 Disk-Oriented DBMS の学習に適している Rust で書かれた実装が欲しかった、というのが理由です。 DBMS の勉強に適している実装というのは意外と多くありません。 MySQL や PostgreSQL といった有名な実装は実用的である一方でコード量は非常に多く、また細かな最適化によって教科書的なアルゴリズムと実際のコードの差が大きくなっているため、初学者にとっては構造を把握しづらくなっています。 教科書的な実装の Disk-Orie

                                                          Rustで古典的なDisk-Oriented DBMSを実装した話 - Write and Run
                                                        • 「言語学の父」が生み出した文法の謎が2500年の時を経てついに解き明かされる

                                                          紀元前5世紀頃のインドの文法学者であり、「言語学の父」とも呼ばれるサンスクリット文法学者・パーニニが作成した文法規則を解読することに研究者が成功しました。 In Pāṇini We Trust: Discovering the Algorithm for Rule Conflict Resolution in the Aṣṭādhyāyī https://www.repository.cam.ac.uk/handle/1810/332654 Ancient grammatical puzzle solved after 2,500 years https://phys.org/news/2022-12-ancient-grammatical-puzzle-years.html A 2,500-Year-Old Puzzle from Ancient India Has Finally Be

                                                            「言語学の父」が生み出した文法の謎が2500年の時を経てついに解き明かされる
                                                          • プロと読み解くRuby 2.7 NEWS - クックパッド開発者ブログ

                                                            技術部の笹田(ko1)と遠藤(mame)です。クックパッドで Ruby (MRI: Matz Ruby Implementation、いわゆる ruby コマンド) の開発をしています。お金をもらって Ruby を開発しているのでプロの Ruby コミッタです。 去年の記事「プロと読み解く Ruby 2.6 NEWS ファイル」に続き、今年も本日 12/25 リリース予定の Ruby 2.7 の NEWS ファイルの解説をしてみようと思います。NEWS ファイルとは何か、というのは去年の記事を見て下さい。 実は最近、NEWS ファイルを読みやすくしよう、と例を入れたりしていて、以前のものに比べて読みやすくはなっています(英語だけど)。記事中のコードも、NEWS ファイルから引用しているものがあります。本記事では、変更の解説に加え、執筆者らが開発に携わっているということを活かして、「なぜ変更

                                                              プロと読み解くRuby 2.7 NEWS - クックパッド開発者ブログ
                                                            • Amazon S3 へのファイルアップロードで POST Policy を使うと、かゆいところに手が届くかもしれない - カミナシ エンジニアブログ

                                                              はじめに こんにちは。カミナシでソフトウェアエンジニアをしている佐藤です。 みなさんは、アプリケーションのフロントエンドから、Amazon S3 にファイルをアップロードするときに、どのような方法を用いているでしょうか? 「バックエンドのサーバーにファイルを送信し、バックエンドのサーバー経由で S3 にアップロードしている」「Presigned URL を払い出して、フロントエンドから直接 PUT している」など、いくつかの方法があると思います。 弊社で提供しているサービス「カミナシレポート」でも、用途に応じて上記の方法を使い分けて S3 へのファイルのアップロードを行っています。 特に、Presigned URL は、手軽に利用できる上に、バックエンドのサーバーの負荷やレイテンシーの削減といったメリットも大きく、重宝しています。 一方で、その手軽さの反面、アップロードに際して様々な制約を

                                                                Amazon S3 へのファイルアップロードで POST Policy を使うと、かゆいところに手が届くかもしれない - カミナシ エンジニアブログ
                                                              • キャッシュアルゴリズムの比較 - falsandtruのメモ帳

                                                                アプリケーションなどOSより上に作られる高水準のプログラムではハードウェアの速度と容量を考慮しない数学的キャッシュアルゴリズムが使われ主にこれを本稿の対象とする。キー探索用マップと明示的キャッシュサイズ(対となる値が保持されているキーのサイズ)は計算量に含まれない。 LRU 最も単純かつ高性能な基礎的キャッシュアルゴリズム。そのため性能比較のベースラインとして常に使用される。逆に言えば実用最低水準の性能である。スキャン耐性皆無でスキャン一発でキャッシュとヒット率がリセットされゼロからやり直しになるため非常に脆く不確実な性能となりベンチマークにおける性能が表面上さほど悪くなく見えても実際の性能はこのような外乱により大きく低下しやすい。このためLRUより高度な主要アルゴリズムはすべて大なり小なりスキャン耐性を備えている。ちなみにプログラミング言語最大のパッケージマネージャであるJavaScri

                                                                  キャッシュアルゴリズムの比較 - falsandtruのメモ帳
                                                                • 自然なブログを書いてしまうほど超高精度な言語モデル「GPT-3」はどのように言葉を紡いでいるのか?

                                                                  OpenAIが開発する「GPT-3」は、ほとんど違和感のないブログ記事を生成できてしまうほど高い精度を誇る言語モデルです。そのGPT-3がテキストを生成する仕組みについて、オンライン学習プラットフォーム「Udacity」でAIや機械学習関連の講座を持つJay Alammar氏が解説しています。 How GPT3 Works - Visualizations and Animations – Jay Alammar – Visualizing machine learning one concept at a time. https://jalammar.github.io/how-gpt3-works-visualizations-animations/ The Illustrated GPT-2 (Visualizing Transformer Language Models) – Ja

                                                                    自然なブログを書いてしまうほど超高精度な言語モデル「GPT-3」はどのように言葉を紡いでいるのか?
                                                                  • 計算複雑性理論を知らないやつが何をやらかすか教えてやろう。 ある業務用..

                                                                    計算複雑性理論を知らないやつが何をやらかすか教えてやろう。 ある業務用Webシステムは検索結果の表示件数を5/10/20件から選べるようになっててて,URLのパラメーターで「?n=20」とかやって送ってた。メニューからは三つの値しか選べないが手で書き換えれば100とか200とか選べる穴が空いてた。 で,よりによってメモリ使用量がO(n^2)になるコードを書いていやがった。n=500でOutOfMemoryError。リモートから面白いようにサービスを落とせた。 CSを知ってるやつなら,コードを書いた瞬間から「これnの上限チェック入れないとまずいな」とわかるんだよ。というか,普通にこのコードはまずいと考えてアルゴリズムをなおして,O(1)でDBレコード全件持ってきても落ちないコードにできてたはず。

                                                                      計算複雑性理論を知らないやつが何をやらかすか教えてやろう。 ある業務用..
                                                                    • ナンプレ (いわゆる数独) の問題生成アルゴリズムの話。 | blog.dnpp.org

                                                                      概要 iOS と macOS ネイティブなアプリを作った ので、技術的な話を書きます。 詳細 拠所無い事情からコンピュータサイエンスというか基本的なアルゴリズムの実装の勉強を leetcode でやっていた時期が 2023 年の 9 月頃にありまして、「折角勉強したんだし何か作るか」という気持ちでアプリを作りまして…。 リリースまでなんとか持っていった訳なんですが、実装だけならいいものの、ゲームデザインとか、 Web サイト作成とか、アイコン含むいわゆるデザイン的なものとか、そういうのも本当に 1 人で全部やってたからなんやかんや 3 ヶ月かかってしまって、まぁ大変だったんですがそこそこ満足な出来栄えになったので是非ダウンロードして触ってみてください。 数独はニコリの登録商標となっているためアプリの名称はナンプレとしていますが、この記事はアルゴリズムの技術的な解説やゲームデザインの話といっ

                                                                      • 機械学習アルゴリズムの学習法

                                                                        TL;DR 機械学習のアルゴリズムには詳しくなりたいけど実装はしない、という立場の人向けの学習資料まとめ 知人向けで、具体的には同僚医師がターゲット読者(めちゃ狭い!)だが、一定度他の人にも役に立つかも 改めて色々眺めてみてやっぱり大学の講義は質の高いものが多いと思った 知人が機械学習のアルゴリズムを学びたいと言っているので、オススメの資料などを見繕ってみるブログエントリ。 機械学習への関わり方を雑にアルゴリズムと実装で分けた場合に、アルゴリズムには詳しくなりたいけど実装をするわけではない、という立場の人向けである。 このようなタイプの人はそんなにいないと思うけど、具体的にはドメインエキスパートとして機械学習エンジニアと一緒にアルゴリズム・データ改善に取り組んでいて、アルゴリズムでどんなことをやっているかをちゃんと理解したい、みたいなのが一例となる。 なんとなくのイメージ的な理解だけだと、

                                                                          機械学習アルゴリズムの学習法
                                                                        • それ、非再帰で書けます - Qiita

                                                                          この記事は再帰自体を全否定する趣旨ではありません。 両方の良さを理解した上で非再帰で書きたいと思ったときの参考にしていただければと思います。 まだ再帰関数書いてるの? 再帰関数はプログラミング言語の有用な機能で、深さ優先探索をベースとする様々なアルゴリズムの実装として有用です。 その一方で、関数呼び出しはオーバーヘッドが大きく、定数倍が弱くなります。また、JavaやPythonなどのスタック領域の制限が厳し目の言語では深すぎる再帰のせいでRuntime Errorが発生する場合があります。 C++などのコンパイル言語ではインライン展開によって関数呼び出しのオーバーヘッド解消されることもありますが、再帰関数は中でもインライン展開の難易度が高く、深い再帰ではそのまま実行せざるを得ない状況になります。 ところが、再帰関数は生のスタックを自分で用意するなどして非再帰に書き直すことができます。(「停

                                                                            それ、非再帰で書けます - Qiita
                                                                          • 【競プロ】新人SEがAtCoderを始めて水色になった【色変記事】 - Qiita

                                                                            AtCoderで水色になりました。いわゆる色変記事です。 本記事では以下の4点について書きます。 競プロをしていて良かったこと・できるようになったこと 勉強したこと・改善案 レート推移や目標ラインの話 環境やマクロの紹介 最初に自己紹介すると、自分は情報系出身のSEで、現在は2年目です。 今年の頭に競プロをはじめ、先日水色になりました。 「プログラミング未経験から~」「50歳を超えて~」みたいな少数派ではないですし、「たったN回で達成!」「M年の苦闘の末に」みたいなドラマもありません。 普通に勉強しているエンジニアが競プロを半年間そこそこ頑張ったみたいな記事です。 バッググラウンドや参加回数については③で詳しく書きます。 なお、競技プログラミングについてザックリ知っている前提で書きます。 「競プロってなに?」「水色ってどのあたりなの?」という場合は が良くまとまっています。 ① 競プロをし

                                                                              【競プロ】新人SEがAtCoderを始めて水色になった【色変記事】 - Qiita
                                                                            • 浮動小数点数オタクが AtCoder Beginner Contest 169 のC問題をガチで解説してみる - Qiita

                                                                              どうも、浮動小数点数オタクのmod_poppoです。 昨日開催された ABC169 の C 問題が浮動小数点数の罠な問題だったらしいので、どこが罠なのか、そしてどうすれば罠を回避できるのかを解説してみます。 また、典型的な誤答に対しては、それを落とすためのテストケースも用意しました。 問題文(引用) まず最初に問題文を引用しておきます。 AtCoder Beginner Contest 169 | C - Multiplication 3 問題文 $A\times B$ の小数点以下を切り捨て、結果を整数として出力してください。 制約 $0\le A\le 10^{15}$ $0\le B<10$ $A$ は整数 $B$ は小数第 2 位まで与えられる 入力 入力は以下の形式で標準入力から与えられる。

                                                                                浮動小数点数オタクが AtCoder Beginner Contest 169 のC問題をガチで解説してみる - Qiita
                                                                              • JavaScript Patterns Workshop | JavaScript Patterns

                                                                                The content is based on Patterns.dev - a free online resource on design patterns and component patterns for building powerful web apps with vanilla JavaScript and React. The patterns covered on this website and in the workshop can guide you when facing a problem other developers have encountered many times before, but are not a blunt tool for jamming into every scenario. The goal is to raise aware

                                                                                  JavaScript Patterns Workshop | JavaScript Patterns
                                                                                • 競技プログラミングを終わらせる人々への指摘、頑張っている人々へのアドバイス - じじいのプログラミング

                                                                                  はじめに 競技プログラミングに関連する、以下の記事が話題にあがりました。 nuc氏1つ目の記事 nuc.hatenadiary.org chokudai氏の記事 chokudai.hatenablog.com nuc氏2つ目の記事 nuc.hatenadiary.org nuc氏は、元Googleのエンジニアで面接も担当されていました。現在は某医大の特別特命准教授の方で、2007年頃に東大で競技プログラミングをされていた方のようです(氏名も役職も上記の記事のリンク先で公表されています)。nuc氏の記事は、競技プログラミングに対して「我々の目的の一つは、我々が始めてしまった競技プログラミングを我々が終わらせることです。」といった強い主張が多く、これらの記事の反応をみたのですが、 競技プログラミングをしている方々が、nuc氏の主張で不安になり、特に若い世代で、競技プログラミングをやめようとして

                                                                                    競技プログラミングを終わらせる人々への指摘、頑張っている人々へのアドバイス - じじいのプログラミング