タグ

tkmkg8mのブックマーク (1,395)

  • Bulk insertでも20時間以上かかっていたMySQLへのインサート処理を1時間以内にする - エムスリーテックブログ

    この記事はエムスリー Advent Calendar 2022の30日目の記事です。 前日は id:kijuky による チームメンバーのGoogleカレンダーの休暇予定一覧をスプレッドシート+GASで作った でした。 AI機械学習チームの北川(@kitagry)です。 今回はMySQLへのインサートを20倍以上高速化した話について書きます。 仕事をちゃんとしてるか見張る TL; DR はじめに 今回のテーブル バイナリログを無効化する 追試 LOAD DATA INFILE 追試 テーブルの正規化 インデックスを一時的に剥がす まとめ We are hiring!! TL; DR バイナリログをオフにする LOAD DATA INFILEを使う インデックスを一時的に消す はじめに AI機械学習チームではサイトトップからアプリに至るまで多くの推薦システムがあります。 そこでは推薦ロ

    Bulk insertでも20時間以上かかっていたMySQLへのインサート処理を1時間以内にする - エムスリーテックブログ
    tkmkg8m
    tkmkg8m 2022/12/30
    バイナリログ無効化、LOAD DATA INFILE、正規化(これもインデックス削減効果疑惑)、インデックス無効化。なるほど。インデックスでインサート遅くなるのは知ってたけど、ここまで変わるもんなんだな。
  • メンタリストDaiGo on Twitter: "新幹線遅延して乗ってるけど、 車掌さんがグリーン車の通路とデッキには立たないでくださいって放送してるのに、チケットない人が入ってくる。 普段はコンプラだの常識だの騒いでる人たちも、自分はルール破りまくりなわけです。 なら自分のことを棚に上げて他人を批判するなと思いますね。"

    新幹線遅延して乗ってるけど、 車掌さんがグリーン車の通路とデッキには立たないでくださいって放送してるのに、チケットない人が入ってくる。 普段はコンプラだの常識だの騒いでる人たちも、自分はルール破りまくりなわけです。 なら自分のことを棚に上げて他人を批判するなと思いますね。

    メンタリストDaiGo on Twitter: "新幹線遅延して乗ってるけど、 車掌さんがグリーン車の通路とデッキには立たないでくださいって放送してるのに、チケットない人が入ってくる。 普段はコンプラだの常識だの騒いでる人たちも、自分はルール破りまくりなわけです。 なら自分のことを棚に上げて他人を批判するなと思いますね。"
    tkmkg8m
    tkmkg8m 2022/12/30
    このツイートにいいねしてる人が2,000人以上いるという事実が恐ろしいんだが
  • ググり時間をぶった切る。AWSを最速で攻略するサイト13選 - Qiita

    はじめに 自分がAWSをこれっぽっちも知らない頃、 ググって出てきたどこか知らんサイトからだと、「欲しい情報はこれじゃない」ってのが多くあった。 そんなこと繰り返していると エラー、トラブル時に即対応できない 間違って構築したせいで運用時に悪化してしまう 古いソースコードでエラーがでて動かない これで無駄な時間を過ごすことになる。 要は「ググって得たその情報で、作ったものは正しいのか?」 AWSは常にアップデートされ続ける 欲しい情報を手に入れるまで調べる時間を割くなら、 公式展開してるサイトから得たほうが正確である。 ということで、最速でAWSを攻略するサイトをまとめる。 この記事をブックマークでもしておくと、ググる手間も省けるだろう。 目次 AWSドキュメンテーション AWSサービス別資料 トレーニングライブラリ AWSブログ アーキテクチャーセンター ワークショップをする よくある質

    ググり時間をぶった切る。AWSを最速で攻略するサイト13選 - Qiita
    tkmkg8m
    tkmkg8m 2022/12/29
  • 個人的docker composeおすすめtips6選 - Qiita

    はじめに 皆さん、docker composeを利用しているでしょうか? 複数のdockerコンテナをまとめて立ち上げたり、環境変数を定義できたり便利ですよね。 今回はある程度docker composeを利用している方向けに私が便利、便利そうと感じたdocker composeの機能を挙げてみました。 docker compose cli v2を利用 docker-composeではなく docker composeコマンドも利用可能になってます。 Docker Desktopでは v3.4.0から利用可能で、基的にはコマンドの互換性あります。 Docker image名やコンテナ名のプレフィックスをディレクトリ名から変更する 通常は ${ディレクトリ名}_${サービス名}でイメージが作成されます。 環境変数COMPOSE_PROJECT_NAMEでプロジェクト名を指定することにより

    個人的docker composeおすすめtips6選 - Qiita
    tkmkg8m
    tkmkg8m 2022/12/26
  • note 社の AWS 権限設計の変遷を辿る|かとうかずや | kakato

    いつの世も人々は権限設計に苦しめられている。そうは思いませぬか。 ご多分にもれず、ぼくも note に入ってからというもの AWS の権限設計をどうしてやろうかと、あれこれ思い悩みまくった人間でした。 組織が変われば権限も変わる。誰が何をしたいのかなんてとても把握しきれないし、かといって全員に Administrator を割り振るような豪胆さも持ち合わせておらず。組織再編が繰り返される中で、なんとか運用に耐えうる設計を考え、実装しようと試みた内容をまとめたのがこの note です。 note 社における AWS 権限設計の変遷と、その結果生まれた自動で AWS の権限を払い出す仕組みについて書いていきます。 ※この記事はnote株式会社 Advent Calendar 2022 の 25 目の記事です。 注意事項つらつらと書き連ねていたら 12,000 字超の大作 note となってしま

    note 社の AWS 権限設計の変遷を辿る|かとうかずや | kakato
    tkmkg8m
    tkmkg8m 2022/12/26
    なるほどなぁ: “3. production 環境は ReadOnly 権限を全エンジニアに付与” “4. production 環境でリソース変更を行いたい場合には申請を行い、必要な期間だけ権限を取得”
  • Ruby 3.2 のIRBの新機能 - Qiita

    これはRubyアドベントカレンダー2022の22日目の記事です。 binding.irb のすすめ 8年前に 今更聞けないpryの使い方と便利プラグイン集 という記事を書き、そこから長い間 binding.pry を愛用していた。binding.irb も binding.pry も使ったことがないよ、という人はご一読をお勧めしたい。 当時PryにあったIRBに対する優位性のうち、時間が経っても常に使い続けた機能といえば binding.pryの存在、$ (show-source)、@ (whereami)、ls とその -G (grep) オプション、デバッグ機能 (要pry-byebugプラグイン) という感じで、他はまあたまに使うかもねくらいの感じになったのだが、なんとこれらはRuby 3.2ではIRBで全て使えるようになった。その上、Gemfileに何も書かなくてもデフォルトで使え

    Ruby 3.2 のIRBの新機能 - Qiita
    tkmkg8m
    tkmkg8m 2022/12/23
    いい話だ
  • 花ノン on Twitter: "注意喚起したいこと。 ごく稀ではありますが、葬儀場で遺族が死亡する事故があることはあまり知られてません。 棺に顔が入った状態でご遺族が亡くなってることが発見されたりします。 「連れて逝った」などと先に亡くなった方にあらぬ疑いがかけられたりしそうですが、これは棺に納められたご遺体の→"

    花ノン on Twitter: "注意喚起したいこと。 ごく稀ではありますが、葬儀場で遺族が死亡する事故があることはあまり知られてません。 棺に顔が入った状態でご遺族が亡くなってることが発見されたりします。 「連れて逝った」などと先に亡くなった方にあらぬ疑いがかけられたりしそうですが、これは棺に納められたご遺体の→"
    tkmkg8m
    tkmkg8m 2022/12/22
    これ危ないよね。スーパーとかでドライアイスもらってきて煙モクモクして楽しんでるとき試しに吸ってみて死にかけたことある。
  • 兄弟で争奪戦が起こる「ハッシュドかりかりブロッコリー」 - BOKUの簡単ンまい~ブログ

    どうも、ぼくです。 ぼくの勝手なイメージなんですが、クリスマスとえば「ブロッコリーレシピ!」って気がしません?…あれ?ぼくだけ? ということで、日はブロッコリーを使った副菜をご紹介します(無理やり) 「ハッシュドかりかりブロッコリー」 普段はブロッコリーべない子供たちですが、これを作ると毎回争奪戦が起きてます。ちなみに今回ブログを書くために撮影したんですけど、この時も子供達が全部べきってしまって親の分がありませんでした笑 二人でべたのに、途中で次男が「ない!」って言ってた笑 pic.twitter.com/RkWrfywpIu— ぼく◒レシピ試作垢 (@bokun_bokun) 2022年12月7日 よく、ブロッコリーを揚げるレシピを見かけますが、中の柔らかい部分が個人的にあまり好みではなくて(笑)…なので、全体をガリガリにしたい~~!と思って作ったのがこのレシピ感がかなり良

    兄弟で争奪戦が起こる「ハッシュドかりかりブロッコリー」 - BOKUの簡単ンまい~ブログ
    tkmkg8m
    tkmkg8m 2022/12/22
    うまそう
  • IRBの補完にRBSを組み合わせてみる - Qiita

    カタカタッ ターンッ! RubyのIRBめっちゃ便利ですよね。 IRBは補完機能もすごく便利なんですが、ちょっと気になるところもあります。 メソッドチェーンすると正しく補完できずありとあらゆるメソッド名が候補に出てしまう 正規表現で実装されてるので時々誤作動を起こす array[i]. %s[symbol]. 配列のメソッドが候補に出る array.map{}. %w{words}. HashとProcのメソッドが候補に出る なので、型情報(RBS)とかも使ってもうちょっといい補完候補を出せないかなと 、gem katakata_irb を試しに作っています。 gemをインストールするとkirbコマンドが使えるようになります。 変えました。使い方: require 'katakata_irb' メソッドチェーンしてても、ブロック引数・変数などを使ってても、ある程度正しく型を推測して補完候補

    IRBの補完にRBSを組み合わせてみる - Qiita
    tkmkg8m
    tkmkg8m 2022/12/21
    いい話だ
  • テストケースファーストでいこう - Tabelog Tech Blog

    この記事は べログアドベントカレンダー2022 の17日目の記事です🎅🎄🎁🍗 こんにちは!べログでサーバーサイドエンジニアをしている清水です。 みなさんテストケース書いてますかー? テストケースといえばテスト実施の直前に作成するものだと考えている方もいるかもしれませんが、 私が所属するチームでは実装に着手する前の設計段階で作成する取り組みを行っています。 (記事の執筆にあたり勝手に テストケースファースト と命名しました!) 記事ではこの取り組みの背景やメリットなどについて紹介します。 なお、記事におけるテストケースとは結合テストケースのことを指して記載しています。 背景と課題 少し話が逸れますが、私はもともとSIer出身で数ヶ月程度の案件をウォーターフォールモデルで開発することが多い環境でした。 当時は設計書をお客様に納品する成果物として厳しくチェックされ、日語の使い方

    テストケースファーストでいこう - Tabelog Tech Blog
    tkmkg8m
    tkmkg8m 2022/12/18
    レビューでの手戻りが発生しがちなときこれが有効なのわかるな。実装者は自信を持って開発できるしレビュワーは少なくともそれらのケースはカバーされているはずなので安心してレビューできる。
  • Dependabot 運用を自動化したい - Money Forward Developers Blog

    この記事は、Money Forward Engineering 1 Advent Calendar 2022 16日目の投稿です。 Money Forward ME サーバサイドエンジニアの島津です。 今回は、Dependabot 運用の自動化について、ご紹介したいと思います。 Dependabot について Dependabot は、プロジェクトで使用されているライブラリの脆弱性を監視し、依存関係を最新の状態に保つための、GitHub のサービスです。 その中でもいくつか機能がありますが、今回は Dependabot version updates の機能を使用した際の自動化についてです。 この機能を使うと、リポジトリ内の各種パッケージのバージョンをチェックし、常に最新に保つために自動的に bot が プルリクエストを作成してくれます。 詳しい設定方法は割愛しますが、リポジトリ内で .g

    tkmkg8m
    tkmkg8m 2022/12/17
    自動マージする条件: ①パッチバージョンのアップデート、もしくは開発環境のみ利用されるライブラリのマイナーバージョンのアップデート、②CI が pass したとき
  • SmartHRのOSSガイドラインを公開しました - SmartHR Tech Blog

    こんにちは、エンジニアのkinoppydです。日は、SmartHRが公開したOSSガイドラインに関してご紹介します。 github.com SmartHR OSS ガイドライン SmartHRでは、すべてのサービスでOSSが使用されています。RubyRuby on RailsReactTypeScriptは必ずすべてのサービスで使われていますし、その他にもたくさんのOSSがSmartHRのサービスを構成しています。これらOSSによってSmartHRのサービスは支えられているので、我々もOSSに対してなにか貢献をすることができると良いなと思っています。しかし、現在社内には業務時間中のOSS活動に関する明示的な文章が存在せず、業務としてOSSにコミットする労務/法務的なルールが不明でした。また、OSS文化に対する経験が浅い人にとっては貢献する方法などもよくわからず、ハードルが高いと感じ

    SmartHRのOSSガイドラインを公開しました - SmartHR Tech Blog
    tkmkg8m
    tkmkg8m 2022/12/15
  • ruby trunk changes を git notes で閲覧する方法 2022版 - ruby trunk changes

    最初に説明抜きで結論を CRuby のリポジトリを git で clone した working copy で以下を実行します。 git remote add ruby-trunk-changes https://github.com/nagachika/ruby.git git config --local remote.ruby-trunk-changes.fetch '+refs/notes/commits:refs/notes/ruby-trunk-changes' git config --local notes.displayRef '*' git fetch ruby-trunk-changes git の使いかたにはいろいろ個人の好みがあったりとか既存の設定との相性があると思うので、よりこまかく設定したい人や背景を知りたい人は以下の説明も読んでみてください。 背景 毎日 C

    ruby trunk changes を git notes で閲覧する方法 2022版 - ruby trunk changes
    tkmkg8m
    tkmkg8m 2022/12/11
    git notes で書かれてたって初めて知った👀 いつもありがとうございます🙇‍♂️
  • Flat Config導入完了! 新しいESLintの設定フォーマットを使ってみた

    皆さんこんにちは。株式会社バベルでエンジニアをしている uhyo です。バベルが提供しているaileadというプロダクトでは TypeScript が多く使われており、ESLint も活用されています。この記事では、ailead のコードベースにおいて ESLint の新しい設定フォーマットであるFlat Config (eslint.config.js)を導入した事例を紹介します。 Flat Config とは? Flat Config については、ESlint 公式ブログでも詳しく説明されています。 ファイル名がeslint.config.js固定であり、必ず JavaScript で書かなければいけないのが特徴です。新しいフォーマットでは、従来の設定ファイル(.eslintrc{.yml,.json,.js})で辛かった部分が解消されています。特に、設定内容の解決にあたって ESLi

    Flat Config導入完了! 新しいESLintの設定フォーマットを使ってみた
    tkmkg8m
    tkmkg8m 2022/12/11
    ESLint独自のルールじゃなくてJavaScriptのエコシステムに寄るの嬉しいな
  • CSSでスクロールバーの有無によるがたつきをなくす: Days on the Moon

    この記事はCSS Advent Calendar 2022の9日目の分です。 CSSのボックスモデルにおいては、ボーダーの内辺とパディングの外辺の間にスクロールバーが配置されます。最近はどのOSでもオーバーレイスクロールバー(スクロールバーが内容の前面に覆いかぶさるようなもの)が主流となり、スクロールバーが存在してもしなくても内容の幅が変わらないようになっています。一方、クラシックスクロールバー(スクロールバーが常に表示されるようなもの)が使われる環境では、overflow: autoな要素において内容がはみ出すときとはみ出さないときで内容の幅が変わってきます。 クラシックスクロールバーが使われる環境でも内容の幅を一定に保ちたいという場合は、scrollbar-gutterプロパティを使います。scrollbar-gutter: stableを指定すれば、スクロールバーが表示されないときで

    tkmkg8m
    tkmkg8m 2022/12/09
    “scrollbar-gutter: stableを指定すれば、スクロールバーが表示されないときでもスクロールバーと同じだけの領域が確保され、内容の幅はその分狭くなります”
  • リンク/ボタン/フォームをより良くするHTML・CSS 17選 - ICS MEDIA

    ウェブサイト制作において見た目がきちんと実装されているのは大事なことですが、コードのちょっとした違いでユーザーの不便につながることもあります。記事では見た目だけでなくユーザーの使い勝手にも気をつけたコーディングテクニックについて解説してます。今回はユーザーが特に使い心地を感じやすいインタラクション部分で、シンプルなHTMLCSSだけでより良くできる17個に絞って紹介します。 下記サンプルでNG例とよい例の両方を紹介しています。実際に違いに触れながら記事を読むと分かりやすいです。 サンプルを別ウインドウで開く コードを確認する 1. divタグをボタンにするのは避けよう 見た目はボタンのようでも、<div>要素で実装したボタンはアクセシビリティの観点からもよくありません。ボタンとしての機能を持つなら<button>要素を用いるのが多くの場面でも有効です。もし、諸事情で<div>要素を用

    リンク/ボタン/フォームをより良くするHTML・CSS 17選 - ICS MEDIA
    tkmkg8m
    tkmkg8m 2022/12/09
  • Pull requestの理想的なサイズとその理由

    この記事は、Lancers(ランサーズ) Advent Calendar 2022 の2日目の記事です。 モチベーション 一般的にPull Requestはサイズが小さいほうが良いとされていますが、理想的なPull Requestのサイズは具体的に何行なのでしょうか? また、なぜPull Requestのサイズは小さい方が望ましいのでしょうか? 稿ではPull Requestの理想的なサイズとその理由について、リサーチした内容をまとめます。[1] 稿で取り扱う観点について Pull Requestのサイズを考察するにあたり、主に注目される観点は以下の2つがあります。 リーン思考に基づいたフロー効率の観点 コードレビューに関する観点 稿では、理想的なPull Requestのサイズについて具体的な数字を示したいというモチベーションから、コードレビューに関する観点について取り扱うことにし

    Pull requestの理想的なサイズとその理由
    tkmkg8m
    tkmkg8m 2022/12/07
    わかりみが深い
  • クエリログを使ったPostgreSQLの負荷テスト - カンムテックブログ

    SREの菅原です。 この記事はカンム Advent Calendar 2022の4日目の記事になります。 少し前にサービスで使っているPostgreSQLをRDSからAuroraに移行しました。 Auroraに移行するため色々と作業を行ったのですが、その中でAuroraの性能を測るために行った負荷テストについて書きます。 pgbench まず最初にpgbenchを使って、単純なワークロードでのRDSをAuroraの性能差を測ってみました。*1 以下がその結果です。 MySQLで同様のテストをmysqlslapを使って行ったことがあって、そのときは概ねAuroraのほうが性能が高かったので、同様の結果になると考えていたのですが、RDSのほうが性能が高い結果になったのは予想外でした。 ただAuroraのアーキテクチャを考えると、pgbenchのような細かすぎるトランザクションの場合はRDSのほ

    クエリログを使ったPostgreSQLの負荷テスト - カンムテックブログ
    tkmkg8m
    tkmkg8m 2022/12/04
    “RDSとAuroraの性能比較にpgbanchは参考にはならなさそうなので……過去にMySQLをAuroraに移行したときにはqrnというツールを作って負荷テスト……PostgreSQLでも……クエリログを使って負荷テストをすることにしました”
  • Go でやる mutation testing ~テストの品質を評価しよう~ - Qiita

    Mutation testing とは テストの品質を評価する手法の一つ テスト対象のプログラムの一部を機械的に書き換えたときに、テストが失敗させられるかを確認する手法 大まかな流れは以下の通りです。 プログラムを一部改変 改変されたプログラムのことを "mutant" と呼びます 1.で改変した状態でテストを実施 テストが失敗するかどうかをチェック いずれかのテストが失敗するなら、 テストが十分であるとし、OKとします 全てのテストが成功するなら、テストが不十分であるとし、NGとします このプロセスをたくさん実行し、いろいろなプログラムの改変("mutant")を試してその結果のOKの割合が高いほうが質の高いテストであると判断します。1 テストが失敗する場合に、mutation testingとしてはOKとなります。ややこしいので、この記事では以下のように表現することとします。 テストが

    Go でやる mutation testing ~テストの品質を評価しよう~ - Qiita
    tkmkg8m
    tkmkg8m 2022/12/04
    実装側の一部をわざとバグらせてテストがちゃんと落ちることを確認するってときどきやるのだけど、それをちゃんとやるのに「mutation testing」って名前付いてるの知らなかった
  • 東京から塾持ちで灘中受験ツアー。早稲アカのほっこりエピソードが印象に残る『勇者たちの中学受験』 - 斗比主閲子の姑日記

    私が定期購読している中学受験親ブログで、おおたとしまささんの『勇者たちの中学受験』が話題になっていたので読んでみました。 同時期に東京で中学受験をした3人の子どもの親に対して、おおたとしまささんがインタビューした内容を小説仕立てにしたものです。どのエピソードも1月から始まり、東京の中学受験が終わる2月までのもの。塾名、学校名はすべて実名です。 3人の子どもは、1章の子がSAPIX、2章が早稲田アカデミー(以下、早稲アカ)、3章が個人塾(うのき教育学院)に通っていました。親も塾も過度なプレッシャーをかけていない、個人塾の子どもの受験がもっともポジティブに描かれています。 個人目線の小説形式ですから決して情報量は多くはありません。ただ、親のメンタリティがかなり赤裸々なのと、受験日中心にどう併願受験するかの選択が生々しいので、中学受験の闇がどうして起きるのかを知りたい人にはお勧めです。我が家では

    東京から塾持ちで灘中受験ツアー。早稲アカのほっこりエピソードが印象に残る『勇者たちの中学受験』 - 斗比主閲子の姑日記
    tkmkg8m
    tkmkg8m 2022/12/04
    早稲アカは上の子のとき検討して思想が合わず見送った。下の子で改めて検討中だけどやっぱり合わないことを再確認。ブログで触れられてる点はさもありなんという感想。