kamada-mathのブックマーク (719)

  • 誰も書かない? シェル・シェルスクリプトの基本

    シェルスクリプトの基の基とはどういうものなのか、他の多くのプログラム言語で処理を実装するのと比べ、どのような違いがあるのか。あまり ( 当然過ぎて? ) 書く人がいなさそうなので、つらつら説明したもの

    誰も書かない? シェル・シェルスクリプトの基本
  • ISUCONの過去問でObservabilityを体験する - Hatena Developer Blog

    システムプラットフォームチームで SRE をしている id:masayoshi です。 今年もISUCON14の開催が決定しましたね! isucon.net ISUCONとはLINEヤフー株式会社が運営窓口となって開催している、お題となるWebサービスを決められたレギュレーションの中で限界まで高速化を図るチューニングバトルです ISUCONは、世の中に実際にありそうなWebサービスを題材に、明確なボトルネックがあるコードかつ全体のコード量もすぐ読める量なので、パフォーマンスチューニングの練習にはもってこいです。 適切なパフォーマンスチューニングをするためには、まず計測してシステム上のどこにボトルネックが存在してパフォーマンスが悪化しているのかを把握する必要があります。 このように、どこで、何が起こり、パフォーマンス上の問題やエラーがおこっているのかを把握できる能力を Observabili

    ISUCONの過去問でObservabilityを体験する - Hatena Developer Blog
  • Rust始めてみた。JSONフォーマッターを作ってみた | stin's Blog

    唐突にRustを使ってみたいと思ったので勉強を始めてみました。 始めた理由始めてみたかった理由は色々あります。 まずはやはりフロントエンド開発ツールが色々とRustで実装されることです。VercelはTurborepoとTurbopackをRustで実装していますね。JavaScriptコンパイラのSWCもRustで実装されています。あとは、uhyoさんのnitrogqlもRustで作られていて、おもしろいなと思いました。そんな感じで、コンパイラ実装でRustがよく使われていることと、ビルドツールなどのテキスト処理に興味があったのが1つ目の理由です。 あとは、Tauriですね。ふとデスクトップアプリを作りたいと思ったときにTauriを調べたんですが、TauriのバックエンドをRustで書けたらかっこいいなと思いました。普通にJavaScriptでも書けるらしいんですが、かっこよさ重視です。

    Rust始めてみた。JSONフォーマッターを作ってみた | stin's Blog
  • MySQLの ALTER TABLE ステートメントの実行形式について学んだメモ✍ - 継続は力なり

    タダです. DB マイグレーションなどで ALTER TABLE ステートメントを実行する機会は多いと思いますが,自分は ALGORITHM 指定した実行形式を意識して使ったことがこれまでありませんでした.今回実行形式に触れる機会があったので学んだメモをまとめます. ALTER TABLE ステートメントにおける実行形式 MySQL において ALTER TABLE ステートメントの実行形式は3つあります. COPY INPLACE INSTANT COPY COPY は新しいテーブル定義で一時テーブルを作成し,既存データをコピーして入れ替えます.ALTER TABLE ステートメント実行中テーブルをロックするため,実行中は書き込みがブロックされます.大規模テーブルへのロックがかかると,サービス利用に影響も出てしまうのでメンテナンスも必要になります.利用するケースとして主キーの削除やデータ

    MySQLの ALTER TABLE ステートメントの実行形式について学んだメモ✍ - 継続は力なり
  • Buildkit でキャッシュを ECR に保存する - RareJob Tech Blog

    はじめに こんにちは。DevOps グループの中島です。 弊社では CI ジョブ実行のために EC2 でホストした GitLab Runner (Docker Executor) を利用しており、Docker コンテナ上で CI ジョブを実行しています。 それらのジョブのうちコンテナイメージをビルドするジョブにおいて、時間がかかっている問題がありました。 今回はその問題に対して比較的新しい機能を用いた解決策の紹介と、処理の概要について説明したいと思います。 背景 ビルドに時間がかかっている理由としては、レイヤーキャッシュが利用されていないのが 1 つの要因としてあげられました。 コンテナビルド用の Docker は dood (Docker outside of docker) を採用しており、レイヤーキャッシュは EC2 上に保存されますが、Docker のキャッシュは EC2 の容量の

    Buildkit でキャッシュを ECR に保存する - RareJob Tech Blog
  • 500行以内で自作言語作ってみた - Qiita

    はじめに 昨今、Rustの登場によりプログラミング言語は複雑化しつつあります。(彼にRustを貶す意図はありません) この現状を打破するため、私は最高にシンプルで完璧な言語作りに取り組みました。(彼は冗談を言っています) 最終的に当初の目論見とはかけ離れた言語になりましたが、その過程で苦労したことなどを綴っていこうと思います。 完成品はこちらになります 一応GCCでコンパイルして実行すれば乱数生成器が動くようになっています。 https://github.com/sxclij/sxcscript 特徴 C言語かつ500行以内のソースコード。(C言語を触ったことのある人なら無茶振り度合いがわかってくれるはず...) 動的メモリ確保なし(多分)固定長配列最高! 3種類の記号で記述可能。(なんというシンプル! 使用ライブラリはfcntl.h,stdint.h,unistd.hのみ 500行で収め

    500行以内で自作言語作ってみた - Qiita
  • 受託開発でもアジャイル開発できました / Agile in Contract Development

    AWS Developer Live Showにて。 https://aws-dev-live-show.connpass.com/event/331735/ プロフィールやお問い合わせはこちらからどうぞ! https://agile-monster.com/profile/ https:/…

    受託開発でもアジャイル開発できました / Agile in Contract Development
  • 会議の文字起こしから議事録をまとめるLLMツールを作った

    Leaner 開発チームの黒曜(@kokuyouwind)です。 Leaner では先月(2024 年 9 月)に葉山で開発合宿を行いました。合宿全体については既に開発者ブログの記事が上がっています。 今回、自分は議事録の自動まとめツールを作るチームでプロンプトを調整し、結構いい感じに動いたため記事を書くことにしました。 やりたかったこと 商談や社内のミーティングなどの実施後に議事録を作ることがあるのですが、結構時間がかかるため ChatGPT などの LLM を使って自動化できないか、というのを試しました。 やりたいこととしては LabBase さんの以下の記事が近いです。 ただし前提が異なる部分もあったため、諸々検証したうえで最終的には異なる構成になりました。 Amptalk を利用しており文字起こしが取得できているため、文字起こし部分はこれより精度が良いかが基準になる tl;dv や

    会議の文字起こしから議事録をまとめるLLMツールを作った
  • Develop to Survive - YAPC::Hakodate 2024 Keynote

    YAPC::Hakodate 2024のキーノートスライドです。

    Develop to Survive - YAPC::Hakodate 2024 Keynote
  • TypeScriptは型安全じゃないからすばらしい - まめめも

    TypeScriptではじめる型システム」という記事をn月刊ラムダノートに寄稿しました。 新刊を発売しました "『n月刊ラムダノート』Vol.4 No.3(2024)発行のお知らせ https://t.co/PGppk1aRRA— lambdanote (@lambdanote) 2024年10月4日 どんな内容? TypeScriptの極小サブセットに対する型検査器を書き、それを通して型システムを体感してみよう、という内容です。 詳しく言うと、boolean型とnumber型と関数型しかないTypeScriptサブセット言語がターゲットです。 型検査器の実装言語にもTypeScript(処理系はDeno)を使います。 TypeScriptづくしの一品です。 わかる人向けに言うと、「型システム入門」という(通称TAPL)の単純型付きラムダ計算に相当する内容をTypeScriptで説明し

    TypeScriptは型安全じゃないからすばらしい - まめめも
  • Findyのエンジニア爆速成長の事例 2024年夏 - Findy Tech Blog

    こんにちは。こんばんは。 開発生産性の可視化・分析をサポートする Findy Team+ 開発のフロントエンド リードをしている @shoota です。 先日、END が 【フルスタックエンジニアへの道!】ReactTypeScript の修行をした話 というタイトルで、フルスタックエンジニアを目指すためのフロントエンドの修行の記事を投稿いたしました。 こちらの記事では React / TypeScript において個人学習程度のレベルにあった END が、機能開発を自走可能になるまでの内容が書かれています。 そこで記事では、END の成長と挑戦をサポートし、実際に指導にあたった私がメンター視点での話をいたします。 育成のはじまり 下準備 ゴール設定 助走をしてもらう 実践 育成の方針と実践 トレードオフ 3 ヶ月の成果と分析 プルリクエストの可視化 メンティーの分析 メンターの分

    Findyのエンジニア爆速成長の事例 2024年夏 - Findy Tech Blog
  • GitHub Actionsを使ってテックブログの執筆を省力化する

    ツール導入前の課題GitHub Actionsを用いた運用を開始するまで、テックブログを公開するにあたり以下の手順を実施していました。 Notion上で執筆を行う CTO, 上長がNotion上でレビューをおこなう Mediumのアクセス権をもらい、入稿を行う テックブログ運営チームがFigmaOGP画像を作成する 公開 この運用では3つほど課題がありました。 指摘したレビューがどのように修正されたかがわかりにくい てにをはの指摘など毎回同じようなレビューが発生し、レビュワーの負担が大きい OGPの作成をFigmaの編集権限があるひとに毎回依頼する必要がある どのような状態を目指していたか公開前の定型的な作業や公開作業の自動化、記事作成からレビュー・公開までのプロセスを整備し仕組みに落とし込むことで、運営メンバーなしでも執筆・公開ができる状態を目指しました。 GitHub Actions

    GitHub Actionsを使ってテックブログの執筆を省力化する
  • プルリクを気持ちよくレビューしあえるコツあれこれ

    divではなく、spanを使ったほうが良いと思いました! + <div>山田</div> - <span>山田</span> 文章だけで「ここはこうした方がいい」を説明するより、コードも一緒に提案してあげた方が分かりやすいです。 GitHub上だと、以下のように操作するとコードの提案ができます👇️ GitHubのリンクを貼る時はパーマリンクを使う

    プルリクを気持ちよくレビューしあえるコツあれこれ
  • Cloudflare の新しいロードバランサ Pingora を試してみる - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは。クラウド基盤部の野島です。 今年のインターンシップでは、プラットフォーム(自社基盤)コースとして2名の方を受け入れ、それぞれ異なる課題をやってもらいました。 そのうちの一つは Pingora に関する課題で、覚道さんに取り組んでいただきました。(もう一つの課題は nginx のキャッシュの性能に関するもので、これについては昨日の記事をご参照ください) Pingora は Cloudflare が開発したロードバランサのためのフレームワークであり、Rust を使って好きなロジックを組み込んだロードバランサを書くことができます。 今回のインターンでは Pingora を使って TLS のクライアント証明書を使った認証プロキシを作ってもらいました。 そこで、この開発の中で得られた Pingora や OpenSSL に関する知見を共有しようと思います。 この記事は覚道さんのインター

    Cloudflare の新しいロードバランサ Pingora を試してみる - Cybozu Inside Out | サイボウズエンジニアのブログ
  • Courseraで"Algorithms, Part I"を修了した - valid,invalid

    アルゴリズムの学習の一環としてCourseraの "Algorithms, Part I" を完了した。 www.coursera.org 先日アルゴリズムに関する学習教材を探していた折、同講座に関する満足の声を見かけたのでやってみることにした。(英語のレビューは上記ページに載っている) Courseraで高評価な「Algorithms, Part I」を使った社内勉強会を開催しています - Hatena Developer Blog Coursera Algorithm Part I を受講し終えた - /var/log/kmb.log Coursera Algorithms PartⅠを受講しました | Futurismo 時間はかかったが全課題を及第点以上で完了できた!! "Algorithms, Part I" とは何か Princeton大学がCourseraで公開している、アル

    Courseraで"Algorithms, Part I"を修了した - valid,invalid
  • C言語でSQLiteのクローンを作るチュートリアルやった - valid,invalid

    2019年12月の冬休みに1週間程かけて"Let's Build a Simple Database"という、C言語でSQLiteのクローンを作るチュートリアルをやりました。この存在を教えてくれた同僚に感謝 :pray: cstack.github.io チュートリアルの内容 Richard Feynman先生の“What I cannot create, I do not understand.”という言葉が掲げられているように、データベースを作ることでデータベースをより深く理解することに主眼が置かれているチュートリアルです。 これは重要事項説明かつタイトル詐欺に関する謝罪なのですが… 残念ながらこのチュートリアルは完成しておらず、Part 13が2017-11-26に公開されたのを最後に更新が止まってしまっており、以下の13章しかありません。 Part 1 - Introduction

    C言語でSQLiteのクローンを作るチュートリアルやった - valid,invalid
  • 『みんなのデータ構造』でデータ構造の基礎を学んだ - valid,invalid

    データ構造とアルゴリズムの学習の一環として『みんなのデータ構造』を読んだ。これまでで最も良いデータ構造の学習になった。 みんなのデータ構造 作者:Pat Morin発売日: 2018/07/20メディア: 単行(ソフトカバー) 日語訳がWebで公開されているので気になる方は無料で読める。が、著者や訳者や出版社応援の意味も込めて購入すると良いと思います。また、ラムダノート社のサイトから買うと紙書籍と電子書籍のセットがお得。 内容 データ構造とアルゴリズムに関連するはアルゴリズム寄りのものが多いが、データ構造に焦点を当て続けていることが書の特色。 内容の依存関係 p.21より 大学の教科書のように、正確性を優先したハードコアな内容。 アルゴリズムの内容も少しだがある。「11章 整列アルゴリズム」ではそれまでの章で学んだデータ構造がどのように使われるかを一瞥でき、「12章 グラフ」では深

    『みんなのデータ構造』でデータ構造の基礎を学んだ - valid,invalid
  • ASCII.jp:ファイルシステムと、その上のGo言語の関数たち(3)|Goならわかるシステムプログラミング

    Go言語でシステムプログラミングの世界を覗くこの連載では、前々回からファイルシステムに関係する話題を扱ってきました。 今回の記事では、その総まとめとして、アプリケーションから見たファイルシステム周りの最深部を辿っていきます。 扱う話題は次の4つです。 ファイルロック ファイルのメモリへのマッピング 同期・非同期とブロッキング・ノンブロッキング select属のシステムコールによるI/O多重化 ファイルのロック(syscall.Flock()) ファイルのロックは、複数のプロセス間で同じリソースを同時に変更しないようにするために「いま使用していますよ」と他のプロセスに伝える手法のひとつです。 ファイルロックの最も単純な方法は、リソースが使用中であることをファイル(ロックファイル)によって示すというものでしょう。 たとえば、古いプログラマ(30代以上?)にはお馴染みのCGI(かつて動的なウェブ

    ASCII.jp:ファイルシステムと、その上のGo言語の関数たち(3)|Goならわかるシステムプログラミング
  • vimに慣れるためのゲーム - 腹は減る

    vim-jpのslackで教えてもらったゲーム。 忘れない為にメモ。 vim-adventures.com github.com github.com mattn.kaoriya.net vim-jp.org

    vimに慣れるためのゲーム - 腹は減る
  • 人に優しいフォームを作ろう、特に日本人に

    皆さん、フォーム作ってますか? Webサイトやアプリを作るにあたって避けられないのがForm作成、多くの方が autocomplete を設定するなど、より使いやすいフォームを作成するために尽力されていることと思います。 一方で、悪気なく書いたコードでより使いにくいフォームになってしまっている例が世の中には多く見られます(特に銀行系) 今回は、よくあるフォームの実装を例に、(特に日語話者にとって)より使いやすいフォームにするためのちょっとした仕様や私が考える対策を書いていこうと思います。 忙しい方のために最初に書いておくと、この記事に書いてあることの多くは autocomplete の仕様を意識した実装をしましょう の一言に集約されます。 多くの方にとっては「何を当たり前のことを」と思われる項目も多いかとは思いますが、当たり前のことがされていないフォームが世の中には多すぎるので、少しでも

    人に優しいフォームを作ろう、特に日本人に