並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 1121件

新着順 人気順

レジスタの検索結果1 - 40 件 / 1121件

  • スーパーマリオのジャンプのアルゴリズム - Qiita

    先日、気持ちのいいジャンプを目指してというQiitaの記事を見かけました。記事中では、マリオのジャンプについても触れられています。マリオというと、マリオブラザースやスーパーマリオブラザース等々、色々あるのですが、これはおそらくスーパーマリオブラザースの事だと思われます。ジャンプアクションゲームといったらスーマリですね。 そのマリオのジャンプの仕組みは「マリオの速度ベクトルを保存しておいて座標を計算するんじゃなくて~」と書かれていて、別サイトのブログへのリンクが張られています。 マリオのジャンプ実装法とVerlet積分 ただ、この記述については不正確であるという別のブログもあったりします。 マリオの完コピvol.28 ジャンプの解析と修正 ホントのところはどうなんでしょうか?世界で最も有名なゲームのジャンプがどのように処理されているのか気になったので調べてみることにしました。 原典にあたる

      スーパーマリオのジャンプのアルゴリズム - Qiita
    • コンピュータサイエンスが気になるプログラマに勧める書籍リスト - Rubyist Magazine 第61号 巻頭言

      コンピュータサイエンスが気になるプログラマに勧める書籍リスト Rubyist Magazine 第 61 号をお届けします。 (今回は内容に合わせて文体を変えております。ご了承ください。) さて、コンピュータサイエンス(以下「CS」)は知らないけど日々プログラミングしている、というプログラマの方はたくさんいらっしゃるかと思います。 そんな方でも、ふとCSを知ってる方がいいのかなとか、CSも知らないとまずいのかな……などと思い、改めて勉強してみたいけどとっつきが悪いとか、うっかり手にとったCSの教科書が何を言ってるかさっぱりで10秒で閉じた、という方もいらっしゃるかと思います。 それでもCSが気になるので、「本腰を入れて勉強をする前に、どういうことをやってるのか眺めてみたい」くらいの温度感の方向けに、CSに隣接するジャンルで、職業プログラマや趣味プログラマの人なら読めそうな書籍のリストを作っ

      • Webサーバーアーキテクチャ進化論2023

        はじめに 最近プログラマーとしてのキャリアに一区切りつけようと思っており、これまでのプログラミングの勉強の集大成となるブログを書きたくなったので書く。初めてプログラミングをして、フロントエンド開発をして、サーバーから値が返ってきたときは「どういう仕組みで値が返ってきたんだ?」と疑問に思っていた。ずっと理解したくて理解できていなかった。だからずっと勉強していた。そして最近になってようやく自分の言葉で説明できるようになった気がしたのでブログを書きたい。 2015 年版が自分の原点であり、この記事を書くモチベーションになった このような記事は実は過去に存在している。 FYI: https://blog.yuuk.io/entry/2015-webserver-architecture その記事はサーバーがどういう仕組みで動いていて、どのように進化し、2015 年に至るかを解説してくれた記事だ。自

          Webサーバーアーキテクチャ進化論2023
        • 2021年にJavaScriptやNode.jsを勉強し始めたので、読んで良かった資料をまとめる

          2021年になってJavaScript、TypeScript、Node.jsの勉強を始めました。 この記事では、読んで良かった本、記事、公式ドキュメントなどをまとめていきます。 ※2021/03時点の情報です。 個人的なリンク集ですが、「これも読むと良いよ」というものがあればぜひ教えてください。 ECMAScript ECMAScriptの仕様は、EcmaのTC39で策定されている Ecma TC39 GitHub organization ep78 TC39 | mozaic.fm Node.jsの各バージョンでのECMAScriptサポート状況 JavaScript Misreading Chat - #86: JavaScript: the first 20 years JavaScript 二十年の歴史についての回 JavaScript チュートリアル | MDN JavaScri

          • 働きながらアメリカの大学院でCS修士号を取った - k0kubun's blog

            4年前に会社の福利厚生を使ってスタンフォードの授業を取ってみたら面白く、 働きながらでも続けられそうだなという実感を得たので、 2年後、受験を経てジョージア工科大学にリモートで通い始めた。 そして先日、ジョージア工科大学からコンピュータサイエンス修士号をいただくことができた。 画像の学位記は卒業式イベント用の非公式のもので、1~2か月すると Masterとちゃんと書いてある本物が来るらしい *1 。 After 1 year and 9 months, I graduated from Georgia Tech and got a master's degree in computer science. It was intense to be a student while working full-time, but I learned a lot. pic.twitter.com/J

              働きながらアメリカの大学院でCS修士号を取った - k0kubun's blog
            • けしからんSoftEther VPNを作ったら怒られた 登大遊氏のVPN構築ソフトを日本政府が配布停止した理由

              情報科学若手の会とは、情報科学に携わる学生、若手研究者、エンジニアのディスカッションと交流の会です。NTT東日本特殊局員の登氏が政府に配布停止要請されたVPNソフトの話など、シン・テレワークシステムの開発のもととなった数々の経験を開発秘話として講演しました。まずは登氏が作ったSoftEther VPNについて。全4回。 ネットワークをもっとやりたいという方々を増やしたい 登大遊氏(以下、登):本日は長い歴史があり、名誉ある「若手の会」で講演の機会をいただき、ありがとうございます。先ほどコメント欄も拝見しましたが、自宅の1Uサーバーを持っている方がどうとか。 本日の主題は、どうすればそういうみなさんのような方々が、日本の中でもっとたくさん増えるのかなということが1つ。2つ目は、自宅ラックのようなことを大規模にやろうとすると、どうしても家の中だけでは壁がありまして、そこをどう乗り越えるかという

                けしからんSoftEther VPNを作ったら怒られた 登大遊氏のVPN構築ソフトを日本政府が配布停止した理由
              • Linux メモリ管理を理解したい - Qiita

                Linux カーネルのメモリ管理方法について、勉強したことをまとめる。 メモリ管理はハードウェアに強く依存するため、x86_64 かつ OS起動後に 64bitプロテクトモード に移行したあとに話を絞る。また、OS は CentOS7.6、カーネルは次のバージョンを利用する。 ]# cat /etc/redhat-release CentOS Linux release 7.6.1810 (Core) ]# uname -a Linux localhost.localdomain 3.10.0-957.21.3.el7.x86_64 #1 SMP Tue Jun 18 16:35:19 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux 概要 ノイマン型アーキテクチャ コンピュータの基本的な構成のひとつ。次の図が参考になる。 ほぼ全てのコンピュータが、このアーキ

                  Linux メモリ管理を理解したい - Qiita
                • 新人エンジニアにおすすめする一冊 2022 | CyberAgent Developers Blog

                  こんにちは!CTO統括室の黒崎(@kur_m88)です。2022年度のサイバーエージェントには新卒のエンジニアが約90名入社してくれました。 アフターコロナー1期生の新入社員へ、代表藤田からのメッセージ 2014年までエンジニアブログを遡ると、こんな企画がありました。この企画を8年ぶりに復活させてみようと思います。 #e100q 新人エンジニアにお勧めする一冊 思いつきで企画してみたので100人に聞く時間はありませんでしたが、約40名から返事をもらえました。 社内でアンケートを募集した様子 おすすめする一冊の被りが多ければランキング形式にしようと思っていたのですが、あまり被りがありませんでした。 ちょっと分量が多いですがせっかくなので全部紹介しようと思います。 先輩エンジニア達から新人エンジニアに向けた言葉ももらったので、最後に載せてあります。ぜひ最後までご覧ください! 新人エンジニアにお

                    新人エンジニアにおすすめする一冊 2022 | CyberAgent Developers Blog
                  • 大学で読んだ情報科学関連の教科書 - ジョイジョイジョイ

                    先日、博士(情報学)になりました。学部と大学院をあわせた 9 年間で読んだ情報科学関連の教科書・専門書を思い出を振り返りつつここにまとめます。私は授業はあまり聞かずに独学するタイプだったので、ここに挙げた書籍を通読すれば、大学に通わなくてもおおよそ情報学博士ほどの知識は身につくものと思われます。ただし、特に大学院で重要となる論文を読み書きすることについては本稿には含めておりません。それらについては論文読みの日課についてや論文の書き方などを参考にしてください。 joisino.hatenablog.com 凡例:(半端)とは、数章だけ読んだ場合か、最後まで読んだものの理解が浅く、今となっては薄ぼんやりとしか覚えていないことを指します。☆は特におすすめなことを表します。 学部一年 寺田 文行『線形代数 増訂版』 黒田 成俊『微分積分』 河野 敬雄『確率概論』 東京大学教養学部統計学教室『統計学

                      大学で読んだ情報科学関連の教科書 - ジョイジョイジョイ
                    • ゲームボーイエミュレータをGo言語で書いた - undefined

                      概要 Goはこれまで量を書いたことがなかったので入門にゲームボーイエミュレータを書いてみることにした。ゲームボーイである理由はたまたまよくできたゲームボーイの資料(http://marc.rawer.de/Gameboy/Docs/GBCPUman.pdf)を見つけてしまったため。 成果物 github.com まだ基本的なカートリッジタイプしか実装できていないがそこそこ動き始めたので公開することにした。直近は対応カートリッジを増やしながらWebAssemblyを吐けるようにしたい。 ゲームボーイの基本仕様 項目 概要 CPU LR35902 4.19MHz 8bit RAM 8kB VRAM 8KB ROM 256k~32MBit Display 4階調モノクロ、160×144ドット スプライト 8×8 最大40個表示 / 1ライン上に 最大10個表示 背景 256×256ドット ウィン

                        ゲームボーイエミュレータをGo言語で書いた - undefined
                      • 電子辞書は組み込みLinuxの夢を見るか? - Zopfcode

                        はじめに 去る2010年、津山高専の入学を間近に控えた puhitaku 少年は、とある SHARP の電子辞書を手にして震えていた。 SHARP Brain PW-GC610。Windows CE をプリインストールした、中学生から見ても一風変わった電子辞書。そんなものが津山高専の教科書販売で手に入るなんて…。 これは、そんな変わった電子辞書 Brain シリーズで Linux を動かすまでの記録だ。 (本記事は、第53回 情報科学若手の回で発表した以下のスライドを記事にしたものです) speakerdeck.com Brain ハックの隆盛と衰退 SHARP の電子辞書 Brain シリーズは、Windows が動くことによって外部アプリ ― 言い換えると、PE 実行可能ファイルそのもの ― が追加可能であることを売りにしている。自作ソフトの防止や対策は特にないので*1、Visual

                          電子辞書は組み込みLinuxの夢を見るか? - Zopfcode
                        • 電子工作のための電子回路基礎 - fumiLab

                          お久しぶりです.Fumiです.最近作ったスライドを共有しておきます. 追記 たくさんのご覧いただきありがとうございます。勉強会や学校、会社で使っても良いかというお問い合わせをたくさん頂いています。出典を示していただければCC BY-SAで使っていただいて構いません。ただ、あくまで個人向けに作ったもので著作権的に微妙な写真やイラストが結構使ってあるのでこのまま商用利用しようとは思わない方が良いと思います。今見返すと真ん中ー後ろの方とかもう作るの疲れちゃって雑になってたり、これ微妙だなっていうところも結構あって作り直したいなという気持ちもあります。使った際にはぜひ作者@fumi_makerのリプライやDMにでも報告してもらえたら嬉しいです。このブログ(fumimake.net)も色々知識を公開しているので一緒に示してくださると嬉しいです。 このスライドは何? 研究会の輪講資料として電子回路に関

                            電子工作のための電子回路基礎 - fumiLab
                          • 現代の僕「コンピュータが生まれた歴史知りたい」 - Qiita

                            TL;DR コンピュータの歴史も何も知らなかった私が、「ありがとう、先人たちよ」と言えるぐらいまでコンピュータの歴史を調べたので共有したいと思います。 最初の動機 「コンピュータってどうやって動いてるんだろう」 あなたは、この疑問に自信を持って答えられますか? そして、仮にコンピュータを知らない人類がいたとして、「コンピュータとは何か」を説明できますか? 私はできませんでした。 もちろん、コンピュータを使うことはできます。 こうして、キーボードをカタカタを打つと、見慣れた文字となってディスプレイに映すことが出来ます。 しかし、「使えること」と、「それが動く原理を説明すること」 は途方もなく大きな壁で隔てられています。 この記事では、コンピュータが動く原理を、その歴史をたどることで探っていきます。 コンピュータの歴史をまとめつつ、 「コンピュータってどうやって動くの?」 に答えられるようなも

                              現代の僕「コンピュータが生まれた歴史知りたい」 - Qiita
                            • Linux システムコール 徹底入門

                              Linux システムコールについて調べたことをまとめる。システムコールの仕組みを理解すると、 OS とアプリケーションがどのように連携して動いているのかを理解できるようになります。 システムコールは CPU に依存する処理が多いため、 x86_64 に絞ります。 検証環境]# cat /etc/redhat-release CentOS Linux release 8.0.1905 (Core) ]# uname -a Linux localhost.localdomain 4.18.0-80.11.2.el8_0.x86_64 #1 SMP Tue Sep 24 11:32:19 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux ]# cat /proc/cpuinfo | head processor : 0 vendor_id : GenuineInte

                                Linux システムコール 徹底入門
                              • VM環境のCPU仮想化はどうやって実現しているのか ハードウェア仮想化支援機構の仕組み

                                Arm入門勉強会とは、macOSがArmに移行したこの機にArmアーキテクチャでのプログラミングについて入門するソフトウェアエンジニアのための会です。今回主催の@nullpo_head 氏が、Armの仮想化支援機構について、その仕組みから深く説明します。前半は「現代のハードウェア仮想化支援機構」について。全2回。 ハードウェア仮想化支援とは何か 佐伯 学哉氏:入門セッション3つ目は『Armの仮想化支援機構』についての入門セッションです。どうぞよろしくお願いします。 本発表のスタートとゴールです。VMwareとかQemuとか使ったことあるけど仮想マシンの仕組みなんも知らんというところがまずスタートになっています。 1個目のゴールは、最近のVMのざっくりした仕組みとハードウェア仮想化支援とは何かということがわかること。そしてその話のあとに実際にArmの仮想化支援機構の概要を説明し、Armの仮想

                                  VM環境のCPU仮想化はどうやって実現しているのか ハードウェア仮想化支援機構の仕組み
                                • 放送大学マイルストーン('23)|lumpsucker

                                  はじめにこの記事は、放送大学の(主に情報コースを中心とする)学生さん向けに、私の履修済み科目の感想と主観的評価を共有して、履修計画の参考にしていただくことを目的に作成しました。下記の記事の通り、2019年-2020年の2年間で情報コースの科目を8割方履修したのでそれなりの網羅性があるかと思います。 (2023年2月追記)その後、選科履修生として履修した他コースの科目や大学院科目などを追加して112科目掲載しています。試験難易度については履修時期によって会場試験・在宅ペーパー試験・在宅Web試験が混在しているので参考程度でお願いします。 タイトルは私が現役生の時に通っていた大学の似たような評価システムから拝借しました。 以下の科目は基本的にナンバリングが低い順に並べています。閉講済みの科目も混じっていますが、記録と後継科目の参考のために残しておきます。あくまで全て(上記の記事にある通り、文系

                                    放送大学マイルストーン('23)|lumpsucker
                                  • プログラミングでつまづいてきたこと - 覚書

                                    プログラミング初心者に対してどういう情報が役立つのかをぼんやり考えていると、そこそこコードを書けるベテランが、いつ、どういうことにつまづいてきたのかを書くとけっこう有益なのではないかと思ったので書きました。これを読むと直接プログラミング能力が上がるわけではないですが、「ああ、こういうところでつまづいてもいっぱしのプログラマになれている人もいるのだな」と思ってもらうのが目的です。成功談よりも失敗談のほうが役立つとよく言われますが、それと少し似ているのかもしれません。 全段落で「いっぱしのプログラマ」とか言った手前、自分のことを書いておきます。18歳ごろから20年くらい前からプログラミングをしていて、主に有名どころのOSSに向けてコードを書いてきました。昔はLinuxカーネルを10年少々やっていて、ここ最近はCephオーケストレータであるRookの開発とかをしています。プログラマとしてはスーパ

                                      プログラミングでつまづいてきたこと - 覚書
                                    • Apple・AMD・テスラ・Intelを渡り歩いた天才エンジニアのジム・ケラー氏へのインタビューが公開中、Intelで一体何をしていたのか?

                                      AMDのAthlonやZenマイクロアーキテクチャ、Apple A4など数々のチップ開発に携わり、「天才エンジニア」と高い評価を受けるジム・ケラー氏は2021年1月にIntelを突如退職し、記事作成時点ではAIチップのスタートアップであるTenstorrentの社長兼最高技術責任者を務めています。そんなケラー氏に、技術系ニュースサイトのAnandTechがインタビューを行っています。 An AnandTech Interview with Jim Keller: 'The Laziest Person at Tesla' https://www.anandtech.com/show/16762/an-anandtech-interview-with-jim-keller-laziest-person-at-tesla なお、ジム・ケラー氏の経歴は以下の通り。 入社退職年企業肩書き関与した製

                                        Apple・AMD・テスラ・Intelを渡り歩いた天才エンジニアのジム・ケラー氏へのインタビューが公開中、Intelで一体何をしていたのか?
                                      • 「コンピュータシステムの理論と実装」をやりきりました - Qiita

                                        コンピュータシステムの理論と実装 をやりきったので、メモを残しておきます。 本の紹介 コンピュータシステムの理論と実装 では、NAND ゲートからはじめて、最終的にはアプリケーションを動作させるところまで、ボトムアップの視点でコンピュータシステムの説明が記載されています。通称「Nand2Tetris」。名前がかっこいいですね。 とてもわかりやすい裏書きの説明は以下 コンピュータを理解するための最善の方法はゼロからコンピュータを作ることで、その構成要素は、ハードウェア、ソフトウェア、コンパイラ、OSに大別できる。本書では、これらの構成要素をひとつずつ組み立てる。具体的には、NANDという電子素子からスタートし、論理ゲート、加算器、CPUを設計。オペレーティングシステム、コンパイラ、バーチャルマシンなどを実装しコンピュータを完成させて、最後にその上でアプリケーション(テトリスなど)を動作させる

                                          「コンピュータシステムの理論と実装」をやりきりました - Qiita
                                        • ただプログラムが好きな会社員が、趣味でゲームを作り始めたら5年続いてNintendo Switchに3本ゲームを出していた話。Switch版『レイジングブラスターズ』発売記念インタビュー

                                          「俺の考えた理想のゲームを世に問いたい!」 インディーゲーム開発者の話を聞いていると、大抵は作りたいゲームがあって、業界に身を投じている。 しかし、「プログラムで物を作るのが楽しいから、ゲームを作ってみるか」と、理想のゲーム像がないところから業界に入り、5年で Nintendo Switch で3作もゲームを出すに至った珍しい開発者がいる。 2021年6月24日に『レイジングブラスターズ』を Nintendo Switch 向けにリリースした Terarin さんだ。 今回、新作発売記念でゲーム開発を始めたきっかけから、Nintendo Switch でゲームを出すまで、世にも奇妙な経緯を聞けたので、皆さんにお届けする。 正直、インタビューを通じてこんなに「独特だな」と思えた人は私の経験からしても少ない。 ゲーキャス: Terarin さんは、初めてゲームを出してから5年で Nintend

                                          • Nand2Tetris(コンピュータシステムの理論と実装)でCPUからOSまで一気通貫で作るのが最高に楽しかった話 - ( ꒪⌓꒪) ゆるよろ日記

                                            どうも、しいたけです。 去年あたりからローレイヤー周りの知識を充実させようと思い、 低レイヤを知りたい人のためのCコンパイラ作成入門 を読んでCコンパイラを書いてみたりx86_64の勉強をしたりしていました。 今年に入ってから、よりローなレイヤー、具体的にはハードウェアやOSについてもう少し知りたいと思い始め、手頃な書籍を探していました。 CPUなどのハードウェア周りについては概要しか知らなくて手を動かしたことがないので、実際に何か作りながら学べるものとして、 O'Reilly Japan - コンピュータシステムの理論と実装 に挑戦することにしました。 O'Reilly Japan - コンピュータシステムの理論と実装 成果物は以下のリポジトリに置いてあります。 yuroyoro/nand2tetris 結論から言うと、やってみて大変楽しめました! 特にハードウェア周りは今まで挑戦したこ

                                              Nand2Tetris(コンピュータシステムの理論と実装)でCPUからOSまで一気通貫で作るのが最高に楽しかった話 - ( ꒪⌓꒪) ゆるよろ日記
                                            • プログラミング言語の簡単な歴史を初心者にもわかるように解説 #さくマガ #さくらインターネット - さくマガ

                                              ≫ 【2週間無料!】初心者でもホームページが作れる!高速・安定・快適なレンタルサーバー みなさんこんにちは、文系出身のエンジニアのちょまど(@chomado)です。大手外資系IT企業でDevRel (Developer Relations) のお仕事をしています。 今回の記事では、プログラミング言語の歴史について書きたいと思います。私はもともとプログラミング言語が大好きで、歴史には大変興味があったので、今回、たくさん色々調べたり、ベテランの先輩エンジニアの方々に当時の様子をお聞きしたりして(ありがとうございます!)、記事にまとめました。 (*゚▽゚* っ)З「ちょまぎょです! 一緒にお勉強していこうね」 また、今回、Google Developers Expert の田中洋一郎さん (@yoichiro) に記事のレビュー(査読)や助言をしていただきました。誠にありがとうございました! そ

                                                プログラミング言語の簡単な歴史を初心者にもわかるように解説 #さくマガ #さくらインターネット - さくマガ
                                              • Rustでゲームボーイアドバンスエミュレーターを書いた

                                                一通りちゃんと実装したので、大抵はちゃんと動いてくれるはずです。動かなかったり、画面がおかしかったり、音がおかしかったりしたらバグなので、ご報告いただけるとうれしいです。 エミュレーションコアが2つになったので、せっかくなのでエミュレーションコアのインターフェースを抽象化して、マルチエミュレーターにしました。 リリースページ からコンパイル済みバイナリをダウンロードできます。 マルチエミュレーター エミュレーターを作るうえで割と面倒でバカにならないのがフロントエンドUIの作成です。GUIアプリを作るのはそもそも結構大変で、ましてや昨今のアプリケーションはPCだけでなくスマホやWebといったタイプの異なる複数のプラットフォームで動かしたいというモチベーションがあります。特定プラットフォームにべったりで何となく動くように書けばいいやというのと比べると、取れる選択肢も限られてかなり面倒になってき

                                                  Rustでゲームボーイアドバンスエミュレーターを書いた
                                                • マインクラフトで1HzのCPUを作り上げた猛者が登場、テトリスや関数のグラフ化も可能

                                                  累計販売本数が2億本を超えたり、YouTubeでの総視聴回数が1兆回を超えたりと、世界的に人気のある箱庭ゲーム「マインクラフト」はサバイバル生活を楽しんだり、自由にブロックを配置し建築などを楽しんだりできるのが売りです。そんなマインクラフトで「レッドストーン」というアイテムを駆使して周波数1HzのCPU「CHUNGUS 2」を設計したと、YouTuberのsammyuri氏が発表しました。 CHUNGUS 2 - A very powerful 1Hz Minecraft CPU - YouTube CHUNGUS 2は「Computational Humongous Unconventional Number and Graphics Unit by Sammyuri 2」の略称。 CHUNGUS 2はクロック1Hzで10tickの16bitCPUで、3オペランド命令のRISCアーキテク

                                                    マインクラフトで1HzのCPUを作り上げた猛者が登場、テトリスや関数のグラフ化も可能
                                                  • はじめに - Rustで始める自作組込みOS入門

                                                    この本は組込みシステムやOSのような低レイヤーシステムの開発経験がないプログラマーのような人が、自作OSをはじめるため解説本です。 著者自身、本職はウェブプログラマーですが、趣味で組込みOSの自作をしています。この本はそのノウハウ集のようなものです。 このような低レイヤーシステムはC言語で開発されることが多いのですが、今回はRustを使います。 RustはC言語と比較して、様々なモダンな機能やツール郡を取り揃えている上に、C言語の長所である直接のメモリ制御ができ、パフォーマンスも高いとして組込みシステム開発でつかえるとして注目されています。 Rustそのもの解説は控えめですが、低レイヤーシステム開発特有のテクニックは必要に応じて解説します。 想定読者 ある程度はプログラミング経験があることを前提としています。 また、レジスタやメモリなどコンピュータアーキテクチャに関する基礎用語の説明もちゃ

                                                    • jqのGo実装 gojq を作りました! ― スタックマシン型インタープリタによるイテレータセマンティクスの実装 - プログラムモグモグ

                                                      jqはとても便利なコマンドです。 JSONを返すAPIを実装するときや、SaaSのAPIから特定の情報を抜き出してシェル変数に代入するときなど、web開発や運用には欠かせないツールとなっています。 しかし、私にとってjqのクエリを一発で書くのは容易ではなく、思い通りの出力が得られないことがよくありました。 難しいエラーメッセージに悩まされて、jqで書くのを諦めて別の言語で書き直すこともありました。 jqの十八番と思える場面で使いこなせないのは、なかなか悔しいものがあります。 ツールを使うのが難しいなら、同じものを作ってしまえばよいのです。 jqの全ての機能を実装する jqを言語としてきちんと書けるようになる jqを完全に理解する jqの全ての機能を自分で実装してしまえば、jqがどういうものか、クエリがどのように処理されるのか、詳しくなれるはずです。 jqを得意な言語と言えるようになって、ク

                                                        jqのGo実装 gojq を作りました! ― スタックマシン型インタープリタによるイテレータセマンティクスの実装 - プログラムモグモグ
                                                      • 2で割ることと3で割ること - Qiita

                                                        この記事でお題にするのはCPUレジスタ上の整数除算です。以下、単に除算とも書きます。 除算は非常に高コストな演算なため、コンパイラは最適化によって、できるだけ整数除算を別の計算に置き換えようとします。 最適化ができる場合の一つとして、割る数が定数である場合があります。頭のいいコンパイラは、除算を乗算とビットシフト等を駆使した演算に置き換えます。この記事では、そういった最適化の背景にある理屈を部分的に解説します。 計算機環境としてはモダンなx86 CPUを仮定します。したがってレジスタは32/64ビットであり、負数は2の補数表現になっています。ある程度は他の命令セットでも通用する話になっているかもしれません。 そもそも整数の除算とは プログラミングにおける整数の除算の定義について確認します。整数$n$を整数$d$で割るとき $$ n = q \times d + r $$ が成り立つように除

                                                          2で割ることと3で割ること - Qiita
                                                        • 本当に私の人生を変えた技術書10選 - FPGA開発日記

                                                          年末ですね。年末に技術っぽいことを書いても誰も見ていないので、どうでもいいことを書こうと思います。 皆さん技術書は好きですか?好きですよね。読みもしないのに技術書典なんかに大挙して押しかけて、結局積読が増えていく。積んでいるとなんか落ち着くのかもしれません。 私は現在ハードウェア関連の技術者として働いているわけですが、短い人生の中で読んだ技術書の中で、本当に私の人生を変えてしまった技術書を思い出しながら紹介してみたいと思います。 あらかじめ断っておきますが、「名著」や「良い本」を紹介するのではなく、あくまでも私の人生を変えた本です。逆にいうと、あまり名著は出てきません。名著の紹介はすでにいろんなところでやられているので、そちらを見ていただければ。 1. 図解で分かるPCアーキテクチャのすべて(初版) 〈最新〉図解でわかる PCアーキテクチャのすべて 作者:小泉 修出版社/メーカー: 日本実

                                                            本当に私の人生を変えた技術書10選 - FPGA開発日記
                                                          • x86-64機械語入門

                                                            この記事はx86-64の機械語を書けるようになるためのガイドとなることを目指します。読者はアセンブリー言語について既にある程度知っていることを想定します。 情報源 x86-64の機械語のオフィシャルなガイドはIntelのSoftware Developer ManualまたはAMDのAMD64 Architecture Programmer's Manualです。 Intel SDM: Intel® 64 and IA-32 Architectures Software Developer Manuals AMD64 Architecture Programmer's Manual, Volumes 1-5 このほか、Cから呼び出される関数を定義したり、Cの関数を呼び出すためには、呼び出し規約の知識も必要です。使用される呼び出し規約はOSに依存し、Unix系では主にSystem V ABI

                                                              x86-64機械語入門
                                                            • 『プログラマーのためのCPU入門 ― CPUは如何にしてソフトウェアを高速に実行するか』 発売のお知らせ

                                                              ご来店いただきありがとうございます。新刊『プログラマーのためのCPU入門 ― CPUは如何にしてソフトウェアを高速に実行するのか』発売開始のお知らせです。 ほぼすべてのソフトウェア開発者がお世話になるコンピューターの最重要パーツ、CPU。「演算をする」というざっくりした役割は知っているし、もう少し踏み込んでレジスタやアセンブリ命令、あるいはさらに踏み込んで、NAND/OR/NOT回路による演算装置といった原理を勉強したことがあるプログラマーの方も少なくないと思います。 しかし、現代のソフトウェアにおいてCPUがもたらす大きな価値は、その原理のみならず、むしろその尋常ならざる高速さにこそあるといっても過言ではないでしょう。 CPUの性能は、半導体技術の進化やハードウェア構成の妙といった物理的な要因のみによって決まるわけではありません。その裏には、パイプライン化やスーパースカラ化、さらには分岐

                                                                『プログラマーのためのCPU入門 ― CPUは如何にしてソフトウェアを高速に実行するか』 発売のお知らせ
                                                              • 1950年生まれの人生(テクノロジー変わりすぎ問題)

                                                                仮定の話、1950年生まれだとすると今年74歳 変更履歴:皆が体感より遅いと言うので、一般化を普及率50%にしました。都会は-3年、田舎は+3年くらいでちょうどいいかも(2024/01/20 8:41) 1960年 10歳 白黒テレビが一般化(一般化=50%) 1962年 12歳 洗濯機が一般化 1962年 12歳 自宅のお風呂が一般化 1965年 15歳 冷蔵庫が一般化 1960年代 10代 年賀状が隆盛 1967年 17歳 掃除機が一般化 1969年 19歳 大型店舗でのレジスターが一般的に 1970年 20歳 プッシュホン、キャッチホンなど始まる 1971年 21歳 カップヌードルが登場 1971年 21歳 カラーテレビが一般化 1972年 22歳 電卓が爆発的に売れ始める 1972年 22歳 炊飯器が一般化 1970年代 20代 アナログレコードが最盛期 1970年代 20代 自家

                                                                  1950年生まれの人生(テクノロジー変わりすぎ問題)
                                                                • 脱税の「鬼滅の刃」制作会社社長が本人尋問で“驚きの発言” アニメ業界の構造的問題が明らかに(デイリー新潮) - Yahoo!ニュース

                                                                  「2020年6月に脱税容疑で告発されて以降、新規のアニメ制作の仕事を受けておらず、それ以前に受けた仕事を続けています。(告発後に)経営面の問題はなく、オファーは多数いただいていますが、最初から赤字と分かっているアニメの仕事を受けるのはもうやめました」 【写真】本当に「鬼滅の刃」を造ってしまった刀鍛冶 日本映画の興行記録を塗り替えるメガヒットを記録した、2020年公開のアニメーション映画『劇場版「鬼滅の刃」無限列車編』。その制作会社であるユーフォーテーブル有限会社(登記上の本店は東京都中野区、実質本店は同杉並区)と、同社創業者で社長の近藤光被告(52)が法人税法違反などの罪に問われた脱税事件で、東京地裁は12月10日、被告に懲役1年8カ月、執行猶予3年、同社に罰金3000万円の有罪判決を言い渡した。 これに先立つ11月1日の第2回公判の本人尋問で近藤被告から飛び出したのが、冒頭の衝撃的発言で

                                                                    脱税の「鬼滅の刃」制作会社社長が本人尋問で“驚きの発言” アニメ業界の構造的問題が明らかに(デイリー新潮) - Yahoo!ニュース
                                                                  • Rustでファミコンとスーパーファミコンのエミュレーターを書いた

                                                                    ゲームボーイエミュレーター、ゲームボーイアドバンスエミュレーターに続いて、Rustでファミコンエミュレーター"Sabicom"とスーパーファミコンエミュレーター"Super Sabicom"を書きました。 名前にRustっぽさを出してみました。 前回作ったマルチエミュレーターMERUのコアとして実装したので、ステートセーブや巻き戻しなどの機能も使えます。MERUの対応コアはこれで4つになりました。 こちらからWindowsとLinuxのプリコンパイルバイナリがダウンロードできるようになっています。 他のプラットフォームおよびソースコードからコンパイルする場合は ファミコンとスーパーファミコンどちらも一通り本体の機能は実装してあるつもりです。スーパーファミコンは割と細かいところまでちゃんと動くようにしてあるはずなので、動かなかったり表示がおかしかったりするソフトがあればバグですので、ぜひご報

                                                                      Rustでファミコンとスーパーファミコンのエミュレーターを書いた
                                                                    • 6502 アセンブラ プログラミング入門 / 新山 祐介

                                                                      概要: この記事では 8ビット CPU 6502 を 使ったアセンブラプログラミングを紹介する。 「アセンブラプログラミング」とは、プログラミング言語を使わず、 CPU のネイティブ命令列を直接書くプログラミング方法である。 6502 はいまから約50年前に開発され、 ファミコンや Apple II など多くのハードウェアで利用された。 しかし、その原理は今日のコンピュータとほとんど変わっていない。 ここでは 6502 のプログラミングを通して、コンピュータの本質を学ぶ。 6502 プログラミング入門 コンピュータの原理 レジスタとは 16進数とは 6502エミュレータを使った演習 メモリに値を格納する メモリの値を増加させながらループする アセンブラを使ったプログラミング 最初のプログラム (改良版) アセンブラを使ったジャンプ命令 差分アドレッシング 条件分岐 条件分岐 その2 16ビ

                                                                      • 「NAND素子ひとつからCPUを組み上げろ」など理論回路の基礎から応用まで簡単操作で学習できるPCゲーム「Turing Complete」をプレイしてみた

                                                                        コンピューターの理論を学ぼうと思っても、複雑な専門書を読む必要があったり、講習を受ける必要があったりと、高いハードルに圧倒されて諦めてしまった経験がある人は多いはず。そんなコンピューターの理論やプログラミングの基礎を手軽に学べるゲームが「Turing Complete」です。今回はTuring Completeがどんなゲームか気になったので、実際にプレイしてみました。 Steam:Turing Complete https://store.steampowered.com/app/1444480/Turing_Complete/ Turing CompleteはSteam上で配信されており、上記リンクから購入可能です。販売価格は2050円。以下は起動した画面で、「Play Campaign」をクリックしてプレイを開始します。 Turing Completeは「宇宙人にさらわれた主人公が生存

                                                                          「NAND素子ひとつからCPUを組み上げろ」など理論回路の基礎から応用まで簡単操作で学習できるPCゲーム「Turing Complete」をプレイしてみた
                                                                        • フルスクラッチから作って理解するQEMU (Rust編) - FPGA開発日記

                                                                          モチベーション なぜRustを選んだか? 私はQEMUは「アーキテクチャエミュレーション界のLLVM」だと思っている QEMUが高速な理由:TCG Binary Translation ゲスト命令(RISC-V) → TCG → ホスト命令(x86)の処理をRustで作ろう RISC-Vの命令をフェッチしてデコードする RISC-Vの命令をTCGに変換する TCGをx86に変換する 実装結果 Binary Translation実行を高速化するための様々なテクニック BasicBlock分まで複数命令をまとめて変換 TCG Block Chainingの実装 評価結果 TB Lookup and Jumpの実装 評価結果 まだ完成していないところ 一部の最適化はまだ未実装となっている ゲストアーキテクチャがx86のみとなっている。TCGによる複数プラットフォーム対応として、まずは環境のそろ

                                                                            フルスクラッチから作って理解するQEMU (Rust編) - FPGA開発日記
                                                                          • 日本のゲーム会社 樹形図|スベ

                                                                            そこそこまとめました。 基本的にはそれぞれの創業社長が直前の所属を参照した形。 設立順にしたり合併先やIP譲渡先を書いたりすると より有意義だと思うけど、力尽きたので今はここまで。 〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜 電友社 ┃ スクウェア ┣ゲームデザイナーズスタジオ ┣サクノス ┃┣ノーストリリア ┃┗ノーチラス ┃ ┗スタジオ ワイルドローズ ┣ポンスビック ┣K2 ┃┣クロガネ ┃┗エスピーアーツ ┣モノリスソフト ┣ネイヴ ┣フォレストエンターテイメント ┣ブラウニーブラウン ┃┣1UPスタジオ ┃┣福福 ┃┣さよならおやすみ ┃┗ブラウニーズ ┣ミストウォーカー ┃┗KENEI DESIGN ┃ スクウェア・エニックス ┣Luminous Productions ┃┗JP GAMES ┣スクウェア・エニックス モバイルスタジオ ┃┗スタジオセム ┣Tokyo RPG Fact

                                                                              日本のゲーム会社 樹形図|スベ
                                                                            • リモートでアメリカの大学院に通い始めた - k0kubun's blog

                                                                              今年春に出願、夏に合格して秋学期からオンラインのコンピュータサイエンス修士コースで勉強している。ちょうど秋学期が終わって成績が返ってきたので、どういう感じだったか書いておく。 I've been officially admitted to Georgia Tech's OMSCS (Online Master of Computer Science). I'm excited for being a student again. I chose the online course to take it without quitting my job, but due to COVID-19 it's probably not that different from other people's experience.— k0kubun (@k0kubun) July 31, 2020 ど

                                                                                リモートでアメリカの大学院に通い始めた - k0kubun's blog
                                                                              • 雑誌「幼稚園」の付録にほぼ実物大の「こうしゅうでんわ」 NTT東日本が協力 テレカ付き

                                                                                公衆電話は非常時の代替インフラ ピークの1984年には日本全国に93万4903台もあった公衆電話だが、携帯電話の普及によって利用者は減少。現在は災害発生時などの緊急連絡手段として、およそ10万9000台(23年9月時点)を維持している状況だ。 こうした事情もあり、若年層を中心に公衆電話の使い方を知らない人も増えた。ITツールの比較サイト「STRATE」を運営するSheepdog(東京都品川区)が22年6月に発表した調査結果では、公衆電話を使ったことがないユーザーが10代後半で35.3%、20代前半でも25.8%に達した。 22年7月に発生したauの通信障害の際には、受話器をとる前にお金を入れる人が続出。Twitter(当時、現在はX)で「まず、受話器を取れ!!金はそれからだ」と使い方を指南するツイートが広く拡散した。 関連記事 「公衆電話」ますます見つけにくく 数年後には現在の3分の1に

                                                                                  雑誌「幼稚園」の付録にほぼ実物大の「こうしゅうでんわ」 NTT東日本が協力 テレカ付き
                                                                                • 通気口は通気のために設置されているに決まってるだろ

                                                                                  「知らなかった!」 部屋の壁にある『通気口』はなんのためにあるの? – grape [グレイプ] そもそも通気口じゃない給気口だ 外の空気を部屋の中に給気する穴だ 対して換気扇が付いている方は排気口だ 24時間換気はシックハウス症候群対策だ部屋の気密性が高くなりすぎないようにするためなんて理由じゃない だいたいなんなんだ?「気密性が高くなりすぎないように常時家に穴を開けましょう」って考えは レンジフードつけたらどんな家でも負圧になるマンションの気密性が高いとかじゃない ボロい賃貸だって戸建てだってレンジフードつけたらドアが重くなる 気密性高い家はレンジフードつけなくてもドアが重い 負圧を防ぐ設備は差圧式給気口だ普段は閉じている給気口が負圧になると開く設備だ というとなんだか凄そうに感じるかもしれないが多くの商品の仕組みは単純で弱いバネで給気口を閉じているだけだ バネの力が負圧に負けると給気

                                                                                    通気口は通気のために設置されているに決まってるだろ