タグ

programmingに関するR2Mのブックマーク (137)

  • 色々なことをClineにやらせてみた - karaage. [からあげ]

    AIエージェント 最近、LLMエージェントのイベントにゲストで登壇しましたが、流行りのAIエージェントに私も注目しています。 特に、最近よく使っているのがCline(Roo Code)というAIコーディングツールです。Clineの概要や、環境の構築方法・使い方に関しては以下記事にまとめました。 Clineは、もちろんコーディングに使っているのですが、ClineだとAIがVS Codeのターミナルを通じて、好きにコマンドを実行することができるので、実はコーディングだけじゃなくて、色々なことが出来て面白いです。 この記事では、Clineでコーディング含めて色々やらせてみた内容を簡単に紹介します。 コーディング タワーディフェンスゲームとか、一瞬で作ってデプロイしてくれます。 あとは、最近音楽ソフトもつくってYouTube配信とかもしています。 karaage.hatenadiary.jp マリ

    色々なことをClineにやらせてみた - karaage. [からあげ]
  • AIコーディングのプラクティス

    ・Claude Sonnet 3.7を使え ・Project Rules(.cursor/rules)を使え ・ビルド、lint、テストなどで高速にフィードバックさせろ ・1セッションあたりで依頼することはできるだけ少なくしろ ・よく使うコマンドやライブラリはチートシート作れ Yamada 補足 2025/03/06現在 Roo-Code は .cursor/rules を自動で参照しない。.clinerules, .cursorrules, .windsurfrules は自動で見ておりすべてを結合してコンテキストに入れる。Roo-Codeを使う人は .cursorrules を設定しておくのがよい。

    AIコーディングのプラクティス
  • C++創始者Stroustrup氏、メモリ安全性向上へ緊急行動を呼びかけ - イノベトピア

    2025年3月2日、C++言語の創始者Bjarne Stroustrup氏が、C++言語を「深刻な攻撃」から守るため、C++コミュニティに支援を呼びかけた。 背景には、過去数年間でサイバーセキュリティ機関や技術専門家がC/C++のメモリ安全性の欠点を指摘し、RustGo、C#などの代替言語の使用を推奨してきたことがある。 2024年10月、米国サイバーセキュリティ・インフラストラクチャセキュリティ庁(CISA)は、2026年1月1日までにメモリ安全でない言語を使用している製品のメーカーに対し、メモリ安全性のロードマップ作成か、メモリ安全な言語への移行を求めるガイダンスを発表した。 Stroustrup氏は2025年2月7日に「C++標準委員会(WG21)へのノート」を発表し、Profilesと呼ばれるメモリ安全性フレームワークを提案した。 一方、TrapCプロジェクトを主導するRobin

  • Cursor Directory

    TypeScript19Python11React11Next.js10PHP7TailwindCSS5Laravel5C#4JavaScript4Game Development4Expo4React Native4Tailwind4Vite4Supabase4Rust3Web Development3Flutter3API3Meta-Prompt3SvelteKit3SwiftUI3Swift3WordPress3Angular2Blockchain2html2Unity2FastAPI2GraphQL2Alpine.js2Accessibility2ionic2cordova2angular2Java2Vue.js2Zod2Zustand2NestJs2Node2NuxtJS2Vue2Function2Svelte2Terraform2Vivado2FPGA2Node.js2AL1B

    Cursor Directory
  • 開放閉鎖原則(open-closed-principle)ってもはや意味ない - きしだのHatena

    SOLID原則というのがあるのだけど、原則といつつ やりすぎに注意なみたいなことを言われ、自分で塩梅を探らないといけないなら全然原則じゃないやんということであまり好きではないのだけど、その中でもここではOにあてはまる開放閉鎖原則って意味ないよねって話を。 開放閉鎖原則の原典はメイヤーの「オブジェクト指向入門」で、第2版には次のような記述があります。(初版も書いてることはだいたい同じで、2版のほうが整理されて記述も多くなってます) モジュールは開いていると同時に閉じているべきである ただ、このメイヤーの文脈でいうようなモジュールの拡張ってやらないよねと。 ここでメイヤーの文脈での拡張というのは、モジュール自体に手をいれずに、機能の追加や変更ができるというものです。継承使っていい感じに機能追加ができる設計が「拡張に開かれている」ということです。 でもまあ、そんなライブラリの拡張をやらないですよ

    開放閉鎖原則(open-closed-principle)ってもはや意味ない - きしだのHatena
  • GitHub Copilot:エージェントの覚醒

    Author Thomas Dohmke GitHub Copilotの新機能を発表:VS Code向けのエージェントモードを導入、Copilot Editsの一般提供を開始、SWEエージェントの初公開 2021年にGitHub Copilotを発表した際、私たちの目標は明確でした。それは、AIペアプログラマーがより良いコードを書く手助けとなり、開発者の生活をより快適にすることでした。GitHub Copilotの名前には、人工知能AI)は開発者に取って代わるものではないという私たちの信念が反映されています。そしてAIは常に開発者の味方で、優秀な副操縦士のように、一人で操縦することもできます。例えば、プルリクエストのフィードバック、セキュリティ脆弱性の自動修正、課題の実装方法に関するブレインストーミングをしたりすることができます。 今日、私たちはGitHub Copilotをさらに強化、

    GitHub Copilot:エージェントの覚醒
  • Foreign function interface - Wikipedia

    Foreign function interface(フォーリン・ファンクション・インターフェイス、FFI)とは、あるプログラミング言語から他のプログラミング言語で定義された関数などを利用するための機構。主に高水準言語からC/C++などの関数やメソッドを呼び出し、OS固有の機能などを利用するために使用されることが多い。 FFIという用語はCommon Lispにおける仕様に由来し[1]、Haskellでも同様にFFIという用語が使われている[2]。Adaなどでは言語間バインディング(または単にバインディング, language binding)と呼ばれている[3]。 FFIという用語自体に「関数(Function)」という言葉が含まれているが、多くのFFIでは単に他言語で書かれた関数が呼び出せるだけではなく、オブジェクトのメソッドを呼び出したり、その返り値を取得し、データ型やクラスを言語間

  • Cline+ローカル版DeepSeek R1でAIコーディングを使い放題にする(高スペックマシン向け)|しぴちゃん

    しぴぴぴ! Vtuberのしぴちゃん (https://www.youtube.com/@CP-chan) です。 配信ではゲームの話しかしてませんが、今回はAIに関する連載ということでローカル環境(手元のマシン)で動かせるAIの話をしていきます。 第一弾 DeepSeek R1をほぼ準備なしからローカルGPUで動かす 第二弾 記事 Cline+ローカル版DeepSeek R1でAIコーディングを使い放題にする(高スペックマシン向け) 第三弾 GPUなしでも動く!ローカルLLMとllama.vscodeでコード補完 今回は連載の第二弾です。 LLMをローカルにインストールする大きなメリットとして、API制限や従量課金から解放されてLLMが「使い放題」になるという点があります。 DeepSeekは一世代前のV3ならWebで使ってもそんなに高くないのですが (https://api-docs

    Cline+ローカル版DeepSeek R1でAIコーディングを使い放題にする(高スペックマシン向け)|しぴちゃん
  • DIすると何がいいんだっけ

    はじめに こんにちは、majimaccho です。 読者の皆さんは最近、DI(Dependency Injection:依存の注入)してますでしょうか。 DI は素晴らしい仕組みである一方で全く DI しない Ruby on Rails のようなフレームワークが支配的な時代もありました。 それでも DI は今でも有用な考え方として残っている中で、DI にどう向き合っていけばいいのでしょうか。自分なりに考えをまとめるために調べてみたので、同じような疑問を持っている方に参考になれば幸いです。 TL;DR 単純にコード量が増加することに加え、DI の仕組み自体が複雑さを内包しているので開発生産性が低くなることがあります。そのため、DI は言語によっては局所的かつ限定的に利用する方が良い場合があります。 いくつかの工夫によって DI が持つメリットを享受しつつ、不要な複雑さを排除して、シンプルかつ

    DIすると何がいいんだっけ
  • コーディングAI課金するならCodyが断トツ良い話

    概要 開発者向けの AI ツールは数多くありますが、その中で「Cody」は 無名ながらも知る人ぞ知る優れたプロダクトです。私が普段いるAI技術者コミュニティでは密かに絶大な支持を集めていますが、SNSなどでの一般的な知名度はほとんどないため、ここで紹介します。 Cody は無料プランが圧倒的に強い他、課金プランも、GitHub Copilot、Cursor、ChatGPT と比較して機能性で大きく抜きん出ています。私はすでに半年課金愛用していて、おそらく来年も愛用するでしょう。 Cody とはなんぞや Cody くんは、VSCode や、JetBrains IDEs、Neovim、Eclipseなどのコードエディタの拡張機能として使えるコーディング補助 AI ツールです。 他の生成 AI コードツールと同様に、AI コード補完とAIチャットがあります。 なぜ Cody がおススメなのか C

    コーディングAI課金するならCodyが断トツ良い話
  • ウエハースケールエンジン向けSimulated Annealingを複数タイルによる並列化で実装しました - Fixstars Tech Blog /proc/cpuinfo

    このブログは、株式会社フィックスターズのエンジニアが、あらゆるテーマについて自由に書いているブログです。 皆さんこんにちは! 記事では、Cerebras Wafer Scale Engine (WSE)にSimulated Annealing(SA)を並列分散で実装する方法を紹介します。 記事の内容はこれらの記事の続きとなります。 ウエハースケール計算エンジンWSE-2においてSimulated-Annealingを実装しました ウエハースケールエンジンにSimulated Annealingを分散並列実装しCS-2実機で動作確認しました 簡単なおさらい Cerebras ウエハースケールエンジンとは Cerebras ウエハースケールエンジンとは、Cerebras Systems社が開発したウエハ一枚を一つのチップとして使い切るプロセッサです。 その巨大さとデータフローアーキテクチャ

    ウエハースケールエンジン向けSimulated Annealingを複数タイルによる並列化で実装しました - Fixstars Tech Blog /proc/cpuinfo
  • Unit of Workパターンで永続化とトランザクションを制御する

    PHPカンファレンス沖縄2023 Track B での発表資料です。

    Unit of Workパターンで永続化とトランザクションを制御する
  • 「YAMLの本来の使い方」を仕様から読み取ってみる | Wantedly Engineer Blog

    YAMLは「便利なJSON」として使われることが多い一方、その複雑性から落とし穴も多く、しばしば批判の対象になります。 なぜYAMLはそこまで複雑なのでしょうか? その背景のひとつは、来のYAMLがJSONとは大きく異なる目的意識で作られているからです。 稿ではYAML specに従う形でYAMLのコンセプトを解説することを目指します。残念ながら、ここに書かれているYAMLの思想は実際には実用されているとは言い難いですし、これらの背景を理解しても「YAMLは複雑だ」という事実がひっくり返ることはないでしょう。それでも、YAMLの複雑さの源泉を体系的に理解し、YAMLとほどほどの距離感で付き合う助けにはなるのではないかと思います。 この記事ではこういう話をしますYAMLはJSONとは独立に、異なる目的で生まれた野心的な仕様であるアンカーやタグなどの強力な構文は、これらの目的を満たすために

    「YAMLの本来の使い方」を仕様から読み取ってみる | Wantedly Engineer Blog
  • 徐々に高度になるリングバッファの話 - Software Transactional Memo

    リングバッファのイメージ図 1. リングバッファとは何か 機能的にはFirst In First Out (FIFO)とも呼ばれるキューの一種であるが、リング状にバッファを置いてそれの中でReadとWriteのインデックスがグルグルと回る構造をとる事によって容量に上限ができることと引き換えに高速な読み書き速度を得たものである。キューを単に実装するだけなら山ほど方法があって線形リストを使ってもいいしスタックを2つ使っても原理的には可能だ。その中でもリングバッファを用いた方法の利点はひとえに性能の高さでありメモリ確保などを行わないお陰でシステム系の様々な場所で使われている。 これの実装自体は情報系の大学生の演習レベルの難度であるが少し奥が深い。まずリングバッファのスタンダードなインタフェースと実装は以下のようなものである。 class RingBuffer { public: explicit

    徐々に高度になるリングバッファの話 - Software Transactional Memo
  • 最近 Fitbit つけて散歩してるので CircleCI + Pixela で見えるようにしてみた - Mitsuyuki.Shiiba

    歩数で草を生やしてみたのだー。これで散歩の楽しみが増えたなー やってること やってることはシンプルで、こう↓ FitbitAPI で歩数を取得 Pixela に記録 というスクリプトをつくって CircleCI で定期的に実行 Fitbit? 最近 Fitbit Sense というスマートウォッチをつけて散歩してる www.fitbit.com 会社の福利厚生で健康のための補助があるので、それを利用して手に入れたのだ。散歩やジョギングをしたら勝手に記録されてるので便利。睡眠のログも取られてるので面白い Pixela? Pixela は日々の活動を記録して見えるようにしてくれる API サービス。いちばん最初に貼った画像みたいに GitHub の草を生やすやつみたいにしてくれる。操作が全部 API 経由なのも楽しい pixe.la せっかく散歩してるから せっかく散歩してるから Fit

  • コンパイラが作ったバイナリをつなぎ合わせるプログラム 「lld」の作者が語る、リンカの仕組み

    Kernel/VM探検隊はカーネルや仮想マシンなどを代表とした、低レイヤーな話題でワイワイ盛り上がるマニアックな勉強会です。植山氏は、制作中のリンカである「mold」について発表しました。全2回。前半は、リンカの概要について話しました。 LLVMのリンカ「lld」オリジナルの作者 植山類氏:植山類です。今僕が作っているmoldというリンカについて発表します。 今回の発表の概要です。リンカが何かを知っている人はそんなにたくさんいないと思うので、まず説明します。次に、「mold」のポイントは速いことなのですが、速いと何がうれしいのかを説明します。そのあと、どれくらい速いのかを説明した上で、どう実現されているのか、概要を紹介します。詳細になると何時間あっても終わらないので、かなりハイレベルな話をします。 自己紹介のスライドを入れていませんが、僕はリンカを何度か作ったことがあって、LLVMのlld

    コンパイラが作ったバイナリをつなぎ合わせるプログラム 「lld」の作者が語る、リンカの仕組み
    R2M
    R2M 2022/01/06
    「僕はリンカを何度か作ったことがあって」わお
  • 第9章 速習yacc

    概要 パーサとスキャナ プログラム言語のパーサの書きかたは昔からしつこく研究されてきており、 かなりしっかりした定石がある。よほど変な(または曖昧な)文法でない 限り、定石にのっていけば解決できるものだ。 まず最底辺には文字列を単語(トークンとも言う)の列に切り出す部 分がある。これをスキャナ(scanner)とかレクサ(lexer)と言 う。日語で言うと字句解析器だが、言いにくいのでスキャナと呼ぼう。 スキャナというものが出てくる根底にはそもそも「単語の区切りには空白ある でしょ」という常識がある。そして実際にたいていのプログラミング 言語はそういう仕様になっている。そのほうが楽だからだ。 例えば古いFortranでは空白が意味を持たなかった。つまり空白を入れても 単語区切りとは限らないし、変数の途中で何の前触れもなく空白を挿入したり することもできた。ところが解析が恐ろしく面倒なもの

  • 書評:並行プログラミング入門 - Software Transactional Memo

    TL;DR 並行処理を実装する人のこれからのスタンダードになる一冊。買い。 並行プログラミング入門 ―Rust、C、アセンブリによる実装からのアプローチ 作者:高野 祐輝 オライリージャパン Amazon 買ったら思いの外早く届いたのでパラパラと読み始めたら一気に読み終えてしまった。 総評 敢えて雑な喩え方をするなら The Art of Multiprocessor Programming (通称TAoMP) の内容を薄めてRustやアセンブラや計算モデルを足したようなだった。 日語の書籍としてはかなり珍しくWait-Free, Lock-Free, Obstruction-Freeの違いなどを適切に論じており、TTAS Lock, MCS Lock, TL2といった日語では希少な情報が書かれているレアなである。これらに付いて論じている日語のは知る限り (TAoMPと昔僕

    書評:並行プログラミング入門 - Software Transactional Memo
    R2M
    R2M 2021/08/22
    細かい事の部分も中々。キャッシュコヒーレントトラフィックまでは意識したことなかったな
  • 860+ Free Online Programming & Computer Science Courses You Can Start This New Year

    By Dhawal Shah Twelve years ago, universities like Stanford and MIT opened up free online courses to the public. Today, over 1,200 schools around the world have created thousands of free online courses. To welcome the new year, I’ve compiled this list of 860+ such free online courses that you can start right now. For this, I leveraged Class Central’s database of over 100,000 online courses. When a

    860+ Free Online Programming & Computer Science Courses You Can Start This New Year
  • Writing a storage engine in Rust: Writing a persistent BTree (Part 1)

    As part of a recent personal journey to better understand databases and better learn Rust, I have recently took on the project of writing a simple key-value storage engine. Crazy, right? Lets get started! B-Trees vs LSM TreesThe first thing one must think of when writing a key-value storage engine is -”How should I store my data so that I can perform reads and writes efficiently?”; The two most co

    Writing a storage engine in Rust: Writing a persistent BTree (Part 1)