タグ

2022年10月5日のブックマーク (50件)

  • コピペで学ぶチュートリアル: DockerfileのCMDとENTRYPOINTの違い

    Dockerfile の CMD と ENTRYPOINT について、手を動かして動作確認できるチュートリアルがあると理解がしやすいかと思い、コピペだけで簡単に学べるチュートリアルを作成しました。 それぞれの違いについては公式ドキュメントでも、数多くのブログ記事などでも解説されています。 Dockerfile reference Best practices for writing Dockerfiles ENTRYPOINT は「必ず実行」、CMD は「(デフォルトの)引数」 - POCKETSTUDIO.NET (Docker 界隈で有名な前佛 雅人さんのブログ) ここに挙げただけでなく、数え切れないくらい多くの記事で解説されています。また、私も以下の記事を書いています。 Docker のオフィシャル・イメージから CMD と ENTRYPOINT の使い分け学ぶ Dockerfile

    コピペで学ぶチュートリアル: DockerfileのCMDとENTRYPOINTの違い
    kwy
    kwy 2022/10/05
  • CDK for TerraformでGoogle Cloudのリソースを作ってみた 発動篇

    こんにちは、クラウドエースの阿部です。 前回、CDK for Terraform(以降、CDKTF)について以下のような記事を公開しました。 今回はTerraformで使っていた機能がCDKTFだとどの程度使えるのかについて確認していきたいと思います。 リモートバックエンドを使いたい リモートバックエンドはTerraformのStateファイルをリモートのストレージに配置することでチーム開発を支援する機能です。 CDKTFではモジュールインポート行で、xxxBackendクラスを追加すればよいようです。 Google Cloudで開発する場合、GCSバックエンドを使用することが一般的ですが、その場合はGcsBackendを追加します。具体的には以下のように記述します。

    CDK for TerraformでGoogle Cloudのリソースを作ってみた 発動篇
  • 初期化済みSQL ServerのDockerイメージの作り方

    はじめに たとえばテストなどにおいて、最初からテストデータが用意されているDBを用意しておきたいというのは、ありがちな要求なのではないでしょうか? SQL Serverでそんなイメージを用意したいと思ったのですが、公式で紹介されている方法は 初期化済みのSQL Serverイメージの作り方 ではなく 起動時に初期化するSQL Serverイメージの作り方 になっていて、ちょっと欲しいものと違います。 テストで何度も繰り返し実行されるので、最初から初期化しておいてすぐ使いたいのです。たとえばSQL ServerのサンプルDB「AdventureWorks」の初期化には30秒程度かかりますので、これを可能な限り0にしたい訳です。 というわけで、稿ではその方法を解説したいと思います。 概略 マルチステージビルドを利用して初期化済みのDBファイルを作成し、イメージ内にコピーしておく。 起動時は初

    初期化済みSQL ServerのDockerイメージの作り方
    kwy
    kwy 2022/10/05
  • プログラミングのなんとか安全まとめ

    プログラミングのなんとか安全まとめ 安全とは 安全の正確な定義は難しいですが、ここでは「特定のリスクが十分に低減されている状態」について考えたいと思います。 人間社会を例に考えてみると、我々の生活は常に犯罪や災害、疫病などの危険にさらされています。しかし通常の生活において、これらのリスクを強く意識することはありません。それは行政(警察や消防や法制度など)の社会システムが、リスクを十分に低減する処置をとっているからです。 ソフトウエアにおける安全も基的に同質であり、言語やフレームワーク、開発プロセスによって、リスクを管理することで安全の実現を目指します。 リスク管理は何らかの制限を伴いますので、何を自由とし、リスクとするかは、エコシステム毎に異なります。例えば銃器は、国によって所有に対する規制の強弱が分かれています。しかし認可されている国の治安が、必ずしも悪いわけではありません。社会がその

    プログラミングのなんとか安全まとめ
  • プログラミング学習の通過儀礼

    プログラミング学習とはそもそも何なのか プログラミング初学者やITに関わる人が最初に知るべきこととして、プログラミングとは「あなたが問題を解決するのに用いたい手段を、あなたが思っているようにコンピュータに入力すること」ではない。 実際には、プログラミング学習はコンピュータに可能な(非常に限定された)処理セットを学ぶことであり、その応用の先に当初のゴールが含まれるかは、プログラミングを学んでその特性を学ばないと、判断すらできない。 例えば、手段 A によってゴール X を達成したいとしよう。非プログラマ/プログラミング初学者の発想は、よほど目の付け所がいいのではない限り、次のいずれかに分類される。 A には同じゴール X を解決する簡易な代替手段 B があり筋が悪い。 A で実現するほどの価値がない A は現状の人類の既存のソフトウェアの応用では実現できない。あるいは非常に困難。無理に実現し

    プログラミング学習の通過儀礼
  • Python文法の基礎

    Pythonについてまとまった技術書があっても検索性に劣ったり、実用的な書き方が見つからなかったりしていませんか?また、インターネットで検索しても網羅的に調べることができないため苦労することも多々あります。そこで、このではそれらの問題点を解決するべくPythonの公式サイトを実用ベースにしてみました。

    Python文法の基礎
    kwy
    kwy 2022/10/05
  • WSL2 USBカメラ+他のUSB機器 2022年09月06日版

    OS:Windows11 21H2 OSビルド:22000.918 WSL2 5.10.102.1 + Ubuntu20.04 WSL2 Linux Kernel 5.10.60.1 からKernelモジュールにUSBIP対応が標準的に組み込まれたらしいが、Microsoft公式が提供しているKernelや手順ををそのまま使用すると動作しない 2022年09月06日時点の最新カーネルは 5.15.62.1 だが、wsl --update で展開されるバージョンが 5.10.102.1 だったため 5.10.102.1 を使用する 以下すべての手順の Windows Terminal を使用する箇所は 管理者権限 で実行 以下、[WT] は Windows Terminal、[Ubuntu] は Ubuntu側のbashを表す WSLのカーネルアップデートと usbipd-win のインスト

    WSL2 USBカメラ+他のUSB機器 2022年09月06日版
    kwy
    kwy 2022/10/05
  • Route 53でドメインの実運用に必要な、ネームサーバ(NS)やメールサーバ(MX/SPF/DKIM)のひととおりのDNS設定を実施する

    こんにちは。SREホールディングス株式会社のエンジニアの木津です。 最近業務で、AWS のRoute 53 での、ネームサーバの設定やメールサーバの設定など、ドメイン関連の設定について、一通りの流れを経験しました。その内容が勉強になったので、一連の流れとそれぞれの実施内容をご紹介します。 対象読者 AWS上で運用するサービスを公開するのに、ドメインの設定を行おうとする人 SPFやDKIMの設定をすると、どういう仕組みで安全なのか知りたい人 全体の流れ ネームサーバの設定 「お名前.com」で取得したドメインのネームサーバを「Route 53」に変更します。 メールサーバの設定 メールサーバとして契約した「Google Workspace」で、そのドメイン名でのメール送受信ができるようにします。 メールのセキュリティ関連設定 SPFとDKIMの設定を実施して、なりすましや偽装を防ぎます。 ネ

    Route 53でドメインの実運用に必要な、ネームサーバ(NS)やメールサーバ(MX/SPF/DKIM)のひととおりのDNS設定を実施する
  • フリーランスエンジニア4年目の僕が考える働き方のベストプラクティス - Ver.2022.9.7

    あくまで私の生活スタイルに合う働き方を紹介しているため、参考程度にお読みください。 書いた経緯 1年前ぐらいから「フリーランスエンジニアとして独立したいけど、どのような仕事をしてますか?」という相談が私宛に届くようになり、最近になってかなり言語化できるようになってきたため、忘れないうちに記事にまとめておこうと考えました。 編 結論から述べます。 現状の働き方は3つあり、これらを同時こなしています。 クライアントワーク(2社) 単発受託開発 継続受託開発(自社サービスに近い) ひとつずつ深堀ります。 クライアントワーク(2社) クライアントワークは、エージェントさんを通して案件を探す「フリーランスエンジニアがする最も王道」な働き方です。 フルタイムで働く人もいれば、週2,3回程度など副業感覚で働く人もいます。 私の場合は以下のような感じです。 1社目:完全な成果型のフルフレックス制で、働く

    フリーランスエンジニア4年目の僕が考える働き方のベストプラクティス - Ver.2022.9.7
  • Terraform 初心者が CDK for Terraform を触ってみた所感 #jawsug_cdk

    この記事は 2022/09/07 に開催された JAWS-UG CDK支部 #3 にて発表した 「Terraform 初心者が CDK for Terraform を触ってみた」というタイトルのLTの内容を記事にしたものです。 CDK for Terraform とは CDK for Terraform (以下、CDKTF) は 2020年7月にプレビューとして発表され、2022年8月12日に GA になりました 🎉 CDK for Terraform は簡単に言うと、Terraform がサポートしているクラウド・プラットフォームのリソースを プログラミング言語( TypeScriptPythonGo、C#、Java )で記述できるツールです。 CDK for Terraform で書いたコードは最終的に Terraform のコードとして吐き出され、Terraform と同じよう

    Terraform 初心者が CDK for Terraform を触ってみた所感 #jawsug_cdk
  • 技術書典13で注目している新刊本

    2022年9月11日(日)追記 技術書典が始まって2日経ちました。ありがたいことに筆者のを買ってくださった方もいらっしゃいます。記事で紹介したはすべて購入し、ダウンロード可能なものには全部目を通しました。結論からいうと全部買ってよかったです。買って後悔するようなはひとつもないので、安心してお買い上げください。一部のには購入後のコメントを書き加えました。しかし皆さんクオリティが高いですね。 もうすぐ技術書典13が始まります。筆者は今回初めて出展者として参加することもあり、とても楽しみにしています。オンラインマーケットも技術書典13仕様になり、新刊特集も登場しました。 新刊特集のキャプチャ(筆者のも入っています。うれしい!) DiscordTwitterを見ているとギリギリまで執筆している方も多く、新刊特集の対象は毎日のように増えています。まだまだ増えそうですが、とりあえず現時

    技術書典13で注目している新刊本
  • 世界大戦時の暗号機 Enigma を Rust で実装し、WebAssembly 化してブラウザで動くシミュレータにした

    エニグマのコードはこちら Enigma / エニグマ とは エニグマ は、第二次世界大戦時にドイツ軍などが利用していた電気機械式の暗号機です。 当時のドイツでは、エニグマによる暗号と電気通信とを組み合わせた暗号通信が運用されていました。 エニグマによる暗号を手作業で解読することはほとんど不可能でしたが、イギリスは戦時中に専用の機械を使った解読に成功してドイツ軍の通信内容を掌握したと言われています。 筆者がエニグマを知ったきっかけは、イギリスでのエニグマ解読が題材の『イミテーション・ゲーム / エニグマと天才数学者の秘密』という映画でした。 ベネディクト・カンバーバッチ演じる主人公はチューリングマシンで有名なアラン・チューリングです。興味のある方はぜひ見てみてください。 エニグマについて詳しく知りたい人のための参考資料 エニグマを実装してみたくなった人のために、参考になった資料をまとめておき

    世界大戦時の暗号機 Enigma を Rust で実装し、WebAssembly 化してブラウザで動くシミュレータにした
  • TLS 1.3 学習ノート

    はじめに これは筆者が TLS 1.3 を学習した時のメモを記事にしたものです。 内容の正確性は担保できませんので、あらかじめご了承ください。 参考にした書籍 プロフェッショナルSSL/TLS (ISBN: 978-4-908686-00-9) ラムダノートでを購入するとダウンロードできる特別版PDFも参照しています 徹底解剖 TLS 1.3 (ISBN: 978-4-7981-7141-8) 参考にしたウェブサイト うるふブログ | wolfSSL Wikipedia IT用語辞典 e-Words TLS とは? TLS は Transport Layer Security の略で、インターネット上で安全に通信を行うためのプロトコルです。 インターネット上で安全に通信を行う必要性 前提として、インターネットはセキュリティが考慮されていません。 もともとインターネットは、大学間で少数のノー

    TLS 1.3 学習ノート
  • CircleCIを並列化し実行時間を短縮する

    こんにちは。 株式会社ココナラ(以降、弊社と表記)の技術戦略室でエンジニアをしているSSです。 弊社では安全にリリースするためにさまざまな取り組みを行なっており、その1つとしてCIツールを活用しています。 CIツールを使うことで「自動テストを実行」「構文/フォーマットのチェック」が自動化でき、コードの品質を担保しやすくなります。 一方で、規模の増大とともに実行時間が伸びていくため、ある程度の規模になるとCIにかかる時間が無視できなくなります。 マイクロサービス化してCI対象コードを分割するなどの解消方法はあります。しかし、成長を続ける限り組織全体で見ればソースコードの総量は増大します。そのためCIに掛かる時間が長くなっていくことは避けられない問題でしょう。 弊社でも例外ではなく、CIの実行時間が長くなっていることが開発生産性に影響していました。そのため、CIの実行時間短縮が望まれました。

    CircleCIを並列化し実行時間を短縮する
  • WasmをさわってJSとの速度比較をしてみた

    モチベーション WebAssembly(Wasm)とは何かを知る 具体的な実装イメージはどんな感じか(WasmコンパイルをRustで行う場合) JSとの速度比較をする WebAssembly(Wasm)とは Webブラウザ上で、JSよりももっと高速に実行できる技術 厳密には、Webじゃなくても動くし、アセンブリでもない Wasmという言語があるわけではなく、C, C++, Rust, Goなどの言語からWasmファイルを生成し、各環境で利用する(ブラウザじゃなくても動作する) JSの上位互換として思われがちだが、Wasm自体は計算しか出来ないので、JSと協調させて動作させるWeb周辺技術という扱いが正しいです。 2022年現在では、メジャーなモダンブラウザはWasmをサポートしており、Google Meetのぼかし機能だったり、顔や手のトラッキング系のJSライブラリなど身近なところでWas

    WasmをさわってJSとの速度比較をしてみた
  • 私的Arch Linuxインストール講座

    身内ネタてんこ盛りのArch Linux布教記事を書いたら、Arch LinuxGoogle検索すると何故か上から5番目ぐらいに出てくるようになってたので、身内ネタを極力削いで書き直したいと思います。 あと、なんか最近archinstallなるものが付属するようになったらしいですが、正直そっちはあまり触ってないので普通のインストール方法で行きます。 そもそもArch Linuxとは? シンプル、軽量なディストリビューション Arch Linux のウェブサイトにようこそ。Keep It Simple を標榜する、軽量で柔軟性に優れた Linux® ディストリビューションです。 公式パッケージは x86-64 アーキテクチャに最適化されています。さらに公式パッケージを補足するものとしてコミュニティによって運営されているパッケージリポジトリがあり、日々、その質量ともに成長しています。 Arc

    私的Arch Linuxインストール講座
  • RubyKaigi 2022に参加しました

    3行まとめ 2022 9/8 - 9/10に三重県にて開催されたRubyKaigi 2022に現地参加しました そこで感じたことを書きます プログラミング言語に手を入れて改善していくということに興味を持ち、日でそれをやるにはRubyはだいぶ良さそうな環境だと感じました 概要 2022年9/8-9/10に、三重県津市の三重県総合文化センターで開催されたRubyKaigi 2022に参加して来ました。 この会議はオフラインとオンラインのハイブリッド開催でした。私は、所属している株式会社iCAREがスポンサーをしていることもあり、現地参加、スポンサーブースのスタッフも行いました。 ここまで大規模なオフラインの会議の参加は初めてでしたし、オフラインイベントへの参加も、コロナの影響もあり随分久しぶりでした。 現地で聞いた様々な講演の感想や、その他感じたことなどを書いていきます。 興味深かった講演と

    RubyKaigi 2022に参加しました
  • Web3開発テクニック50選を紹介

    Web3開発テクを片っ端から紹介します。 30以上のWeb3プロジェクトの開発を牽引する中で会得しました。 多種多様な要件を求められてきましたが、ここで紹介するテクを組み合わせることで全て対応できました。 2022年9月24日追記 20選改め50選になりました この記事はこんな方にお勧め👇 🐶「Web3プロジェクトの開発リーダー」 🦉「Web3プロダクトの機能追加を担当するエンジニア」 前提 主にNFT領域等のアプリケーションレイヤーの開発を想定しています(dAppsの中でもエンドユーザーに近いポジション) ブロックチェーンそのものの開発や、複雑なDeFiプロトコルの開発は対象としていません 主にスタートアップによる開発を想定しています Web3開発テクニック一覧 ✅ リレートランザクション ✅ メタトランザクション ✅ オラクル ✅ スマホからウォレット接続(WalletConne

    Web3開発テクニック50選を紹介
  • Docker環境でVald Agentを動かす

    チュートリアルは、Vald | Vald Agent Standalone on Dockerの内容をベースとしています。 また、チュートリアルは、v1.5.6のDocker imageを利用しています。 Valdはスケーラビリティと安定性の観点からKubernetes上にValdクラスタ構築をして利用することを推奨していますが、ユースケースに応じてAgent単体をDocker上でも動作させることができます。 Docker DeploymentではKubernetesを利用しないため一部機能制限はありますが、Kubernetes環境を用意しなくともDocker環境のみで気軽に試すことができます。 準備 チュートリアルを進めるにあたり必要な依存について列挙します。必要に応じて、準備してください。 Docker: Docker環境でAgentを動かします Go: サンプルコードを動かす場

    Docker環境でVald Agentを動かす
  • 技術書典13の執筆環境にVivliostyleを採用しました

    こんにちは。株式会社Typebase の代表でエンジニアの寺嶋(@y_temp4)です。 2022 年 9 月 10 日から開催されている 技術書典13 で Next.js, Prisma, GraphQL Code Generator で作るフルスタックWebアプリケーション というを公開しました。 その際に、執筆環境として Vivliostyle を採用したため、この記事では初めて Vivliostyle を使ってみた感想や、ハマりポイントについて解説していきます。 Vivliostyle とは? Vivliostyle は Web の技術を駆使して組版システムを作るためのオープンソース・プロジェクトです。執筆環境は npm で構築でき、スタイリングは CSS で行えます。 参考:Create Book で同人誌を作ろう! | Vivliostyle 原稿はマークダウンで作成していき

    技術書典13の執筆環境にVivliostyleを採用しました
  • 毎朝輪読会のすすめ

    株式会社プラハエンジニアの村上です。 社内で技術書の輪読会を毎朝実施したところ、とても捗ったので共有します。 TL;DR 毎朝ちょっとずつ読み進める輪読会は、いい A Philosophy of Software Designは、いい 弊社代表(輪読会参加者)が、podcastで同じことを話しているので、耳で聞きたい方はこちらからどうぞ。 きっかけ A Philosophy of Software Designを読みたいと思ったのがきっかけです。書はまだ日語版が出版されておらず、英語を日語に翻訳しながら内容を理解する必要がありました。英語をひとりで挫折せずに読み切る自信がなく、輪読会を開催することにしました。 しかし、輪読会を実施したところで、を読み切る前に参加者のモチベーションが低下してしまい、輪読会が継続できなくなってしまう可能性もあります。モチベーション低下の原因として、

    毎朝輪読会のすすめ
  • Rustで少しずつリバーシを作ってみた

    はじめに Rustの学習目的でリバーシを作ってみたいと思います。最初からすべての機能を作るのではなく、少しずつ機能を追加しながら解説していきます。また、できるだけよいコードを目指すために機能追加の度にリファクタリングをします。 最初の開発 仕様策定 まずはリバーシとして最低限遊べるうえで最も工数がかからなさそうな仕様を策定します。 cuiアプリ 矢印キーでカーソル移動 Wキーで白石を置き、Bキーで黒石を置き、Backspaseキーで石を取り除く Escキーでアプリ終了 とりあえずこれだけあればリバーシとして遊ぶことはできます。cuiアプリなので実行はWindowsTerminalを想定します。 実装 ソース とりあえずコードの良し悪しは置いといて動くものを作ります 実行結果 解説 cuiアプリとして実装するのでターミナルライブラリを導入します。今回はcrosstermを利用します。Carg

    Rustで少しずつリバーシを作ってみた
  • 海外大学のCS修士課程に進学することになった

    僕の略歴 CSの学位は持っていない 帰国子女とかではなく、英語が苦手な典型的な日人 社会人になって偶然の成り行きでソフトウェアエンジニアをやっている なぜ目指すことになったのか 一言で言うと、コンピュータサイエンスとして自分の持っている地図を広げたかったからである。僕はソフトウェアエンジニアとして働いているが、普段の業務ではwebの中でのエンジニアリングである。 特にフロントエンドは僕の性に合っていると思っているし、これからもその業界の中で生きていきたいと思っている。 でも今のスタイルのまま10年続ける、というのはどうなんだろう?と言うのをずっと頭の中で感じていた。 ある時一流のフランス料理のシェフのドキュメンタリーを見て、「フランス料理は素材と調理法の組み合わせで1+1が10にもなる」と言う言葉と聞いた。これって案外ソフトウェアでも同じことが言えるのでは?自分が業務では触れない技術分野

    海外大学のCS修士課程に進学することになった
  • GASで投票システム(個別内容を自動返信)に挑戦してみた

    GAS未経験。大昔に大学の授業でVBAとか触ったり、極稀にArduinoとかでのLチカをしたり、簡単な電子工作をしたり、ProcessingやAppleScriptで遊んだりLINE Botに挑戦したり。 あとWPとかHTML, CSS触ったことある(一からのコーディングはあまり)レベルの初心者。 なぜ作成したか Google Formの回答者に自動でのメール配信に関しては沢山事例が見つかったが、回答者に個別の内容を指定してメールを配信するタイプのものが見当たらなかったため 他アドオン・拡張機能なども検討はしたが、割り当てコードの条件を指定できなかったり、コードのログがこちらには残らずそのコードを検証に利用できない 1日の実行数に制限があり利用には適さなかった 件数や投票期間の長さなどを踏まえると手動/人力での対応は無謀 フォームが2段階になるため、なるべく離脱しないよう即座にコードを発行

    GASで投票システム(個別内容を自動返信)に挑戦してみた
    kwy
    kwy 2022/10/05
  • DockerでStable Diffusion(WebGUI)を動かす方法

    OSは以下です。同じPCでブートを切り替えています。 Windows11 + WSL2(CPU) Linux(GPU) Windowsの方は、GPUだとエラーが出て動きませんでした。理由は深く調査していません。npakaさんの記事を参考にしたほうが良いかもしれません。 OS/Dockerセットアップ OSやWSL2Dockerのセットアップに関しては以下記事参考にしてください。 Dockerのセットアップに関しては、複数のDockerコンテナを扱うためにDocker Composeもインストールする必要があります。また、GPUを使う場合は、NVIDIA Dockerのセットアップが必要になります。 詳しくは以下記事参照ください。 CPUで最短でセットアップしたいなら、ターミナルで以下コマンドをうてばDockerのセットアップできると思います。

    DockerでStable Diffusion(WebGUI)を動かす方法
    kwy
    kwy 2022/10/05
  • 異常検知技術を比較してみた(ルールベース, HLAC, PatchCore)

    はじめに 異常検知AIソフトウェア・クラウドサービスを提供しているアダコテックでエンジニアをしているshin-ueです! 今回は、弊社内で保有する電子部品を撮像した画像データに対して、異常検知を実施してみます。 そもそも異常検知って? 異常検知における異常とは、みなさん何を思い浮かべますか? 例えば、毎日休まず周期的な信号を出力してくれるシステムが一家に一台あったとします。 機械とよくケンカする僕みたいな人間は「ほんとうに周期的な信号だしてるのか!?」と疑いをかけてモニタリングしてしまいます。 t=9~11の出力値がいつもと違う変化をしているぞ・・・不良品だコイツこのやろう!(過激派) という感じで、「いつもの正常状態とは異なる状態」を異常と表現しています。 定期的に状態を監視し異常傾向を予兆してあげたり、異常状態を検出するような仕組みを作成し、異常発生したら関連システムにアラート信号を送

    異常検知技術を比較してみた(ルールベース, HLAC, PatchCore)
  • WhisperとGoogle Colaboratoryで音声の文字起こしをやってみた

    AI 業界の進化が著しい昨今、AI の研究開発企業として名高い OpenAI から Whisper というとんでもない自動音声認識モデルの発表がありました。(2022/09/22)Whisper は 68 万時間かけてトレーニングされた自動音声認識モデルでなんとオープンソース化されています。 公開されているサンプルでは早口や K-POP、フランス語、アクセントのある会話などを問題なく処理できることが示されています。また日語に関しても高い精度を保持していることがグラフから見て取れます。 WhisperGitHub リポジトリより引用 この記事で行うこと この記事では WhisperGoogle が提供する Colaboratory で利用し、文字起こしツールを作成していきたいと思います。 今回やりたいことは以下の 3 つになります。 音声データから文字起こしができる 文字起こし

    WhisperとGoogle Colaboratoryで音声の文字起こしをやってみた
  • リファクタリングしながら学ぶGoのDockerfileベストプラクティス

    初めに 過去にGo及びDockerを学び始めの時、GoDockerにて環境構築したことがありました。 最近になって改めてそのDockerfileを見返してみて、改善の余地がある部分をDockerfileのベストプラクティスに沿って修正していこうと思います。 ちなみにDockerfileのベストプラクティスはそのままのタイトルでDocker社がドキュメントを公開しています。 対象のDockerfile 今回の説明用に改変してはいますが、対象となる環境について紹介します。 ディレクトリ全体の構成と、肝心のDockerfileの中身は下記のようになっています。 ※この記事ではあくまでもDockerfileの書き方に焦点を当てるため、他のファイルの中身の説明等は省略させていただきます。 app/ ├─┬ main.go │ ├─go.mod │ ├─go.sum │ ├─config │ │ ├

    リファクタリングしながら学ぶGoのDockerfileベストプラクティス
    kwy
    kwy 2022/10/05
  • Docker で React + TypeScript の開発環境(自分用メモ)

    % git clone https://github.com/sprout2000/docker-react-ts.git % cd docker-react-ts % docker-compose up localhost:5173 を開きます。これだけです。 ローカルに Node.js がインストールされていなかったり、インストールされていてもこのコンテナで利用されているバージョンとは異なっていたりしても同じ(仮想)環境でプロジェクトが起動します。

    Docker で React + TypeScript の開発環境(自分用メモ)
    kwy
    kwy 2022/10/05
  • 『リーダブルコード』の要点&活用方法

    はじめに 今回の記事では『リーダブルコード』の要点と、実務で活用する方法を徹底解説する。この記事を読むことで、『リーダブルコード』の重要な部分と実務での活用方法を学べるだろう。 記事で使うプログラムの言語はPythonを採用した。Pythonは文法がシンプルなので初心者でも学習コストが低く、プログラミングの入門としては最も相応しいからである。今回の記事の内容は良いプログラムを格上での重要な基事項なので、どの言語でも役立つだろう。 1部:表面上の改善 名前に情報を詰め込む プログラムに使われる名前は、主に次の5つの鉄則を守る必要がある。 明確な単語を選ぶ 例えば、getは具体的に何をしているのかがわからない。 この場合だと、画像をダウンロードするのか、あるいはWebサイト上に表示されている画像のすべてを取得するのかまったくわからない。 インターネット経由で画像を取得するなら、Downlo

    『リーダブルコード』の要点&活用方法
  • ISUCON12で優勝しました(チーム NaruseJun)

    8月27日に開催されたISUCON12 選にチームNaruseJunとして参加し、スコア341,258点で優勝しました。(ISUCON12 選の結果発表と全チームのスコア) メンバーは @sekai と @takashi_trap でした。 この記事はその参加記です。 チームについて このメンバーでのISUCONへの参加は10(予選敗退), 11(準優勝)から3回連続です。 それぞれのISUCON参加回数は @to-hutohu, @sekaiが6回目、@takashi_trapが5回目です。 予選準備 7月9日と7月17日に予選のために集まって作戦会議をしました。 7/9 1時間程度集まって素振りに向けた作戦会議 素振りの環境準備、チートシート、初動のAnsible整備、Goを思い出すなどがそれぞれ宿題として持ち帰ることに 7/17 素振り会(ISUCON11予選) 5時間くらいで初

    ISUCON12で優勝しました(チーム NaruseJun)
    kwy
    kwy 2022/10/05
  • GASでシンプルなフォームつきダイアログを実装する

    はじめに Google Apps Script(以下、GAS)を使ったアプリケーションを開発していると、なんらかの設定値を画面から入力させるしくみが必要になることがあります。 例えば Slack と連携する機能において、トークンや Webhook URL をコードには直接埋め込まずユーザーに入力させたい、などです。 やりたいことは非常にシンプルですが、調べてみるとなかなかまとまった情報が見つからなかったため、記事ではこのような「ユーザーからの入力を受け取って保存する」機能の実装方法について簡単にまとめます。 この記事で作るもの 記事で実装するのは以下のような機能です。 メニューからダイアログを表示する ダイアログ内のフォームに入力して保存を実行すると、入力値を保存する 保存成功時にメッセージを表示する 次回以降ダイアログを開いたときには、保存済みの値が初期値としてセットされる 前提とし

    GASでシンプルなフォームつきダイアログを実装する
    kwy
    kwy 2022/10/05
  • 【Docker】コンテナイメージの脆弱性診断をGithub Actionsで実行させてみた | Offers Tech Blog

    概要 こんにちは、Offers を運営している株式会社 overflow の Software Engineer(主戦場はフロントエンド)の Kazuya です。今回は、Docker コンテナイメージの脆弱性診断を Github Actions で実行させる方法を紹介します。 Docker を構築してみたけど、セキュリティ面が大丈夫か不安に感じる方もいると思います。今回はそんな悩みを解消できるかも(?)しれないので、ぜひ最後までご付き合いください。 はじめに 記事では、Next.js×Docker の脆弱性診断を Github Actions で実行させる方法を紹介します。今回紹介するものは一例であり最適な実装でない可能性がありますので、予めご理解の上、参考にしていただけると幸いです。 また、今回使用するコンテナイメージについては、こちら の記事で紹介しているものを使用します。記事を参

    【Docker】コンテナイメージの脆弱性診断をGithub Actionsで実行させてみた | Offers Tech Blog
  • Fastlyを導入してよかったこと

    先日とあるサービスのCDNをFastlyに切り替えました。 導入体験が非常に良かったので、紹介していきます。 早い 当たり前ですが、レスポンスはもちろん速かったです。 おおよそ20ms前後で応答できていました。 またCDN設定変更の反映も非常に早かったです。 体感ですが1分もかからず反映されていたと思います。 安い データ転送量 最初の10TB$0.19/1GB毎(2022年9月現在、アジアリージョン) リクエスト数 $0.0090/1万リクエスト毎(2022年9月現在、アジアリージョン) 従量課金の場合、上記の費用がかかります。 このあと紹介していく機能などを考慮した費用対効果の面で考えると安いと思っています。 機能が豊富 Fastlyにはさまざまな便利機能があります。 そのうち実際に使用してよかったサービスを紹介します。 VCL Fastlyは管理画面から設定もできるのですが、Varn

    Fastlyを導入してよかったこと
    kwy
    kwy 2022/10/05
  • 私がよく参考にしているサイトまとめ

    はじめに Twitter、Qiita、Zenn...といろんなところから情報収集するのはいいのですが、それぞれの有益な情報をそれぞれのサイトにお気に入りとして保存しているので、必要な情報を探すだけで一苦労です。 ここで一覧にしてまとめておくことにしました。 ただし、特定の言語に依存するような記事はあえて排除しています。 皆さんにとっても有益な情報があると、この記事を公開して良かったなと思います。 また、皆さんのオススメの記事がありましたら、コメントなどで教えてください。 コミュニケーション 質問 質問は恥ではないし役に立つ https://qiita.com/seki_uk/items/4001423b3cd3db0dada7 新卒からの質問をソシャゲっぽい仕組みにしたら捗った話 https://qiita.com/ysktsuna/items/fced3a9515c8f585ca50 会

    私がよく参考にしているサイトまとめ
  • 【初心者向け】プログラミング学習法大全

    はじめに 今回の記事では、あくまで個人の一見解に過ぎないが主に初心者向けにプログラミング学習方法とプログラミング学習で重要なマインドセットを中心に徹底解説する。 「なかなか進まない...」 「どうやって勉強すればいいの?」 「知識が定着できずわからないことだらけ...」 このように悩んでいる初心者が記事の内容を参考に、プログラミング学習の質を上げていただければ非常に幸いである。 マインドセット まずはプログラミングを好きになる 効率よく、そして楽しくプログラミング学習に取り掛かる第一歩はプログラミングそのものを好きになることである。しかし、どうしてもプログラミングを楽しめない場合は自分の好きなものと関連付けるのも1つの手段である。プログラミングでは、「いつも遊んでいるゲームや使っているアプリはどんな感じで動いているのか?」というように疑問を持つことで、好奇心がそそられるかもしれない。 実

    【初心者向け】プログラミング学習法大全
  • miketako3さんの記事一覧

    Software Engineer 高負荷システムとかメンテナビリティとか分散DBとかSREとかが好き フォロー → bsky.app/profile/miketako.xyz 発言は個人の感想です

    miketako3さんの記事一覧
  • Dockerを使ってOpenAIのWhisperをサクッと試す

    少し前から界隈を賑わせているWhisper。 どうやらスゴイらしい。 嬉しいことに 日語対応 しかも無料 という太っ腹ぷり。 アーキテクチャ・どんなにスゴイかすっ飛ばして「環境つくり/テスト」に焦点を当てます。 (Colabの記事は既にいくつかあったので、dockerを使った環境構築を想定して書きます。) 結論から言うと、「めっちゃ簡単」でした。 こういうのってハマりどころが多いなと思って、備忘録として書いたのですが、簡単だったので内容が薄いです。。 とくにかく触ってみたい huggingfaceさんがデモを公開してくれています(いつもお世話になります)。 手っ取り早く試したい人はここから試すと良いでしょう。 環境構築(CPU) 環境はubuntuです。 こんな感じでDOCKERFILEを作ります。 FROM python:3.9-slim WORKDIR /workspace RUN

    Dockerを使ってOpenAIのWhisperをサクッと試す
    kwy
    kwy 2022/10/05
  • Django 製 Web サービスを Cloud Run + PlanetScale に移行する

    6年以上前から運営している Django 製のウェブサイトである srandom.com を VPS (CentOS, MySQL) から Cloud Run + PlanetScale に移行しました。 Cloud Run も PlanetScale も無料枠が大きいので、規模の小さいサービスであればほぼ無料で運用できる上、そのままスケールさせることもできるので便利そうです。 2024/03/09 追記: PlanetScale の無料プランが終了するみたいです。 以下、作業手順を雑に書いていきます。 1. Dockerize Cloud Run で動かすのでまずは Dockerfile 単体で実行できるようにする。 Uvicorn で動かす asgi.py を作成する 最近の Django プロジェクトであれば初めから生成されるらしいが、作った時期が昔すぎたため手動で作成した ref.

    Django 製 Web サービスを Cloud Run + PlanetScale に移行する
    kwy
    kwy 2022/10/05
  • 「初心者向けにNoSQLを徹底解説」に関する誤りについて

    「初心者向けにNoSQLを徹底解説」に関する誤りについて 以下の元記事では,初心者向けにあやまった情報で解説を行っているように見受けられたため,その訂正を目的とした記事である. NoSQLのメリット 高速 処理を高速に行えるのはNoSQL最大のメリットと言っても過言ではない。トランザクションを必須とせず、データの厳密な一貫性を確保しないことで迅速にデータを処理できる。NoSQLはデータ量が増えてもRDBより処理速度が下がりにくい。 (中略) 完全一貫性を必要としない NoSQLでは、処理の結果が最終的に一貫性のある状態となれば可とする「BASE基準」を採用している。NoSQLは完全な一貫性を含む「ACID特性」を満たす必要はないので、高速処理の実現に大きく貢献している。逆を言えば、NoSQLはデータの一貫性が必要なシステムには不適である。 データの厳密な一貫性 や 完全一貫性 というものが

    「初心者向けにNoSQLを徹底解説」に関する誤りについて
    kwy
    kwy 2022/10/05
  • OSS 開発元が提供するサービスを利用する

    時雨堂では自社サービスを提供する際には OSS 開発元の商用製品を利用するようにしています。 のサービスを使っている話を聞かないので、せっかくなのでこんなのもあるよということで紹介していきます。 Ubuntu Pro 時雨堂では OS は Ubuntu LTS に統一しています。 そんな中でベアメタルサーバーで利用している Ubuntu では Ubuntu Pro の INFRA-ONLY を契約して利用しています。 ベアメタル(物理サーバー)なので 1 サーバーあたり年 $225 かかります。 主な目的は Kernel Livepatch service to avoid reboots です。 セキュリティパッチを当てる際に可能な限り再起動をしなくてよくしてくれます。 コンテナ時代に再起動とか何言ってんだと言われるかもしれませんが、 ベアメタル利用がメインのサービスを運用しているので重

    OSS 開発元が提供するサービスを利用する
  • WebのE2Eテスト自動化〜ツール選定編〜

    こんにちは! 株式会社ココナラのプロダクト開発部 QA チーム所属のまると申します。 弊社では現在リリース時のリグレッションテストの大部分を手動かつモンキーテストで実施しています。そのためテスト工数が高く、さらにテスト漏れも発生し、予期せぬ機能で障害が発生してしまうことがありました。 この状況を鑑み、QA チームではテスト効率化とプロダクト品質の更なる向上を目指し、今期からWeb の E2E テスト自動化を再整備しています。 記事で自動化ツールの評価を行い、Playwrightを選定するまでのプロセスを記載します。 前提 テスト自動化ツールAutifyを利用して、定性的に重要と判断された一部機能を対象にリグレッションテストを自動化している 現状の課題 ツール制約上、対応できない機能が発生している 現状の自動化率は 50%未満 全テストケースを実行するとテスト実行完了までに半日要する 画面

    WebのE2Eテスト自動化〜ツール選定編〜
  • Goエンジニアがk8sクラスタでノイジーネイバー問題に遭遇し、解決するまでの記録

    これは、とある僕のチームが運用しているWebアプリケーション (Go製) の、ヘルスチェック用エンドポイントの (リクエストハンドラーの) コードです。リクエストがきたら200 OKを返すだけの、シンプルな実装です。 func health(w http.ResponseWriter, _ *http.Request) { w.WriteHeader(http.StatusOK) } ところが、たったこれだけの処理しかしていないエンドポイントのレイテンシが、ある時からピーク時に著しく劣化するようになり、ひどい時には最大3.4秒もかかるようになってしまったのです。 なぜこのようなことになってしまっていたのか、またそれをどのように調査し、解決したのかについて解説します。 システム概要 今回問題となったWebアプリケーションはGoで書かれています。実行環境は Kubernetes (GKE) で

    Goエンジニアがk8sクラスタでノイジーネイバー問題に遭遇し、解決するまでの記録
    kwy
    kwy 2022/10/05
  • 3000円以内、買ってよかったキッチングッズ→ツイッター上に投稿された口コミも含めてまとめました

    すごく人気・ガチな人がいたのはセラベイク・ニトリマルチポット・ぶんぶんチョッパーのように感じました!全部ほしくなりました…

    3000円以内、買ってよかったキッチングッズ→ツイッター上に投稿された口コミも含めてまとめました
  • 家中の「豆腐」がなくなる!【タモリさん流】材料少なくてウマい!あられ豆腐「究極にウマい食べ方」にやられた~!ひと口で参りました | ヨムーノ(くふうLive!から変更)

    家中の「豆腐」がなくなる!【タモリさん流】材料少なくてウマい!あられ豆腐「究極にウマいべ方」にやられた~!ひと口で参りました 2023年10月19日公開 こんにちは、管理栄養士でくふうLive!ライターのmihoです。 安価で、便利な「お豆腐」。 今回は豆腐をメインにして完成する、タモリさんおすすめの「美味しいレシピ」のご紹介です。 タモリさん流「材料少なくてウマい!あられ豆腐」 今回ご紹介するのは、タモリさんが以前テレビで紹介されていた【あられ豆腐】です。 あられ豆腐とは、来、豆腐の水気をしっかり切り、油でカラッと揚げる料理のようですが、それをタモリさん流にアレンジしたお手軽レシピになっていますよ。それでは早速作っていきましょう。 材料 木綿豆腐...1パック(400g) ごま油...大さじ3~4 醤油...大さじ3 酒...大さじ2 豆腐はペーパータオルで包んでおもしを乗せ、15分

    家中の「豆腐」がなくなる!【タモリさん流】材料少なくてウマい!あられ豆腐「究極にウマい食べ方」にやられた~!ひと口で参りました | ヨムーノ(くふうLive!から変更)
  • Docker HubのOpenJDKイメージの利用を更新するためのアドバイス - 赤帽エンジニアブログ

    Red Hat で Java Platform Advocate として OpenJDK を担当している伊藤ちひろ(@chiroito)です。 この記事は、Red Hat Developerのブログ記事、My advice for updating use of the Docker Hub OpenJDK image | Red Hat Developer の翻訳記事です。 コンテナ内のJava実行環境は、今後数カ月でアップデートを受けられなくなる可能性があります。そろそろ手を打つべきでしょう。この記事では、この問題を引き起こした原因である決定事項を説明し、解決策を提案します。 OpenJDK と Java SE のアップデート OpenJDKは、Java Platform, Standard Edition (Java SE)のオープンソース実装で、複数の企業やコントリビューターが共同

    Docker HubのOpenJDKイメージの利用を更新するためのアドバイス - 赤帽エンジニアブログ
  • The Super Tiny Compiler ではじめるコンパイラ入門

    The Super Tiny Compiler とは? The Super Tiny Compiler は、わずか 200 行の JavaScript で書かれたコンパイラです。 Super Tiny の言葉どおり機能はとても限定されていて、LISP ぽい関数呼び出しを C 言語のような関数呼び出しに変換するだけです。

    The Super Tiny Compiler ではじめるコンパイラ入門
    kwy
    kwy 2022/10/05
  • レガシーシステムをDockerコンテナ化する場合に直面した4つの壁 - RAKUS Developers Blog | ラクス エンジニアブログ

    こんにちは。 株式会社ラクスで先行技術検証をしたり、ビジネス部門向けに技術情報を提供する取り組みを行っている「技術推進課」という部署に所属している鈴木(@moomooya)です。 ラクスの開発部ではこれまで社内で利用していなかった技術要素を自社の開発に適合するか検証し、ビジネス要求に対して迅速に応えられるようにそなえる 「技術推進プロジェクト」というプロジェクトがあります。 このプロジェクトで「WEBアプリケーションのDockerコンテナ移行」にまつわる検証を進めているので、その中間報告を共有しようかと思います。 検証での想定環境 CIに不必要な部分は後回し 既存アプリでコンテナ化の障害になった部分 OSコマンドを利用している ミドルウェアとの密結合 オンライン系とバッチ系の密結合 ひとまず目指す状態 プロセス相乗りの影響 ログが複数出力される まとめ 続きの記事も書きました。 tech

    レガシーシステムをDockerコンテナ化する場合に直面した4つの壁 - RAKUS Developers Blog | ラクス エンジニアブログ
  • DynamoDBの難しさについて - Qiita

    はじめに DynamoDBは上手く使えば非常に強力なDBMSですがRDBとの違いは大きく、「RDBの代わりにDynamoDBを使おう!」と深く考えずに提案/採用することが難しいことから、その理由についてみていきます。 DynaomoDBの難しさ DynamoDBの利点と表裏一体である、DynaomDBの主要な難しさについて順番に見ていきます。 1. 提供されているクエリモデルでできることが非常に限定されている DynamoDBは次の公式サイトに記載がある通り、どんな規模でも数msの一定のパフォーマンスを発揮でき、無尽蔵にスケールできるという特徴があります。 Fast, flexible NoSQL database service for single-digit millisecond performance at any scale この特性を上手く活用すると次の実例のように高可用性、

    DynamoDBの難しさについて - Qiita
  • PostgreSQLをWebブラウザ上で動かす「Postgres-WASM」、オープンソースで公開。Webブラウザ上のx86仮想マシンで実行、レプリケーションも可能

    PostgreSQLをWebブラウザ上で動かす「Postgres-WASM」、オープンソースで公開。Webブラウザ上のx86仮想マシンで実行、レプリケーションも可能 WebAssemblyを用いてWebブラウザにx86の仮想マシンを構成することで、PostgreSQLをWebブラウザ上で実行可能にした「Postgres-WASM」がオープンソースで公開されました。 Today we're open sourcing postgres-wasm with our friends at @_snaplet Discover how we built it, and the extra features we've added: https://t.co/6kmfXBBhCS#postgres #wasm #opensource — Supabase (@supabase) October 3,

    PostgreSQLをWebブラウザ上で動かす「Postgres-WASM」、オープンソースで公開。Webブラウザ上のx86仮想マシンで実行、レプリケーションも可能