nashcftのブックマーク (1,803)

  • 書評:良いコードの道しるべ - Software Transactional Memo

    TL;DR 個人的ITエンジニア大賞2025として推せる 多分値オブジェクトの話だと思うけど、SNS上でレスバに明け暮れていたせいかマイナビ出版から「良いコードの道しるべ」という技術書を恵贈いただいた。 正直なところ著者のことを全く知らないのでそんなに高い期待値で読んでいなかったのだけれど、読むほどにこれはいいだと感じたので推せるポイントを列挙していく。 常識がちゃんと書いてある KISS, YAGNI, DRYといった、プログラマであれば知っていて当然の原則が体系立って例示付きで日語で書いてある。ジュニアクラスを卒業する前には身につけていて欲しい常識がこうも凝縮して書いてあるは珍しいのではないかと思う。(SOLID原則については言及すらしていない点も個人的にはやや好感である) この領域にはコードコンプリートとかリーダブルコードといった良著はいくつも挙げられるが、このは実例と説明

    書評:良いコードの道しるべ - Software Transactional Memo
    nashcft
    nashcft 2025/07/13
  • 『分析美学入門』以降の議論の紹介 - 昆虫亀

    2013年にロバート・ステッカー『分析美学入門』という翻訳書を出した。 分析美学入門 作者:ロバート・ステッカー,森功次 勁草書房 Amazon ありがたいことにこの訳書はその後いろいろな大学でテキスト採用され、日の学部教育では今では美学の基書としての位置づけを与えられるようになっている(まぁ日語で読める類書がまだないからそうなるのであって、来はこれに代わるもう少し入門的なテキストを誰かが書くべきなのだが)。 『分析美学入門』は2010年刊行の2nd editionを底にしている。原著の刊行からはもうもう15年が経った。各トピックの議論はその後もいろいろと発展してきているので、『分析美学入門』の議論はすこし古くさくなっているところがちらほらある(そして2nd editionでも多くの箇所は2005年刊行の1st editionの記述のままになっているので、その意味でも議論が少し古

    『分析美学入門』以降の議論の紹介 - 昆虫亀
    nashcft
    nashcft 2025/06/15
  • ソフトウェア開発現代史:製造業とソフトウェアは本当に共存できていたのか?品質とスピードを問い直す

    【ヤマハ発動機×SUBARU×三菱電機】今こそ考えたい「開発プロセスの品質視点」登壇資料です。 https://techplay.jp/event/967093

    ソフトウェア開発現代史:製造業とソフトウェアは本当に共存できていたのか?品質とスピードを問い直す
    nashcft
    nashcft 2025/02/12
  • 自分のOSSのマルウェア入り偽物を作られたので通報した - 酒日記 はてな支店

    物騒な世の中です。皆様お気をつけください。 3行でまとめ 自作の OSS、fujiwara/apprun-cli のマルウェア入り偽物を作られて GitHub で公開されました 偽物には大量の新規アカウントがスターを付けていたため、検索でオリジナルのものより上位に表示される状態でした GitHub に通報したところ、偽物を作ったアカウントはbanされたようです 経緯 2024年末に、さくらのAppRun用デプロイツール apprun-cli という OSS を公開しました。 github.com 2025年2月10日 12時過ぎのこと、謎の人物が X で apprun-cli を宣伝しているのを見つけました。 どう見ても自分の物と同じ(コピー)なのですが、妙にスターが多い。リポジトリをのぞいてみると、fork ではなくコードがすべて commit 履歴を引き継がない状態でコピーされ、スター

    自分のOSSのマルウェア入り偽物を作られたので通報した - 酒日記 はてな支店
    nashcft
    nashcft 2025/02/11
  • MySQLのロックに起因するブロックタイムアウト撃退記 - inSmartBank

    こんにちは。スマートバンクのサーバーサイドエンジニアをやっておりますid:moznionです。 すっかり秋めいてきましたね。秋といえばMySQL*1、ということで今回は先日解消した「MySQLのロックに起因するブロックタイムアウト」のトラブルシューティングついて記していきたいと思います。 事の発端 ある時を境にSentryに ActiveRecord::LockWaitTimeout というエラーがしばしば報告されるようになっていました。 SentryにActiveRecord::LockWaitTimeoutが上がってきている様子 Mysql2::Error::TimeoutError: Lock wait timeout exceeded という文言から、MySQL上でロックを取っている他のクエリにブロックされ、そのブロックが長時間に渡ったため自クエリがタイムアウトしてabortしてし

    MySQLのロックに起因するブロックタイムアウト撃退記 - inSmartBank
    nashcft
    nashcft 2024/10/03
  • ジャイアントパンダに注意 - Next.js のビルド改善 (株式会社GiXo様)

    最近になって Frontend Ops の傭兵として活動を始めました。 Frontend Ops 実践のモデルケースとして、 株式会社GiXo様で Next.js 仕事に取り組ませいただきました。今回、その内容を公開する許可を頂けたので、事例として公開させていただきます。 依頼主 株式会社GiXo様 以下、敬称略 相談内容 フロントエンド関連のリポジトリで、Next.js のビルドが遅くなってしまった。 重いことに起因して Vercel CI で OOM で確率的に落ちるようになった。CIが信用できなくなり、とりあえず再ビルドするクセがついてしまって、生産性が落ちている。 モノレポ内にとくに重いアプリケーションが一つあり、これを調査・解決してほしい。 仮ゴール: VercelCI 上のビルド時間を半分OOM が発生しないようにしたい 調査フェーズ リポジトリの閲覧権を頂き、プロジェクト構成

    ジャイアントパンダに注意 - Next.js のビルド改善 (株式会社GiXo様)
    nashcft
    nashcft 2024/09/02
  • Web標準のバックエンドアプリのテスト

    ここで言う「Web標準のバックエンドアプリ」とはCloudflare Workers、DenoBunなどのWeb標準をサポートするランタイム上で動くWebアプリです。もしくは、Node.jsでもWeb標準のAPIをサポートしているので、これから紹介するアプリとテストコード自体はNode.js上も動きます。 これらのテストを書く、実行するのは実にシンプルで、拍子抜けしてしまうほどです。ですが、現在、20,000行あるHonoのテストコードは、これらのやり方と全く同じ方法を取っています。注目すべき点は、実際のサーバーを立ち上げることがなく、抽象化されたリクエストとレスポンスのやり取りを試験するだけで、品質が保たれる点です。Honoのテストでは、ランタイムによっては一部実サーバーを立ち上げますが、コアの20,000行ではサーバーを立ち上げていません。この抽象化はPythonのWSGI、Ruby

    Web標準のバックエンドアプリのテスト
    nashcft
    nashcft 2024/08/29
  • 技術選定の失敗 2年間を振り返る TypeScript,Hono,Nest.js,React,GraphQL

    技術選定の失敗 2年間を振り返る TypeScript,Hono,Nest.js,React,GraphQL はじめに 新たに書きました。 MySQLを使っても会社は潰れない 久々に記事を書いたのでどうぞお手柔らかに... 私が過去2年間で行った技術選定の成功と失敗を振り返り、その学びを共有したいと思います。 文才無いので淡々と箇条書きでいきます Twitterエンジニア垢作りました。エンジニアのお友達がいません。 @uncode_jp 注意 意見を押し付けるものではありません。ただ建設的な議論は大事だと思う。 自分の意見は明確に、歯切れのよい表現を意識している。人それぞれだよねみたいな感じに逃げたくない。技術選定に結論はある(過激)。 ただし技術選定にはコンテキストがあり、例えばプロダクトのフェーズや組織の事情によって当然結論は変わる可能性がある。 OSSの開発者さん達は偉大ですごい。あ

    技術選定の失敗 2年間を振り返る TypeScript,Hono,Nest.js,React,GraphQL
    nashcft
    nashcft 2024/08/26
  • 現代的システム開発概論 2024

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

    現代的システム開発概論 2024
    nashcft
    nashcft 2024/08/10
  • 『Kotlin in Action Second Edition』を読んだ - Don't Repeat Yourself

    しばらくは忙しく過ごしていてなかなか技術書を読む余裕はありませんでしたが、ようやく一冊読めたのでメモを残しておきたいと思います。『Kotlin in Action』というの第2版です。未邦訳らしかったので、原著を読みました。 なお、気になったところだけつまんで読んだので、すべての章のメモが記されているわけではありません。ほとんどの章はScalaの頃の経験で概念としては知っている状態だったので、あまり印象に残りませんでした。後半戦は比較的Kotlin固有の概念が多くそちらは印象に残りました。 Kotlin in Action, Second Edition (English Edition) 作者:Aigner, Sebastian,Elizarov, Roman,Isakova, Svetlana,Jemerov, DmitryManningAmazon 大前提ですが、Android側の

    『Kotlin in Action Second Edition』を読んだ - Don't Repeat Yourself
    nashcft
    nashcft 2024/08/01
  • 12年前の『型システム入門』翻訳の思い出話

    @ カワるガワるTAPLカタるヨる https://taplts.connpass.com/event/320294/

    12年前の『型システム入門』翻訳の思い出話
    nashcft
    nashcft 2024/07/25
  • 「百年の孤独」の後、逆張りしたい奴が読むべきラテンアメリカ文学6選

    「百年の孤独」読んだ後にこれを読むべきってネット記事が書かれ始めていて面白い。こういうの好きで、色々なジャンルでこの類の記事を読んで探求してる。だけど時々「いや確かに自分は素人なんすけど、もっと段階踏んだ後に読むべき、玄人向けのやつも読んで背伸びしたいんすよ!」と思う時がある。多分、そういうやつここにもいるだろ?そういう同類に捧ぐ。 エドゥムンド・パス・ソルダン/ 服部綾乃&石川隆介「チューリングの妄想」(ボリビア) 今、ボリビア、クーデター未遂があったとかで混乱してるらしいけど、そんな国を描いたテクノスリラー小説がこれ。“チューリング”ってある通り暗号やらインターネットやらサイバー犯罪やら色々先端技術出てきて、いわゆる魔術的リアリズムとかそういうの全然ない。つーか作者自身、ラテンアメリカ文学といえば魔術的リアリズムとかざけんなや!とか思ってこれ書いたとか書いてないとか。クソ分厚いけどオモ

    「百年の孤独」の後、逆張りしたい奴が読むべきラテンアメリカ文学6選
    nashcft
    nashcft 2024/07/04
  • Android: Photo Picker 近況 - nashcft's blog

    nashcft
    nashcft 2024/06/24
  • Ruby知識ゼロから初参加したRubyKaigi 2024レポート - 共沸

    TL;DR 楽しかった! 編 おはようございます。手札事故(twitter:@hand_accident)と申します。 Ruby知識ゼロから初参加したRubyKaigi 2024レポート、略してルゼロ*1という感じでやっていきたいと思います。 < Day 0 自己紹介でもしとくか。生まれ育った愛媛県松山市*2に帰って非IT企業でパソコン係をやっている過程で、すべてが個人開発の労働環境で趣味全ブッパ技術選定をした結果HaskellとNimを書くようになりました。すこしSvelteもします。 Rubyは名前を聞いたことがあるしちょっとニッチなPythonライブラリ探そうとしたら時々検索にgemが引っかかってそちらにはあるのねえという感想を抱くなどしていましたが何の因果か触ってみるには至らず、沖縄に来て初めてコードを見たまであります。 愛媛県松山市で趣味音楽ゲーム(DDR)に高じていたところ

    Ruby知識ゼロから初参加したRubyKaigi 2024レポート - 共沸
    nashcft
    nashcft 2024/06/03
  • 【翻訳】ストーリーポイントを使うのをやめよう - PoohSunny's blog

    はじめに このエントリーは、Industrial LogicのCEOで、モダンアジャイルの提唱者としても知られるJoshua Kerievskyの「Stop Using Story Points」というブログポストを許可をえて*1翻訳したものです。2012年と古いものですが、今でも有益な内容だと考えています。原文はこちらになります。 www.industriallogic.com 誤訳等あれば優しく指摘していただけるととても助かりますし喜びます。 ユーザーストーリーを使うのをやめよう ハンバーガー、ポテトそしてコーラがファーストフードのシンボルであるように、スプリント、朝会そしてストーリーポイントは、アジャイルの方法論のシンボルになりました。 アジャイルハッピーセットの準備はできていますか? おそらくNoでしょう。 ファーストフード研究者のように、我々はアジャイルハッピーセットに、アジリテ

    nashcft
    nashcft 2024/05/30
  • Kotlinのスマートキャスト - Don't Repeat Yourself

    最近はKotlinエンジニアをしています。Scalaを5年ほど書いていたので、Kotlinの文法それ自体はScalaの知識でだいたい追いつくことができました。一方で、使えたら便利だと思う機能としてスマートキャストという機能に出会いました。Kotlinには言語仕様書があり、それを読み解くといくつかおもしろいことがわかったので、仕様書を読んだ内容を簡単にまとめておきたいと思います。 スマートキャストとは何か Kotlinを書いていると、ときどき次のようなコードに出会します。たとえばNullableな型に対してnullチェックを挟むと、その処理以降の型はnullを挟まない型として解釈されるというものです。下記のサンプルコードに示すように、nullであるチェックを走らせる前のコード中で推論される型と、nullであるチェック後に推論される型が変わる(実質的に型の「キャスト」が起こっている)ことがわか

    Kotlinのスマートキャスト - Don't Repeat Yourself
    nashcft
    nashcft 2024/05/19
  • 令和時代の API 実装のベースプラクティスと CSRF 対策 | blog.jxck.io

    Intro CSRF という古の攻撃がある。この攻撃を「古(いにしえ)」のものにすることができたプラットフォームの進化の背景を、「Cookie が SameSite Lax by Default になったからだ」という解説を見ることがある。 確かに、現実的にそれによって攻撃の成立は難しくなり、救われているサービスもある。しかし、それはプラットフォームが用意した対策の質から言うと、解釈が少しずれていると言えるだろう。 今回は、「CSRF がどうして成立していたのか」を振り返ることで、当にプラットフォームに足りていなかったものと、それを補っていった経緯、当にすべき対策は何であるかを解説していく。 結果として見えてくるのは、今サービスを実装する上での「ベース」(not ベスト)となるプラクティスだと筆者は考えている。 CSRF 成立の条件 例えば、攻撃者が用意した attack.examp

    令和時代の API 実装のベースプラクティスと CSRF 対策 | blog.jxck.io
    nashcft
    nashcft 2024/05/04
  • flutter_secure_storageを読む

    Flutterでデータをセキュアに保存しようとすると、flutter_secure_storageを使うことになります。 flutter_secure_storageは「iOSではKeychain、AndroidではKeyStoreを使ってデータを保存してくれるライブラリ」と説明されることが多いのではないのでしょうか。チラッとライブラリのコードを見てみたところ、読みこなせない量ではなさそうだったので、AndroidとiOS、そしてWebでどのようにデータを保存しているのかを確認してみました。 記事執筆時点でのflutter_secure_storageのバージョンは、9.0.0です。 Android Androidの場合、EncryptedSharedPreferencesを使ってデータを保存する方法と、SharedPreferencesを使ってデータを保存する方法があります。 Encry

    flutter_secure_storageを読む
    nashcft
    nashcft 2024/04/13
  • MoonBit が WebAssembly 時代の理想(の原型)だった

    最近 moonbit という言語を知ったのですが、これが調べれば調べるほど好きになる言語だったので、紹介させてください。 文法的には GC 付きの Rust で、 WebAssembly にコンパイルされます。とくに CDN Edge Worker 上での実行を想定しているようです。もう好き。 注意: まだ若い言語なので、これから言語仕様がガンガン変わっていくと思われます。あくまで現時点での情報です。 tl;dr Pros だいたい GC あり Rust と捉えていい 文法面のキャッチアップが容易 ライフタイムの難しさを考えなくていい すでに vscode 拡張やパッケージマネージャ等のエコシステムが整っている Cons まだ安定していない / しばらくはソースコードが公開されない 現時点では学習リソースやパッケージ数が足りず、書き手の腕力が求められる はじめに: JS/TS/Rust

    MoonBit が WebAssembly 時代の理想(の原型)だった
    nashcft
    nashcft 2024/04/09
  • Android 15 で edge-to-edge が強制されるかもという話のメモ - nashcft's blog

    何のこと? どこだったかで Android 15 になったら edge-to-edge 強制になるかもって話を聞いたがこれのことか / Android 15 might force more apps to take up 100% of your screen https://t.co/3SPJRg3UVb— nash (@nashcft) March 29, 2024 www.androidauthority.com この記事の途中に実装に関する言及があった: [...], while I was digging through Android 14 QPR2 Beta 3, I discovered a new app compatibility change named EDGE_TO_EDGE_BY_DEFAULT with this description: “make app

    Android 15 で edge-to-edge が強制されるかもという話のメモ - nashcft's blog
    nashcft
    nashcft 2024/04/07