タグ

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

  • 食べログのレストラン検索を支える Debezium と Apache Kafka - Qiita

    こんにちは。べログシステム技術部マイクロサービス化チームの @weakboson です。 今年の Advent Calendar ではべログに Debezium と Apache Kafka (以下 Kafka) を導入してレストラン検索インデックス同期システムのパフォーマンスを爆上げした事例を紹介します。 マイクロサービス化チームとは? 私の所属するマイクロサービス化チームには「巨大なモノリシックサービスにおける開発の辛さを解消し、少人数のチームが自律的に意思決定しながら開発するためのシステム基盤を作る」というミッションがあります。 べログは2007年に Ruby on Rails でリプレイスしてから約15年の長期にわたって抜的なアーキテクチャ刷新なしに開発と運用を継続しており、モノリシックで巨大なコード、かつ巨大なデータを持つ状態になっています。正直なところ現在の開発効率

    食べログのレストラン検索を支える Debezium と Apache Kafka - Qiita
    syou6162
    syou6162 2022/03/20
  • BigQuery ScriptingでPythonっぽいループ処理をしてみた - Qiita

    はじめに 昨年(2019年)の10/3に、BigQuery ScriptingがBetaでリリースされました。 上手く使えばPythonの処理とか、置き換えられるんじゃない?と意気込んだのですが、そこまでプログラミングが得意でない私(+チーム)には中々使い所が分からず。 実際に使ってらっしゃる「BigQuery ScriptingがBetaリリースされたので軽くウォークスルーしてみる」とかを見ても、使い所が難しい。 そんな苦節数ヶ月、やっとPythonっぽいループ処理ができたので、共有させていただきます。 BigQuery Scriptingとは? BigQueryは、ご存知の通りSQLの処理を実行できるのですが、その実行するSQLを外部変数によって条件分岐したり、ループしたりしたいことありますよね。 通常であれば、それをPython等の別の言語で呼び出してSQL処理を分岐・繰り返しをする

    BigQuery ScriptingでPythonっぽいループ処理をしてみた - Qiita
    syou6162
    syou6162 2022/03/12
  • StackOverflowからのコピペをやめろ。今すぐにだ。 - Qiita

    Original article:https://dev.to/dotnetsafer/rip-copy-and-paste-from-stackoverflow-trojan-source-solution-4p8f その昔コピペできない文章というものがありました。 実際は単にフォントを変えているだけというものですが、人間の目に見える文字と実際の文字が異なることを利用した攻撃の一種と見ることもできます。 さて、最近になって似たような攻撃に関する論文が公開されました。 人間には見えない文字を織り交ぜることによって、一見問題ないコードが実は脆弱になってしまうというものです。 ただ論文は堅苦しいうえに長くて読むのがつらいので、具体的に何がどうなのかよくわかりません。 平易に解説している記事があったので紹介してみます。 以下はDotnetsafer( Twitter / GitHub / Web

    StackOverflowからのコピペをやめろ。今すぐにだ。 - Qiita
    syou6162
    syou6162 2021/12/28
  • NAIST 誤用コーパス - Qiita

    このうち、「対訳作文 DB」について、誤りタイプの情報を XML 形式で付与したものが NAIST 誤用コーパスになります。「対訳作文 DB」は国立国語研究所で収集・公開されているデータベースで、さまざまな国・地域の日語学習者の書いた課題作文に対する手書き原稿に対して、一部に添削情報が付与されています。この添削情報には誤りタイプが付与されていないので、それに誤りタイプを付与した、というものです。 日語学習者コーパスに対する文法誤りのタイプは、上記の中でも寺村誤用例集データベースや日語学習者作文コーパス、国際日語学習者作文コーパスおよび「なたね」には付与されているのですが、寺村誤用例集データベースには誤用に対する正用例がアノテートされていないので、誤り検出の評価には使えるものの誤り訂正の評価には使えませんし、日語学習者作文コーパスは正用例がアノテートされているものの「文法」「文字」

    NAIST 誤用コーパス - Qiita
    syou6162
    syou6162 2021/12/13
  • 「もったいない」マインドが逆に効率を悪くする。フロー効率とリソース効率から考えるチームで仕事をする理由 - Qiita

    「もったいない」マインドが逆に効率を悪くする。フロー効率とリソース効率から考えるチームで仕事をする理由チーム開発プロジェクト管理マネジメント はじめに 前回、なぜ、ソフトウェアプロジェクトは人数を増やしても上手くいかないのかの記事において、プロジェクト型の人員規模を柔軟に変化させる開発スタイルに関して、理論的なスケジュール削減の限界について考察しました。その際に、チーム型開発や組織とソフトウェアの紐付けについても示唆しました。 今回は、チームでソフトウェアを開発することに関して、「フロー効率」と「リソース効率」という観点から考察し、なぜ私たちはチームで開発するのか、あるいはなぜプロジェクト型を採用するのかについての考え方を深めていきたいと思います。 そして、組織における効率性の価値観が異なると、新しい効率性に関して理解をする前に「もったいない」と感じてしまい、新しい文化を取り入れづらくして

    「もったいない」マインドが逆に効率を悪くする。フロー効率とリソース効率から考えるチームで仕事をする理由 - Qiita
    syou6162
    syou6162 2021/12/13
  • GANを使わず画像を綺麗にしたい話(SRFlow) - Qiita

    はじめに ABEJA Advent Calendar 2021の8日目の記事です。 この記事では素晴らしい技術のはずなのになかなか日の目を浴びないFlowと呼ばれる技術を使った超解像について書こうと思います。 これを読んだ暁には「そうか、だから日の目を浴びないのか」となっていると思います。 そしてなぜこの人はこんなマニアックな記事を書いているんだろうと思うことでしょう。 超解像の概要 超解像とはざっくりいうと小さい画像を大きくする技術のことを指します。画素数の少ない低解像度な小さい画像を、画素数の多い高解像度の大きい画像にするということは、何かしらの方法で画素を補間してあげる必要があります。 非常にわかりやすいこちらの記事にもあるように、超解像とは不良設定問題です。 画像丸パクで大変恐縮ですが、1x3pixelの画像を2倍拡大して2x6pixelにする場合、以下のように様々なパターンが考え

    GANを使わず画像を綺麗にしたい話(SRFlow) - Qiita
    syou6162
    syou6162 2021/12/12
  • Hugging Face謹製のTrainerが結構便利というお話 - Qiita

    はじめに この記事は「Kaggle Advent Calendar 2021」の3日目の記事です。 この記事では、結構便利(と個人的には思っている)なのにあまり使われていないHugging Face謹製のTrainerについて紹介します。 群雄割拠のPyTorchのTrainer系ライブラリ PyTorchのTrainer系ライブラリは未だに「コレ」というものがない印象です。Kaggleの公開ノートブックでは自作Trainerが目立ち、コードを読む際に質的でない部分で時間がかかってしまうこともしばしばです。 そこで、「Transformersを使う際にはHugging Face公式のTrainerが一番良いのでは?」と私は思っているのですが、あまり使われていないので紹介しようと思います。 Huggig Face Tranerのメリット コードがかなりスッキリする 最低限ならばTraine

    Hugging Face謹製のTrainerが結構便利というお話 - Qiita
    syou6162
    syou6162 2021/12/12
  • Kaggle NFLコンペ紹介(優勝ポエムを添えて) - Qiita

    KaggleのNFL Health & Safety - Helmet Assignmentというコンペで優勝したので調子に乗って、コンペの紹介とポエムを書かせていただくことにしました。 多種多様なアプローチがとれる楽しいコンペでしたので、そのお気持ちを少しでもお伝えできれば甚幸です 自己紹介 機械学習/プログラム歴はもうすぐ3年 巷に溢れるKaggle (Notebook) Expert 画像系コンペが好み。pandas力はゴミ。 パパ Kaggler。とてもかわいい息子と娘がいる。 2年前にポエムを書いて以来、久々のkaggleコンペになりました。この2年「メダルは取れないんじゃなくて取っていないだけww」とほざき続けてきた中でのコンペ参戦です。 コンペ紹介 [NFL Health & Safety - Helmet Assignment] コンペの趣旨 NFL(National Fo

    Kaggle NFLコンペ紹介(優勝ポエムを添えて) - Qiita
    syou6162
    syou6162 2021/12/12
  • Deepでポン用実験管理ツール(サービス)の比較2021 - Qiita

    皆様メリークリスマス!ふぁむたろうです。 記事遅れてしまいすみませんでした 自分はここ1年くらいのコンペでは脳死で wandb(Weights & Bias) を使って実験管理をしていたのですが、1年の節目ということで他のツール(サービス)も見てみようと思い記事にしました。 (余談ですが wandb の読み方は「Weights & Bias」でも「ワンディービー」でも「ダブリューアンドビー」でも良いっぽいです) 特に業務上で使う場合 pricing 等も気をつけなきゃいけないため、この記事ではそこらへんにも触れていければと思います。 とはいえ昨今の実験管理ツールはたくさんあるので、今回は以下の5つに絞って比較してみます。 (pytorch lightning に標準装備されているもの) TensorBoard MLflow Neptune.ai Weights & Biases Comet

    Deepでポン用実験管理ツール(サービス)の比較2021 - Qiita
    syou6162
    syou6162 2021/12/12
  • BERT を使った文書検索手法 Birch について解説 - Qiita

    情報検索・検索技術 Advent Calendar 2021 の 11 日目の記事です。前回は @sz_dr さんの「ちょっとテクい検索ランキングをVespaで実現する」でした。 この記事では BERT を使った文書検索手法 Birch について解説します。 先日、「最新の情報検索手法を知るにはどうしたらいいの...という人に向けたコンテンツまとめ記事2021」という記事を公開しました: 上記の記事では、ニューラル検索手法や最新の情報検索手法を知るためのコンテンツ紹介にとどめましたが、今回の記事では実際にニューラル検索手法の一つである Birch について解説します。 Birch は EMNLP-IJCNLP 2019 で採択された「Cross-Domain Modeling of Sentence-Level Evidence for Document Retrieval」という論文の手

    BERT を使った文書検索手法 Birch について解説 - Qiita
    syou6162
    syou6162 2021/12/12
  • dbt Cloudを初めて触るときに知りたかったことまとめてみた - Qiita

    この記事は何? この記事は、datatech-jp Advent Calendar 2021の4日目の記事です。 今回は、dbt Cloudを触る上で自分が最初に知りたかったことをまとめてみました。 実業務でdbt Cloudを利用している訳ではないため、間違い等ございましたらご指摘いただけますと幸いです。 なお詳しい使い方に関してはこちらの記事で丁寧に紹介されているので、こちらもぜひご参照ください。 Pricing 執筆時点では、Developer、Team、Enterpriseの3種類から選べます。 「とりあえず触ってみたい」「開発者は一人だけ」であれば、Developerを選んでおけば無料で使うことができます。 Account dbt Cloudにおける最上位の構成概念です。 1つのAccountに対して、複数のProjectやEnvironmentを作って管理していきます。 Pro

    dbt Cloudを初めて触るときに知りたかったことまとめてみた - Qiita
    syou6162
    syou6162 2021/12/12
  • BigQueryのデータセットにアクセス出来るアカウント一覧の取得方法 - Qiita

    BigQuery Advent Calendar 2021 3日目の記事になります! BigQueryのデータセットにアクセス出来るアカウント一覧を取りたいという場面があり色々苦労しつつも取り方がわかりました。 ここでいうアクセス出来るとはデータセット内のテーブルのデータを参照出来ることを指しています。 このようなデータを取りたい場合は基的にCloudAssetInventoryを使えば出来ます。 以下のコマンドでまずは取ってみました org配下の権限をすべて確認するためこちらのコマンドを叩くにはorgレベルの権限が必要となります。 gcloud asset analyze-iam-policy --organization="XXXXXXX" --full-resource-name='//bigquery.googleapis.com/projects/XXXXXX/datasets

    BigQueryのデータセットにアクセス出来るアカウント一覧の取得方法 - Qiita
  • RustでJSONパーサーをフルスクラッチで実装する - Qiita

    この記事はRust Advent Calendar 2021 カレンダー2の1日目の記事です。 はじめに エンジニアは一度はJSONパーサーをフルスクラッチで実装したほうが良いという天啓を受け、RFC 8259を読みつつRustでJSONパーサーを実装してみました。パーサーの実装は面白く勉強になり満足しましたが折角なのでhands-on形式の記事にしようと思いこの記事を書きました。 Rustの基的な文法が分かる方向けに記事を書きましたが、これからRustを勉強してみたい方にもぜひ挑戦してほしいです。 複雑な機能は使っていないので、分からない文法や標準ライブラリは公式ドキュメントを読めば十分補完できると思います。 The Rust Programming Language 日語版 Rust by Example 日語版 monkey-json 記事ではRustでJSONパーサー(mo

    RustでJSONパーサーをフルスクラッチで実装する - Qiita
    syou6162
    syou6162 2021/12/01
  • 操作変数法とディープラーニング - Qiita

    はじめに 年末の振り返りの代わりに、11月に某学会にsubmitした論文を宣伝します。これは僕が今の所属になって初めての論文です。 元論文は Liyuan Xu, Yutian Chen, Siddarth Srinivasan, Nando de Freitas, Arnaud Doucet, Arthur Gretton, "Learning Deep Features in Instrumental Variable Regression". [PDF] この論文は因果推論の有力な手法である操作変数法というものをディープラーニングで行う手法を提案したものです。今回@tkanayama_さんがブログで使っていたポケモンの例を使って、自分の手法を説明します。 操作変数法について まず、簡単な例を用いて操作変数法とは何なのか説明します。 問題設定 @tkanayama_さんのブログ記事「ポ

    操作変数法とディープラーニング - Qiita
    syou6162
    syou6162 2021/10/12
  • Terraform職人再入門2020 - Qiita

    data "aws_caller_identity" "current" {} output "account_id" { value = data.aws_caller_identity.current.account_id } 若干補足しておくと、 "${}" 自体が廃止されたわけではなく、今でも文字列の中に変数を埋め込む場合には必要ですが、式が変数の参照しか含まない場合は不要で、v0.13.4以降は冗長な書き方は警告が出ます。ちなみにv0.14のfmtはもう一歩踏み込んで、この書き方を自動で修正するようになりました。古いサンプルコードを雑にコピペできるようになってべんり。 Terraformではなく汎用的なHCLそのものの仕様を調べたいときは、 hashicorp/hcl にありますが、稿執筆時点ではデフォルトのmasterブランチはまだHCL1であることに注意して下さい。 HCL

    Terraform職人再入門2020 - Qiita
    syou6162
    syou6162 2021/07/17
    最高、助かる
  • Terraform職人入門: 日々の運用で学んだ知見を淡々とまとめる - Qiita

    はじめに この記事は CrowdWorks Advent Calendar 2017 の8日目の記事です。 Terraform職人の @minamijoyo です。Infrastructure as Codeしてますか? インフラのコード管理に Terraform を使い始めて2年ちょっと、番環境で運用していると日々色んな学びがあるので、Terraformやってみた系の入門記事では語られない、現場の運用ノウハウ的なものを共有してみようかと思います。 Terraformを使い始めた or 使っている人が、こんなときどうするの?っていうときに参考になれば幸いです。 書き始めたら超長文になりました。概要は以下のとおりです。 公式ドキュメントを読もう tfファイルを書く技術 インデントを揃える 組み込み関数に親しむ lifecycleブロックを使う リソースの差分を無視する リソース再生成のとき

    Terraform職人入門: 日々の運用で学んだ知見を淡々とまとめる - Qiita
  • GKEでclusterrolebindingするにはCloud IAMで権限の付与が必要 - Qiita

    GKEのクラスタにArgoをセットアップしようしたらハマったのでメモ 起きたこと Argo Getting Started > 2. Install the Controller and UI 下記のapplyを実行するとRequired "container.roles.create" permission.が発生 kubectl apply -n argo -f https://raw.githubusercontent.com/argoproj/argo/stable/manifests/install.yaml Error from server (Forbidden): error when creating "https://raw.githubusercontent.com/argoproj/argo/stable/manifests/install.yaml": roles

    GKEでclusterrolebindingするにはCloud IAMで権限の付与が必要 - Qiita
    syou6162
    syou6162 2021/06/22
  • terraformで入れ子の値を無視(ignore_change)する方法 - Qiita

    ignore_changes 基的な使い方 terraformで、特定の項目をterraformで管理したくない場合、lifecycleのignore_changesが使えます。 The lifecycle Meta-Argument - Configuration Language - Terraform by HashiCorp ドキュメントからの引用ですが、これが基的な設定の仕方になります。 resource "aws_instance" "example" { # ... lifecycle { ignore_changes = [ # Ignore changes to tags, e.g. because a management agent # updates these based on some ruleset managed elsewhere. tags, ] }

    terraformで入れ子の値を無視(ignore_change)する方法 - Qiita
  • 割と突き詰めてやったvim→vscode移行 - Qiita

    2019-07-09 結構いいねされるので更新しました。 参考 VSCode Remoteが繋がらない問題の対処方法 特に、terminalからはsshが繋がるけれど、VSCode Remoteがサーバーに繋がらないという人へ。 Tips更新 2019-02-12 最新バージョンで無くなっていた設定の削除と、独自カスタマイズしやすいようにコメントをしっかりつけました。良さそうな設定の追加 2018-10-04 goのlangserverとgodocのtoolは一緒にすると動かないため。langserverをoffにすると良いです。 導入、動機 今まではvimをメンテナンスして開発してきました。 vscodeの話をされてもそんなのvimmerには関係ないと思っていました。 まぁそれでもこれだけvscodeが盛り上がっているのにわず嫌いはよくないと思い使って見たところ、、、 VSCODE最高

    割と突き詰めてやったvim→vscode移行 - Qiita
    syou6162
    syou6162 2021/05/23
  • Terraformを使ってdev環境でのみリソースを作成する

    はじめに Terraformで複数環境を管理しているときに、CircleCIAWS Permissionsに設定するためのIAMユーザーの作成もTerraform管理に含めたい!… ということで、dev環境でのみリソースを作成する方法です。 Terraformのバージョンは0.11.9で検証しています。 やり方 count = "${terraform.workspace == "dev" ? "1" : "0"}" countは0のときは作成せず、1のときは一つ作成するという仕組みを利用します terraform env new dev terraform env select dev # これすることでterraform.workspaceがdevになります esource "aws_iam_user" "user" { count = "${terraform.workspace

    Terraformを使ってdev環境でのみリソースを作成する