Tsuukoのブックマーク (348)

  • 5分で覚えるトランザクション分離レベル

    これはなに ども、レバテック開発部のもりたです。 今回はトランザクション分離レベルについてまとめました。トランザクション分離レベルって基情報技術者試験とかで学ぶものの、座学だけだとあんまりピンとこずに忘れちゃいますよね。もりたも長らく曖昧な状態で生きていたのですが、よい理解の仕方があったので今回はその解説をします。 トランザクション分離レベルを構成するふたつの変数 トランザクション分離レベルとは まず初めに、概要を掴むところからいきましょう。 トランザクション分離レベルとは、あるトランザクションのデータベースに加えた変更が、他のトランザクションにどの程度影響を与えるか? というもの(分離性、独立性)を一定基準でレベルに分けてまとめたものです。 どの程度影響を受けるか? については三つの影響が定義され、その影響度合いに応じて分離レベルが4つ存在します。これは大体こんな図で解説されます。 よ

    5分で覚えるトランザクション分離レベル
    Tsuuko
    Tsuuko 2024/11/06
  • 【完全版】歴史でシェルの設定ファイルを理解する - 全POSIXシェル対応 (.profie, .bash_profile, .bashrc, .zprofile, zshrc, etc.) - Qiita

    プロファイルでできることは環境の設定だけです。シェルの設定は実際にはできないことはないのですが、やっても無意味なことになるのでできないとします。無意味なことになるというのは新しく起動したシェルにはプロファイルで行うシェルの設定は反映されないということです。環境の設定とは、特定のシェルに依存しない初期化処理のことで、その一つが環境変数の設定です。環境変数は OS の機能であってシェルの機能ではありません。環境の設定には、他に stty コマンドによる端末の設定や umask コマンドによる umask の設定などがありますが、プロファイルで設定することはあまりありません。 rc ファイルでは環境の設定とシェルの設定の両方ができます。シェルの設定、例えばプロンプト文字列の設定やシェルの機能を有効にしたり補完スクリプトの読み込みなどは rc ファイルに書きます。つまり、ほとんどのことは rc フ

    【完全版】歴史でシェルの設定ファイルを理解する - 全POSIXシェル対応 (.profie, .bash_profile, .bashrc, .zprofile, zshrc, etc.) - Qiita
    Tsuuko
    Tsuuko 2024/11/05
  • フロントエンド開発にかかせないBurp

    便利ツール 私たちは日々の開発の中で様々な便利ツールを使います。 その中でもBurpは多くの機能を持ち、エンジニアにとってかかせないツールとなっています。 今回の記事ではフロントエンド開発においてBurpがどのように役立つかを紹介します。 Burpとは BurpはPortSwiggerにより提供されているツールで、Professional、Enterprise Editionなどの種類があります。中でもCommunity Editionは無料で提供されており、誰でも公式サイトからダウンロードすることができます。 では早速Burpの使い方を紹介していきます。 Proxy ProxyはBurpを使う上で最もベーシックな機能になります。 準備 Burpを立ち上げ、タブからProxyを選択 Open browserをクリックし、ブラウザを立ち上げる 解析したいページを開く 上記のようにBurpで立

    フロントエンド開発にかかせないBurp
    Tsuuko
    Tsuuko 2024/10/18
  • TypeScriptの型でドメインモデリング⛅️

    紹介すること TypeScriptの型を厳密に定義し、ドメインモデリングを行います。 ソースコードがドキュメントとして機能することを目指します。具体的には、Branded Typeやタグ付きユニオンなどの技法を扱います。 この記事は、TypeScriptをこれから使いこなしてみたい方向けの内容です。 紹介しないこと ドメイン駆動開発や関数型プログラミングの概念については、深くは触れません。 Make Illegal States Unrepresentable あり得る型だけを定義するという考え方です。 詳細は以下を御覧ください。 この考え方は、ほとんどのTypeScript開発に適用できると思います。 例1 仕様: すべてのユーザは、id、nameを持っている 認証されるとisVerifiedがtrueになり、verifiedDateが付与される 認証前はisVerifiedがfalse

    TypeScriptの型でドメインモデリング⛅️
    Tsuuko
    Tsuuko 2024/09/25
  • Googleの「私はロボットではありません」を100%突破するCAPTCHA解きAI登場。もう人間とボットを区別できない?(生成AIクローズアップ) | テクノエッジ TechnoEdge

    2014年から先端テクノロジーの研究を論文単位で記事にして紹介しているWebメディアのSeamless(シームレス)を運営し、執筆しています。 1週間の気になる生成AI技術・研究をピックアップして解説する連載「生成AIウィークリー」から、特に興味深い技術や研究にスポットライトを当てる生成AIクローズアップ。 今回は、「私はロボットではありません」でお馴染みのGoogleが開発する「CAPTCHA」(コンピュータと人間を区別するための完全に自動化された公開チューリングテスト)を突破するAIシステムを提案した論文「Breaking reCAPTCHAv2」に注目します。 ▲CAPTCHAを突破するAIシステム CAPTCHAは、ウェブサイトのセキュリティを向上させるために広く使用されている技術です。この研究は、そのシステムの効果を詳細に検証し、AI技術を用いてどの程度突破できるかを明らかにしま

    Googleの「私はロボットではありません」を100%突破するCAPTCHA解きAI登場。もう人間とボットを区別できない?(生成AIクローズアップ) | テクノエッジ TechnoEdge
    Tsuuko
    Tsuuko 2024/09/25
    captchaは破られるの前提で、相手にコストや時間をかけさせることで施行を減らすのを目的と考えた方がいいと思う
  • Next.jsの考え方

    Next.js App Routerにおける設計やベストプラクティスを、筆者なりにまとめました。

    Next.jsの考え方
    Tsuuko
    Tsuuko 2024/08/26
  • 多段 ssh するなら ProxyCommand じゃなくて ProxyJump を使おう

    概要 AWS とかで踏み台ホスト経由(ここでは AWS っぽく bastion と呼ぶ)で ssh する必要があるなら ~/.ssh/config は↓みたいにしとくのが良いんじゃないかな? Host bastion Hostname bastionのIPアドレス User bastionのユーザ名 # ↓は規定のファイルだったり ssh-agent 使ってれば不要 IdentityFile bastion接続用の秘密鍵ファイル名 # ↓の3つはWindowsでは使えないので諦めて ControlMaster auto ControlPath ~/.ssh/cp-%r@%h:%p ControlPersist 10m Host 好きな接続先名 Hostname 接続先のIPアドレス User 接続先のユーザ名 # ↓は規定のファイルだったり ssh-agent 使ってれば不要 Identi

    多段 ssh するなら ProxyCommand じゃなくて ProxyJump を使おう
    Tsuuko
    Tsuuko 2024/08/24
  • TypeScript入門 2024

    2024年度リクルート エンジニアコース新人研修の講義資料です

    TypeScript入門 2024
    Tsuuko
    Tsuuko 2024/08/11
  • 【2024年夏】ブラウザ拡張機能開発を加速するフレームワーク・ツール3選をコードベース付きで紹介!

    記事では、ブラウザ拡張機能開発を加速させる、個人的に注目な3つの拡張機能開発フレームワーク・ツール(WXT、Plasmo、Extension.js)を紹介します。 サンプル拡張機能の実装を通して、それぞれの特徴、セットアップ方法、実際の開発フローを見ていきます。お好みの拡張機能開発ツールが見つかれば嬉しいです。 各フレームワーク・ツールの紹介 WXT WXTは、Viteベースのブラウザ拡張フレームワークです。次のような特徴を持っています(トップページから抜粋)。 クロスブラウザ対応 Chrome、Firefox、Edge、Safari、その他Chromiumベースのブラウザ Manifest V2、V3の両方に対応 開発モードでのHMRと、開発用ブラウザの自動起動 内部的にChrome Launcher等を使用 ファイルベースのエントリーポイントでマニフェストを自動生成 Nuxt風の自動

    【2024年夏】ブラウザ拡張機能開発を加速するフレームワーク・ツール3選をコードベース付きで紹介!
    Tsuuko
    Tsuuko 2024/08/03
  • DNSを変更するとネットワークは速くなるか | IIJ Engineers Blog

    はじめに あえてどことは言いませんが、先日某サイトで「ネット速度を高速化する方法」としてDNSサーバの設定をpublic DNSサービスに変更する記事が出てました。その記事の結論としては「変更しても大差ない」というものでしたが、DNSでネットワークを高速化するというこのような記事は何年も前からときどき見かけます。いい機会なので、このあたりについてもう少し深く掘り下げて考えてみましょう。 ※この記事では、とくに明示しなければDNSサーバとはキャッシュDNSサーバ(フルサービスリゾルバ)を指すものとします。 DNS応答の速さ DNSの設定を変えることによりネットワークの速度が速くなるとすれば、(1)DNSそれ自体の応答が速くなるか、(2)その後のWebアクセスが速くなるか、のどちらか(または両方でしょう)。このそれぞれについて検討してみましょう。 前者が速くなると画像やJavascriptなど

    DNSを変更するとネットワークは速くなるか | IIJ Engineers Blog
    Tsuuko
    Tsuuko 2024/07/29
  • 2024年7月27日時点におけるAWS CodeCommitとAmazon CloudSearchの新規利用に関して | DevelopersIO

    注意事項 予想以上に記事に対する反応があり、残念ながら誤った情報が流れているのを見かける様になったのでここに現状を注記しておきます。 2024年8月2日 16:00 (JST)時点の状況まとめ 3サービス共通 制限されるのはあくまでも特定条件を満たすアカウントでの新規利用のみであり 既存の利用者は一切影響を受けない また、サービス終了については一言も明記されていない[1] 当初は公式アナウンスが無かったが、2024年7月31日に各サービスの移行ブログの冒頭に新規受付停止の旨が追記された Jeff BarrがX(旧Twitter)でコメントを出している AWS CodeCommit AWS社員によるre:Postの投稿 (既に削除済み) によれば2024年6月6日より新規アカウントでのCodeCommitの利用を制限している 同re:Postによれば2024年7月25日以前にCodeCom

    2024年7月27日時点におけるAWS CodeCommitとAmazon CloudSearchの新規利用に関して | DevelopersIO
    Tsuuko
    Tsuuko 2024/07/28
  • TypeScript/JavaScriptの不要なコードを削除するツール「Knip」の紹介 - ベースマキナ エンジニアブログ

    こんにちは、taroです! 今回は、ベースマキナのTypeScriptプロジェクトで不要なコードの検知・削除で使用しているKnipについて紹介します。 Knip とは Knipは、TypeScript/JavaScriptのコードベースの不要なコードを検出するCLIツールです。 以下が検出できる不要なコードの例です。 package.jsonのdependencies/devDependenciesの中で使われていないpackage exportされているがどこからもimportされていない変数、関数、型など 使用していないファイル その他、検出できる内容の一覧はこちらで確認できます。 またExperimentalな機能(2024年7月現在)として不要なコードの自動削除も可能です。 ちなみにTypeScript/JavaScriptの不要なコードの検出するツールではts-pruneも知ら

    TypeScript/JavaScriptの不要なコードを削除するツール「Knip」の紹介 - ベースマキナ エンジニアブログ
    Tsuuko
    Tsuuko 2024/07/25
  • NeverThrow入門 | TypeScriptでResult型を使いたいんじゃ^〜

    会社でNeverThrowというライブラリを使っています。 とても便利なので、とても便利だよ〜という記事を書きます。 NeverThrowとは? NeverThrowは、TypeScriptで「Result型」を実現できるライブラリです。 Result型とは? Result型は、関数の中でエラーをthrowする代わりに、エラーを戻り値として返すようにすればいいじゃね?な仕組みのことをいいます。 もっと噛み砕いて説明します。 たとえば「50%の確率で足し算してくれるけど、50%の確率で💩をthrowする」という関数があるとします。 コードで表すと👇になります。 function add(a: number, b: number) { if (Math.random() >= 0.5) { throw new Error('💩'); } return a + b; }

    NeverThrow入門 | TypeScriptでResult型を使いたいんじゃ^〜
    Tsuuko
    Tsuuko 2024/07/20
  • ShellScriptで自動化を楽にしたい時に知っておいても良いこと | sreake.com | 株式会社スリーシェイク

    はじめに こんにちは、皆さん。今日は、シェルスクリプトを使った高度な自動化のベストプラクティスとパターンについて解説します。これらは、ちょっとした知識で実行でき、作業を大幅に効率化できるTipsです。シェルスクリプトは、特にUNIX系システムでの自動化タスクに欠かせないツールです。適切に使用すれば、複雑なタスクを効率的に、そして信頼性高く実行できます。 トイルとは、反復的でマニュアルな作業のことを指します。これには、例えば、手動でのシステムのスケーリングや、エラーのトラブルシューティング、ルーティンなメンテナンス作業などが含まれます。トイルを特定し、それを自動化することで、エンジニアはより創造的なタスクやプロジェクトに焦点を合わせることができます。 トイルを判別する方法としては、以下のような基準が挙げられます: 手作業であること 完全な手作業だけでなく、「あるタスクを自動化するためのスクリ

    ShellScriptで自動化を楽にしたい時に知っておいても良いこと | sreake.com | 株式会社スリーシェイク
    Tsuuko
    Tsuuko 2024/07/18
  • 【Git】同じコンフリクト解消を繰り返している人に教えたい「git rerere」 - Qiita

    はじめに こんにちは、kenです。みなさんコンフリクト解消してますか! チーム開発をしているとコンフリクトとは嫌でも向き合うことになりますが、コンフリクト解消って緊張感のある作業なのでやりたくないですよね。 そんなコンフリクト解消をちょっぴり楽にする(かもしれない)コマンドを最近知ったので今回はそれを紹介します、その名もgit rerereです。 git rerereとは Gitの公式ドキュメント(日語版)には次のように記載されています。 git rerere コマンドはベールに包まれた機能といってもいいでしょう。これは “reuse recorded resolution” の略です。その名が示すとおり、このコマンドは、コンフリクトがどのように解消されたかを記録してくれます。 そして、同じコンフリクトに次に出くわしたときに、自動で解消してくれるのです。 ここに書かれているように、git

    【Git】同じコンフリクト解消を繰り返している人に教えたい「git rerere」 - Qiita
    Tsuuko
    Tsuuko 2024/07/07
  • 【VSCode】オススメの拡張機能と設定 - Qiita

    { "editor.formatOnSave": false, "editor.formatOnPaste": false, "editor.formatOnType": false, } この記事で紹介している拡張機能のIDは、記事の最後にまとめています。また、設定の方法については設定のやり方に記述しています。 以下は、この記事で紹介する拡張機能のカテゴリ一覧です。 設定ファイル関連(Yaml, Json, Toml) Git関連 Markdown関連 カラー系 API関連 コンテナ その他便利な拡張機能 ネタ系 設定ファイル関連(Yaml, Json, Toml) 特にYamlやJsonはどのプロジェクトでも使用する可能性が高いので、必須の拡張機能となってくるかと思います。 Prettier esbenp.prettier-vscode jsonだけの設定では、VSCodeの設定ファイ

    【VSCode】オススメの拡張機能と設定 - Qiita
    Tsuuko
    Tsuuko 2024/07/05
  • Reactベストプラクティス: react-hooks/exhaustive-depsのエラーを0にする - Hello Tech

    javascripter です。ハローでは、プロダクトのローンチ前からAutoReserve の開発に関わっています。 今回は、筆者が社内で書いている技術ガイドラインについて紹介します。 はじめに ハローでは、高品質なコードを維持し、開発チームの技術レベル向上を図るため、社内で継続的に技術Tipsやガイドラインの整備・蓄積を行っています。 チーム横断的に、有用な技術Tips、ベストプラクティス・コーディングガイドラインなど情報をNotion上に集約し、自由にエンジニアが閲覧・編集できるようになっています。 この取り組みの目的は以下の通りです: コード品質の向上と統一 開発チームメンバーの技術スキル向上 「どう」直すかでではなく「なぜ」そう修正すべきかまで理解してる人を増やす 効率的な開発プロセスの確立 新メンバーのオンボーディング支援 今回紹介するドキュメント 今回は、その中から「reac

    Reactベストプラクティス: react-hooks/exhaustive-depsのエラーを0にする - Hello Tech
    Tsuuko
    Tsuuko 2024/07/02
  • AWS CDKのコード変更時にリアルタイムで構成図のプレビューを表示する

    TL;DR プレビュー対象はcdk synthで出力されたCloudFormationのテンプレートファイル 構成図はVSCode拡張機能aws toolkitのApplication Composerでプレビュー表示(変更検知機能利用) nodemonを用いて、プレビューを開いた状態でtsファイル保存時にcdk synthを実行することで再表示させる nodemon -e ts --ignore cdk.out --exec 'cdk synth' 情報元: aws-summit-2024-iac-booth-demo/realtime-draw-diagram at main · aws-samples/aws-summit-2024-iac-booth-demo · GitHub 前準備 ※コンテナ開発/TypeScriptを前提とする。 1. CDKプロジェクト作成 すでに作成済み

    AWS CDKのコード変更時にリアルタイムで構成図のプレビューを表示する
    Tsuuko
    Tsuuko 2024/06/24
  • 情報整理の決定版「NotebookLM」が最高すぎる。こういうのがほしかったのよ!! (1/7)

    最新のアプリやサービスのニュースを書くのが仕事の筆者にとって情報の整理は永遠の課題だ。 もちろん書くことを仕事にしている人に限らず、氾濫する大量の情報を必要な時に取り出して利用したいという欲求は多くの人が持っているはずだ。 以前は手書きノートやファイルのような紙媒体に保存していた情報も、時代とともに完全にデジタルに移行し、EvernoteMicrosoft OneNoteNotionといったメモを作成することに特化したクラウドアプリを利用している人も多いだろう。 筆者はおそらく普通の人よりは多くのサービスに触れているはずだが、どれも帯に短したすきに長しに感じてしまい、複数のメモアプリに情報が散乱してしまっているのが実情だ。 そこで6月6日に日でも提供が開始されたグーグルの「NotebookLM」だ。 「AI駆動型のリサーチ、執筆アシスタント」と説明されているように、参照文献(ソース)

    情報整理の決定版「NotebookLM」が最高すぎる。こういうのがほしかったのよ!! (1/7)
    Tsuuko
    Tsuuko 2024/06/15
    読書感想文が一瞬で終わりそう
  • 2ヶ月(※)でAWS認定12冠したので攻略法を語ります - Qiita

    AWS認定 is 何? 人気のクラウドサービス「アマゾンウェブサービス」が提供している認定資格試験です。パソコンで実施するタイプの選択式テストとなります。 時流に応じて資格数は増減しています。だいたい10件ちょいです。 2023年度:12資格 2024年度:10資格(→また12に増える予定) 何をやったの? 昨年末、急に思い立って認定資格を2ヶ月でコンプ(全冠)しました。 すいません、ちょっと盛りました。登竜門の「SAA(ソリューションアーキテクト アソシエイト)」だけは3年前に取っていました。 残りは週に1〜2件のペースで取得していたことになります。 資格に挑戦した理由は? 実は私、「資格を取ること」にあまり価値を感じていませんでした。 勉強に多くの時間を使う必要があり、他のことができなくなる 机上学習やるならハンズオンに時間を割く方が実務に活きやすい 数が多すぎて、全冠なんて自分とは別

    2ヶ月(※)でAWS認定12冠したので攻略法を語ります - Qiita
    Tsuuko
    Tsuuko 2024/06/12