タグ

Programmingに関するardarimのブックマーク (1,001)

  • 初心者が爆速で Claude Code を習得する 10 のステップ

    その②:通知をONにする モデルが強化されるにつれて、長時間の作業を自律的に行えるようになっています。その間、人間がずっと見ている必要はないため、作業が終わったら通知で連絡をもらうように設定しましょう。 個人的に参考になったブログはこちらです。 その③:音声入力を活用する 音声入力なら、タイピングの 3 〜 4 倍の情報量を、背景や意図を含めて自然に伝えられます。入力の負担が減って思考に集中できます。 個人的に参考になった動画はこちらです。 2. CLAUDE.md を作成し、育てる CLAUDE.md とは? CLAUDE.md は、Claude にプロジェクトの背景知識(コンテキスト)を持たせるための設定ファイルです。通常、AI は会話のたびにプロジェクトの構成やルール(コーディング規約など)を忘れてしまうため、毎回説明する必要があります。しかし、プロジェクトのルートディレクトリに C

    初心者が爆速で Claude Code を習得する 10 のステップ
  • 「三項演算子」の名前に値する演算は条件演算子以外にあるか:アセンブリー言語の観点から

    三項演算子 (ternary operator) とは、多くの場合はC系の言語にある <条件> ? <真の場合の式> : <偽の場合の式> の形の式(条件演算子)を指します。3つの式を入力として取る演算子なので三項演算子、というわけです。 しかし、「三項演算子」という普遍的にも思える名前で「条件演算子」という具体的な演算子を指して良いのでしょうか?例えば単に「二項演算子」と言って「減算(マイナス)」を指したら「二項演算子は他に加算、乗算などがあるだろう」と文句を言われそうです。そういう文句が少ないのは、三項演算子と呼べる対象が少ないからなのでしょうか? この記事では、「三項演算子」という名前に値する演算がどの程度あるかを、アセンブリー言語の観点から考えます。 オペランドの数 よくあるRISCアーキテクチャーでは、二項演算の命令は「結果を格納するレジスター」「入力を格納するレジスター1」「入

    「三項演算子」の名前に値する演算は条件演算子以外にあるか:アセンブリー言語の観点から
    ardarim
    ardarim 2025/11/07
    Cの三項演算子はif文の糖衣記法だし、三項の演算子がCには他にないからそう呼ばれてるだけで、条件演算子でない三項演算子もある、と。そりゃそうだ。しかし基本は高級機能だよな(CPU基本命令セットではない)
  • プログラマーのための圏論

    序文 しばらく前から、プログラマーを対象とした圏論に関するを書こうと考えていた。計算機科学者ではなくプログラマー、科学者ではなくエンジニア向けだということに注目してほしい。正気の沙汰ではないし、当に恐ろしい。科学と工学の間に大きなギャップがあるのは否定できないと思う。自分自身がその分断の両側で仕事をしてきたからだ。それでも、物事を説明したいという強い衝動をいつも感じていた。簡潔な説明の達人だったリチャード・ファインマン1を心から尊敬している。自分がファインマンではないことは分かっているが、最善を尽くしたい。まずは、この序文――読者に圏論を学ぶ気を起こさせることを想定したもの――を公開することから始めようと思う。それによって議論を開始しフィードバックを募れることを願っている2。 ここからの数段落をかけて、このはあなたのために書かれたものであり、数学のうちでも特に抽象的な分野を学ぶために

  • 【C#】Nullチェック後にNull参照が発生する - Qiita

    WPF + MVVM パターンでアプリケーションを開発していると、Null チェックを行ったにも関わらず、その直後で Null 参照例外が発生する現象が発生しました。今回は、この問題の原因と解決策について説明します。 問題の発生状況 自作ファイラーの開発中に発生した事例です。ViewModel 内で以下のようなコードを実装していました。 // 問題のあるコード if (SelectedTab?.SelectedItem != null) { // DoubleClickCommandと同じ動作を実行 SelectedTab.DoubleClickCommand?.Execute(SelectedTab.SelectedItem); System.Diagnostics.Debug.WriteLine($"Enterキーで実行: {SelectedTab.SelectedItem.Name}

    【C#】Nullチェック後にNull参照が発生する - Qiita
    ardarim
    ardarim 2025/10/31
    マルチスレッドかなと思ったらマルチスレッドだった
  • レガシーC#コード対比集(昔こう→今こう) - Qiita

    はじめに C#は急速に進化してきた言語です。10年前の「当たり前」は、今では保守性やパフォーマンスの観点から非推奨になっていることもあります。 今回は、レガシーシステムの保守や段階的なリファクタリングに携わる開発者向けに、よくある「昔の書き方」から「現在の推奨」への置き換えパターンを、すぐに実装できるスニペット集としてまとめました。 C#開発の現場に入ると、新規開発でない限り意外と古いコードを見ることが多いと思います。 今まで受け継がれてきたシステムは大量にあり今でも10年以上前のシステムが元気に動いています。 そして開発者も容易に書き方を変えることはしません。プロジェクトととして統一する狙いもあると思います。それでもコードは確実に進化してます。ぜひ覚えておいてほしい「今と昔のコード」を集めてみました。

    レガシーC#コード対比集(昔こう→今こう) - Qiita
  • なぜ、Unityではビルド時にC#⇒MSIL⇒C++⇒マシン語という迂遠な変換をするのか?

    はじめに Unityは2005年以降、PC、モバイル、コンソール、VR/ARといった幅広いプラットフォームに展開できる強みを持ち、世界で最も普及しているゲームエンジンのひとつとなりました。その開発言語としてC#が用いられていますが、この理由に迫ります。さらにUnityは、ビルド時にC#を直接ネイティブ化するのではなく、C# ⇒ MSIL ⇒ C++ ⇒ マシン語という一見遠回りに見えるプロセスを採用しました。これはIL2CPPと呼ばれる仕組みであり、iOSのJIT禁止ポリシーやクロスプラットフォーム展開と深く関わっています。稿では、UnityJavaからC#に至った経緯、C#が「スクリプト」と呼ばれる理由、iOSでのJIT禁止の背景、そしてIL2CPPの合理性を考察します。 なぜ、UnityJavaを採用しなかったのか? Unityの開発初期、候補に挙がっていた言語にはJavaも含ま

    なぜ、Unityではビルド時にC#⇒MSIL⇒C++⇒マシン語という迂遠な変換をするのか?
  • 作って意地でも理解する フォントがレンダリングされるまで

    いきなりですが、2つ質問です。今まさにあなたが読んでいる文字がどうやってレンダリングされているか説明できますか?私はできませんでした。それではあるモノの仕組みを理解するために最も効率の良い方法は何でしょうか?そう、自作することです!それではフォントのパーサーとレンダラーをゼロから作っていきましょう! 目的 小さなTrueTypeレンダラーを自作し、フォントがレンダリングされるまで流れを理解することが目的です。具体的には、Unicodeのフォントを読み込んで、任意の文字列をレンダリングしpngファイルとして書き出すまでを目標とします。実装はほぼプレーンなC++で、ベクトル演算用にglm、png書き出し用にstb_image_writeを使います。コード全体は以下から確認できます。 TrueTypeとは TrueTypeとはAppleが1990年に開発したフォントのフォーマットです。その後Mi

    作って意地でも理解する フォントがレンダリングされるまで
    ardarim
    ardarim 2025/10/17
    TTFは面白いよ。仕様読むとmultilingualやtypographyの勉強になる。ttfdumpでバラして遊んだりしてた。実用的には具体的な対応文字セットが知れたりする(仕事でも使った)あと外字自作したり
  • アヒルの人形に話しかけて問題の解決を図る「ラバーダック・デバッグ」はなぜ有効なのか?

    プログラムのデバッグを行う時、画面に向かって静かに奮闘するのではなく、机の上に置いたゴム製のアヒル人形にコードを1行ずつ説明しながら進める「ラバーダック・デバッグ」という手法が存在します。なぜラバーダック・デバッグは有効なのかについて、シドニー大学のコンピューター科学者であるエリオット・ヴァロイ氏が解説しています。 Stuck on a problem? Talking to a rubber duck might unlock the solution https://theconversation.com/stuck-on-a-problem-talking-to-a-rubber-duck-might-unlock-the-solution-261675 例えば、あなたが購入した家具を自分で組み立てていて、途中で行き詰まってしまったとします。いつまでも完成しない家具を目の前にイライラ

    アヒルの人形に話しかけて問題の解決を図る「ラバーダック・デバッグ」はなぜ有効なのか?
    ardarim
    ardarim 2025/10/13
    対人レビューでも説明しながらあれここ間違ってますねおかしいな、みたいな気づきがあることが多い
  • AI に自分の回答を疑わせる `/criticalthink` コマンドを作ってみた - ABAの日誌

    きっかけ Federico Castagna らの論文「Critical-Questions-of-Thought」(CQoT) を読んだ。要するに、LLM に回答を生成させた後、その回答を批判的に検証させるステップを挟むと精度が上がる、という話だ。 論文では Toulmin の議論モデルに基づいた批判的質問(Critical Questions)を使って、LLM の推論プロセスを検証している。具体的には、以下の 8 つの質問で推論の妥当性をチェックする: 推論は明確な前提から始まっているか? 前提は証拠や事実で裏付けられているか? 前提と結論の間に論理的なつながりがあるか? その論理的つながりは妥当か? 推論は論理的誤謬を避けているか? 結論は前提から論理的に導かれているか? 推論は既存の知識や原則と整合しているか? 推論の結論は妥当で合理的か? これらの質問に対して、AI 自身が Pa

    AI に自分の回答を疑わせる `/criticalthink` コマンドを作ってみた - ABAの日誌
    ardarim
    ardarim 2025/10/09
    既定のチェックリストをAIに適用させるみたいなイメージかな。第三者レビューって感じ
  • どのくらい生成AIに任せているかをあらわす指標 - Mitsuyuki.Shiiba

    fukabori.fmのtwadaさん回、面白いなー分かるなーって思いながら聞いて、今の自分の頭の中を書きだしてみようと思ったので書いておく。 どのくらい生成AIに任せているかをあらわす指標 どのくらい生成AIに任せているかをあらわす指標は、こうかなぁと僕は思っている。 「生成されたコードを自分が読んでいない割合」 どれだけたくさん生成AIにコードを書いてもらっていたとしても、生成されたコードを自分が全部読んで理解している場合は、主導権は自分にある。逆に、生成されたコードを全く読んでいなければ生成AIに主導権がある。 右のほうが生産性は上げやすい AIにどれだけたくさんコードを生成してもらったとしても、全部読んで理解しないといけないなら人間がボトルネックになる。右側にいけばいくほど、生成AIに任せられるので生産性は上げやすい。 ただ、右側にいけばいくほど自分がコードを理解していないし、構造

    どのくらい生成AIに任せているかをあらわす指標 - Mitsuyuki.Shiiba
  • Safetensors のヘッダーを読む

    Safetensors とは Safetensors は HuggingFace が開発している、主にテンソルを安全・高速に読み書きできるファイルフォーマットと、それを扱うためのライブラリです。 提供されている Python ライブラリでは、PyTorch や Tensorflow などとの互換性があるほか、pickle 形式のような任意のコードを実行する機能がなく比較的安全なため、最近の深層学習系のモデルはこの形式で配布されることが多くなりました。 構造 Safetensorsのファイル構造の説明 [1] Safetensors はシンプルな構造をしています。大きく分けて ヘッダーサイズ領域 (8 bytes)、ヘッダー領域 (N bytes)、バッファ領域 (残りの部分) に分かれています (それぞれの領域の公式名称が不明なので、この記事では勝手に呼びやすい名前で呼んでいます)。ヘッダ

    Safetensors のヘッダーを読む
  • 命名設計の基本 - Qiita

    未経験からエンジニアとして転職した筆者の備忘録、また知識の整理のため記事を書きます。 今回は入社してこれまで幾度となくご指摘いただいてきた命名について、アドバイスいただいたこと、を読んで得たことをまとめます。 命名が大切な理由 意図や目的を表現した命名をすることで、コードの理解がスムーズになります。 チームのメンバーはもちろん、数ヶ月後の自分が再度コードを読む時にも可読性が上がります。 この記事を書くにあたりプログラミングを学び始めのころの自分のコードを見てみましたが、以下のNGパターンのオンパレードで読むのが大変でした。。 命名NGパターン 意図がわからない名前は避ける 技術駆動命名 プログラミング用語やコンピューター用語(例: Int, Memory, Flag)に基づいた命名。意図が伝わりにくい 連番命名 例: user1, user2 のように番号で区別。中身の違いが伝わらない。

    ardarim
    ardarim 2025/10/01
    命名方法なんてそれこそ腐る程過去のノウハウがある分野なのでそういうのを読んでみるといいよね
  • 【Python】生成AIがこのコード書いたら気をつけろ! - 事故らないためのチェックリスト - Qiita

    はじめに 生成AIChatGPT、Claude、GitHub Copilotなど)でコードを書く機会が激増している中、開発スピードは劇的に向上していますが、「動くコード」と「安全なコード」は別物です。 特に番環境では、パフォーマンスやセキュリティ、保守性まで考慮する必要があります。 AIが特に書きがちな(または書いたら嫌な)危険パターンを15個 厳選してみてみました。それぞれに「何が危険か」と「修正例」をセットにしています。 【 この記事の対象読者 】 ◇ 生成AIを使ってPythonコードを書いているエンジニアとか ◇「動くけど番に載せて大丈夫?」と不安を感じたことがある人とか ◇ チーム開発でAI生成コードを安全に活用したい人とか とりあえず、「覚えておいたら便利かも!」ってところです。

    【Python】生成AIがこのコード書いたら気をつけろ! - 事故らないためのチェックリスト - Qiita
  • 新たに生まれた専門職。AIが作ったコードのバグをお直しするプログラマー

    新たに生まれた専門職。AIが作ったコードのバグをお直しするプログラマー2025.09.16 17:0022,729 Lucas Ropek - Gizmodo US [原文] ( そうこ ) AIが進化し、普及し始めたことで、いろいろなものが「生成」できるようになりました。 画像、動画、文章はもちろん、デジタル世界の裏を支えるコーディングもAI生成が可能。AIに文章で作りたいものの指示を出し、コードを書いてもらう「Vibeコーディング」が誕生。アイデアさえあれば、1人でもアプリやサービスを生み出せると大きく注目されています。 が、まだまだAI生成コードフル活用は考えが甘かったようです。 AI生成コードをお直しするために人間を雇う企業が増えている傾向にあると、ネタ元の404 Mediaが報じています。 お直し専門職404 Mediaいわく、AI台頭で生まれた新しいプログラミングのジャンルがあ

    新たに生まれた専門職。AIが作ったコードのバグをお直しするプログラマー
    ardarim
    ardarim 2025/09/16
    GANみたいに別視点でレビュー指摘するAIを組ませるとか工夫できないんだろうか
  • Intelが開発したフォント「Intel One Mono」、目が悪くても読みやすいコーディング向けフォント/見分けにくい「I・i」などはやや誇張ぎみ、商用利用や改変、組み込みなども可能【レビュー】

    Intelが開発したフォント「Intel One Mono」、目が悪くても読みやすいコーディング向けフォント/見分けにくい「I・i」などはやや誇張ぎみ、商用利用や改変、組み込みなども可能【レビュー】
  • ゲームを作っていて、先手か後手かをランダムに決定するようにしたら、なぜか何度試しても後手に… 1時間ほど調べてみて分かったが、単に10回連続後手を引いただけだった「ランダムって難しい」

    くいなちゃん @kuina_ch 今ゲームを作っていて、先手か後手かをランダムに決定するようにしたのですが、なぜか何度試しても後手になるので、1時間ほど原因を探してようやく分かりました。 単に10回連続、後手を引いたようです。 11回目に先手になりました…🥲 2025-09-08 18:17:03

    ゲームを作っていて、先手か後手かをランダムに決定するようにしたら、なぜか何度試しても後手に… 1時間ほど調べてみて分かったが、単に10回連続後手を引いただけだった「ランダムって難しい」
  • 仕組みから理解するGit

    📚 書について【無料公開中】 Gitの内部の仕組みを徹底的に丁寧に解説するです。 「Gitはいかにバージョンを管理しているのか?」 「コミットはスナップショットと聞いたことがあるものの、どういう意味?」 「操作時にエラー表示をネットの記事を参考に対応しているけれど、実はよく分かっていない...」 といった疑問をすべて解決する基礎力を身につけることができます。 Gitの仕組みを理解することで、普段使いのツールとしても、より効果的に利用できるようになるほか、データ構造やアルゴリズムの学習用途としても楽しめるような構成になっています。

    仕組みから理解するGit
  • 同じ5行のコードが全く違って見える12の瞬間、なぜ私たちは学ぶのか?

    最近、ふとした気づきがありました。 それは、「同じものを見ていても、過去と現在の自分では見えている世界がまったく違っている」ということです。 みなさんには、このコードからどんな世界が見えますか? async function getUserName(userId) { const response = await fetch(`https://api.example.com/users/${userId}`); const user = await response.json(); return user.name; } はじめに こんにちは、株式会社ココナラ在籍のKです。 記事では、冒頭の5行のコードを通して、私たちが学ぶ理由について考えてみたいと思います。 TL;DR 同じコードを見ても、人によって見えるものが違っている 学習を重ねることで、それまで見えなかった世界が見えてくる 学習

    同じ5行のコードが全く違って見える12の瞬間、なぜ私たちは学ぶのか?
  • 生成AIの成果物に責任を持ってくれ|qsona

    プログラマーの世界では昔から「お前がコピペしたコードはお前のコード」というならわしがある(多分)。つまり、たとえばコードレビューで他の人から指摘が入ったときに、「隣にある別のコードをコピペして作ったからそうなっている」というのは言い訳にならないということだ。ペーストした瞬間からそれは自分が責任をもつべきで、そのためにはそのコードを自分で理解して説明できる必要がある。ジュニアプログラマーはこういった意識が薄いことが多いが、レビューする側のプログラマーとしては、ジュニアプログラマーが責任を持った振る舞いをしてくれないと非常に疲弊するので、こういう哲学は早めに教え込むことが多い。 これに似た話として、最近、プログラミング以外の事例も含めて、生成AIに作らせたものを隅々まで自分で理解しない・説明できない (つまり責任を持てていない) ままそれを成果物として他人に見せるケースがあまりに多すぎるように

    生成AIの成果物に責任を持ってくれ|qsona
  • LLMは新しい抽象化をもたらす - Martin Fowler's Bliki (ja)

    この分野の声が大きい人たちと同じように、私も生成AIシステムがソフトウェア開発にどのような役割を果たすのかについて大きな関心を持っています。LLM(大規模言語モデル)の登場は、アセンブラから最初の高水準プログラミング言語への移行と同じくらい、ソフトウェア開発を大きく変えると思います。その後に開発された言語やフレームワークは、抽象化のレベルや生産性を向上させましたが、プログラミングの質に同じレベルのインパクトを与えるものではありませんでした。しかし、LLMには最初の移行と同程度のインパクトがあると思います。しかも、単に抽象化のレベルを上げるだけでなく、「非決定的なツールでプログラミングするとはどういうことか」という問いを私たちに投げかけています。 高水準言語は、新しいレベルの抽象化をもたらしました。アセンブラを使うときには、特定のマシンの命令セットを考える必要がありました。単純な操作でさえ

    ardarim
    ardarim 2025/07/09
    何か言ってるようで何も言ってなくない?