タグ

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

  • StripeにPayPayを組み込んでみよう - Qiita

    こんにちは。Stripeのパートナーソリューションエンジニア池田です。 普段はStripeのパートナー様の技術支援的なお仕事をしています。 今回はQiitaにて、Stripeの EPM (External Payment Methods) という機能と、それを使ってPayPayのような外部決済手段をStripeに組み込む方法についてお伝えしようと思います。 簡単に言うと、StripeにPayPayを組み込んでみよう! ということです。 EPMとは EPMとはExternal Payment Methodsの略称で、Stripeでは包括契約をサポートしていない決済手段(外部決済手段)を、StripeのPaymentElementというUIの中に組み込んでUXを高めることができるという機能のことです。 詳細については公式のドキュメントもぜひご確認ください。実装手順や免責事項も記載されています。

    StripeにPayPayを組み込んでみよう - Qiita
    tomiyanx
    tomiyanx 2024/05/11
  • 【PHP8.4】メソッド引数のデフォルトnullがついに禁止される - Qiita

    よく見たら不自然なんだけどこれまで普通に許されていた、この引数デフォルト値がついに禁止されます。 何がおかしいって型がintなのに引数を渡さないと$xがnullになるので矛盾してしまうわけですね。 これはPHPが昔からの仕様を残しておいたためであり、いわゆる歴史的経緯というやつです。 以下は該当のRFC、Deprecate implicitly nullable parameter typesの日語訳です。 PHP RFC: Deprecate implicitly nullable parameter types Introduction PHP7.1で?T構文、さらにPHP8.0でUnion型がサポートされたことにより、PHPはnull許容値型を正しく書くことができます。 歴史的にはPHP5.0でオブジェクト型、PHP5.1でarray、PHP5.4でcallable、PHP7.0で

    【PHP8.4】メソッド引数のデフォルトnullがついに禁止される - Qiita
    tomiyanx
    tomiyanx 2024/03/24
  • いつか起業したいエンジニアへ - Qiita

    はじめに 34 歳のとき、勤めていた会社の経営が傾き早期退職を促されたのを契機に独立しました。その後、41 歳で Authleteオースリート 社を設立しました。諸般の事情で現在も Authlete 社の代表取締役という肩書きを持っていますが、経営者的な仕事は他の人に任せ (参照: シリコンバレーのプロフェッショナル CEO を迎えて米国市場に挑戦する日のスタートアップの話)、50 歳目前の現在もプログラマとしてコードを書き続けています。 Authlete 社設立 (2015 年 9 月) から 8 年半弱経過したものの、まだまだ小さな会社で道半ばであるため、起業家として何か語るのは時期尚早ではあるものの、軽い体調不良が長引く中、『自分のエンジニアとしてキャリアを振り返ろう!』という記事投稿キャンペーンを見かけ、生きているうちに子供世代のエンジニアの方々に何か書き残しておこうと思い、文章

    いつか起業したいエンジニアへ - Qiita
    tomiyanx
    tomiyanx 2024/03/04
  • いろんなバンディットアルゴリズムを理解しよう - Qiita

    今回は、何も知らないところからバンディットアルゴリズムを学びました。 シンプルなバンディットアルゴリズムから、各ユーザーごとに最適化するContextual Bandit、順序を最適化するCascading Banditまで解説します。 学んでいて疑問に思ったことを解消しつつ記載しています。 ソースコード https://github.com/birdwatcherYT/bandit 対象読者 バンディットアルゴリズムを理解して実装したい人 ユーザーごとにカスタマイズしたバンディットを理解して実装したい人(Contextual Bandit) 順序を最適化するバンディットを使いたい人(Cascading Bandit) バンディットアルゴリズム バンディットの問題設定を説明します。 スロットマシンN台がある スロットマシンの腕を引くと報酬がもらえる 累積報酬を最大化したい バンディットアル

    いろんなバンディットアルゴリズムを理解しよう - Qiita
    tomiyanx
    tomiyanx 2023/11/03
  • Vue3をアゲアゲ↑↑する記事 - Qiita

    はじめに こんにちは、フロント歴7年目のエンジニアになります🙂 今回は日頃仕事でお世話になっているVue.jsに感謝の意を込めて、 Vueの素晴らしさを皆さんに少しでも感じて貰えたらと思い、この記事を投稿することにしました。 アゲアゲするとか言って 「どうせSFCが便利とか言いたいんでしょ?」 「script setupが凄く凄いとか言いたいんでしょ?」 ・・・いえいえ、そんな当たり前のことを話したいわけではありません。 もっと深いところの説明だったりをですね、 「いやでも最近のVue3はReactに似ているから、それならReactで良くね?」 全く良くないです はい、そういった人達にこそ見て欲しい内容となっております。 つまり私がVueが優れていると信じ使い続ける理由です。 この記事では、Vue.jsの書き方みたいなことは扱いません。 またVueの魅力をお伝えする都合、他のフレームワー

    Vue3をアゲアゲ↑↑する記事 - Qiita
    tomiyanx
    tomiyanx 2023/08/27
  • PSRとコーディングスタイルの関係、そしてPERへ - Qiita

    • PSR-1は高度な技術的相互運用性を目的としたコーディング標準 • PSR-2/→PSR-12はプロジェクト内での認知的摩擦を軽減するためのスタイルガイド • PSR-12はPER Coding Styleに進化した PSRとは何か PSRが何ではないかについて下記の記事にまとめたので、あとでゆっくり読んでください。 というか↑の記事にだいたい書いたので、この記事はコーディングスタイルに絞った内容ということになります。 重要な部分だけ抜萃して再掲しましょう。 PSRを管理するのはPHP-FIG (The PHP Framework Interoperability Group、PHPフレームワーク相互運用グループ)です。この組織はPHPのフレームワーク・CMS・ツールなどの開発者の寄合所帯です。 Frequently Asked Questions - PHP-FIGの内容をざっくり訳

    PSRとコーディングスタイルの関係、そしてPERへ - Qiita
    tomiyanx
    tomiyanx 2023/04/29
  • DDDのドメイン・サブドメイン・ユビキタス言語・境界づけられたコンテキストを整理する - Qiita

    この記事は ドメイン駆動設計 #2 Advent Calendar 2018 の 18日目 です。 前々日は @little_hand_s さんの「非エンジニアの方に「DDDって何なの?」と聞かれたときの説明」でした。 この記事の内容 ドメイン駆動設計(以下、DDD)に登場する、「ドメイン」「サブドメイン」「ユビキタス言語」「境界づけられたコンテキスト」「ドメインモデル」って、どう関連しているのかとか、それぞれの微妙な違いが分かりにくかったり、人によって解釈が異なっていた経験はないでしょうか? IDDD 2章の「問題空間」と「解決空間」がよくわかんないなぁ... 問題とその解決と言う2つの視点はわかるんだけど、「解決空間とは境界づけられたコンテキストのこと」ってのがわからん。 — Yohei TSUJI (@crossroad0201) 2018年12月11日 この記事では、書籍 「エリッ

    DDDのドメイン・サブドメイン・ユビキタス言語・境界づけられたコンテキストを整理する - Qiita
    tomiyanx
    tomiyanx 2023/01/13
  • まだレビューでそんなやりとりしてるの?PHPStanとPHP-CS-Fixerを導入して楽しよう(Github Actionsを添えて) - Qiita

    まだレビューでそんなやりとりしてるの?PHPStanとPHP-CS-Fixerを導入して楽しよう(Github Actionsを添えて)PHPLaravelphp-cs-fixerPHPStanGitHubActions はじめに 弁護士ドットコム Advent Calendar 2021 記念すべき1日目🎉(2年連続) 記事はあくまでも、Laravel MeetUp Okinawa でお話しした内容を記事にしたものになります。 題 突然ですが、レビューでこんな事を言われた/言った経験はないだろうか。 「インデント!!これもう指摘するの3回目!!」 「ここの変数未定義だし、ここも型合ってないよ!!」 …………… ………………………… ……………………………………… 指摘された側 はその場では反省して、気をつける事だろう。 しかし、所詮は人間。同じミスはしてしまう。 指摘する側 も同じ

    まだレビューでそんなやりとりしてるの?PHPStanとPHP-CS-Fixerを導入して楽しよう(Github Actionsを添えて) - Qiita
    tomiyanx
    tomiyanx 2023/01/13
  • LarastanでLaravelプロジェクトを静的解析しよう! - Qiita

    はじめに Laravel Advent Calendar 2021 2日目の投稿です。 PHPのソースコードの品質管理はどのように実施していますでしょうか。 チームで開発している場合はコーディング規約に従ってコードレビューを実施している場合もあるかと思います。 しかし、コードレビューを人の手で実施している場合は以下のような問題があるかと思います。 人力によるコードレビューのつらみ レビューに時間がかかる 修正コード量が多いと修正差分を見ただけで「うっ・・・」っとなります ルール違反していても見逃してしまう場合がある ルールが増えれば増えるほどチェック漏れのリスクが増加します コードレビューしてくれる人を探さなければならない コードレビューできる人が限られている場合、修正したコードがマージされるまでにかなり時間差が生まれることも コードレビューできない人をできるように育てないといけない 特定

    LarastanでLaravelプロジェクトを静的解析しよう! - Qiita
    tomiyanx
    tomiyanx 2023/01/13
  • 履歴を持ったテーブルの設計 - Qiita

    概要 データベースの設計や不具合の調査をしていて、ふと思ったことは無いでしょうか? ログやバックアップに頼らずに、データベースに全ての変更履歴が残るようにできないだろうか、と。 試しに、設計してみるとFOREIGN KEY制約を保ちながら履歴を持ったテーブルを設計するというのは、なかなか厄介なことに気づきます。 しかし、突飛なアイディアという訳ではなく、ネット検索してみると結構ヒットします。 変更履歴を持つテーブルの設計 履歴テーブルからデータを取得するSQL リレーショナルデータベースでは履歴の管理をすべきでない? データベース設計 ~ マスタデータを含めて、全ての履歴を残したいという要望 先人の試行錯誤を自分なりに咀嚼して、設計してみた方法を文章として残して置こうかと思います。(※実際のプロジェクトに適用してみた気付きを加筆しました) 設計方針 履歴を持つことに意味のあるテーブルのみを

    履歴を持ったテーブルの設計 - Qiita
    tomiyanx
    tomiyanx 2023/01/13
  • CircleCIの不可視のAWSクレデンシャルを削除する - Qiita

    正月早々にCircleCIがしでかしてくれたので、休み返上でCircleCI上のシークレットのローテーションに追われました。(対応された皆様お疲れ様です🙏) CircleCI セキュリティアラート: CircleCI 内に保存されているシークレットのローテーションをお願いいたします その際、少々はまりどころがあったので記載します。 問題 AWSより、CircleCIに登録されていない(ように見える)AWSクレデンシャルをローテートしろと通知が来た 原因 太古の昔に使われていたCircleCI プロジェクトAWS PermissionがUI上は廃止されたのに生きていたため。 解決策 curlで以下を叩いて削除する。 ${CIRCLECI_VCS} は github か bitbucket のどちらか ${CIRCLECI_ORG} はCircleCIのorganization名 ${CI

    CircleCIの不可視のAWSクレデンシャルを削除する - Qiita
    tomiyanx
    tomiyanx 2023/01/12
  • アイテムベース協調フィルタリングに今更挑戦してみた - Qiita

    自分の知識の整理もかねて今更ながら協調フィルタリングについてまとめます。 基的には自分用勉強ノートみたいな感じですが、 「レコメンドやってみたいけどどういう風に始めればよいかわからない」 「個々の概念はわかるけど全体を繋げるとどんな感じになるのかわからない」 という方向けにも書いてます(これは自己紹介でもあります)。 なるべく内容が正確であるよう心がけますが、もし誤り・誤解を招く表現がございましたらコメントにてご指摘頂けると助かります。 おしながき 今回用いるデータセット - MovieLens 100k レコメンドシステムのアプローチ/協調フィルタリングとは データの整形 類似度の計算 スコアの算出~レコメンドしてみた レコメンドの精度を評価 - Precisionを用いて 参考資料 なお今回用いているコードはこちらのColaboratoryにて確認することができます。 1. 今回用い

    アイテムベース協調フィルタリングに今更挑戦してみた - Qiita
  • Storybook で私とみんなのコンポーネントカタログ作成してこ - Qiita

    この記事は Hamee Advent Calendar 2018 25日目の記事です。 私、入社したてのフロントエンド歴 4年目くらいの人です。 フロントエンドの環境とか技術とかインプットしたら、アウトプットもしないとなーと思っていたところでめでたくアドカレ初参加となりましたです👏 さてさっそく題に… 私とみんなのコンポーネントカタログを作りたい!! コンポーネント = HTML & CSS & JavaScript で作るパーツとして話を進めますね。 こんなの作ったよ こんなコンポーネントあるんだよ 見た目こんなにあるんだよ というのを、みんな (デザイナー、開発者、クライアント) に知ってもらう & わかってもらうために作りたい! 途中で他の方がお手伝いに来た時も、きちんと準備してあると、幸せですよね🤝 じゃあ作ろう! 「はい、STOP」と、心の中のリトル自分が囁きます。 おれお

    Storybook で私とみんなのコンポーネントカタログ作成してこ - Qiita
    tomiyanx
    tomiyanx 2022/01/27
  • Terraform を自動実行したいなら Atlantis - Qiita

    この記事は Terraform Advent Calendar 2021 の5日目です。 Atlantis の話が書きたいけど書く場所がなくて遅ればせながら枠を探したところ、5日目の枠が空いていることに6日朝に気付いて押さえたため、投稿は遅くなっております。 ということでこのエントリーでは全力で Atlantis を推します。 Atlantis とは Terraform の自動実行にはみなさん何を用いているでしょうか。2021年現在だと HashiCorp 提供の Terraform Cloud でマネージドなパイプラインが簡単に組めますし、同じく HashiCorp が GitHub Actions を使ったワークフローを Automate Terraform with GitHub Actions | Terraform - HashiCorp Learn で公開していたりと、自動実行

    Terraform を自動実行したいなら Atlantis - Qiita
  • tfmigrate + Atlantis でTerraformリファクタリング機能をCI/CDに組み込む - Qiita

    マイグレーションの履歴を記録することで、マイグレーションファイル名を省略して、単に tfmigrate plan や tfmigrate apply とするだけで、未適用のマイグレーションを適用することが可能になり、よりCI/CDで使いやすくなりました。また履歴モードが有効な場合、 tfmigrate list --status=unapplied で未適用のマイグレーションファイルを列挙することも可能です。 いまのところ storage の種類は s3 と local しか使えませんが、s3 以外のクラウドストレージに保存したい場合は、現状の回避策として local ストレージを使用して一旦ローカルファイルとして保存して、tfmigrate plan / apply の前後で履歴ファイルを自前で同期することは可能です。最新の状況は上記のREADMEを参照して下さい。 tfmigrate自

    tfmigrate + Atlantis でTerraformリファクタリング機能をCI/CDに組み込む - Qiita
  • multi stageなDockerfileで中間イメージにタグをつける - Qiita

    Google Cloud Container Builder でbuildする時に高速化する為にいろいろ奮闘中 multi stageなDockerfileの中間イメージにタグをつけたい場合があったのでメモ 背景 Google Cloud Container Builderでのビルドを高速化する為に、キャッシュに使うイメージを事前にpullしておく必要がある https://cloud.google.com/container-builder/docs/speeding-up-builds マルチステージなDockerfileのビルド時に最終的なビルド結果のイメージをキャッシュしても、中間イメージのキャッシュが無いので高速化されない 中間イメージのbuildが一番重いので、中間イメージにキャッシュを使って欲しい その為には中間イメージもpushしておく必要がある multi-stage と

    multi stageなDockerfileで中間イメージにタグをつける - Qiita
  • もしあなたが急にAndroidアプリを業務で作るはめになった場合の選択肢(2021年初頭版) - Qiita

    記事はAndroid Advent Calendar 2020の2020/12/01分です。 初っ端ということなので、2020年末と2021年頭でのAndroidエンジニアとして初めて業務でやる場合に抑えておいたほうが良い最低限の部分を書いていこうと思います。(ツッコミ待ちです) 対象 2021年3月ぐらいまでに !!業務!! でAndroidアプリを作らされる事になった可愛そうな人が居たとします この人は手続き型言語でオブジェクト指向プログラミングができる知識があり、Androidアプリもなんとなく趣味で作ったこともあるぐらいのレベル感です(なので上長からいきなりお前Android担当なと言われた) 最低限のAndroidアプリの作成の知識はあるものとします(画面の表示にはActivityがいるよとかは書かない) ゲームは対象外です 業務でAndroidアプリを作ることを想定しています

    もしあなたが急にAndroidアプリを業務で作るはめになった場合の選択肢(2021年初頭版) - Qiita
  • 2020年のMavenリポジトリの作り方 - Qiita

    はじめに Javaエンジニアであれば何だかんだでMavenリポジトリを使うことは非常に多いと思います。Gradleであっても使いますしね。 OSSなどはセントラルリポジトリから落とすとして自作のライブラリの管理をどうしていますか? ローカルだけで開発していればmvn installで事足りますが、CI/CDを行っていたりチームや組織でライブラリを共有している場合はそうもいきません。 という分けで今回はMavenで作成したライブラリを公開するための方法に関してまとめました。ちなみに2020年8月時点でのおすすめはGCSをリポジトリにする方法です。 Maven Central Repositoryに登録 OSSのリポジトリサーバを立てる GitHub Pagesを使う GitHub Packages + Actions を使う S3/GCS/Azure Blobにリポジトリを構築する GCP

    2020年のMavenリポジトリの作り方 - Qiita
    tomiyanx
    tomiyanx 2020/09/16
  • このPHPがテンプレートエンジンのくせに慎重すぎる (前篇) - Qiita

    この記事ではPackagistで公開可能な形式のPHPのライブラリ(Composerパッケージ)を公開するための道具立てを紹介します。あと、現代のPHPerはツールを組み合せてさくっと開発しているんだという自慢です。 タイトルは「この TypeScript が Hello, world! のくせに慎重すぎる」と「この勇者が俺TUEEEくせに慎重すぎる」のぱくr… パロディです。 テンプレートエンジンのくせに型安全なんてなまいきな。 この記事の読みかた せっかくなので手を動かしながら自分でComposerパッケージを作成してみましょう。 今回の題材は「Hello worldを出力する」という革新的機能を提供する、とても画期的な実用ライブラリです。 記事名通り「慎重すぎる」ので、細かく刻んでGitで経過を保存しながら作業を進めていましょう。なんかよくわからない状態になったらgit reset

    このPHPがテンプレートエンジンのくせに慎重すぎる (前篇) - Qiita
    tomiyanx
    tomiyanx 2020/07/31
  • MySQL データベースの負荷対策/パフォーマンスチューニング備忘録 インデックスの基礎〜実践 - Qiita

    TL;DR この記事に書いた事 二分探索木のお話(前提知識) MySQLのInnoDBで利用されているB+木インデックスの構造と特性 (前提知識) MySQLのClusteredIndex,SecondaryIndexについて(前提知識) カーディナリティについて(前提知識) 実際の負荷対策 検出編 スロークエリ 検出編 その他のクエリ割り出しいろいろ クエリ・インデックスの最適化 explainの使い方と詳細 ケース別実践 単純にインデックスがあたっていないケース カーディナリティが低いインデックスが使われているケース 部分的にしかインデックス/複合インデックスがあたっていないケース 複合インデックスの順序誤りでインデックスが適用できていないケース 複合インデックスの最初がrange検索のケース ソートにインデックスが適用できていないケース ソートにインデックスが適用できていないケース(

    MySQL データベースの負荷対策/パフォーマンスチューニング備忘録 インデックスの基礎〜実践 - Qiita