ドラクエ4の逃げる8回で会心一撃連発バグ 真相を問う為にプログラムを組んだ張本人に直撃電話! ところが段々とバグの競い合いに・・ 質問や普通のおたより等はツイッターのDMからどうぞー KAN NAITOツイッター https://twitter.com/Kan_Naito_JP #内藤寛 #ドラゴンクエスト #ランドストーカー #ランナバウト #KENOKUYAMA #ドラクエ #LANDSTALKER #ファミコン #6502 #プログラム #バグ
https://martinfowler.com/bliki/FrequencyReducesDifficulty.html 私が気に入っている引用の一つに「もしそれが痛みを伴うのであれば、さらに頻繁にそれを行え」という引用がある。 この言葉は、表面的には馬鹿げたことに見えるという幸せな性質も持っているが、深く探れば価値のあることがわかる。 このことを説明するための例示できる文脈は、統合だ。 ほとんどのプログラマーは、自分の仕事を他の人と統合することは苛立たしくてつらい経験であることを早い段階で学ぶ。 そのため、自然な人間の反応として、できるだけ統合を先延ばしにしようとする。 上記グラフのように、その行動を起こすまでにかかる時間と、その行動に伴う痛みに指数関数的な関係がある場合、その行動をより頻繁に行うと、痛みを大幅に軽減できる。 そして、これが継続的インテグレーションで起こることだ。毎日
ゲームを作りたいと思ったら 騙したくないのではじめにお伝えしますと、ゲームを作れるようになりたい場合、けっこうしっかりがんばる必要があります。普通に勉強だし楽ではないです。 わたしが初めてゲームを作りたいと思ってから、実際にゲームを作るようになるまではけっこう時間がかかったのですが、それは、なにをすればいいかわからなくて途方に暮れていたからです。これは途方に暮れている人向けの記事です。地図ではなくコンパス。 流れ ・最低限のプログラムを勉強する ・使うゲームエンジンを決める ・チュートリアルを探してやっていく ・調べながら自分で作ってみる 最低限のプログラムを勉強する プログラムをするしないは置いておいて、最低限のプログラムと、その考え方は理解できた方がいいです。プログラムの才能っていうのは存在するとは思うのですが、苦手意識ある人でもある程度まではいけます(でもこれもできた側の発言ですよね
GoogleでFlutter & DartのプロダクトとUX担当ディレクターTim Sneath氏は、アフリカのケニア共和国ナイロビで開催された「Flutter Forward 2023」の基調講演で次のように話し、Flutterの進化の方向性を示しました。 「Flutter for Webは汎用目的でデザインされてはいないことを明確にしておきたい。すでにDOMの分野で上手く行っているAngularやVue、Reactのような、DOMベースの新たなフレームワークを作ろうとしているわけではない。 そうではなく、(CanvasやWebAssemblyのような)新しいWeb標準をベースとする最初のフレームワークを作ろうとしているのだ。」 その上で、Flutter for WebがWebAssemblyをサポートする予定であることを明らかにしました。 「FlutterからWebAssemblyへの
Bug FixingVersion BumpTestsFixing Jed's CodeFeature Building
はじめにgolang ORM連載の2記事目となります。TIGの宮崎将太です。 突然ですがみなさん、O/Rマッパは何を使用していますか? golangだとGORMがデファクトスタンダードの位置を勝ち取りつつあり、当社でも特に理由がない限りはGORMを使用するケースが多い印象です。 今回は新たな可能性としてFacebook社謹製のent/entを検証します。個人的なO/Rマッパ経験としてはRuby on RailsのActiveRecordから始まり、当社謹製のUroboroSQLというO/RマッパからGORMまで割と多めに触れているので、大体どのO/Rマッパでも気になる機能を中心に作りながら検証します。 entとは 公式から引用してくると以下の通りとのこと。 データベーススキーマをグラフ構造として簡単にモデル化 スキーマをプログラムのGoコードとして定義 コード生成に基づく静的型付け データ
リファクタリングはできていますか?手塚悠太氏:それでは、「レガシーな実装を丁寧にリファクタしてモダンな実装にする技術」について、手塚悠太が発表いたします。 自己紹介です。2019年にDeNAに中途入社し、当時はMOV、現在の名前はGOですね、こちらのタクシーアプリの乗務員さん向けアプリケーションを開発していました。またタクシーフードデリバリーサービス「GO Dine」のアプリケーション開発も担当をしていました。こちらのGO Dineは、Flutterを用いています。 その後、2021年8月から『グランブルーファンタジー』推奨ブラウザである「SkyLeap for Android」の開発に携わっています。 さてみなさん、リファクタリングはできていますか? 「機能開発や不具合修正がずっと続いてそんな暇がない」「プロダクトオーナーの理解が得られない」「リファクタリングで新たに不具合を出すのが怖い
概要 本書では、UCバークレーで開発されたオープンソースの命令セット(ISA)「RISC-V」を用いて、CPUの作り方を解説します。コンピュータアーキテクチャ、ハードウェアに関する知識があまりない方にも理解できるように基礎からわかりやすく学んでいきます。CPUとコンピュータアーキテクチャのしくみを解説したうえで、基本整数命令の実装から、CPUの高速化で活躍するパイプラインの実装、スーパーコンピューターでも活躍するベクトル拡張命令(SIMD)、さらに、汎用CPUでは負荷の高い処理をより高速に実行するためにCPUへ追加可能なカスタム命令の実装までを行います。CPU設計に用いる基本言語としては、Velilogを抽象化したHDL(ハードウェア記述言語)であるChiselを利用しています。 CPUの自作範囲に関して、手順が煩雑なFPGAでの動作確認は行わず、ソフトウェア上でエミュレーションをゴールと
AI開発を手掛けるASReal(東京都目黒区)とHashLab(京都市)は10月4日、日本語で仕様を伝えるだけでコーディングするプログラミングAI「AI Programmer」(β版)を公開した。利用料は無料で、対応言語は14種類。 使いたいプログラミング言語を指定し、入力欄に「“Hello World”という文字列を表示する」などとプログラムの内容を日本語で書きこんで実行ボタンを押せばコードを出力する。 対応言語はSQL、Python、JavaScript、HTML・CSS、Solidity、C++、PHP、GO、R、Perl、Ruby、正規表現、Haskell、Lisp。コードを出力するのみで、コンパイルなどの機能は持たない。 AI生成のプログラムは動作するのか? どのくらい使えるのかチェックしてみた。まずはC++で「Hello World」を出力するプログラムを書かせてみる。指示は「
この記事は 株式会社ログラス Productチーム Advent Calendar 2023 18日目の記事です。 はじめに ログラスの龍島(@hryushm)です。 ソフトウェア開発において、「シフトレフト」すなわち開発の早い段階でテスト計画を立て、実施していくことが全体的なコスト削減や価値提供の早期化につながるとよく言われています。 この記事では、シフトレフトによってもたらされる効果をログラスでの実例を用いて紹介した上で、なぜ効果が出るのか?を「抽象度」というキーワードから紐解いてみようと思います。 本記事ではスクラム開発においてPBIを完了させる中でシフトレフトしていくことを念頭に書いていきますが、ソフトウェア開発の任意のタイミングにおいて適用できる概念だと考えています。 テスト設計を実装前にやることの有用性 まずシフトレフトによって何が起こるのか?を考えます。PBIに書かれた受け入
最近チームのテックリードを拝命して、テクノロジーマネジメント領域もリードすることになりました。興味の中心は開発プロセスやデリバリーで、エンジニアリングはまだまだひよっこなので苦労の日々が続いています。この記事では新米テックリードとしての取り組みをひとつ紹介します。 私のチームでは10個近いコンポーネントのオーナーシップを持っています。それらの品質の期待度は大きく異なり、変更頻度、採用技術、システムに占める重要度といったパラメータから決定されます。この期待を見誤ると、変更頻度が極めて低いコンポーネントを頑張ってリファクタリングしたり、モダンな技術が採用され寿命の長いシステムを雑に拡張したりと、成果の小さいアクションを取ってしまいます。逆にこの期待を適切に捉えられると、チームのリソースがコスパが高いアクションに向かっていくことが期待できます。変更頻度の高いコンポーネントのCI/CDを改善し、重
Rustはメモリーセーフを目指すシステムプログラミングとして知られているが、用途はそれだけに限らない。今回は、Rustがゲームにも使えるプログラミング言語であることを、インベーダーゲームを作りながら解説する動画を紹介する。これはBevyというゲームエンジンを利用して開発するもので、RustのマスコットであるFerrisがシューターとして、ランダムに飛来してくるインベーダーをレーザーで攻撃して撃墜するというゲームだ。 動画は1時間20分程度という長さであるが、ゲーム開発の手法のひとつであるEntity Component System(ECS)によって徐々にゲームの要素を組み上げていくという内容になっている。ソースコードの構造はゲームの要素であるシューターをPlayer、インベーダーをEnemy、シューターが使うレーザー光線をLaserなどに分離して、それぞれ属性やロジックを組み上げていくと
2025年10月14日にサポート終了を迎えるWindows 10。Windows 11へ問題なく移行できる企業はともかく、人材や予算が限られる中小企業は色濃い課題を残す。しかし、実は米MicrosoftはSQL ServerやWindows Serverなどに対して、最大3年間のサポート延長を得られる有償のESU(拡張セキュリティ更新プログラム)を提供している。 PCリース企業と契約した更新タイミングやIT部門の予算によっては、ESUを活用してWindows 10を使い続けなければならないケースもあるだろう。本記事ではWindows 10用のESUを掘り下げる。 Windows 10 ESU 利用の注意点と勘所 ESUの法人向け提供は2024年4月に決まった。また、同年10月には消費者向けPCにもESUを提供することが明らかになった。ただし最初に述べておくと、ESUはWindows 10の
非IT企業も「AIプログラミングのない時代には戻れない」 「GitHub Copilot」導入した東急の内製開発チーム、手応えは?(1/2 ページ) 米AWSや米GitHubなど、外資ベンダーが提供を進める、生成AIを活用したプログラミング支援サービス。特にGitHubの「GitHub Copilot」は2月に法人版「GitHub Copilot for Business」がリリースされたばかりにもかかわらず、ZOZOやサイバーエージェントなど、さまざまなIT企業が導入を進めている。 非IT企業でも、部門単位などで限定的に導入するケースが見られる。東急もその1社だ。同社では、街づくりにおけるDX(デジタルトランスフォーメーション)を担う内製開発チーム「URBAN HACKS」(アーバン ハックス)が、法人版「GitHub Copilot for Business」を導入。約30人のエンジニ
などの領域を経験しました。 その中で様々なプロジェクトで開発サイド、ビジネスサイドにおいて色んな職種の人と一緒に仕事して、 それぞれの考え方や悩みを見て聞いてきました。 (自分も皆さんに大変お世話になって、おかげて成長してこられました。とても感謝です(❁´ω`❁)!) 今度はEMになって開発組織の成長に取り組むチャンスを頂き、責任をもって、皆さんが認める良い開発組織を作って行きたいと思います。 「良い開発組織とは」 に対して会社の文化、携わる事業の内容、目標によって理想な姿が様々なので、正解はないと思いますが、色々模索中の中、ソフトウェア設計思想から、「生産性、メンテナンス性性、拡張性」を軸に考えたら、いい組織設計のヒントになるのではないかと思いました。 本記事は ソフトウェア設計思想「SOLID原則」から開発組織設計に適用したらどうなるか? とのお題でお話させて頂きたいと思います。 また
筆者は普段、政府機関で働いている。役所というところは当然ながら、システムの開発においても事前に期待効果や実現する機能などをできる限り明確にしなければならない。故に、開発中に機能や要件が変化する可能性があるアジャイル開発は役所の予算制度との相性が悪いところがあり、なかなかアジャイル開発を見ることができなかった。 だがそんな役所でさえ、アジャイルによるシステム開発が徐々に見られるようになってきた。役所がアジャイル開発に興味を持つようになってきたのは、アジャイル開発の方が、よりユーザーの要望に近いシステムが作れそうだという認識が世間一般に定着してきたことによるのかもしれない。 アジャイル開発と相性の良い契約型と言えば、請負契約よりも準委任契約ということになるだろう。 詳しい説明は省くが簡単にいえば、請負契約が「成果物の完成を約束する」ものであるのに対し、準委任契約では受注者は成果物の完成責任を負
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? たるいと申します。 FPGAファミコンをスクラッチで作ろうと活動しております。 本記事はHardware Description Language Advent Calendar 2025 15日目の記事です。 続きかきました↓ FPGAファミコンのはじめかた(2) PPU編 Githubレポジトリ↓ https://github.com/tarusake/tarunes/tree/hello-cpu はじめに 「レトロゲーム」は、FPGAの活用例としてよく知られている分野の一つです。 中でもファミコン(NES)開発は挑戦者が多く、技術
07/02/2025 v0.30 supports indexing GitLab Merge Request as Context! 05/25/2025 💡Interested in joining Agent private preview? DM in X for early waitlist approval!🎫 05/20/2025 Enhance Tabby with your own documentation📃 through REST APIs in v0.29! 🎉 05/01/2025 v0.28 transforming Answer Engine messages into persistent, shareable Pages 03/31/2025 v0.27 released with a richer @ menu in the chat side
こんにちは.閃光のハサウェイが配信開始されたので早速視聴しました.メッサーがいいですね. 前回もXDP関連の話題でしたが,今回はXDPに入門します. XDPを学習する際のロードマップやつまりどころの解消になればと思います. 2023-12-30 加筆 # 本記事を公開して約 2 年が経過しました. この加筆で古くなってしまった情報を修正しています. 差分は このブログの Github の PR を見てください. この 2 年間で eBPF 及び XDP への注目はさらに高まったように感じます. 取得できる情報も充実してきました. 特に O’reilly より発売された 入門 eBPF(原書: Learning eBPF) は非常に充実した内容になっています. 日本語でこれらの情報に触れられるようになったことは大変ありがたいです. 2023 年は個人的にも XDP に関して新たに発展的なコン
Windows 11が正式リリースされ、Windows Insider ProgramのDev Channelプレビュー版(以下Dev Channel版と略す)がWindows 11ベースとなった。また、Windows Subsystem for Linux(以下、WSL)のプレビューがMicrosoftストアで開始された。このため、WSLには複数のバージョンが存在することになった。Windows 11正式版以前は、Windows 10の機能アップデートで配付されるWSLとWindows Insider Program版に搭載されているプレビュー版のWSLの2つしかなかった。 まずは、現状のWSLのバージョンを整理しておこう。以下の表のように4つある。1つ目は、Windows 10に搭載されているもの、2つ目はWindows 11のもの、3つ目はDev Channel版だ。これに対してMi
限られた時間内でプログラミングの問題を解くスピードや正確さを競うのが「競技プログラミング」だ。参加者が問題の解答となるコードを提出すると、正解かどうかがテストケースにより自動で判定される。 競技プログラミングのサービスでは、コンテストで良い成績を取り続けるとレーティング(ランク)が上がる仕組みになっていることが多い。 例えば「AtCoder」という競技プログラミングサービスでは、レーティングを色で表現する。「水色(Bランク)」であればかなり優秀で、そこから上は「青色(Aランク)」「黄色(Sランク)」「だいだい色(SSランク)」「赤色(SSSランク)」になっている。 赤色は全体の1%未満しかいないエリートだ。赤色のレーティングを持つ人を指す「レッドコーダー」という言葉を聞いたことがある人もいるだろう。 競技プログラミングは基本的には趣味として楽しむゲームだが、実益もある。競技プログラミングの
出典:日経クロステック、2020年4月30日 「教養としてのコンピューターサイエンス講義 今こそ知っておくべき「デジタル世界」の基礎知識」(日経BP) (記事は執筆時の情報に基づいており、現在では異なる場合があります) プリンストン大学で1999年の秋から行われている一般人向け講義「Computers in Our World」。『プログラミング言語C』の著者としても知られる伝説の計算機科学者ブライアン・カーニハン氏が、今こそ知っておくべき「デジタル世界」の基礎知識を易しく解説する人気の授業だ。今回は、ソフトはどう作られているか、「バグ」とは何かについて取り上げる。 実社会でのプログラミングは大規模なものになりがちです。その戦略は、本を書いたり他の大きなプロジェクトを請け負ったりするときに採用するものと似通っています。 すなわち、まず何をすべきかを明らかにして、大きな仕様をどんどん小さなピ
The end of classical computer science is coming, and most of us are dinosaurs waiting for the meteor to hit. I came of age in the 1980s, programming personal computers such as the Commodore VIC-20 and Apple ][e at home. Going on to study computer science (CS) in college and ultimately getting a Ph.D. at Berkeley, the bulk of my professional training was rooted in what I will call “classical” CS: p
GitHubが開発者向けサービスへの生成AIへの組み込みを加速させている(関連記事:GitHub Copilotで「Claude」「Gemini」も利用可能に 自然言語のみでアプリ開発できる新ツールも)。生成AIアシスタント「GitHub Copilot」はマルチモデル化され、OpenAIのみならず、AnthropicやGoogleのモデルも利用可能になった。しかし、注目度が高いのはシステム生成AI「GitHub Spark」の発表だ。 「10億人が開発者になれるように支援する」を目指したGitHub Sparkは自然言語エディターにアプリのアイデアやイメージを記述すると、「Spark」というマイクロアプリが生成され、Web上からラウンチや管理が行なえるサービス。GitHub Sparkの紹介ページには「Without needing to write or deploy any code
はじめに 開発において「ドキュメントを書く時間がない」「実装を優先してドキュメントは後回し」という経験はないでしょうか? 筆者も以前はそうでした。しかし、GitHub Copilotを活用したドキュメント作成プロセスを導入したところ、1ヶ月で100個以上のドキュメントを作成し、開発効率が劇的に向上しました。 本記事では、その取り組みの内容と効果を紹介します。 なお、GitHub Copilotの社内導入は2025年10月頭。最初は試行錯誤しながら使いどころを探っており、その様子は「職場でのCopilot活用の始め方」にまとめています。その後はコードレビュー支援にも活用し、変更概要の俯瞰・観点整理に役立てました。 前提条件 GitHub Copilotは会社単位で契約しており、外部に情報が流れずAIの学習に使われない環境で使用 ドキュメント作成は筆者1人で実施 対象期間: 2025年10月末
自分の気に入るゲームが生成されるまでひたすらLLMを回す。これを仮にガチャ指向ゲーム開発と呼ぼう。 Claude 3.5 Sonnet のような高性能なLLMの登場で、LLMに簡単なゲームのアイデア作成からその実装までをさせることが可能になってきた。LLMから出てくるゲームの多くは、凡庸だったり、バランスが悪かったり、正しく実装できていなかったりする。でも、繰り返しLLMにゲームを生成させることで、面白い挙動をする、ゲーム一歩手前のコードを、稀に得ることができる。これを得るまでの行為がゲームガチャだ。 例えば、 上記のプロンプトに「fragile pillars」というテーマを与えると、以下のゲームを提案してくる。 Pillar Paraglider: Control a paraglider flying through a course of fragile pillars. The
2022/10/16 以下ご指摘をもとに内容を修正および追記 https://zenn.dev/link/comments/463223a4de9ec2 はじめに Linux上でコマンドを実行したときのコマンドライン引数についてつらつら書きたくなったので書きます。 プロセスのコマンドライン引数とは、たとえばfoo bar bazというコマンドを実行したら、通常はコマンドライン引数はfoo、bar、およびbazになります。直観的には引数は”bar”と"baz"だけのようにおもえるかもしれませんが、とにかくこういう定義です。 コマンドライン引数はプログラムの中からはCやC++ではmain関数のargv配列引数から参照できます。上述の例であればargv[0]には実行ファイル名が入ります。それ以降の"bar"はargv[1]に、"baz"はargv[2]に入っています。argvに相当する変数はシェ
企業のシステム管理者にとって、ネットワーク監視などの日々の運用は欠かせない。企業システムはインターネットやLANの利用を前提としており、ネットワークにトラブルが発生すると業務に支障を来してしまう。 そこでシステム管理者はネットワークの疎通を調べたり、機器の挙動を確かめたりする。そのために手順書を用意し、手作業で実施するシステム管理者も少なくない。例えばネットワークコマンドを順番に入力して、毎回手順書に従って機器の死活監視などを実施するという具合だ。 しかし手作業でネットワークコマンドを実行していると、管理対象の機器やコマンドの種類が増えるにつれて手間や時間がかかるようになる。さらに手作業ではミスも発生しやすい。 こうした面倒な手作業はプログラムによって自動化するに限る。人気プログラミング言語のPythonには、ネットワーク管理のためのモジュール(ライブラリー)が用意されている。これを利用し
この世には「関数電卓」と聞いて目が輝く人と、そうでない人がいるでしょう。エンジニアである私も含め、目が輝く人は、日本では少数派なのではないかと思います。残念なことです。 「電卓」がなくなって困る人は大勢いるはずですが、「関数」を知らなくても、普通に生きて行けるのも事実。でも関数がなかったら、株価を予測してお金儲けできないし、現代社会を支えるテクノロジーは明治か中世くらいに戻ってしまいます。関数は、社会科学を含む科学的現象を数学的に見るための「目」としてとても重要です。理系の学生は、「科学の目」を養うために関数電卓を使います。 「プログラミング」と聞いて目が輝く人は、関数電卓の場合よりちょっと多いかも知れません。なんと最近の関数電卓は、Pythonでプログラミングできるのです。「えっ、そうなの?」と思った人。私も同じ事を思いました。CASIOの関数電卓『fx-CG50』は、2018年に公開さ
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く