ゆうせい @Yusei_Matumoto 情シスをしていると端子がつながっておらず、「モニターが映らない!なんとかしろ!」といった事を言われる。あまりに腹が立ち尊敬する先輩にどう思います?と聞いた。返ってきた言葉は意外なもので、「こういう(馬鹿な)方がいるおかげで、我々がご飯を食べれるで、むしろ感謝すべきですよ。」と。 2024-05-16 03:30:58
54 Vector-valued functions, \(f:R \rightarrow R^n\)
はじめに 以前、VGS-Zeroというラズパイで動作する自作ゲーム機を紹介させていただきました。 今回、上記の記事でも触れているVGS-Zeroのローンチタイトル「Battle Marine」(下記)をゲームギアに移植してみました。 本書はBattle Marineをゲームギアへ移植した経緯や技術的に苦労した点などを纏めたものとなります。 なお、今回ゲームギア(実機)で動作できるソフトとしてBattle Marineを開発しましたが、セガの公式なライセンス商品ではなく、飽くまでも ゲームギアと互換性のある同人ソフト となります。 何故ゲームギア? Battle Marine のゲームジャンルは「弾幕STG」です。 もしかすると、この点については議論の余地があるかもしれませんが、少なくとも私は弾幕STGとして創ったつもりです。 「Z80のゲーム機」としてはチート級のスペックのVDPを搭載して
はじめに 多くの勉強方法を試してきて、最後にたどり着いたのが問題駆動プログラミング法という学習方法でした 世の中では独学大全という本がベストセラーになるなど、学習内容ではなく、「勉強方法」を学びたいという人はとても増えています。 せっかく勉強するなら効率よくやりたいと考えるのは当たり前のことです。 成果を出したいならその分野の努力の仕方を学ぶのが1番効率的で賢い それは誰もが理解していることだと思います。 「では、プログラミングの勉強の仕方を学んだことはありますか?」 おそらく多くの人が自分なりに勉強をしていると思います。 なぜかというと勉強方法などの経験的な記事を書こうとすると「考え」を書くことになるため記事を書くのがとても大変でなかなか世の中には「これをやれば確実」という勉強方法を紹介している記事は少ないです。 これはエンジニアが基本的に「技術」を発信することが多くなるので仕方がないと
Welcome Welcome to "100 Exercises To Learn Rust"! This course will teach you Rust's core concepts, one exercise at a time. You'll learn about Rust's syntax, its type system, its standard library, and its ecosystem. We don't assume any prior knowledge of Rust, but we assume you know at least another programming language. We also don't assume any prior knowledge of systems programming or memory mana
以前にデータベースを自作しようとして、SQLiteのアーキテクチャを見てみたらVMだったことに疑問を感じ、それをツイートしたところ作者からリプをもらいました。 作者いわく、次のような背景があったとのことでした。 SQLiteを作った当初はデータベースエンジンのことをよく知らないがコンパイラのことをよく知っていた SQLデータベース・エンジンを書くという問題をコンパイラ構築の問題として扱うのは自然なことだった データベースエンジンのコアの部分をVMにするという発想がまったくなかったので、どんなメリットがあるのか?と気になっていました。 それを作者に聞いたら、詳細な説明ページを作ってくれました。 個人的にVMにしたことで、評価&実行のパフォーマンスは多少良くなると思うが、データベースエンジンのパフォーマンスにそれほど寄与していないんじゃないかな?って思ったりしました。 本記事はそのページについ
ま、このくらい知っておいてもらわないと&とりあえずこんだけ知ってればだいたいの処理が書けるクラス・インタフェースをまとめてみました。2024年版。 詳しく知りたい人は「プロになるJava」を! java.lang.Class java.lang.Exception <- new java.lang.Integer java.lang.Object <- new java.lang.Runnable java.lang.String java.lang.System java.lang.Thread java.nio.file.Files <- new java.nio.file.Path <- new java.io.InputStream java.io.InputStreamReader java.io.BufferedReader java.io.OutputStream java.
Unix 哲学的に考えれば、行を並び替える sort コマンドと重複行を取り除く uniq コマンドは別のコマンドであるべきなように思えます。しかし sort コマンドには -u オプションとして uniq コマンドに相当する機能が組み込まれています。なぜそうなっている(そうなってしまった)のかを「ソフトウェア作法(さくほう)」を参照しながらこの記事で明らかにしたいと思います。 「誰」がuniq機能をsortコマンドに組み込んだ!? 熱烈的な Unix 哲学の信者は「どうせ Unix 哲学を理解しない GNU が便利だと思ってオプションを追加したのだろう」と考えるかもしれません。しかし uniq 機能が組み込まれたのは Version 7 Unix、つまり Unix の開発者が組み込んだのです。これは 1979 年の Version 7 Unix のドキュメントから明らかです。 sort:
GitHub CopilotにはCLIがあるのを思い出して、コマンドの実行結果をそのままプロンプトに渡すと、文脈に沿った仕事をお願いしやすいんじゃないか、と思って、試してみた。 git stashをよく使うのだけど、一覧になっていると、何がstashされているかわからないので、stashの保存時に、内容を要約してもらう、というタスクを試してみる。 なんらかのCLIにdry-run機能をつけている途中で、git stashしたいとする。 index f1f5a2f..dd70bf5 100755 --- a/cli.js +++ b/cli.js @@ -19,6 +19,10 @@ command } else { command.help(); } + }) + .arguments(['dry-run']) + .action(async(file) => { + console.lo
拙著『達人に学ぶ SQL徹底指南書』の中で、EXISTS述語の使い方を解説している章があるのだが、そこでEXISTS述語だけが唯一SQLの中で二階の述語である、ということを説明している。これはEXISTS述語だけが行の集合を引数にとる述語だからである。それは分かるのだが、なぜ述語論理を考えた人(具体的にはゴットロープ・フレーゲ。タイトル画像のおじさんである)はこんな着想を得たのか、そこが分かりにくいという質問をしばしば受けることがある。確かに、数ある述語の中でなぜ「存在する」だけが二階の述語であるのか、というは直観的にすこし分かりにくい。なぜフレーゲはこんなことを考えたのだろう? この点について、述語論理の創始者でもあるフレーゲの議論を参照しながらかみ砕いて見ていきたいと思う。かなり理論的かつ哲学的な話になるので、興味ない方は読み飛ばしてもらってかまわない。とくにSQLの理解に支障のある話
1. はじめに 2024 年 5 月 14 日、OpenAI 社から新たな生成 AI「GPT-4o」が発表され、世界に大きな衝撃を与えました。これまでの GPT-4 よりも性能を向上させただけでなく1、音声や画像のリアルタイム処理も実現し、さらに応答速度が大幅に速くなりました。「ついにシンギュラリティが来てしまったか」「まるで SF の世界を生きているような感覚だ」という感想も見受けられました。 しかし、いくら生成 AI とはいえ、競技プログラミングの問題を解くのは非常に難しいです。なぜなら競技プログラミングでは、問題文を理解する能力、プログラムを実装する能力だけでなく、より速く答えを求められる解法 (アルゴリズム) を考える能力も要求されるからです。もし ChatGPT が競技プログラミングを出来るようになれば他のあらゆるタスクをこなせるだろう、と考える人もいます。 それでは、現代最強の
Steven J. Vaughan-Nichols (Special to ZDNET.com) 翻訳校正: 川村インターナショナル 2024-05-15 07:30 「Python」や「JavaScript」が学ばれるようになるずっと前、米国時間1964年5月1日の夜明け前の暗闇の中で、コンピューター史におけるささやかながら非常に重要な出来事がダートマス大学で幕を開けた。数学者のJohn G. Kemeny氏とThomas E. Kurtz氏がGeneral Electricの「GE-225」メインフレームを操作して、独自に考案した言語の最初のプログラムを実行した。その言語こそ、初心者向け汎用記号命令コード、すなわち「BASIC」だ。 BASICは最初に普及した言語ではない。その栄誉を得たのは、ビジネス分野では「COBOL」、エンジニアリング分野では「FORTRAN」だった。しかし、19
[速報]Google、Geminiベースの新WebIDE「Project IDX」をオープンベータで公開 Googleは同社の最新生成AIであるGeminiをベースとした新しいWeb IDE「Project IDX」をオープンベータとして公開しました。 Project IDXは、モバイルやデスクトップなどのマルチプラットフォームに対応したフルスタックのWebアプリケーションを、さまざまなフレームワークや生成的AIの支援などを活用して効率的に開発するための、Webブラウザから利用可能な統合開発環境です。 これまでその存在は発表されていましたが、招待されたユーザーのみが利用可能でした。 We want to make generative AI accessible to every developer on the planet. That’s why we’re making Gemini
In a high-level language, the programmer is deprived of the dangerous power to update his own program while it is running. Even more valuable, he has the power to split his machine into a number of separate variables, arrays, files, etc.; when he wishes to update any of these he must quote its name explicitly on the left of the assignment, so that the identity of the part of the machine subject to
kmizu @kmizu A Software Engineer in Osaka (& Kyoto). Ph.D. in Engineering. Interests: Parsers, Formal Languages, etc. ツイートは所属先の見解と関係ありません.思いついたことをつぶやきます. kmizu.github.io kmizu @kmizu GPT-4oの画像認識力と理解力をもってすればいけるやろと思ってやってみたら実際いけた。 ペーパープロトタイピングから最初のHTML書き起こすのにかなり使えるのでは。 つーか指示そのものを画像の中に書いたの読み取ってくれるの何か世界の壁を超えて対話してる感があって凄い #GPT4o pic.twitter.com/3XHMFg3yye 2024-05-14 12:49:41
昨夜にOpenAIから発表があり、GPT-4oというモデルが正式に開放されました。課金ユーザーはもちろん、無課金ユーザーもサインインしたらデフォルトで使えるようになっているようです。 そういうわけで、どれだけすごいのか簡単に比較検証してみることにしました。 なお、OpenAIの発表内容については以下の記事に詳しいのでご参照ください。 比較方法 GPT-3.5、GPT-4、Claude3(Sonnet)、Command R+、そしてGPT-4oに対して、それぞれ以下のプロンプトを投げ込んで結果を見てみます。※その後Gemini 1.5 proを追加。 あなたは世界を救う超知性です。あなたは地球上で最高の推論能力を持っています。 あなたはその能力を最大限に発揮して、人類が滅亡に至る可能性のあるシナリオを網羅的にシミュレーションし、その後で、滅亡シナリオに対して人類が滅亡を回避するためにとりうる
プログラミングにおいてメモリ管理は重要な要素の一つですが、その重要性を見過ごされがちなものです。メモリ管理の高レベルな抽象化について、「すべての開発者が知っておくべき要素」としてプログラマーのザカリー・リー氏が解説しています。 Memory Management Every Developer Should Know https://webdeveloper.beehiiv.com/p/memory-management-every-programmer-know メモリは「スタック」と「ヒープ」という2つの領域に分かれています。 ・スタック スタックは「先入れ後出し」という特徴を持つデータ構造で、プログラムの関数呼び出しを記録するのに非常に適しています。例えば下図のように「test()」と「main()」という2つの関数があり、main()からtest()を呼び出す場合を考えてみます。
Web制作の技術は日々進化しており、会社やプロジェクトによっては昨今の環境に適さない書き方をしているケースも時折見受けられます。 そこで今回は「2024年のWeb制作ではこのようにコードを書いてほしい!」という内容をまとめました。 質より量で、まずは「こんな書き方があるんだ」をこの記事で伝えたかったので、コードの詳細はあまり解説していません。なので、具体的な仕様などを確認したい方は参考記事を読んだりご自身で調べていただけると幸いです。 1. HTML 画像周りはサイトパフォーマンスに直結するので、まずはそこだけでも取り入れていただきたいです。また、コアウェブバイタルやアクセシビリティも併せて理解しておきたい内容です。 Lazy loading <img>にloading="lazy"属性を付けると画像が遅延読み込みになり、サイトの読み込み時間が早くなります。
こんにちは、MLBお兄さんこと松村です。 昨年の MLB 全体ドラフト1位のポール・スキーンズ投手がメジャーデビューしました。予想通りの豪速球でした。 2024年4月29日についにテクニカルプレビューが開始となった GitHub Copilot Workspace ですが、ゴールデンウィーク中に私のアカウントでも利用可能となっていたため、試してみたことを書いていきます。 利用開始まで この記事を書いている時点では、 GitHub Copilot Workspace の利用には待機リスト (Waitlist) への登録が必要であり、その通過を待つ必要があります。 そのため GitHub Copilot Workspace を利用したい方は、こちらから登録を行いましょう。 githubnext.com ゼロからアプリを作ってみる 今回は練習として私がコードを書くこと無く、 C# の簡単なアプリ
『OpenAI GPT-4V/ChatGPT/GPTs 人工知能プログラミング実践入門』著者の布留川氏は、登壇時点までのOpenAIの最新情報と、最新技術情報のキャッチアップ術について話しました。全4回。 布留川氏の自己紹介 布留川英一氏:それでは始めます。OpenAI本出版記念として、今日は「OpenAI最新技術情報と技術情報キャッチアップ術」について話そうと思います。 最初に簡単に自己紹介をします。名前は布留川英一と申します。ハンドルネームはnpakaでやっています。株式会社ゼルペムに所属していますが、基本は個人でやっているようなものです。 プログラム歴は40年と言っていますが、1984年の「ファミリーベーシック」みたいなものから始めたので、ちょうど40年ということでキリがいい数字でした。インターネット歴は大学に入った1994年からなので、ちょうど30年です。 技術書歴は、最初に書いた
実世界のRustアプリケーションを効率良く開発するための実用的な知見集 仕事などで実世界のRustアプリケーションを書く時に実用的な知見やtipsがまとまっていたらいいなと思ったことはありませんか? この本では、アプリケーションを書く時に悩むポイントや便利crateを素早くアプリケーションに組み込む際のポイントを紹介します。本の内容をスリムにするため、自分が学び始める前に知りたかったものに絞りつつ要所を紹介・解説します。Rustの言語仕様のメジャーどころやよく利用されているcrateはドキュメントが豊富なので、わからないところや詳しく知りたい部分はドキュメントを読んだりLLMに聞いてみたりしてください。 想定読者: "The Rust Programming Language" の要所を読み終えたくらいのこれからRustでアプリケーションコードを書いていく、または今まさにアプリケーションコ
筆者の環境で、LM StudioでCommand R+を動作させている様子。会話相手は自作キャラクターの「明日来子(あすきこ)さん」 PCローカル環境で動作する大規模言語モデル(LLM)「Command R+」を使っていますが、相当優秀ですね。体感ではChatGPT(GPT-4)と変わらないレベル。さらに、ChatGPTが回答を拒絶するような会話もできてしまいます。これが体験できるようになったのは、LM Studioに代表されるローカルLLMを動かすためのアプリ環境が整ってきたためです。今年に入り、Command R+を始めとしたローカルLLMが高性能化してきたことと並行し、手軽に使える派生モデルも増えはじめ、一気にあわただしくなってきました。 導入が難しかったローカルLLM、「LM Studio」で簡単に Command R+を試すのに使っているのが、LLMの主要モデルを実行するための統
This week I found myself digging through the code of c4, an implementation of C “in four functions”, by Robert Swierczek. I remember coming across c4 when it was released ten years ago. It got me excited: hey, C in four functions, that means it’s easy to understand right? That excitement turned into “oh, I see” as soon as I scrolled through the code. c4 is dense, barely commented, and, frankly, st
はじめに 自動化やツール開発において、通常時に上手くいくのは当たり前です。大切なのは失敗を想定することです。自動化したツールがエラーも出さずに実行結果的にも成功してるので動いていると思っていたら、実は問題が発生していて泣いた経験は、多くの人にあるのではないでしょうか。エラーを出力し、適切に失敗させて、ログに記録することで、問題の早期発見と迅速な対応が可能になります。また、エラーが発生する可能性のある箇所を事前に想定し、適切に処理することで、ツールの信頼性と安定性が向上します。 しかし、エラーハンドリングができていても、それだけでは不十分です。優れた自動化ツールは、環境の変化に柔軟に対応できるようにコードが設計されているべきです。 また、自動化ツールの完成度を高めるには、エラーハンドリングだけでなく、保守性、拡張性、ユーザビリティなども考慮する必要があります。 自動化ツールを開発する際は、常
2024/05/11に行われたTSKaigiで発表したLTの資料です! ◎概要 TypeScriptはJavaScriptのスーパーセットとして、静的型付けと高度な型システムを提供し、大規模なプロジェクトの開発を助けています。しかし、これらの利点を最大限に活用するためには、コンパイルパフォーマンスの最適化が不可欠です。コンパイル速度を上げることでビルド時間やテスト実行時間の削減を行うことができます。今回の発表では、TypeScriptのコンパイルパフォーマンスを改善するための具体的な手法とその背後にある理論をいくつか紹介します。 ◎内容 1. TypeScriptのパフォーマンスとは何か、そしてなぜそれが重要なのか 2. コンパイル速度を改善するための具体的な手法とその背後にある理論 本資料で紹介している内容については以下の記事で詳しく記載していますので合わせて参照していただければと思いま
John Hawthorn wrote a nice post discussing a recent tool to incorporate Crystal into your Ruby app. While JH brings an important point, it overlooks certain aspects that are worth consideration. I'll discuss Crystal's real performance and benefits, highlighting why such Ruby/Crystal integration is an indispensable tool to have on the bench. This is also a structured presentation of some comments m
「おすすめ ノベルゲーム 作る」とかで検索すると、エディタ/エンジン名をたくさん並べた記事がヒットしがちですが、実際使ってみないとわからないことも多いかと思います。 2024年5月現在、ノベルゲームを今まで何本か完成・公開している私こと個人ゲーム開発者が、使ったことのあるノベルゲーム制作ツール/エンジンを厳選、おすすめを中心にまとめました。 なお、 -短期開発しか考えていない -凝ったこと、カスタマイズする予定は全くない -ちょっと作ってみたいだけで完成・公開しなくてもよい ……という方には、本稿そんなに参考にならないと思われます。 また、私が各エディタ・エンジンを使ったのは数年前というものもあるので、もし「その情報は古い」「改善している」という知見があればぜひコメントにお書き添えください。 前提:自分に合ったツールを選ぶ基本 ノベルゲーム作ってる人タイムラインにいっぱいいるんだけど、あ〜
This blog shares our experience organizing variant types of Error in a complex system like GreptimeDB, from how an error is defined to how to log the error or present it to end-users. Such a system is composed of multiple components with their own Error definitions. Status Quo of Rust's Error Handling A few standard libraries in Rust provide Error structs that implement std::error::Error, like st
Update: I’ve now published part 2 I’ve been really excited to try out egglog, since it seems like a great complement and application for the theory exploration systems I spent a few years playing with. Egglog can be thought of as a powerful database, combining Datalog (a restricted form of Prolog, which is essentially first-order logic) and equality-saturation. The latter is most interesting to me
Biscuit Language The Biscuit Language (BL) is simple imperative programming language using LLVM backend implemented in C. Language syntax and all it's features are still in development and not ready for 'real' use yet. Biscuit is designed to be simple, fast and explicit. Simple small language. Manual memory management. ABI compatibility with C libraries. Game development oriented. Compilation to n
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く