はてなブックマークアプリ

サクサク読めて、
アプリ限定の機能も多数!

アプリで開く

はてなブックマーク

  • はてなブックマークって?
  • アプリ・拡張の紹介
  • ユーザー登録
  • ログイン
  • Hatena

はてなブックマーク

トップへ戻る

  • 総合
    • 人気
    • 新着
    • IT
    • 最新ガジェット
    • 自然科学
    • 経済・金融
    • おもしろ
    • マンガ
    • ゲーム
    • はてなブログ(総合)
  • 一般
    • 人気
    • 新着
    • 社会ニュース
    • 地域
    • 国際
    • 天気
    • グルメ
    • 映画・音楽
    • スポーツ
    • はてな匿名ダイアリー
    • はてなブログ(一般)
  • 世の中
    • 人気
    • 新着
    • 新型コロナウイルス
    • 働き方
    • 生き方
    • 地域
    • 医療・ヘルス
    • 教育
    • はてな匿名ダイアリー
    • はてなブログ(世の中)
  • 政治と経済
    • 人気
    • 新着
    • 政治
    • 経済・金融
    • 企業
    • 仕事・就職
    • マーケット
    • 国際
    • はてなブログ(政治と経済)
  • 暮らし
    • 人気
    • 新着
    • カルチャー・ライフスタイル
    • ファッション
    • 運動・エクササイズ
    • 結婚・子育て
    • 住まい
    • グルメ
    • 相続
    • はてなブログ(暮らし)
    • 掃除・整理整頓
    • 雑貨
    • 買ってよかったもの
    • 旅行
    • アウトドア
    • 趣味
  • 学び
    • 人気
    • 新着
    • 人文科学
    • 社会科学
    • 自然科学
    • 語学
    • ビジネス・経営学
    • デザイン
    • 法律
    • 本・書評
    • 将棋・囲碁
    • はてなブログ(学び)
  • テクノロジー
    • 人気
    • 新着
    • IT
    • セキュリティ技術
    • はてなブログ(テクノロジー)
    • AI・機械学習
    • プログラミング
    • エンジニア
  • おもしろ
    • 人気
    • 新着
    • まとめ
    • ネタ
    • おもしろ
    • これはすごい
    • かわいい
    • 雑学
    • 癒やし
    • はてなブログ(おもしろ)
  • エンタメ
    • 人気
    • 新着
    • スポーツ
    • 映画
    • 音楽
    • アイドル
    • 芸能
    • お笑い
    • サッカー
    • 話題の動画
    • はてなブログ(エンタメ)
  • アニメとゲーム
    • 人気
    • 新着
    • マンガ
    • Webマンガ
    • ゲーム
    • 任天堂
    • PlayStation
    • アニメ
    • バーチャルYouTuber
    • オタクカルチャー
    • はてなブログ(アニメとゲーム)
    • はてなブログ(ゲーム)
  • おすすめ

    WWDC25

『zenn.dev』

  • 人気
  • 新着
  • すべて
  • Rustのmatchのネストが深くなりすぎたときの一工夫

    3 users

    zenn.dev/tetsu_koba

    最近またRustを勉強し始めています。 気がついたらmatchのネストが深くなりすぎていた Resultの処理をするのにmatchが便利です。 でもOkのときに続きの処理を書いていったら、ネストが深くなりすぎてしまいました。 こんな感じ。 loop { match reader.read_ivf_frame_header() { Ok(frame_header) => { let len: usize = frame_header.frame_size as _; match reader.read_frame(&mut frame_buffer[..len]) { Ok(_) => {} Err(ref e) if e.kind() == ErrorKind::UnexpectedEof => break, Err(e) => { eprintln!("Error: {e:?}"); b

    • テクノロジー
    • 2023/08/24 21:06
    • Zigで配列をなめるときにはできるだけwhileでなくてforを使いましょうという話

      3 users

      zenn.dev/tetsu_koba

      まあ、当たり前のことなんですけどね。 前回の記事のプログラムを書き直した 前回の記事のMJPEGからJPEGを切り出すプログラムにはバグがありました。脚注にも書きましたが、それは読み込んだバッファの最後のバイトが0xffで、次のバッファの先頭が0xd9のときに、JPEGの終わりを見逃してしまうというものです。 なので、ちゃんと4つの状態を遷移するように書き直しました。 const std = @import("std"); const fs = std.fs; const io = std.io; const os = std.os; const BUF_SIZE = 64 * 1024; const OUTPUT_FILENAME_PATTERN = "out{d:0>4}.jpg"; const JPEG_START0 = 0xff; const JPEG_START1 = 0xd8;

      • テクノロジー
      • 2023/06/15 23:15
      • performance
      • CからZigに書き直して激遅になったと思ったら最適化オプションの変更で改善した話

        20 users

        zenn.dev/tetsu_koba

        メモとして残します。 MJPEGを入力してJPEGに切り出すプログラム ChatGPT-4 に作らせました。 USBカメラから入力された生のmjpegの映像データを標準入力から受けて、jpegの静止画に切り出してファイルに保存するプログラムをC言語で書いてください。書き出すファイル名はout%03d.jpg という感じでフレーム番号を含めてください。ソースコード内のコメントは英語で書いてください。 最初のものはffmpegやらたくさん外部のライブラリに依存するコードを出してきたので、もっとシンプルなやつにしてくれとお願いしました。できたものはこれ。[1] #include <stdio.h> #include <fcntl.h> #include <unistd.h> #define BUF_SIZE 1024 #define OUTPUT_FILENAME_PATTERN "out%03

        • テクノロジー
        • 2023/06/15 14:20
        • zig
        • performance
        • あとで読む
        • 「入門モダンLinux」を読みました

          5 users

          zenn.dev/tetsu_koba

          「入門モダンLinux」 こちらのオンラインイベントで、著者の方の話を聞き、これは買おうと思いました。 オライリーのサイトから電子書籍を購入しました。 読みながらメモをツイート PDF版をダウンロードして読んでいます。 それから電子版だと、本文のURLのところはそれをクリックするだけでブラウザが開いで見ることができるので便利です。 感想 UNIXの基本的な作法については1980年代に「UNIXプログラミング環境」という水色の表紙でちょっと厚い本を何度も読み返して身につけました。それ以降の新しいことはその都度キャッチアップしていたのですが、この本はそういう基本的なところも網羅して、現代の(モダンな)Linuxを知るのにちょうどよかったです。 操作はコマンドラインで行うことに一貫しています。私のようにラズパイやクラウドのサーバにsshでログインして使用している人にはぴったりです。便利なコマンド

          • テクノロジー
          • 2023/05/18 22:00
          • tech
          • 本
          • web
          • 昔のFPUはCPUと別チップだったという話

            4 users

            zenn.dev/tetsu_koba

            「CPUで浮動小数点演算はFPUで行います。」と書かれていたとして、これをFPUって何?と思う若者がいるかもしれません。FPU( Floating-Point Unit)は昔はCPUとは別のチップになっていて、FPUコプロセッサと呼ばれていました。 組み込み用のマイクロコントローラを除いては、現代ではFPUはCPUに内蔵されているが普通です。FPUコプロセッサのチップはもうすっかり見なくなりました。 以下、記憶の範囲内で書いています。不正確なところがあったらごめんなさい。 パソコン向けCPUでの話 パソコン用のCPUではFPUが内蔵されたのはintelのCPUで言うと80486からです。それまでのパソコンのマザーボードにはFPUを挿すためソケットが用意されていて、必要な人は別途FPUコプロサッサを買って取り付けるということをしていました。 その頃に、FPUコプロサッサをつけると〇〇のアプリ

            • テクノロジー
            • 2023/02/27 16:31
            • Linuxの識者がよく使うstrace(1)やopen(2)の数字の意味は?

              11 users

              zenn.dev/tetsu_koba

              いちいち説明されないので知らない人もいるかもいるかもしれません。 Linuxの話をしていると識者が strace(1) とかopen(2)とか後ろに(数字)をつけることがあります。この数字はマニュアルの章の番号です。1がコマンド、2がシステムコール、3がライブラリです。コマンドとライブラリで名前が被っているものがあるために区別します。 例えば、printf(1)はコマンドでprintf(3)はライブラリです。それぞれのman を見るためには章番号を明示して、 man 1 printf や man 3 printf とします。 man man としてmanコマンドのマニュアルを見ると、全ての章の説明があります。 The table below shows the section numbers of the manual followed by the types of pages they

              • テクノロジー
              • 2023/02/19 18:03
              • Linux
              • techfeed
              • Tech
              • 言葉
              • Linuxでスレッドのコンテキスト切り替えのたびにFPUのレジスタはメモリに保存されるのか

                3 users

                zenn.dev/tetsu_koba

                Linuxでスレッドのコンテキスト切り替えのたびにFPUのレジスタはメモリに保存されるのか? シングルコアプロセッサしかなかった時代とマルチコアの時代で挙動が変わっています。 chatGPTに聞いてみた 間違えたことを言ったと気がついたら、すぐに謝ってくれるのはいい奴ですね、 スクリーンショットでは見にくいので、実際の内容を以下に貼り付けました。 In Linux kernel context switch does it save all FPU regsters each time? In Linux, the kernel does not save all floating-point unit (FPU) registers every time a context switch occurs. This is because saving and restoring the F

                • テクノロジー
                • 2023/02/14 23:32
                • linux
                • 「プログラマーのための CPU 入門」を読みました

                  16 users

                  zenn.dev/tetsu_koba

                  本書の構成 第1章。「ふむふむ、このレベルから説明してくれるのか」 第2章の途中からギアアップしてきて、「スーパースカラ+スーパーパイプライン化」で現代のCPUの規模感のようなものを思い知ることになります。順調にCPUの中を流れる命令列はまるでナイアガラの滝のよう。 でもちょっとしたことでその流れは止まってしまい、そのペナルティの大きさを実感することになります。 第3章から第8章で、CPUの処理の流れを止めるさまざまな要因が語られていきます。 第9章は「マルチプロセッサ」。一段と複雑になる要因ですが、現代のCPUでは外せないもの。 第10章から第12章で、共有メモリ型マルチプロセッサでのマルチスレッドをするときの注意点が語られていきます。 第13章がまとめ。それ以降は付録です。 私としては第9章の「マルチプロセッサ」以降が非常に勉強になりました。ぼんやりとしかわかってなかったことがこれでク

                  • テクノロジー
                  • 2023/01/28 21:03
                  • CPU
                  • コンピュータ
                  • 開発
                  • あとで読む
                  • UEFIの歴史の雑なまとめとItaniumの思い出

                    5 users

                    zenn.dev/tetsu_koba

                    前回の記事を書いたら、ありがたいことに色々な情報を教えてもらうことができました。「まず情報を出すと情報を得られる」"give & take" の典型ですね。 UEFIの雑なまとめ IntelとHPが共同で開発していた次世代64bit CPUのItanium向けのブートローダーとしてMicrosoftを巻き込んで開発されたのがEFI。 EFIはアーキテクチャには依存しないように設計されていた。 EFI v1.x はIntelに所有権があったが、Unified EFI Forumにそれを移管し、v2.x にするとともにUEFIと改名した。 UEFIはx86_64, aarch64などで採用され、MIPS, RISC-Vもそれに続くと思われている。 だいたいWikipediaに書いてある。 @oruminさん 「UEFI の reference のアプリケーション開発 SDK である EDK2

                    • テクノロジー
                    • 2023/01/28 11:48
                    • UEFIから起動するイメージの先頭が"MZ"である歴史的理由

                      6 users

                      zenn.dev/tetsu_koba

                      RISC-Vのカーネルイメージのエントリーポイント kernelvmのrisc-vのチャネルで「riscv環境におけるlinuxのカーネルがロードされた直後からどう動くのかを知りたい。どこのコードから読めばよいか」という質問があり、あれこれ調べるうちにここだということが判明しました。 #ifdef CONFIG_EFI /* * This instruction decodes to "MZ" ASCII required by UEFI. */ c.li s4,-13 j _start_kernel どうもEFIで起動するイメージの先頭はASCIIコードで"MZ"となっている必要があるようです。 "EFI MZ" でいろいろ検索 どうやら、EFIで起動するイメージは(EFI Application)はPE(Portable Executable)というWindowsの実行形式と同じヘッダ

                      • テクノロジー
                      • 2023/01/27 11:18
                      • 5分でざっと理解するZig言語

                        65 users

                        zenn.dev/tetsu_koba

                        Zig言語の話をするときに、初めての人にざっと読んでもらうためのページ。 Zig言語とは 静的型付きのコンパイル言語。C言語と同じ立ち位置。 本家 ziglang.org のoverview 日本語 Wikipedia Wikipedia 英語版 ドキュメント 標準ライブラリのリファレンス 現在の状況 まだ開発中で正式リリースには至っていない。なのでまだ破壊的変更はあり得る。 記事を書いた時点の安定版タグは0.10.0。 公式なパッケージマネージャはまだない。[1](非公式なものは複数存在する) ** 2023/08/15 追記 ** 安定版0.11.0のリリースとともに公式版パッケージマネージャが利用可能になりました。 私が考えたキャッチコピー 「C言語が誕生したのは1972年。Zig言語はそれを2020年代の知見で再構成するもの。50年分の進化!!」 "C but with the p

                        • テクノロジー
                        • 2023/01/11 15:46
                        • zig
                        • あとで読む
                        • Programming
                        • 言語のスレッド実装の雑な話(Green threadからGoのgoroutineまで)

                          143 users

                          zenn.dev/tetsu_koba

                          Twitterで "green thread" という単語をたまたま見かけたので、知っていることをつぶやいたよ。 Green thread 言語のスレッドとOSのスレッドの関係 N:1 mapping 言語のスレッドの全てがひとつのOSのスレッドの上で実行されるもの。その代表が上記のJavaのgreen thread。 OSのシステムコールを呼ぶときには必ずnonblockingモードを使い、EAGAIN または EWOULDBLOCKが返ってきたときには他のスレッドの実行権に譲るようにする必要がある。うっかりシステムコールでブロックされてしまうと、全部のスレッドが巻き添えになって動けなくなる。 スレッドの生成やコンテキストの切り替えは軽い。しかし、マルチコアを生かすことができないため、シングルコアの環境でのみ使用される。 1:1 mapping OSのスレッドと言語のスレッドが1対1対応

                          • テクノロジー
                          • 2023/01/09 18:50
                          • Go
                          • golang
                          • 並列処理
                          • Thread
                          • スレッド
                          • あとで読む
                          • goroutine
                          • システム
                          • java
                          • RISC-Vが面白くなってきたぞ

                            213 users

                            zenn.dev/tetsu_koba

                            (雑に書いている戯言であることを最初に断っておきます。あくまで個人の感想です。) 実は私は今までRISC-Vには懐疑的だったのですが、最近の状況を知って考えを改めました。 RISC-Vとは RISC-V(リスク ファイブ)とはオープンソースライセンスで提供されている命令セットアーキテクチャ (ISA)です。 研究にも使うことができるし、実際に多くの半導体メーカーがこの仕様に基づいたCPUを開発、出荷しています。 多くのオープンソースのOSやツールチェインもすでにRISC-Vに対応しています。 私が懐疑的だった理由 RISC-Vはオープンソースであるゆえ、自由に拡張することができます。そのため様々な派製品が登場しています。シンプルな組み込み用のマイクロコントローラからパソコン用、サーバ用、HPC用など広い分野に渡ります。 かつてRISCの考え方にもとづいて開発されたMIPSというCPUがあり

                            • テクノロジー
                            • 2023/01/06 13:46
                            • RISC-V
                            • CPU
                            • あとで読む
                            • ARM
                            • 半導体
                            • 中国
                            • NVIDIA
                            • Hardware
                            • Zig言語のドキュメントを見て「なるほど!」と思ったところ

                              48 users

                              zenn.dev/tetsu_koba

                              前回の続き。 ちょっとZig言語が面白そうです。まだあまりzigでコードは書いていないのですが、ドキュメントやソースコードをながめて思ったことを書き散らかしてみます。 (他の人がすでに書いていることはなるべく書かない) オブジェクト指向でなくてデータ指向 C言語に後にC言語っぽい文法の言語はたくさん出てきました。C++, Java, C#, Go, Rustなど。 C++やJavaはオブジェクト指向の考え方を取り込んだもので、GoやRustはいきすぎたオブジェクト指向を反省して、interface とか trait とか良いところだけを抽出した感じになっています。(個人の感想です) Zigには純粋にC言語からの改善をしていて、オブジェクト指向の香りがあまりしません。 むしろ「データ指向設計」(Data-Oriented Design)が意識されているらしいです。 紹介してもらったこの動画が

                              • テクノロジー
                              • 2022/07/15 18:49
                              • zig
                              • あとで読む
                              • language

                              このページはまだ
                              ブックマークされていません

                              このページを最初にブックマークしてみませんか?

                              『zenn.dev』の新着エントリーを見る

                              キーボードショートカット一覧

                              j次のブックマーク

                              k前のブックマーク

                              lあとで読む

                              eコメント一覧を開く

                              oページを開く

                              はてなブックマーク

                              • 総合
                              • 一般
                              • 世の中
                              • 政治と経済
                              • 暮らし
                              • 学び
                              • テクノロジー
                              • エンタメ
                              • アニメとゲーム
                              • おもしろ
                              • アプリ・拡張機能
                              • 開発ブログ
                              • ヘルプ
                              • お問い合わせ
                              • ガイドライン
                              • 利用規約
                              • プライバシーポリシー
                              • 利用者情報の外部送信について
                              • ガイドライン
                              • 利用規約
                              • プライバシーポリシー
                              • 利用者情報の外部送信について

                              公式Twitter

                              • 公式アカウント
                              • ホットエントリー

                              はてなのサービス

                              • はてなブログ
                              • はてなブログPro
                              • 人力検索はてな
                              • はてなブログ タグ
                              • はてなニュース
                              • ソレドコ
                              • App Storeからダウンロード
                              • Google Playで手に入れよう
                              Copyright © 2005-2025 Hatena. All Rights Reserved.
                              設定を変更しましたx