タグ

Programmingに関するardarimのブックマーク (952)

  • C言語のbitfieldの仕様と実装を調査した話 - /home/tnishinaga/TechMEMO

    C言語にはbitfieldという機能がありますが、この機能にはさまざまな落とし穴があり、注意深く利用しても予期せぬバグや移植性の問題を引き起こす可能性があるとよく言われています。 実際、jpcertを確認すると複数の勧告が出ています。 EXP11-C. ビットフィールド構造体のレイアウトについて勝手な想定をしない INT12-C. 式中で使用される単なるintのビットフィールドの型について勝手な想定をしない CON32-C. 複数スレッドによる隣接データへのアクセスが必要な場合データ競合を防止する DCL39-C. 信頼境界を越えて構造体を渡すとき情報漏えいしない 私は先輩技術者から「とくに組み込みの分野においてC言語のbitfieldは使うべきではない」と教わって生きてきました。 記事ではbitfieldの仕様や問題点、なぜ仕様を避けるべきか、緩和策や代替案について検討します。 目次

    C言語のbitfieldの仕様と実装を調査した話 - /home/tnishinaga/TechMEMO
    ardarim
    ardarim 2025/02/11
    安心安全にコントロールできる点でも伝統的なシフトとマスクを使うで問題ない気がする。I/Oに使うのは論外だろう。高級言語に寄せて抽象化しようとしたけど中途半端で失敗した仕様なのかな。
  • map / filter などの高階関数よりも古典的な for文の方が読みやすいと感じるあなたへ

    class: center, middle # map / filter などの<br>高階関数よりも<br>古典的な for文の方が<br>読みやすいと感じる<br>あなたへ BuriKaigi 2025 2025/02/01<br> @gakuzzzz --- class: left, top ## 自己紹介 * 中村 学/Manabu NAKAMURA * Twitter: [@gakuzzzz](https://twitter.com/gakuzzzz) * [Tech to Value Co.,Ltd.](https://www.t2v.jp/) CEO * [Alp, Inc.](https://thealp.co.jp/) Tech Lead --- class: left, top ## はじめに 昨今のメジャーなプログラミング言語では、 `map` や `filter`

  • 「プログラマーのためのCPU入門」を読んだ。よかった。 - ose20の生存報告

    歌いだし いいだいいだと言われるのをTLで見て棚に積んでいた『プログラマーのためのCPU入門』をやっと読んで、想像してたよりもずっと自分に刺さるだったので感想をまとめる。 プログラマーのためのCPU入門 ― CPUは如何にしてソフトウェアを高速に実行するかwww.lambdanote.com 経緯 去年の終わりごろから『並行プログラミング』入門を読んでたんだけど、主にメモリオーダーのところがあんまり腑に落ちなかった。具体的には、サンプルプログラムからメモリオーダーに関する命令が全部消されて、「このプログラムが正しく動くために、適切な位置に、適切な強さのメモリオーダーを指定せよ」と言われると全然わからないんだろうなという感じ。あとはグリーンスレッドの例でコアロジックがアセンブリで書かれてたんだけど、操作的意味がおそらく高レベルの言語とは全然違い、暗黙の前提がわからず理解が著しく難しい

    「プログラマーのためのCPU入門」を読んだ。よかった。 - ose20の生存報告
  • コーディング支援だけじゃない 「GitHub Copilot」をレガシーコードの文書化や説明に役立てる方法をGitHubが解説

    GitHubは2025年1月15日(米国時間)、レガシーコードを扱うときにAI人工知能)コーディングアシスタント「GitHub Copilot」がどのように役立つかや、GitHub Copilotを用いてレガシーコードを文書化したり説明したりする方法、これらを実施する際に留意すべきベストプラクティスを公式ブログで解説した。 GitHubは、GitHub Copilotが話題に上るときは、新しいコードの作成に焦点が当てられることが多いが、GitHub Copilotは既存のコードを理解するためにも同様に役立つと述べている。GitHub Copilotの自然言語処理機能を利用して、複雑なロジックを文書化したり、分かりにくい関数を説明したり、可読性を高めるための改善点を提案したりできるという。 レガシーコードを扱うときにGitHub Copilotがどう役立つ? 関連記事 OpenAIの「o1

    コーディング支援だけじゃない 「GitHub Copilot」をレガシーコードの文書化や説明に役立てる方法をGitHubが解説
  • 生成AIが人間の介在なしに自律的にソフトウェアテストを生成し実行、バグや脆弱性を発見してくれるAIテストエージェント「Spark」登場

    生成AIが人間の介在なしに自律的にソフトウェアテストを生成し実行、バグや脆弱性を発見してくれるAIテストエージェント「Spark」登場 ドイツ社を置き、コード分析ツールなどを提供するCode Intelligence社は、起動すればあとは生成AIが人間の介在なしに自律的にソフトウェアテストを生成し実行することで、対象となるソフトウェアのバグや脆弱性などを発見してくれるAIテストエージェント「Spark」を発表しました。 An exciting milestone in software security testing: ???? ???????????? ???????? ?????, ??? ?? ???? ????? ???? ????? ???? ??????? ????? ???????????! Read the PR: https://t.co/wfuautln8i#AI

    生成AIが人間の介在なしに自律的にソフトウェアテストを生成し実行、バグや脆弱性を発見してくれるAIテストエージェント「Spark」登場
  • もしプログラミング初心者に戻れたら、初めから使っておきたかったツール36個

    こんにちは。 苦しんでプログラミングを学んだ柴犬こと、くるしばです。 独学でプログラミングを学習し、Webサービス作りITベンチャーを起業しました。 その後個人開発したサービスを売却したり、また別のIT系の会社を創業したりしています。 下記のTwitterにてプログラミング学習に関して発信し、1.9万人以上の方々にフォローして頂きました。 また、最近はUdemyReactFlutterのプログラミング講座も出して、ベストセラーにも入っています。 初心者のうちは知らなかったが、学習を進めたり実務に入って経験が長くなってから 「こんな便利なものあったんだ...!」 となるツールってありませんか? 僕はめちゃくちゃありました。 こういったツールは他の詳しい人から教えてもらうケースも多いので仕方がないのですが、もしこれらを初心者のうちに知ってたら色々楽だったのにな...と思うものが沢山あります

    もしプログラミング初心者に戻れたら、初めから使っておきたかったツール36個
  • 思いつきで作ったAIツールが5000スターを獲得した話

    とにかくケチりたい、そんな気持ちで作ったツールの話です。 元々開発にCline(Claude Dev)やAiderなどの開発ツールを駆使していました。 ただ、APIの料金が常に心配で、できる限り安く済ませたい気持ちもあり、Claude Proを契約してWeb版にファイルを1つ1つアップロードする日々を過ごしていました。 ある日それが面倒になってきて「全部1ファイルにしたらいい感じに読み込んでくれるのでは?」と思い、作ってみたら思いのほかうまくいったので公開しました。 百聞は一見にしかずということで、 こちらのデモにお気に入りのGitHubリポジトリ(例: honojs/hono)を入力してみてください。 Claudeが得意とするXMLっぽいフォーマットで出力し、そのままClaudeにアップロードすることができます。 完全にAIバブルの波に乗ったとも言えるのですが、多くの競合がいる中でスター

    思いつきで作ったAIツールが5000スターを獲得した話
    ardarim
    ardarim 2025/01/10
    ブコメみてなんとなく理解したけど本文中にはどういうツールなのか具体的なことが全く書いてなくてちょっと戸惑ってしまった
  • ClineとAIコーディングツールの現状 - laiso

    はじめに 近年、AIを活用したコーディングツールが急速に発展し、プログラマーの生産性向上や開発プロセスの効率化に大きな影響を与えつつあります。これらのツールは、コード補完、チャットアシスタント、コーディングエージェントなど、様々な形態で提供されており、プログラマーの作業をサポートしています。 その中でも、オープンソースのコーディングエージェントである「Cline」は、独特のポジションと活発なコミュニティによって注目を集めています。 記事では、Clineを中心に、現在のAIコーディングツールの動向を探ります。Clineの特徴や利点、そして他のツールとの比較を通じて、AIコーディングツールの現状について考察します。また、Clineのアーキテクチャや実用面、コミュニティの動向についても解説します。 AIコーディングツールは、特に個人のプログラミングの世界に大きな変革をもたらしつつあります。

    ClineとAIコーディングツールの現状 - laiso
  • ITエンジニアが遭遇する「摩訶不思議」な現象とその真相 - Qiita

    はじめに エンジニアとして働いていると、時として「これは一体なぜ?」と首を傾げたくなるような不思議な現象に遭遇します。 絶対にみんなも一度は経験あるかもしれない…そんな「ITの摩訶不思議」な現象をピックアップし、その裏に潜む技術的な真相を勝手にまとめてみました。 1. 幻のバグ「シュレーディンガーのバグ」 現象 番環境でのみ発生し、デバッグを仕掛けた途端に消えてしまう謎のバグ。まるで量子力学の世界のように、観測した瞬間に状態が変化してしまいます。 真相 オブザーバー効果:ログ出力やデバッガの処理による微妙なタイミングの変化 競合状態(Race Condition):複数のプロセスやスレッド間のタイミング依存の問題 環境の違い:番環境特有の負荷やデータパターン 対策 # 再現性の高いログ収集の例 import logging import threading logging.basicC

    ITエンジニアが遭遇する「摩訶不思議」な現象とその真相 - Qiita
    ardarim
    ardarim 2025/01/06
    テスターの中にたまに神の手がいる。普通そんなバグ見つからないでしょっていう再現性ないのもその人がやるとあっさり出たりする。でも最近はダンプが気軽に取れてワンショットのバグも解析しやすくなった
  • 「プログラミング言語」は今後不要になるのか ソフトウェア開発者の業務、半分はAIで自動化可能に

    この記事は、『生成AIで世界はこう変わる』(今井翔太著、SBクリエイティブ)に掲載された内容に、編集を加えて転載したものです(無断転載禁止)。 ソフトウェア開発における生成AIは、私自身が積極的に利用していることもあり、定量的な研究成果に加え、当事者の生の声もお伝えしたいと思います。この部分に関しては主観的な記述も多くなりますが、その点はご留意ください。 「ChatGPT以前のソフトウェア開発は石器時代だった」とは、ある開発者の言葉です。言語生成AIが持つプログラミングコードの生成能力は驚異的なものです。ChatGPT登場当日、私が最も驚き、「これは当にすごい」と確信したきっかけは、このプログラミングコードの生成能力を目の当たりにしたことでした。

    「プログラミング言語」は今後不要になるのか ソフトウェア開発者の業務、半分はAIで自動化可能に
    ardarim
    ardarim 2025/01/05
    はいはい。不要になったら起こしてね。何番煎じだよ
  • HPCプログラマの書くコードってなんで古臭いの?

    TL;DR Q: HPCプログラマの書くコードってなんで古臭いの? A: そうしないと性能が出なかったから はじめに スパコンを使ってそれなりに長いこと研究をしています。初めてスパコンを使ったのは今から25年くらい前です。発展の早い世界ですので、昔と今ではだいぶ違ってきています。この前、スパコンを使う時の「常識」がすでに現在では常識ではなくなっているっぽいことを知り、私も「そっち側」になったのか、と感慨深くなりました。以下は、HPC業界の語り部に片足を突っ込んだおっさんの戯言です。 なお、以下では主に「京」の話をするため、富士通C++コンパイラに文句を言う形になりますが、富士通が悪いのではなく、昔のスパコンに搭載されていたC++コンパイラはどれもかなり酷かったということはあらかじめ言っておきたい気がします。IBMのコンパイラとかも酷かったし、なんならIntelのコンパイラもバグだらけだっ

    HPCプログラマの書くコードってなんで古臭いの?
  • 自律的にプログラミングをするAIエージェント「Jules」、Googleが発表。人間がタスクを与えると実装計画を作成、コードの生成や変更、バグフィクスなどを実行

    Googleは、人間がタスクを与えると自律的に実装計画を立ててコードの生成や変更、バグフィクスなどを実行してくれるAIエージェント「Jules」を発表しました。 同社が発表した最新の生成AIモデルであるGemini 2.0が用いられています。 タスクやイシューを与えると、それを起点に自律的なプログラミングを行う生成AIを用いたサービスは、先日正式サービス化されたDevinや、現在テクニカルプレビュー中のGitHub Copilot Workspaceなど、すでに先行しているサービスが存在します。 参考:GitHub、「Copilot Workspace」テクニカルプレビューを開始。ほとんど全ての開発工程をAIで自動化 GoogleもGemini 2.0によって、同様に自律的なプログラミングが可能なレベルのサービスを開発可能になったということでしょう。 Julesが動作する様子 Google

    自律的にプログラミングをするAIエージェント「Jules」、Googleが発表。人間がタスクを与えると実装計画を作成、コードの生成や変更、バグフィクスなどを実行
    ardarim
    ardarim 2024/12/13
    コード生成はやってくれるとして、結局はどれだけ精度の高い入力(要件)を与えられるかにかかってくるような。どんなに恐ろしいAIを持っても、要件定義から離れては生きられないのよ
  • 良いコードレビューとは

    コードレビューする時、自分がどんなことに気を付けているか (当は気をつけたいか)みたいなポイントをまとめてみた。 コードレビューの目的 プロダクトの品質を担保するため 人は基的にミスをするもの 1人で考えたものより、2人、3人集まって考えたものの方が良いことが多い 知識をチーム内でシェアするため チームでコードに関する知識を常に共有し続けることで、「この機能はAさんしか知らない」といった属人化問題を防ぐ Aさんが有休取った時に限って障害が起きたりするんですよね。分かります 他の人が書いたコードを読み、さらに分からないことは質問できる、素晴らしい学びの場だと捉える 責任をチーム内でシェアするため 何か問題が起きた時に関連するコードを書いた人間だけが責められるようなことは決してあってはならない レビュー時 (又はそのコードがデプロイされるまで)に問題に気づけなかったチーム全体の責任なので、

    良いコードレビューとは
  • 長い処理には通知音コマンドを仕込んでおくと捗るぞ

    こんにちは! Magic Moment フロントエンドエンジニアの @morishin です。 この記事は、Magic Moment Advent Calendar 2024 4 日目の記事です。 はじめに 開発あるある 皆さん開発をしていて、コマンドの "待ち" が長いとき、こんな経験はありませんか。 「ビルドに時間がかかるなぁ」 (別の作業をする) 「もう終わったかな (ターミナルチラー」 「まだかー」 (以降無限ループ) 作業に集中できない! 逆に 「このインストール時間かかるなぁ」 「終わるまでちょっと休憩しようかな (スヤァ」 〜3 時間後〜 「...あっ、いつの間にか終わってた!」 処理の完了に気付かずついつい休憩しすぎた! ありませんか?ありますよね? まあ休憩しすぎたっていうのはないにしても、実はエラーで処理が中断していたのに気付かなかった、というのはあるあるな気がします。

    長い処理には通知音コマンドを仕込んでおくと捗るぞ
  • 個人開発をしてみたいけど、作りたいものがない人へ|choo

    個人開発をしてみたい」 最近個人開発関連の記事は Qiita や Zenn にも多いし、そう思っている人は多いと思う。 しかし「やってみたいけど作りたいと思うものがない」という人がそれなりにいるかもしれない。 ぼくも昔、自分で何か作ってみたいけれども、残念ながら作りたいと思えるものがない、という状態だった。 なにかいい案を思い浮かんだとしても、少し調べてみると誰かが同じようなものを既に作っているからだ。 すでに誰かが作っている、しかも初めて個人開発をする自分なんかよりも経験が長い人が、自分が作ろうと思っているものよりもはるかに多機能で洗練されたものを作っているように思える。 こういったのを見かけると、なかなかやる気にはなれない。 個人開発で作れるものなんて、もうすでに出尽くされているのではないか。 そんな気がしている人は多いと思う。 「とりあえず作ってみる」そんな人におすすめなのは、「な

    個人開発をしてみたいけど、作りたいものがない人へ|choo
  • そして世界に作図ツールがまたひとつ

    要約一行 Draw.ioみたいな作図ツールがもっと欲しいから作っている。 モチベーションという名のポエム 世の中にはいい感じのカジュアルな作図ツールが少ない。ここでいうカジュアルとは、CADのような精密さは必要なく、多少座標がずれてても建物は倒壊しないし人も死なないという意味でのカジュアルである。Figmaみたいなデザインツールともまた違う。FigJamはそうかもしれない。tldrawはきっとそうだろう。言ってしまえばDraw.ioだ、そうつまりDraw.ioである。 というわけでカジュアル作図ツールの大御所と言えばやはりDraw.io(Diagram.net)だろう。何かを作図したくなってweb検索したことがある方ならきっと一度は使ったことがあるはずの、まさにカジュアル作図ツール界の金字塔。しかも無料。これでいいじゃんの代名詞。 実際にこれでいいと納得できる箇所は非常に多い。まずwebア

    そして世界に作図ツールがまたひとつ
  • プログラマーにとって必須の 15 個のソフトウェアをすべて所有していますか? - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? デジタル時代において、プログラマーの役割はますます重要になっています。彼らの使命は、単にコードを書くことだけでなく、無限の可能性に満ちた新しい世界を構築することです。効率性と創造的プロセスの楽しさを高めるためには、適切な開発ツールを選択することが重要です。 ここでは、開発効率を大幅に向上させ、全体のワークフローをスムーズにするための高く評価されているソフトウェアツールをいくつか紹介します。初心者から経験豊富なプロフェッショナルまで、これらのツールは、コードの整理、プログラムのデバッグ、プロジェクト管理、効果的なコラボレーションをサポート

    プログラマーにとって必須の 15 個のソフトウェアをすべて所有していますか? - Qiita
  • 「2038年問題」が2000年問題と比べ桁違いにヤバい…社会インフラで障害も

    「gettyimages」より 一部システムが2038年1月19日3時14分8秒以降の時刻になると誤作動を起こす可能性があるとされる「西暦2038年問題」。新たな論文が発表され、一般的に想定されているより広い範囲で大きな影響が出るのではないかという声が広まっている。どのような規模の影響の発生が想定されるのか。また、システム運用者はどのような対策をすべきなのか。9月に論文「32bitを超えるtime_t型を持つ環境における2038年問題とその検出」を発表した立命館情報理工学部教授の上原哲太郎氏に聞いた。 2038年問題とは、LinuxなどのUNIX環境、C言語プログラムのUNIX timeで表現されたタイムスタンプ値が32bit符号付き整数型で定義されている場合、2038年1月19日3時14分8秒以降の時刻で整数オーバーフローが生じ、それを参照したシステムが不具合・障害を起こすというもの。対

    「2038年問題」が2000年問題と比べ桁違いにヤバい…社会インフラで障害も
  • 読みやすいコードは「読ませない」

    経験の浅い人にちょくちょくするアドバイスとして、「コードリーディングのときにはあんまコードを読まないほうがいいよ」がある。コード全体を詳細に読むのではなく、名前やインターフェイスからコードの意図を把握することで効率的にコードリーディングできる。完全に下記の受け売り。 「実装は極力見ないようにして、インターフェイスと構造を理解するようにするんです。ダイヤグラムや、関係のグラフを書いたりして。実装はちゃんと出来ていると信じて、読んでいるメソッドやクラスのインターフェイスの役割やパラメータをしっかり理解するようにするんです。そっちの方が、実装を見るよりずっと楽ですよね。」 牛尾 剛「コードリーディングのコツは極力読まないこと 」 自分なんかは、エディタの畳み込み機能と変数名ホバーを使って、名前とインターフェイスしか見えない状態で読む。中身を読みたいなーと思ったところは畳み込みを解除して徐々に読ん

    読みやすいコードは「読ませない」
    ardarim
    ardarim 2024/10/12
    まあ理想よね。現実は他人が作った何百行もある関数(命名も引数も適当)を「読まされる」。自分で一から作るときは心がけたいよね
  • 反AIの方が「貴方のプログラムは他人のプログラムを継ぎ接ぎして作ってるんですか!?」と言ってるのを見て思わず「そうですけど!?」が出かけた

    なにわづ @imawo_harubeto 先人の作ったマシンとOSの上で、先人の作ったデバイスとソフトを用いて、先人の書いた言語とライブラリを借りて、先人の考えたデータ構造とアルゴリズ厶に感謝してプログラミングをしている 依拠性の程度はそれぞれでも、巨人の肩の上に乗らなければcreationは成り立たないと思う

    反AIの方が「貴方のプログラムは他人のプログラムを継ぎ接ぎして作ってるんですか!?」と言ってるのを見て思わず「そうですけど!?」が出かけた