タグ

関連タグで絞り込む (533)

タグの絞り込みを解除

APIに関するraimon49のブックマーク (857)

  • ニコニコで12年運用した決済システムを移行する上で必要だったこと - Qiita

    はじめに 今日は、ニコニコのプレミアム会員サービスを支える「プレミアム課金システム」を動画システムのモノリスから切り出し、変更可能にしていった過程について書きます。プレミアム課金システムは金銭を扱うシステムですので、「(特に、失敗した)話を聞くのは面白いけど、自分で触りたくない」と思われる方も多いのではないでしょうか。 この記事では、決済にかかわるシステムでも一般的なシステム改善の方法が適用できることをお伝えしたいと思います。また、コストを抑えつつ着実なシステム改善を行う方法論としてもご理解していただけると嬉しく思います。 背景 プレミアム会員サービスについて 月額500円(税別)のプレミアム会員制度には159万人(2020年9月末現在)の方が加入してくださっており、ニコニコ事業を支える主要な有料サービスです。 ニコニコ動画は2006年にサービスを開始し、2007年にプレミアム会員サービス

    ニコニコで12年運用した決済システムを移行する上で必要だったこと - Qiita
  • Dockerは非推奨じゃないし今すぐ騒ぐのをやめろ - Cloud Penguins

    今話題のこれ。 kubernetes.io これに関しての日語情報として、 @inductor が相当詳細に記事を書いてくれている。 blog.inductor.me blog.inductor.me にも関わらず、未だに完全に間違った解釈をしている人が多く観測される。記事をちゃんと読めば理解できるはずなのだけど、たぶんタイトルしか読んでいない。 タイトルしか読まないのであれば、あえて強めのタイトルにしておけば目にはつくかなと思い、改めて書いてみることとした。 Dockerは非推奨じゃないし、これからもバンバン使え まず @inductorが解説しているとおり、k8sを使っていない人には全く関係のない話なので、今まで通りDockerを使って良い。 が、もう一つ誤解を解いておきたいのが 自分の環境でDockerを使ってイメージ作成し、Kubernetesにデプロイしている人にも、今回の件は

    Dockerは非推奨じゃないし今すぐ騒ぐのをやめろ - Cloud Penguins
    raimon49
    raimon49 2020/12/03
    利用者には影響はないという理由の図がすごく分かりやすい。
  • OAuth認証とは何か?なぜダメなのか - 2020冬 - r-weblife

    こんばんは。ritouです。 Digital Identity技術勉強会 #iddance Advent Calendar 2020 1日めの記事です。 qiita.com 初日なのでゆるふわな話をしましょう。 何の話か もうだいぶ前ですね。9月のお話です。こんなTweetを見かけました。 社内Slackにいる「OAuth認証」と書くと訂正してくれるbotが丁寧な解説をするようになっていた 認証(Authentication)と認可(Authorization)は間違えやすいわりにミスると甚大な被害をもたらしがちなので、常日頃から意識を高めていきたいですね pic.twitter.com/oVQxBgZcHS— greenspa (@greenspa) 2020年9月28日 このbotに対する思うところはもう良いです。 今回は、「OAuthの仕様に沿ってID連携を実装するいわゆる"OAut

    OAuth認証とは何か?なぜダメなのか - 2020冬 - r-weblife
  • JavaScript 長いループ 分割 - hitode909の日記

    ブラウザで長いループや、重い処理をともなうループを回したいとき、同期的にJavaScriptを実行するとメインスレッドがブロックしてしまうので、ちょっとずつ細切れに分割して実行したい、ということがある。 昨日久しぶりに書いたら新たなパターンと出会ったので、これまでにどう書いてて今回どうなったかメモ。 setTimeoutする 以前(10年前とか)はこんなのをよく書いていた。 itemsがでかいArrayで、console.logがすごく重い処理だとして読んでください。 function iterateHeavyTask(items) { const startAt = new Date(); while (items.length > 0 && new Date().getTime() - startAt < 10) { console.log(items.shift()); } if (

    JavaScript 長いループ 分割 - hitode909の日記
  • ネットワーク越しリトライ考 - その手の平は尻もつかめるさ

    ここ最近では何らかのインターネットサービスを構築・運用するにあたって、ネットワーク越しのリトライを考えることは避けられなくなりつつあります。 micro services のようなアーキテクチャを採用している場合はサービス間のメッセージのやり取りはまず失敗する前提 (つまりリトライをする前提) で組む必要がありますし、たくさんのクライアントがいてそのクライアントが定期的に何かを処理してセントラルにデータを送ってくる IoT のようなシステムを構築する時もその処理のリトライをよく考える必要があります。 というわけで「ネットワーク越しのリトライ」についてここ最近考えていることをざっくりと書き留めるものであります。 前提 リトライをする側をクライアント、リトライを試みられる側をサーバと呼称します リトライにおいて、サーバおよびネットワークはクライアントよりも弱者です クライアントはリトライをコン

    ネットワーク越しリトライ考 - その手の平は尻もつかめるさ
    raimon49
    raimon49 2020/11/17
    リトライのbackoff戦略 ExponentialやFibonacci
  • ITPのCNAMEクッキー規制について|AD EBiS マーテック研究会

    ご無沙汰しております。11月6日に、CNAMEレコードを使って付与された1st-party cookieの規制機能を搭載したiOS14.2がリリースされましたので、その内容をまとめます。いつものことですがマーケティングよりブラウザの細かい話です。正式発表前なので誤りの可能性がありますがご了承またはご指摘ください。 規制の仕組みまず規制されるのは、AppleのWebKitエンジニアJohn Wilanderさん(ITPの発明家)が「Third-party CNAME cloaking」として定義するものです。 Third-party CNAME cloaking means a first-party subdomain resolves to a third-party domain which does not match the resolution for the top frame

    ITPのCNAMEクッキー規制について|AD EBiS マーテック研究会
  • Masato Kinugawa Security Blog: DiscordデスクトップアプリのRCE

    数か月前、ゲームのコミュニティなどで人気のチャットアプリ「Discord」のデスクトップ用アプリケーションに任意のコードを実行可能な問題を発見し、Bug Bounty Programを通じて報告しました。発見したRCEは、複数のバグを組み合わせることによって達成される面白いものだったので、この記事では、その詳細を共有したいと思います。なお、現在脆弱性は修正されています。 調査のきっかけElectronアプリの脆弱性を探したい気分だったので、Electronアプリで報奨金が出るアプリを探していたところ、Discordが候補にあがりました。Discordは自分自身が利用者で、自分が使うアプリが安全かどうかをチェックしたいという思いもあったので、調査をすることにしました。 発見した脆弱性私は主に次の3つのバグを組み合わせることでRCEを達成しました。 contextIsolationオプションの

  • 西暦1年は閏年か? - プログラマーの脳みそ

    閏年(うるうどし)の話題。 Twitterで見かけた話題で「西暦1年は閏年かどうかぱっとわからん人おる?」という些か煽り気味のツイートを見かけたのだけども、反射的に「閏年じゃないに決まってるじゃん」とぱっと答えてしまわないだろうか。当にそうだろうか? そう単純な話なのだろうか? プログラミングを学んでカレンダーを扱うことを学ぶ際に置閏法についても簡単に触れられることがある。置閏法というのは閏年や閏月(太陰暦では1年が13ヵ月になるケースがあり追加の月を閏月と呼ぶ)をどのようなルールで挿入するかという話で、まさにアルゴリズムであるからプログラミングの話題と相性がいい。 置閏法 現代の西暦の置閏法(ちじゅんほう)は 西暦を 400 で割り切れる年は閏年 上記以外で西暦を 100 で割り切れる年は平年 上記以外で西暦を 4 で割り切れる年は閏年 上記以外は平年 といった手続きで閏年(つまり2月

    西暦1年は閏年か? - プログラマーの脳みそ
  • キャッシュレス決済の未来と銀行のあり方についての考察(2020年夏) - novtanの日常

    ドコモ口座がトリガーを引いた、新型決済スキームの出口にWeb口振受付をおいてしまった過ちについてはおおよそ状況が出揃い始めましたね。官民挙げて推進しようとしていたキャッシュレスの波に少なからず水を差す事件であった、という総括はなされると思いますが、銀行はともかく、キャッシュレス事業者側としてはこの状況は気が気ではないですよね。もっとも、選択肢にクレカがあるものについては影響は少ないかもしれません。どう考えても現状のユースケースにおいてはクレカが安心ですよね(相対的に)。そのあたりについては去年に書いたこのエントリを読んでみて欲しい。 novtan.hatenablog.com まあ、予言ですね。 チャージをするということ ビットコインみたいな消費電力から生まれる通貨(表現は微妙…)を除いて、いわゆる電子マネーと言われるものはまず現金からの変換を行う必要があります。 XXポイントなんかも現金

    キャッシュレス決済の未来と銀行のあり方についての考察(2020年夏) - novtanの日常
  • お役所や大企業がIT調達の呪縛から逃れるためには - ku-sukeのブログ

    宮坂さんのTweetを拝見し、僕もここ数年DXだとかFintechだとかよくわからない業界でもがいてきて少し見えてきたことがあるので言語化してみたい。 勉強になった。行政ではIT調達なる言葉を使うが、ソフトウェア/デジタルサービスは「調達」という言葉に馴染まないのではと。サービスが顧客期待に応えるかは事前に積算できず不確実性が。顧客に聞きながら改善するしかない。これが今の予算/調達制度に抜群に相性が悪い仮説。 https://t.co/RUV1HzrDoe— 宮坂学 Manabu Miyasaka (@miyasaka) 2020年9月19日 おさらい。IT調達の呪縛とは まずはじめに、この国の遅れたIT化や、いけてない(ようにみえる)システムがなぜ起きているか、その原因の多くが、システム開発を「モノの調達」と同じフローに載せていることである。 たとえば、コピー機を100台、カラーレーザー

    お役所や大企業がIT調達の呪縛から逃れるためには - ku-sukeのブログ
  • React17におけるuseEffectの破壊的変更を理解する

    しばらく前、React 17 RCが発表されました。現行のReact 16に比べて、いくつかの破壊的変更がある一方、新機能が何もないというのが特徴です。Reactチームとしては、新機能が無いとはいえ、破壊的変更も少なくなっておりなるべく16から17へのアップデートを行なってほしいという考えのようです。 この記事では、React 17における破壊的変更のうち、useEffectのクリーンアップのタイミングに関する変更を取り上げます(以下は公式サイトから引用)。 In React 17, the effect cleanup function also runs asynchronously — for example, if the component is unmounting, the cleanup will run after the screen has been updated.

    React17におけるuseEffectの破壊的変更を理解する
    raimon49
    raimon49 2020/09/20
    React 16までのuseEffectもちゃんと理解できていなかった事が分かった。
  • JITとコードの暖気の実体 - #chiroito ’s blog

    どうも、趣味でOpenJDKのコミッタをしてます。 とあるブログを読んでいたら気になる点があったので検証してみました。 JITと暖気 Javaプロセスはアプリケーションを動かしながら必要に応じてバックグラウンドでバイトコードをネイティブコードにコンパイルします。このコンパイル時にはCPUリソースを使用します。 コンパイルにはいくつかのレベルがありますが、コンパイルされる前やレベルの低いコンパイルのコードはCPUのリソース効率が悪かったり、アプリケーションの処理中にコンパイルが実行されるとCPUリソースを奪いあったりなどが問題になります。 そのため、Java のアプリケーションで性能を気にする要件がある場合、番に近いリクエストを投げてコードをJITコンパイルする事があります。これをよく暖気と言います。これにより番のリクエストが来る前にコードを最適化し、よりCPUリソース効率の高いコードで

    JITとコードの暖気の実体 - #chiroito ’s blog
    raimon49
    raimon49 2020/09/19
    Spring Boot + JPAでの検証例。勝手に持っていたイメージよりもアプリケーション全体のコンパイルは遅い。暖気運転してからReadiness ProbeでOKを返すって運用していなかったから気付きのある記事だった。
  • JavaScript によるパフォーマンス計測 | murashun.jp

    Navigation Timing API を利用することで、ブラウザの各段階の処理時間を計測できます。例えば、ドメインの名前解決、TCP ハンドシェイク、TLS トンネルの確立、HTTP リクエストの送信、HTTP レスポンスの受信、DOM ツリーの構築、スタイル情報の解決などです。 Navigation Timing API では window.performance.timing オブジェクトと window.performance.navigation オブジェクトを利用します。 window.performance.timing オブジェクトからは、各段階の処理時間のタイムスタンプが得られます。これらのプロパティには、アクションが完了したときのミリ秒単位のタイムスタンプが格納されています。 Navigation Timing API のタイムスタンプダイアグラムvar timin

    JavaScript によるパフォーマンス計測 | murashun.jp
  • Web口振受付と即時口振に頼らなければならない新型決済スキームの問題 - novtanの日常

    ドコモ口座の問題はシステム的な部分でいうと「人確認と認証が甘い」に尽きるんですが、それ以前の問題として、このビジネススキームが何を根拠に成立していて、その根拠に基づいた対応が行われていたか、ということがありますね。なにぶん、それなりに新しいことをやろうとしている話なので必ずしも法整備は十分ではないし、抜け道というか、既存の制度だったらこうすれば使えるよね、というスキームをひねり出して実施していくわけです。なので、根的な法律や制度の問題とは別に、2者間で成立させるための個別の契約が必ずあるわけです。それがどのくらい今回の事態を想定していたかは定かではないですけれども、少なくともここについて一般に開示されることはないでしょう。でも、そこがキモってのがこの話の難しいところ。 とはいえ、銀行との資金移動に持っていく部分については口振契約ということは明らかですので、そのへんをちょっと考察してみま

    Web口振受付と即時口振に頼らなければならない新型決済スキームの問題 - novtanの日常
  • この書籍について · JavaScript Plugin Architecture

    JavaScript Plugin Architecture この書籍はJavaScriptのライブラリやツールにおけるプラグインアーキテクチャについて見ていくことを目的としたものです。 次の形式で読むことができます。 Web版 PDF形式 ePub形式 Mobi形式 この書籍のソースコードは、次のGitHubリポジトリに公開されています。 azu/JavaScript-Plugin-Architecture: JavaScriptプラグインアーキテクチャの Twitterのハッシュタグは#js_plugin_book 更新情報はRSSやリリースノートから見ることができます。 はじめに JavaScriptの世界では1つの大きなライブラリよりも小さなライブラリを組み合わせていくようなスタイルが多く見られます。小さなものを組み合わせて作るためには、プラグインと呼ばれる拡張の仕組みが必要とな

    raimon49
    raimon49 2020/09/06
    それぞれの実装方法とPros/Consまで書かれていて分かり易い。
  • Latest topics > なぜMozillaはXULアドオンを廃止したのか?(翻訳) - outsider reflex

    Latest topics > なぜMozillaはXULアドオンを廃止したのか?(翻訳) 宣伝。日経LinuxにてLinuxの基礎?を紹介する漫画「シス管系女子」を連載させていただいています。 以下の特設サイトにて、単行まんがでわかるLinux シス管系女子の試し読みが可能! « 「同調圧力は忌むべきものだ」と思考停止していたことに気付いた話 Main 「なぜMozillaはXULアドオンを廃止したのか?」に寄せられていた反応を見て、「甘い……甘すぎる……」と思って、W3C信者時代からの価値観に行き着いた話 » なぜMozillaはXULアドオンを廃止したのか?(翻訳) - Aug 22, 2020 (原著:David Teller, 2020年8月20日、CC BY-NC 4.0で公開されている内容の全訳。Qiitaにもクロスポストしています。) 要約:Firefoxはかつて、XUL

    raimon49
    raimon49 2020/08/23
    XULベースのアドオンからJetpackの登場と断念、WebExtensionsが導入されたFirefox Quantumに至るまでの道のり。最後に考察されるメンテナーのバーンアウト問題のところに凄く納得する。
  • パーフェクトRails著者が解説するdeviseの現代的なユーザー認証のモデル構成について - joker1007’s diary

    最近、パーフェクトRuby on Railsの増補改訂版をリリースさせていただいた身なので、久しぶりにRailsについて書いてみようと思う。 まあ、書籍の宣伝みたいなものです。 数日前に、noteというサービスでWebフロント側に投稿者のIPアドレスが露出するという漏洩事故が起きました。これがどれぐらい問題かは一旦置いておいて、何故こういうことになるのか、そしてRailsでよく使われるdeviseという認証機構作成ライブラリのより良い使い方について話をしていきます。 (noteRailsを使っているか、ここで話をするdeviseを採用しているかは定かではないので、ここから先の話はその事故とは直接関係ありません。Railsだったとしても恐らく使ってないか変な使い方してると思うんですが、理由は後述) 何故こんなことが起きるのか そもそも、フロント側に何故IPアドレスを送ってんだ、という話です

    パーフェクトRails著者が解説するdeviseの現代的なユーザー認証のモデル構成について - joker1007’s diary
  • 隠された(見えない)デスクトップに潜む脅威とその仕組み

    2018.09.14 コンサルティングサービス事業部 サイバーインテリジェンスグループ 吉川 孝志 普段我々がWindows PCを操作するときに必ず目にする領域、いわゆる、ファイルやフォルダのアイコンが並んでいる「デスクトップ」という領域があります。 実はそのデスクトップの裏側に、通常では見ることのできない「隠されたデスクトップ」が存在し悪用されている可能性があります。記事では、その脅威と仕組みを掘り下げて解説します。 結論から述べると、Windows OSでは通常のデスクトップ(”Default”という名称のデスクトップ)の他に新たな別のデスクトップを任意に作成することができる仕組みが存在します。ただし、一般のユーザーが簡単に作成できるような方法や手段は用意されていません。あくまでプログラムからデスクトップを新たに作成するコード(Win32API)を呼び出して明示的に作成する必要が

  • 新型コロナの接触確認アプリCOCOAは、どうあるべきだったのか?

    COVID-19対策接触確認アプリ「COCOA」は残念ながら不具合が報道されて話題になりました。そのOSS開発については、誤解が蔓延しているようです。今回はOSSと社会との関係について考察します。(まつもと ゆきひろ) 昨今の新型コロナウイルス感染症の広がりを防ぐ手段の一つとして導入されたのが、接触確認アプリ「COCOA」(COVID-19 Contact Confirming Application)です。 このアプリケーションは、プライバシーを維持したまま、ユーザー同士の接触を記録します。もし過去14日の間で、距離1m以内に15分以上とどまっていた人が、後に感染が分かれば通知してくれます。 もし社会全体で6割以上の人がこのアプリを使えば、大幅な感染拡大の抑制が期待されるとのことでした。 COCOAAndroid版とiOS版が提供されていますが、日では2020年現在、スマートフォンユ

    新型コロナの接触確認アプリCOCOAは、どうあるべきだったのか?
    raimon49
    raimon49 2020/08/07
    >実社会では特にサイコパスというわけでもなく、普通に振る舞っているのに、ネット上ではサイコパスとしかいいようのない発言をする人は想像以上にたくさんいます。 / 透明性の欠如が正義の味方の怒りを増幅させる。
  • React hooksのユースケースまとめ - たまめも(tech)

    プロダクションでのReact Appの立ち上げ・運用をやっとこ1サイクル回すことができたので、忘れないうちにいくつか知見を書き溜めておこうと思います。 しかし当に変化が目まぐるしいですね。過去の薄まってしまった記憶を取り戻すためにチュートリアルを一回しして、さーてやっていき〜と思ったところで「クラス型はもうオワコン!これからはhooks!」と言われたときにはどうしようかと思いました(早めに気づけてよかったともいう)。 さて今回はそんなhooksについて。 ベーシックな解説は公式ドキュメントや各種記事に譲るとして、ユースケースに絞ったメモを残しておきます。 useState ご存知stateですね。値のストアとsetterを提供してくれる、シンプルなhookです。 まあこれはそのまんまなんですが…、主にパラメータの受け渡し時に活躍してくれました。 子コンポーネントに値を渡しつつ、onCli

    React hooksのユースケースまとめ - たまめも(tech)