タグ

itchynyのブックマーク (5,876)

  • A 10x Faster TypeScript - TypeScript

    While we’re not yet feature-complete, these numbers are representative of the order of magnitude performance improvement you’ll see checking most codebases. We’re incredibly excited about the opportunities that this massive speed boost creates. Features that once seemed out of reach are now within grasp. This native port will be able to provide instant, comprehensive error listings across an entir

    A 10x Faster TypeScript - TypeScript
  • 時間がかかっていた git status を Trace2 で計測しながら10倍速くした話 - Mirrativ Tech Blog

    環境 改善前 改善前計測 untrackedcacheを使った高速化 file system monitorを使った高速化 サブモジュールをオフにして高速化 Appendix: Gitバージョンアップ実験結果 まとめ We are hiring! こんにちは。バックエンドエンジニアのshirakawaxです。 Mirrativのバックエンドリポジトリのgit statusが遅かったので1.941秒 → 0.173秒に改善した話を書きます。 環境 Apple M1 Max メモリ 64 GB macOS Sonoma 14.4 $ git -v git version 2.39.3 (Apple Git-146) 改善前 私の環境では改善前のgit statusは1.941秒かかっていました。 頻繁に実行するコマンドではないですが、若干ストレスになっていました。 $ time git sta

    時間がかかっていた git status を Trace2 で計測しながら10倍速くした話 - Mirrativ Tech Blog
  • jq(gojq) で base64 をデコードする時の落とし穴

    この記事は apstndb Advent Calendar 2024 の7日目記事です。 この記事では jq を使った JSON 内の base64 のデコードとその問題、そして問題の解としての gojq について紹介します。 この記事では jq 1.7, gojq 0.12.17 を使っています。将来的に挙動が変わる可能性はあります。 問題の紹介: JSON に含まれた base64 されたバイト列 Spanner の PROTO BUNDLE に登録した内容を自前でヒューマンリーダブルに出力する の記事では curlgojq (のラッパーである jqurl), base64, protoc を使って REST API から取得できるスキーマ情報から Protocol Buffers でシリアライズされた型情報をヒューマンリーダブルに出力する方法を説明しました。 $ jqurl -

    jq(gojq) で base64 をデコードする時の落とし穴
    itchyny
    itchyny 2025/02/23
  • Vimmer が紹介する「いぶし銀」なプラグインまとめ(後編)

    この記事は Vim 駅伝 の 08/21 の記事です。 前回の記事は kyoh86 さんによる、 08/18 の「ddu.vimの基設定概観」という記事でした。 次回は 08/23 に投稿される予定です。 はじめに 記事は、いぶし銀プラグイン企画の結果発表の後編です。 Vimmer が実際に普段の編集を行う上で、なくてはならないと感じるプラグインを紹介していきます。前編は以下の記事を参照してください。 後編では、94件の回答のうち前編で紹介しなかったもの全てを紹介します。 全部で52個もあるため、プラグインの大まかな分類ごとに分けて紹介しています。一度に全て読むのは大変ですから、「目次」から気になるカテゴリを選んで読み進めることをおすすめします。 紹介フォーマット 前編の記事同様、各プラグインには以下の項目を設けています。 プラグイン名 プラグインへのリンク 概要 (一応)紹介記事なの

    Vimmer が紹介する「いぶし銀」なプラグインまとめ(後編)
    itchyny
    itchyny 2025/02/21
  • Vim/Neovimでgrep結果をいい感じにフィルタリングして一括編集する~quickfixにプラグインを添えて~

    はじめに grepした結果を一括で編集する方法はたくさんあります。 しかしgrepした結果を確認すると「編集したくない対象が紛れ込んでおり、それを除外するために正規表現を考えなおす」なんて経験はありませんか。 今回は雑にgrepした結果を直接編集して絞り込み、絞り込んだ対象を一括編集する方法を紹介します。 色々ありますが、今回はquickfixというVimの組み込み機能をプラグインで拡張して実現する方法を紹介します。 結論 Neovimの場合は以下のどちらかの組み合わせを使いましょう。 quicker.nvim + nvim-bqf vim-qfreplace + vim-qfedit + nvim-bqf Vimの場合はvim-qfreplaceとvim-qfeditを使いましょう。 操作の全体像 操作の流れは以下です。 grepした結果をquickfixで表示する quickfixの結

    Vim/Neovimでgrep結果をいい感じにフィルタリングして一括編集する~quickfixにプラグインを添えて~
    itchyny
    itchyny 2025/02/19
  • Goのジェネリクス徹底理解

    1. ジェネリクスなしでの開発 ジェネリクスが導入される前に、異なるデータ型をサポートするジェネリック関数を実装するためにいくつかのアプローチがありました。 アプローチ1: 各データ型に対して関数を実装する このアプローチは、極めて冗長なコードと高い保守コストをもたらします。いかなる変更も、すべての関数に対して同じ操作を行う必要があります。さらに、Go言語は同じ名前の関数のオーバーロードをサポートしていないため、外部モジュールからの呼び出しにこれらの関数を公開するのも不便です。 アプローチ2: 最も広い範囲のデータ型を使用する コードの冗長性を避けるために、別の方法は最も広い範囲のデータ型を使用することで、つまりアプローチ2です。典型的な例はmath.Maxで、これは2つの数のうち大きい方を返します。様々なデータ型のデータを比較できるように、math.MaxはGoの数値型の中で最も広い範囲

    Goのジェネリクス徹底理解
  • research!rsc: Coroutines for Go

    This post is about why we need a coroutine package for Go, and what it would look like. But first, what are coroutines? Every programmer today is familiar with function calls (subroutines): F calls G, which stops F and runs G. G does its work, potentially calling and waiting for other functions, and eventually returns. When G returns, G is gone and F continues running. In this pattern, only one fu

  • 緩やかに変化し続けるソフトウェア | おそらくはそれさえも平凡な日々

    当ブログのRSSを全件配信するようにした。Perl製OSSの拙作ブログエンジンであるところのRiji側に手を入れた。ファイルサイズが大きくなるし、RSS分割を実装するのもめんどいので単純に直近30件配信にとどめていたが、今日日普通に1ファイルで全件配信して良いだろうと思い変更した。時代の流れで富豪的アプローチが許容される(?)よくある話。 ちなみに、全件配信しようと思ったきっかけは、ポッドキャスト「趣味でOSSをやっている者だ」を始めるにあたって、RebuildRSSを観察したところ、全件配信しているのに気付いたので、じゃあいいか、となったというのがありました。 その昔の以下のnaoyaさんの19年前の記事で、RSS内に単独エントリの全文配信の是非について書かれているが、今や全件全文配信である。 RSSの全文配信をはじめました Riji v1.1.1をリリースした https://git

    緩やかに変化し続けるソフトウェア | おそらくはそれさえも平凡な日々
    itchyny
    itchyny 2024/11/05
    メンテナが身の丈にあった進化を選んでいくことだと思っている。ユーザーや要望が増えたときに、身の丈にあわない進化を選ばないか、進化にあわせたメンテナンス体制を選ぶかどちらかをやらないと、しんどくなる。
  • Cyber Apocalypse CTF 2024 - Rev Writeup - - NFLabs. エンジニアブログ

    TL;DR 2024/03/09 ~ 03/14 にかけて行われた Cyber Apocalypse 2024: Hacker Royale の Writeup 記事です QuickScan, MazeOfPower の Rev. 問2つあります ctf.hackthebox.com はじめに 皆さまこんにちは @strinsert1Na という人です。 Hack The Box が主催する CTF イベント『Cyber Apocalypse 2024: Hacker Royale』に、Team Enu で参加してきました。 Team Enu はNTTグループの社員で結成されたCTFチームであり、NFLabs. のメンバーの他にも NTT Communications, NTT社会情報研究所, NTTセキュリティジャパンのメンバーも参加し競技に臨みました。 team-enu.github.

    Cyber Apocalypse CTF 2024 - Rev Writeup - - NFLabs. エンジニアブログ
  • クレジットカードを製造する技術

    YAPC::Hakodate 2024での発表内容です。 https://yapcjapan.org/2024hakodate/

    クレジットカードを製造する技術
  • サイボウズで活躍中のid:itchynyを訪問 | はてな卒業生訪問企画 [#11] - Hatena Developer Blog

    こんにちは、CTOの id:motemen です。 Hatena Developer Blogの連載企画「卒業生訪問インタビュー」では、創業からはてなの開発に関わってきた取締役の id:onishi、CTOの id:motemen、エンジニアリングマネージャーの id:onkが、いま会いたい元はてなスタッフを訪問してお話を伺っていきます。 id:motemenが担当する第11回のゲストは、サイボウズ株式会社でソフトウェアエンジニアとして活躍しているid:itchynyさんこと、濱田健さんです。 itchynyさんは、京都大学大学院工学研究科電子工学専攻修了後、はてなに入社。Mackerelチームやはてなブックマークチームでアプリケーションエンジニアとして活躍していただいていました。2021年にサイボウズ株式会社に転職し、Webアプリケーションエンジニアとして、kintoneの基盤チームで開

    サイボウズで活躍中のid:itchynyを訪問 | はてな卒業生訪問企画 [#11] - Hatena Developer Blog
    itchyny
    itchyny 2024/09/20
    インタビューを受けました!motemenさんと久しぶりにお話しできて楽しかった!
  • ITが面白い時代はすでに終わっているし変化も遅くなった - きしだのHatena

    ITはもう面白くなくなってますね。 技術が面白いときには、いろいろ新しいものが出て性能あがったりできることが増えたりします。調べたらどんどん新しいものが出てくるし、新しいものもたくさん作るし、面白い。ですが、IT技術は一通り出そろって、成熟期に入っています。そうすると新しい技術に出会うことも新しいものを作ることも減っていきます。その結果、いままでの変化のあった状況を知っていれば、つまらんってなりますね。 ※2024/8/24 追記 言いたいことをまとめると、IT素振りのネタ探しに苦労するようになったよねってことです。 結局のところITというのは新しいハードをどう動かして社会に実装していくかというものなので、新しいハードが出ないとどうしようもないのです。けれどもだいたい飽和してしまった。 雑にいえば、これまで1980年くらいにBASIC搭載8bitパソコンが普及するとBASICプログラミング

    ITが面白い時代はすでに終わっているし変化も遅くなった - きしだのHatena
    itchyny
    itchyny 2024/08/21
  • 元Google植山 類の“実装力”の源をSakana AI・秋葉拓哉が探る「集団開発のしがらみに、個人開発で殴りこむ」 - エンジニアtype | 転職type

    moldを作ったのは「大学院の単位を取るため」だった 秋葉:植山さんと最初に接点を持ったのは、僕がマウンテンビューのMicrosoft Researchでインターンをしていた時だったと記憶しています。エンジニアならば誰が見ても驚くような開発を成し遂げ続けているので、ぜひ詳しくお話を聞きたいと思い対談のリクエストをさせていただきました。 植山:ありがとうございます。初めてお会いした当時から、秋葉さんはプログラミングコンテストの上位ランカーで実力があって、おまけに話も上手かった。なかなか直接関わる機会はなかったけど、時流に乗ってディープラーニングに着手して活躍しているという話はよく耳にしていました。 秋葉:確かに、植山さんと知り合った頃はまだディープラーニングには手を出していなかったですね。今ではAIへと専門領域を移して久しいので、振り返ると長い時間が経ちました。 今回は、個人の力で優れたプロ

    元Google植山 類の“実装力”の源をSakana AI・秋葉拓哉が探る「集団開発のしがらみに、個人開発で殴りこむ」 - エンジニアtype | 転職type
  • 現代的システム開発概論 2024

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

    現代的システム開発概論 2024
    itchyny
    itchyny 2024/08/10
  • Goで解放したメモリが少しずつ戻ってくる現象 - knqyf263's blog

    情報を発信する人のところに情報が集まることを日々実感しているので、Linuxのメモリ管理に特に詳しいわけではないのですが最近遭遇した問題について自分の理解を書いておきます。ざっと調べても同じことを書いている人を見つけられなかったので、公開には意義があると考えています。識者の方がフィードバックをくださると嬉しいです。 ※ AIの出力をベースに書いているのでいつもと少し文体が違います。 背景 要約 調査 再現の難しさ Goアプリケーションの調査 pprofによる分析 GCログの調査 Linuxの調査 Goランタイムの調査 GoのGCとTHP khugepagedの問題 Goランタイムにおける回避策 回避策の削除 max_ptes_noneのデフォルト値について MADV_NOHUGEPAGEをやめた理由 調査内容まとめ 解決策 検証 C言語 Go言語 まとめ 背景 Go言語で書かれたOSSのア

    Goで解放したメモリが少しずつ戻ってくる現象 - knqyf263's blog
    itchyny
    itchyny 2024/08/08
  • 翻訳記事 -「インフラ基盤部門は本当に必要か」に関する議論 - CyberAgent SRG #ca_srg

    #SRG(Service Reliability Group)は、主に弊社メディアサービスのインフラ周りを横断的にサポートしており、既存サービスの改善や新規立ち上げ、OSS貢献などを行っているグループです。 たまたま中国語のITブログを読んでいた時に、「インフラ基盤部門が要らない」という論点を持つ文章と、それに反論する文章を見かけました。論点の一部には根拠が弱い箇所もありますが、インフラ基盤部門のような部門に所属する者として、中国IT業界のトレンドや課題、そしてインフラ技術者への啓示を感じ取ることができたので、翻訳してみました。

    翻訳記事 -「インフラ基盤部門は本当に必要か」に関する議論 - CyberAgent SRG #ca_srg
  • Go evolves in the wrong direction

    Go programming language is known to be easy to use. Thanks to its well-thought syntax, features and tooling, Go allows writing easy-to-read and maintain programs of arbitrary complexity (see this list at GitHub). Some software engineers call Go “boring” and “outdated”, since it lacks of advanced features from other programming languages, such as monads, option types, LINQ, borrow checkers, zero-co

    itchyny
    itchyny 2024/08/03
  • 2024年版のDockerfileの考え方&書き方 | フューチャー技術ブログ

    最近はお客さんとの勉強会でDockerのドキュメントをつまみいして読むというのをやっていますが、改めて最新版を読んでみて、いろいろ思考が整理されました。2020年の20.10のマルチステージビルドの導入で大きく変わったのですが、それ以前の資料もweb上には多数あり「マルチステージビルドがよくわからない」という人も見かけるので過去の情報のアンラーニングに使っていただけるように改めて整理していきます。 仕事Pythonコンテナをデプロイする人向けのDockerfile (1): オールマイティ編で触れた内容もありますが改めてそちらに含む内容も含めて書き直しています。 エントリーの執筆には@tk0miya氏から多大なフィードバックをいただきました。ありがとうございます。 基的なメンタルモデル現代的な使い方を見ていくために「Dockerを使ってビルドする」というのはどのようなものか考えを整

    2024年版のDockerfileの考え方&書き方 | フューチャー技術ブログ
    itchyny
    itchyny 2024/07/26
  • Linux コンテナの歴史を追うとコンテナの仕組みがわかる / Dai Kichijoji pm

    2024-07-13「大吉祥寺.pm」の発表資料です。 参考となる情報にはPDF中からリンクをしていますが、資料中のリンクは Speaker Deck 上ではクリックできないので PDF をダウンロードしてご覧ください。

    Linux コンテナの歴史を追うとコンテナの仕組みがわかる / Dai Kichijoji pm
  • 『響け!ユーフォニアム3』黒沢ともよに聞いた久美子の3年間① | Febri

    吹奏楽青春アニメ『響け!ユーフォニアム』シリーズのTVアニメ第3期『 響け!ユーフォニアム3』が4月より放送中。高校3年生となり、吹奏楽部部長として悲願の全国金賞を目指す黄前久美子の奮闘を中心に、さまざまなキャラクターたちのドラマが描かれている。残すところ最終話のみとなり、ファンの盛り上がりも最高潮に達しているなか、今回は久美子を演じる黒沢ともよさんのインタビューを前後編でお届け。前編は、キャラクターの成長や関係性の変化を中心に聞いた。 ――最終章となる第3シーズンですが、どんな気持ちで収録を迎えましたか? 黒沢 3年生編の制作が発表されたのは2019年。それからいろいろなことがあっての今回だったので、終わっちゃうんだなという寂しさはありつつも、ここまでたどり着けてよかったという気持ちのほうが強かったですね。自分の気持ちがどうこうよりも、とにかくシンプルにいいものにしたいなと思って収録に臨

    『響け!ユーフォニアム3』黒沢ともよに聞いた久美子の3年間① | Febri