タグ

ブックマーク / qiita.com (91)

  • 「998244353 で割ったあまり」の求め方を総特集! 〜 逆元から離散対数まで 〜 - Qiita

    1. なぜ 998244353 で割るのか? 最初はこのような設問を見るとぎょっとしてしまいますが、実はとても自然な問題設定です。 $998244353$ で割らないと、答えの桁数がとてつもなく大きくなってしまうことがあります。このとき以下のような問題が生じます: 多倍長整数がサポートされている言語とされていない言語とで有利不利が生じる 10000 桁にも及ぶような巨大な整数を扱うとなると計算時間が膨大にかかってしまう 1 番目の事情はプログラミングコンテストに特有のものと思えなくもないですが、2 番目の事情は切実です。整数の足し算や掛け算などを実施するとき、桁数があまりにも大きくなると桁数に応じた計算時間がかかってしまいます。実用的にもそのような巨大な整数を扱うときは、いくつかの素数で割ったあまりを計算しておいて、最後に中国剰余定理を適用して復元することも多いです。 なぜ 9982443

    「998244353 で割ったあまり」の求め方を総特集! 〜 逆元から離散対数まで 〜 - Qiita
  • Webフロントエンドに従事するお前らはいい加減高頻度イベントとレイアウトとスタイリングの付き合い方を考えろ - Qiita

    もうなんかこの際マジで言わせていただくんですけど、知ってるか知らないか分かりませんが世の中にはすごい頻度で呼ばれうるDOMイベントって言うのがいくつかあるわけですよ 例えば scroll mousemove, touchmove devicemotion 辺りですよ。 で、高頻度で呼ばれるって言うことは必然的に処理量が増えるって分かりますよね?????while(1) {}じゃないとはいえUIスレッドに十分影響を与えうる頻度で呼ばれる訳です。分かりますよね???????? そうなると当然そのイベント内で重い処理を行えば人間が認識できるレベルでのレスポンス遅延が起きるっていうのはご理解できますよね? 重い処理っていうのはまぁ想像出来るとは思うんですが例えばよくあるのが DOMのレイアウトプロパティへのアクセス offsetTop、offsetLeft、offsetWidth、offsetHe

    Webフロントエンドに従事するお前らはいい加減高頻度イベントとレイアウトとスタイリングの付き合い方を考えろ - Qiita
  • C++標準化委員会、ついに文字とは何かを理解する: char8_t - Qiita

    C++ Advent Calendar 2018 この記事はC++ Advent Calendar 2018 15日目の記事です。 14日目: VTKライブラリ 16日目: C++のエラー処理との付き合い方 当初見積もりよりも大幅に長い記事となり、投稿したのは12/22で1週間遅刻です。すみません。 お知らせ cpprefjpにchar8_t型追加について解説を書きました。ぎゅぎゅっとコンパクトに、また査読を受けて中立的な表現で書いていますので、よければどうぞ。 UTF-8エンコーディングされた文字の型としてchar8_tを追加 - cpprefjp C++語リファレンス 追記 全ての開発者が知っておくべきUnicodeについての最低限の知識 - GIGAZINE Unicodeについて簡潔にまとまってるいい記事を見つけました。 Caution この文章には以下の要素が含まれます。苦手

    C++標準化委員会、ついに文字とは何かを理解する: char8_t - Qiita
  • Loan パターンのネストは継続モナドでシュッと解決できるよという話 - Qiita

    先日見かけた Closeモナド についての言及になります この記事の概要 長くなりそうなので最初にまとめです Close モナドにはいくつかの問題があります それらの問題は既存の継続モナドによって解決できます リソース管理のために新たなモナドを考案する必要はありません Close モナドが抱える問題 動作の問題 run を二回以上呼べません リソースがインスタンス変数として保持されているためです 言い換えると map や flatMap 自体に副作用があります コードの問題 Close[R, A] の A にアクセスするための手段が map しかありません 副作用が目的の処理であっても map が必要になってしまいます クラス内にリソースを閉じるための try-finally が二回書かれています DRY に書きたいですね 継続モナドの導入 まずは最も簡潔な(と思われる)実装を先に載せてお

    Loan パターンのネストは継続モナドでシュッと解決できるよという話 - Qiita
  • Reactのべからず集 - Qiita

    Reactは便利なライブラリですが、ライブラリの想定を外れる使い方をするとうまく動かないとか、進化が続いているのですでに古くなってしまった書き方とかが存在します。 ここでは、そのような、Reactでやるべきでない書き方についてまとめてみました。 ★★★★ この「★★★★」は、「守らないと正常動作しなくなる」レベルのものについて扱います。 JSXを使うファイルでReactを用意し忘れる JSXはReact.createElementに変換されますので、直接アクセスしているように見えなくても、名前空間内にReactが必要です。 eslint react/react-in-jsx-scope コンポーネント内部からpropを書き換える あくまでpropsは親から子へ渡されるものなので、子の側で書き換えることはReactの枠組みの想定外となります。 setState以外の手段でstateを書き換え

    Reactのべからず集 - Qiita
  • WebAPIでエラーをどう表現すべき?15のサービスを調査してみた - Qiita

    2017-01-05 追記 2016年3月にエラーの標準形式RFC7807「Problem Details for HTTP APIs」が提案され、今日現在proposed standard(標準化への提唱)となっています。こちらも是非ご覧ください。 RFC 7807 - Problem Details for HTTP APIs HTTP APIの詳細なエラー情報をレスポンスに持たせるための仕様 最近はREST APIを提供しているサービスが増えてきていますね!また公開されるAPIだけでなく、Microservicesなアーキテクチャを採用して、バックエンドがWeb APIで通信するケースも増えてきているように思います。 APIを使うときはあまり気にしたこともなかったですが、いざAPIを設計してみるとどんなインターフェイスがいいのか、どんな形式がいいのかといった疑問が次々と出てきます。

    WebAPIでエラーをどう表現すべき?15のサービスを調査してみた - Qiita
    harry0000
    harry0000 2020/04/05
  • そろそろ真面目に、HTMLで帳票を描く話をしようか - Qiita

    帳票といえばPDFとして生成するのが一般的でしょうか? でも、2015年の今、あえてHTMLで描くのがホットです(個人的に)。ミリ単位で設定された高度な帳票も、CSSを駆使して簡単に作ることができます。業務システムでもモダンブラウザを選択することが増え、@pageなども積極的に使えるようになったこと、SPA(Single Page Application)の台頭、いろいろと条件が揃ってきました。 書いてたら結構長くなっちゃったので、さくっとコードだけ見たい方は、Paper CSSリポジトリをどうぞ。 はじめに HTML帳票のメリット 2015年現在、HTML帳票を選択する幾つかのメリットがあります。 ライブリロードで、リアルタイムなスタイル調整 バックエンドではなくフロントエンドで生成できる 前者は、gulpやGruntの普及で、CSSにしろHTMLにしろ、リアルタイムにプレビューできる環

    そろそろ真面目に、HTMLで帳票を描く話をしようか - Qiita
  • 既に git 管理しているファイルをあえて無視したい - Qiita

    git でファイルを無視するには、通常は .gitignore や .git/info/exclude を使います。 しかし、既に git 管理下にあるファイルは、これらの設定があっても無視されません。 以下の方法を使えば、git 管理下にあるファイルをあえて無視することが可能です。 方法 次の2つの方法があります。どちらを使っても、ファイルの変更を無視できます。 方法(1) assume-unchanged

    既に git 管理しているファイルをあえて無視したい - Qiita
  • 無料でどんどん音がずれる動画の問題を解消する! - Qiita

    はじめに この記事は CCC Advent Calendar 2018 14日目の記事です。 こちら2018年の記事のため、FFmpegやAudacityのバージョンが古いものになっています。 サイトの内容が異なる可能性もあるので、適宜現在の環境に合わせて、実施してください。 コマンド自体はあまり変わっていないと思われるので、そこらへんは心配しなくて大丈夫だと思います。 なにか別にもっといい方法があるよ!ってことがあればコメントまでお願いします! 前振り あるときですね、動画を撮ったんですよ。 よっしゃ一杯撮れた!と満足ホクホク顔で自宅に帰って動画チェックしたら、動画が音ズレしていることに気が付いて項垂れました。 最初はもちろんちゃんと動画が音源が同期していて問題なかったのですが、次第に動画と音がずれ始めてしまったんです。 こりゃ困ったと思って、どうにかならんかなーと思って調べてたら、少し

    無料でどんどん音がずれる動画の問題を解消する! - Qiita
  • TypeScript で書く React コンポーネントを基礎から理解する - Qiita

    この記事は Recruit Engineers Advent Calendar 2019 の 23日目の記事です。 TypeScriptプロジェクトReact コンポーネントを書いていると、コンパイラに怒られることがたびたびあります。ネット上にあるサンプルコンポーネントが JavaScript で書かれていると、プロジェクトにもってきたときにコンパイルできないということはよくあるんじゃないでしょうか。any でコンパイラを黙らせることもできますが、せっかく TypeScript を使っているので、安全に解決したいよねってことでこのような記事を書きました。 型定義は @types/react@16.9.17 にしたがっています。目次をみて、この程度のことはもう知っているよという方は react-typescript-cheatsheet をみてください。React + TypeScr

    TypeScript で書く React コンポーネントを基礎から理解する - Qiita
  • 詳説implicitly(あるいはimplicitlyは黒魔術でないことの説明) - Qiita

    のようなコードを書いたことがあるのではないかと思います。この implicitly というメソッドですが、しばしばScalaの黒魔術であると思われるようです(誰か特定の方の発言ではなくて、そういう趣旨の発言を時々みかけます)。 しかし、この implicitly 、定義を見てみるとわかるのですが、実は以下のたった一行のメソッドです。 @inline は最適化のためのヒントで特に意味はないですが、要は単一のimplicit parameterを取ってそれをそのまま返しているだけです。これに対して、たとえば implicitly[Hoge[T]] という呼び出しをすると、implicitなHoge[T]型の値を要求して、それをそのまま返すことになるわけです。 実のところ、implicit parameterを明示的に宣言している場合は、implicitly は必要ありません(上の定義を見ればわ

    詳説implicitly(あるいはimplicitlyは黒魔術でないことの説明) - Qiita
  • ワイ「いうても型なんて面倒くさいだけやろ?」 - Qiita

    ※登場人物等は全てフィクションです。 再就職したワイ 社長「やめ太郎くん」 ワイ「はい」 社長「今うちで開発中のブラウザゲームがあるんやけど」 社長「そのゲームの中に登場するジュースの自動販売機をプログラミングしてくれへんか」 ワイ「ええで」 社長「言語はTypeScriptや」 ワイ「・・・ええで(震え声)」 タイプスクリプト is 何 ワイ「なんやTypeScriptて」 ワイ「JavaScriptの打ち間違いか?」 ワイ「きっとそうやな」 ワイ「誰かがタイプミスで仕様書にTypeScriptって打ち込んでもうたんや」 ワイ「いわばタイポスクリプトや」 ハリー先輩「ちゃうで」 ハリー先輩「知らん言葉が出てきたからって変な妄想で自己解決したらアカンで」 ハリー先輩「なにがタイポスクリプトや」 ハリー先輩「TypeScriptは静的型付けが出来るAltJSや」 ワイ「ほえー、静的な型のある

    ワイ「いうても型なんて面倒くさいだけやろ?」 - Qiita
    harry0000
    harry0000 2019/03/08
    僕はハリー先輩ではありません。これだけははっきりと真実を伝えたかった。
  • Androidアプリを起動する前にUSBデバッグをオフにする - Qiita

    TL;DR FGOを起動する時にUSBデバッグが入ってたら起動しない上にメーラーが立ち上がるのがイライラするのでなんとかした。 作ったアプリ https://github.com/consomme/Interceptor アプリの概要 パッケージ名をIntentで渡すショートカットを作成し、それを受け取ったActivity上でUSBデバッグをオフにして起動したいアプリを起動させています。 アプリのアイコンも取得してショートカットを作成するため、見た目では普通にアプリを起動するのと全く変わりません。 実装のポイント

    Androidアプリを起動する前にUSBデバッグをオフにする - Qiita
  • Androidの主要画像系ライブラリのTread Poolをみる - Qiita

    CPU数はRuntime.getRuntime().availableProcessors()の値です 上の表だけでは説明が不十分なのでそれぞれ少しだけ補足します。 picasso 参照クラスはこちら PicassoExecutorService picassoはデフォルトでは3ですが、WiFiでは4にするなど通信状況に応じてpool sizeを変更しています。 private static final int DEFAULT_THREAD_COUNT = 3; void adjustThreadCount(NetworkInfo info) { if (info == null || !info.isConnectedOrConnecting()) { setThreadCount(DEFAULT_THREAD_COUNT); return; } switch (info.getType

    Androidの主要画像系ライブラリのTread Poolをみる - Qiita
  • GitHub に AWS キーペアを上げると抜かれるってほんと???試してみよー! - Qiita

    🤔 前書き 稀によくある 、AWS を不正利用されちゃう話、 AWSで不正利用され80000ドルの請求が来た話 - Qiita 初心者がAWSでミスって不正利用されて$6,000請求、泣きそうになったお話。 - Qiita AWSが不正利用され300万円の請求が届いてから免除までの一部始終 - Qiita ブコメ等で GitHub にはアクセスキーを検索するBOTが常に動いていて、公開するとすぐに抜かれて不正利用される 的なコメントがつくのを何度か目にしたのですが、 当にそんな BOT が動いているの? どのくらいの時間でキーを抜かれて、不正利用が始まるの? というのが気になったので、検証してみました。 GitHub にそれっぽいパブリックリポジトリを作成、権限が一つもついてない AWS のアクセスキー&シークレットアクセスキーをうっかり公開、外部から利用されるまでの時間を計測します。

    GitHub に AWS キーペアを上げると抜かれるってほんと???試してみよー! - Qiita
    harry0000
    harry0000 2018/02/25
    学びがある。あとQiitaのコメント欄はゴミ。
  • 2018 年は Hyperapp の年だ - Qiita

    この投稿は Increments Advent Calendar 2017 の14日目の記事だよ。Hyperapp という JavaScript ビューライブラリを自作しているので、その説明と作った理由について話す。 Hyperapp ができるまでのプロセスや、どんな価値観で作ったかなどを書く。新しいフレームワークを作る時の参考になれば嬉しい。 Hyperapp とは? Web アプリのフロントエンドJavaScript ライブラリ。React, Preact, Vue といった代表的なものよりもずっと小さく、1 KB という超軽量サイズ。他のライブラリに依存することなく使えて、さらにスピードもある Elmアーキテクチャーに基づいてて、アプリケーション設計はElmReact、Reduxと似てるけど、ボイラープレートは少ないし、TypeScriptにも対応して、とにかくシンプル。 El

    2018 年は Hyperapp の年だ - Qiita
  • 11ヶ月間でTOEICスコアを300点から835点に上げた英語学習法 - Qiita

    ということで11月で835点を取ることができました。 2017/09でいったんスコアが下がったのは結構へこみました。(まあTOEICの点数は運もあるのでプラスマイナス50点くらいの揺れはでると思います。) 学習戦略 英語上達完全マップ 実は英語上達完全マップどおりには勉強しませんでした。英語上達完全マップではボキャビルの勉強は後のほうでいいと書かれていましたが、TOEICのスコアを順調にあげるためにはボキャビルは最初の方にやったほうがいい気がして、4ヶ月後くらいにはTOEICの教材を中心に勉強しました(英語上達完全マップ的にはTOEIC用の勉強するのは邪道なのですが、まあ私はTOEICさんに身を委ねることに決めたので…)。 ただ、英語上達完全マップで掲げられている、瞬間英作文、音読、精読、文法、多読、ボキャビル、リスニングといった体系別トレーニング方法はとても理にかなっていると思いますし、

    11ヶ月間でTOEICスコアを300点から835点に上げた英語学習法 - Qiita
    harry0000
    harry0000 2017/12/20
    良い記事だけどプログラミング無関係なので消されそうな気もする
  • Webアプリケーションフレームワーク導入時に考慮すべき22の観点 - Qiita

    記事では、 チームによる持続的に変更可能なWebアプリケーションの開発を目標に、フレームワーク導入時に考慮すべき22の観点を紹介する。 フレームワークによって特徴は異なるが、番導入にあたって、考慮すべきポイントはあまり変わらないので、極力フレームワーク1に依存しすぎないよう配慮する。また、話をシンプルにするため、REST APIを提供するアプリケーションを題材とする。 前提 ソフトウェアのエントロピー ソフトウェアがエントロピー増大の法則を避けられないことを、体感している開発者は多いだろう2。普通にアプリケーション開発を続けると、開発スピードは鈍化し、品質は低下してバグが増え、開発者からは技術的負債への怨嗟の声が聞かれるようになる。エントロピー増大というフォースは極めて強力で、意思を持って立ち向かわなければ、容易にダークサイドに堕ちてしまう。 関心事の分離 大規模Webアプリケーション

    Webアプリケーションフレームワーク導入時に考慮すべき22の観点 - Qiita
    harry0000
    harry0000 2017/12/17
    皆さん複数ユーザーによる同時更新(楽観的排他制御etc.)とかあんまり考慮しませんよね…
  • Google Homeでやったことまとめ - Qiita

    はじめに この記事は スマートスピーカー Advent Calendar 2017 10日目の記事です。 Google Homeを購入してからこの2ヶ月でやってきたことをまとめたいと思います。 が、ほとんどQiitaへ投稿した記事の紹介になってしまいました。 大体見たことあるという方はこちら以降をどうぞ。 なお記事の後半でコスト計算していますが、記事で紹介した内容は最低6,000円あれば大体実現できます。 ※各所で日までのGoogle Home半額セール前提。まだ購入されてない方はお急ぎを ※ツクモは25日までセール実施のようです 薬の服用ログ Google Home、IFTTT、Googleスプレッドシートを使って独自音声コマンドでログをとる(ついでにNode.jsやngrokやらも使ってLINEGoogle Homeに通知する) Google Homeを買って最初に作ったのがこれ

    Google Homeでやったことまとめ - Qiita
    harry0000
    harry0000 2017/12/10
    Google Homeで出退勤時間の管理しようかな…
  • Google Homeで受付システム作ってみた - Qiita

    Google Homeで受付システムを作ってみました。 東京の社にはiPadを使った受付システムがあるのですが、大阪支店は諸事情により導入が遅れています。。。 今回は、スプレッドシートに来訪者情報を記録し、その情報を検知するとSlackに通知が行くようにしました。 現状 大阪支店は紙とペンと呼び鈴の超アナログ仕様ですw これに会社名と名前を記入して呼び鈴を鳴らすと奥から社員がやってきて対応しています。 完成動画 Google Homeで受付システムを作ってみた。 #GoogleHome #Slack #Googleアシスタント pic.twitter.com/O0bFoIuBCx — がおまる@HoloLens研究者 (@gaomar) 2017年12月6日 構成図 構成はIFTTTでスプレッドシートに来訪者を記録し、値が変更されたことをトリガーにして Slackに通知を投げています。

    Google Homeで受付システム作ってみた - Qiita
    harry0000
    harry0000 2017/12/07
    よさそう