並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 170件

新着順 人気順

サブルーチンの検索結果1 - 40 件 / 170件

  • Hiroshi Takahashi

    Skip to the content. 機械学習の研究者を目指す人へ 機械学習の研究を行うためには、プログラミングや数学などの前提知識から、サーベイの方法や資料・論文の作成方法まで、幅広い知識が必要になります。本レポジトリは、学生や新社会人を対象に、機械学習の研究を行うにあたって必要になる知識や、それらを学ぶための書籍やWebサイトをまとめたものです。 目次 プログラミングの準備 Pythonを勉強しよう 分かりやすいコードを書けるようになろう 数学の準備 最適化数学を学ぼう 基本的なアルゴリズムとその実践 機械学習の全体像を学ぼう 基本的なアルゴリズムを学ぼう 深層学習の基礎を学ぼう scikit-learnやPyTorchのチュートリアルをやってみよう サーベイの方法 国際会議論文を読もう Google Scholarを活用しよう arXivをチェックしよう スライドの作り方 論文の

    • 7つの設計原則とオブジェクト指向プログラミング - ソフトウェア設計を考える

      設計原則はよい設計をするための指針です。 では、よい設計とはなんでしょうか? もっとも重要なソフトウェア品質は発展性 ソフトウェアの発展性がビジネス価値を生む 発展性をうみだす7つの設計原則 モジュール化 モジュール化の2つのアプローチ 型によるモジュール化 手続き的なモジュール化 関心の分離 関心の4象限 入出力と計算・判断の分離 業務の関心と実装の詳細の分離 もっとも複雑な関心事(ビジネスロジック)の分離を徹底する カプセル化と抽象化 カプセル化 ビジネスロジックのカプセル化 抽象化 データ抽象 ビジネスロジックとデータ抽象 高凝集と疎結合 凝集度 結合度 隠された結合性の問題 定義の一点性 見た目が同じコード 7つの設計原則の学び方 コードの実装例 ドメインオブジェクト設計のガイドライン 実践ガイドとして使える本 設計の考え方を理解するための本 もっとも重要なソフトウェア品質は発展性

        7つの設計原則とオブジェクト指向プログラミング - ソフトウェア設計を考える
      • Nand2Tetris(コンピュータシステムの理論と実装)でCPUからOSまで一気通貫で作るのが最高に楽しかった話 - ( ꒪⌓꒪) ゆるよろ日記

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

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

          はじめに この記事では、メインフレームでは異常時の処理でどのようなことをやっているのか、また、Linuxの異常処理との違いなどについて話してみようと思います。 この記事を書くに至った直接的なきっかけは、とある人からリクエストがあったからです。が、日ごろからメインフレームの異常処理の考え方については、PCサーバーやクラウドによるシステムがメジャーになった現代であっても、参考になることは多いと感じていてはいました。 筆者は今でこそLinux Kernel周りの仕事をしていますが、20年ぐらい前のころはメインフレームのOS開発部隊に配属されていて、メインフレームのとあるコプロセッサのドライバを書いたりしていました。この際、その異常処理における考え方を体験する機会が多々あり、当時のその経験が20年後の現在でも大いに役にたっていると感じていたからです。 そもそもメインフレームは、これまで長年にわたっ

            メインフレームの異常処理 - Qiita
          • 他人を概念(or機能)で把握するので、他人の名前が覚えられない

            他人のことを「経理の人」「困ったときに頼る人」みたいに認識してしまうため、他人の名前が覚えられなくて困っている。 (職場では、相手の首にかかる職員証を視線動かさずに見ることで、何とか対応してる。) というか、そもそも論だが、なんで他人には、私が把握する概念(or機能)に即した名称が付いていないのだろう。 例えば、あの「○○さん」は、本当の名前が「経理の人」だったら、私が個体を認識するのに、なんて便利なことだろう。 私の認識する概念と名称が一致して、非常に覚えやすい。 まあ、そんなことが無いのは当たり前だとわかってはいるんだが。 しかし、そんな(私にとって)機能的でない名前なんて辞めればいいのに、改名すればいいのに、 と、毎日親切にしてもらったりしながらも、心の中ではこっそり腹立だしく思ってたりする。 だって、自分の中のプロトコルとして、他人だってプログラムのように、概念や機能が認識できるよ

              他人を概念(or機能)で把握するので、他人の名前が覚えられない
            • 初学者のための正しいシェルとカーネルの概念 ~ 大学も技術者認定機関も間違いだらけ - Qiita

              なんだろう、嘘つくのやめてもらっていいですか? 大学も技術者認定機関も、いつまで古いまたは間違ったシェルとカーネルの概念を説明し続けるのでしょうか? シェルはカーネルの言葉をユーザーの言葉に翻訳したり、出力結果をユーザーに中継したり、カーネルを防御したりする層ではありません。指定したコマンドを実行するだけのプログラムです。勉強中の学生か代理執筆業者が適当な文献を調べて書いたとしか思えません。そして他人の説明を自分の言葉に置き換えるのが上手い人がおかしな説明をさらに広めています。個人サイトやオンライン学習サイト程度であれば適当なことを書いていても気にも留めませんが、大学や技術者認定機関のような正しいことを書いているに違いないと思えるような所までもが間違ったことを書いているから困ったものです。 みなさんは大学や技術者認定機関が言っていることなら正しいと思いこんでいないでしょうか? そんなことあ

                初学者のための正しいシェルとカーネルの概念 ~ 大学も技術者認定機関も間違いだらけ - Qiita
              • めくるめくLinuxカーネルじゃないLinux実装の世界 - Qiita

                EDIT^7: blink と box86、FEX。 EDIT^6: Unikraft 。 EDIT^5: Tilck 。 EDIT^4: コメント。gVisor はすっかり忘れていました!Linuxを拡張するためにLinuxを実装した良い例だと思います。LINE有りましたね。。 SF.netのCVSはもう死んでしまったので除外にしました。。 OSvのバイナリ互換 はPIEであることが要求なので。。といっても世間的にはもうLinux = Debian/Ubuntu で良いですかね。。表現を調整しました。 EDIT^3: Noah忘れてた! EDIT^2: Cygwinは 下書き段階で削ってしまった 。。 qemuを移植したとき に互換性がイマイチだったので。。特殊fdやprocfsの充実ぶりとかを考えると "かなりLinux" と言って良いとは思うけど、 mmap 等でLinuxとWind

                  めくるめくLinuxカーネルじゃないLinux実装の世界 - Qiita
                • RESTful APIのURI設計(エンドポイント設計) - Qiita

                  RESTful APIのリソース設計で述べた通り、何をリソースとするかを決めたらそのリソースを識別するURIを検討する必要がある。 エンドポイントとは何か エンドポイントとはAPIにアクセスするためのURIのこと。例えば、QiitaのAPIで自分の情報を取得する時のエンドポイントは以下となる。 http://qiita.com/api/v2/users/nagaokakenichi 似たような言葉に「エントリポイント」というものがある。エントリポイントとはプログラムやサブルーチンの実行を開始する場所のこと。 Qiita視点で考えると、 http://qiita.com/api/v2/users/nagaokakenichi を参照されることでプログラムが開始されるので、Qiitaからすると上記URIはエントリポイントとなる。 つまり、エンドポイントはAPIにアクセスする側からの、エントリポ

                    RESTful APIのURI設計(エンドポイント設計) - Qiita
                  • 富岳CPU A64FX用ディープラーニングライブラリの深層 -研究者が語る開発の軌跡- - fltech - 富士通研究所の技術ブログ

                    はじめに こんにちは。富士通研究所プラットフォーム革新PJの川上です。理化学研究所/富士通が共同で開発した新しいスーパーコンピュータ「富岳」が神戸市沖のポートアイランドに納入され、当初の予定を前倒しして今年度から試行運用が開始されました。6月には早速、スパコンランキングで世界初の同時4冠(TOP500, HPCG, HPL-AI, Graph500)を獲得するなど、幸先のよい立ち上がりを見せています。私が所属する部署では富岳を始め、富岳と同じCPUを搭載した弊社製品PRIMEHPC FX1000/700上でディープラーニング(DL)処理を高速に実現する技術の研究開発をしています。今回は、DL処理を高速に実現するoneDNNというライブラリソフトウェアを富岳向けに移植し、開発したソースコードを本家IntelのoneDNNに寄稿し、取り込まれた話をご紹介します。 ディープラーニング処理のソフト

                      富岳CPU A64FX用ディープラーニングライブラリの深層 -研究者が語る開発の軌跡- - fltech - 富士通研究所の技術ブログ
                    • どうして昔の人は8進数でしゃべるのか 「TK80」「Z80」の16進世代が調べたオクタルの歴史

                      Kernel/VM探検隊は、カーネルやVM、およびその他なんでもIT技術の話題ジャンルについて誰でも何でも発表してワイワイ盛り上がろうという会です。takeoka氏は、8進数について調査、発表をしました。 よく使う命令は暗記をしていた16進世代 takeoka氏(以下、takeoka):takeokaです。低レイヤー、長い人生、そして……まぁ、格調が低い話をします。 私は16進世代です。若い人にはわからないかもしれませんが、昔はTK-80しかなく、assembleしてくれる機械なんて持っていなかったので、みんなアセンブラ・ニーモニックでバーっとプログラムを書いて、それが終わったらおもむろに16進コードへの変換を手でやっていました。だからよく使う命令は、基本的に暗記していました。 あれですね。HLレジスタへのimmediateのloadは「21」とか、Aレジスタへのimmediate loa

                        どうして昔の人は8進数でしゃべるのか 「TK80」「Z80」の16進世代が調べたオクタルの歴史
                      • Perlの最新動向 2021 - Mobile Factory Tech Blog

                        こんにちは、エンジニアの id:mp0liiu です。 8月28日(土)の Learn Languages 2021 というイベントの Language Update というセッションで@charsbarさんと一緒に2018年以降のPerl5やPerlコミュニティの最新動向について話してきたので、そのとき話した内容に補足などしつつ記事にしていきたいと思います。 配信アーカイブはこちらから見れます。 時系列 2019/5/22 Perl5.30 リリース 2020/6/20 Perl5.32 リリース 2020/6/24 Perl7の発表 2021/5/21 Perl5.34 リリース Perl5.30 の変更点 正規表現や文字周りの細かい改善などはありますが、正直めぼしい変更点が見られないです。 Perl5.32 の変更点 isa 演算子の実装 値があるクラスのインスタンスもしくはそのサブ

                          Perlの最新動向 2021 - Mobile Factory Tech Blog
                        • また初心者にプログラミングを教える機会があった

                          プログラミングでわからないところがあるので教えてほしいと以下のようなことを聞かれた。 こういうJavaScriptの関数がある。 // valuesは配列 // elementはvaluesの要素型の値 // 配列valuesに値elementと等しい要素があるならばそのインデックスを返す。 // それ以外の場合、-1を返す function find_index( values, element ) { for ( let i = 0 ; i !== values.length ; ++i ) { if ( values[i] === element ) return i ; } return -1 ; } 質問は、「なぜreturn -1にelseはいらないのか」というものであった。 似たような問題に、昔遭遇した気がするが、別人だ。 まずここにelseを書くべき文法はJavaScrip

                          • 令和の時代にPerlに入門する - ハンドルネームの敬称は省略できます

                            こんにちは、id:rokuokunです。 Perlとの出会いは突然やってきます。 いつ求められてもサッと対応できるように、いち早くPerlを書けるようになっておきましょう。 perl --version 今回入門するにあたり使用するバージョンは Perl 5.40.0 です。 インストール作業については割愛しますが、困ったらplenvを使っておけばいいと思います。 ❯ perl --version This is perl 5, version 40, subversion 0 (v5.40.0) built for darwin-2level Copyright 1987-2024, Larry Wall Perl may be copied only under the terms of either the Artistic License or the GNU General Pu

                              令和の時代にPerlに入門する - ハンドルネームの敬称は省略できます
                            • 「料理はアルゴリズムと気づいた」…そうすると「調理中も洗い物はどんどんやれ」が「終わったリソースは早く解放してメモリを空けろ」となり、実践的かつ納得感。

                              hyousuke @hyousuke デバッグと呼んでみてようやっと、料理はアルゴリズムであり、並列性、サブルーチン化、ライブラリの利用、局所最適と全体最適などのプログラミングのテクが役に立つ分野だと気づき始めてきた

                                「料理はアルゴリズムと気づいた」…そうすると「調理中も洗い物はどんどんやれ」が「終わったリソースは早く解放してメモリを空けろ」となり、実践的かつ納得感。
                              • クローラー運用を楽にするためのクラウドサービス比較 - ZOZO TECH BLOG

                                こんにちは!最近気になるニュースはスピノサウルスの尻尾の化石が発見されたこと1な、SRE部エンジニアの塩崎です。ZOZOテクノロジーズの前身となった会社の1つであるVASILYでは数多くのクローラーの開発・運用の担当をしてきました。 今回はその知見を生かして、クローラーを楽に運用するためのクラウドサービスを紹介します。 概要 データ解析を円滑に進めるためには、CSVやWeb APIなどの構造化されたデータが必要です。しかし全てのWebサイトにあるデータが構造化データを提供しているとは限りません。むしろ提供していないケースの方がはるかに多いです。そのため、Webクローラーを作成して構造化されていないWebページを解析し、構造化データを生成する必要があります。 しかし、Webクローラーの運用には数多くの「つらみ」があります。特に大量のWebページを1日1回などの頻度で定期的にクロールする際には

                                  クローラー運用を楽にするためのクラウドサービス比較 - ZOZO TECH BLOG
                                • 家族(プログラマ)が筆不精で返信が遅いことが多いので「とりあえず返り値をくれ」と伝えたらわりとスムーズになった

                                  リンク IT用語辞典 e-Words 戻り値とは - IT用語辞典 戻り値【返り値 / リターン値】とは、プログラム中で呼び出された関数やメソッド、サブルーチンなどが処理を終了する際に、呼び出し元に対して渡す値。これに対し、呼び出し元から関数などに対してパラメータとして渡す値のことは「引数」(ひきすう、argument)という。 3 users リンク IT用語辞典 e-Words Nullとは - IT用語辞典 Null【ヌル】とは、プログラミング言語やデータベースのデータ表現の一種で、何のデータも含まれない状態のこと。言語仕様や文字コードに規定されたヌル文字などを指すこともある。変数やフィールドなどが作られてから一度も値が記録されたことがない、「データが存在しない」特殊な状態を表す。 3 users 47

                                    家族(プログラマ)が筆不精で返信が遅いことが多いので「とりあえず返り値をくれ」と伝えたらわりとスムーズになった
                                  • Reactのメモ化と、メモ化できないケースについて

                                    寒空のなか商戦に駆り出されているゆきだるまのみなさん、ことしもおつかれさまです。 この記事は、Money Forward Engineering Advent Calendar 2021 24日目の記事です。 私は、クラウド会計ソフトの画面をなんとかする仕事をしています。 React や TypeScript を使ってがんばっています。 この記事について この記事では、 React を使う話でたまに出てくる「メモ化」について書きたいと思います。 また、標準で使える useMemo などメモ化のためのフックは便利ですが、使えそうで使えない状況もあるようなので、一緒にここでまとめたいと思います。 新しい技術の話でもなければ、会社での独自の取り組みでもないアドベントカレンダーらしからぬ話ですが、ここ2年くらいずいぶん苦労したわりにあまり欲しい情報の記事がすぐ見つからず、もしかしたら有益かもしれな

                                      Reactのメモ化と、メモ化できないケースについて
                                    • メモリの使い方の理解はプログラマのたしなみ…??😰 - Qiita

                                      はじめに プログラミング学習を始めて1年経過しました。しかし、今までオブジェクト指向の概念から目を背けてきた結果、現在エンジニアとして苦労しているので、書籍「オブジェクト指向でなぜつくるのか」にて学習中です。 その中で、以下のような章がありました。 「メモリの仕組みの理解はプログラマのたしなみ」 これを見て、自分は今までそんなこと意識していなかったのと強く感じたので、今回はこの書籍で書かれていた、一般的なプログラムの動作環境としての最低限の知識を整理しました。 プログラムが動く仕組みを理解する上で重要な概念 コンパイラ方式とインタプリタ方式 プログラムの基本的な実行方式は大きく分けて2つあります。 コンパイラ方式 コンパイラって何? コンパイラは、プログラム全体を読み込んで、それをコンピュータが理解できる形(機械語)に一度に変換するプログラムです。 どういう時に使うの? コンパイラは、プロ

                                        メモリの使い方の理解はプログラマのたしなみ…??😰 - Qiita
                                      • なぜ"電源ON/OFFバグ"は発生するのか? ~ファミコン版ドラゴンクエスト3~:おすすめTASとか - ブロマガ

                                        【電源ON/OFFバグ】を簡潔に言い表すと「りせっとをおさずに でんげんをきると ぼうけんのしょが きえてしまう ばあいがあります!!」というメッセージの表示後に電源をON/OFFすると メモリがグチャグチャになるバグである。 電源ON/OFFバグ後にコントローラのいずれかのボタンを押す、 またはボタンに反応がない場合はリセットボタンを押してから操作をすると 画面がバグった状態で『全滅復帰』に遷移するので、 バグった画面のまま王様に話しかけてセーブした後に リセットをすることで画面が正常化される。 バージョンによる違いFC版DQ3にはいくつかのバージョンがあり、ツルツル無印のガワが初期版で 写真では判別しにくいが右上に薄っすらと刻印があり、無印とA刻印は問題ないが 後期版(ザラザラB刻印)ではこのバグが発生しないことが知られている。 この後期版は初期版と比べてセーブデータが消えにくいとの噂

                                          なぜ"電源ON/OFFバグ"は発生するのか? ~ファミコン版ドラゴンクエスト3~:おすすめTASとか - ブロマガ
                                        • 「アイデアだけでは意味がない、実装されて初めて意味がある」 世界最古のプログラミング言語から学ぶ教訓

                                          プログラミング言語「Ruby」の国内最大のビジネスカンファレンス「RubyWorld Conference」。Rubyの先進的な利用事例や最新の技術動向、開発者教育の状況などの情報を発信することで、「Rubyのエコシステム(生態系)」を知ることができる場として開催します。ここで登壇したのは、Rubyアソシエーション 理事長のまつもとゆきひろ氏。プログラミング言語の過去、歴史から学ぶ教訓について発表しました。全4回。1回目は、「アイデアだけでは十分ではない」について。 Ruby開発のきっかけ まつもとゆきひろ氏:じゃあ、始めます。Rubyを作り始めた記録が残っているんですが、その当時勤めていた会社の先輩にあたる人が、本を書くという話になったんですね。 その時に、彼は『プログラミング言語を作りながら学ぶオブジェクト指向』という本を書くと言ってきたんですね。編集の人と話をしていく中で「どういう企

                                            「アイデアだけでは意味がない、実装されて初めて意味がある」 世界最古のプログラミング言語から学ぶ教訓
                                          • OS開発に必要なArmアーキテクチャとは part.1  実行モデルと割り込み

                                            Arm入門勉強会とは、macOSがArmに移行したこの機にArmアーキテクチャでのプログラミングについて入門するソフトウェアエンジニアのための会です。OS開発に必要なArmの低レイヤーなプログラミングについて、金津穂氏が共有しました。前半はArmの実行モデルと割り込みについて。全2回。 概要と自己紹介 金津穂氏(以下、金津):「AArch64とOS入門」ということで金津が発表いたします。 はじめにですが、「これからArmでOSを自作したい!」という人向けのまとめ資料になります。なので、すでにArmでお仕事している人、とくに組み込み向けだったりとかすでにOS開発とかしている人にとってはもう既知の情報しかない。あと、リファレンスマニュアルを自分で読める人にとっては、それを読んだほうが確実な情報が手に入るんじゃないかなと思います。 Armと題してますけど、基本的にはAArch64だけにします。A

                                              OS開発に必要なArmアーキテクチャとは part.1  実行モデルと割り込み 
                                            • Web配信の技術 ―HTTPキャッシュ・リバースプロキシ・CDNを活用する

                                              この本の概要 HTTPキャッシュ,リバースプロキシ,CDNなどWeb開発で大切な「配信」の技術。 重要な技術ながら,現場では知見のあるエンジニアが少なく,なんとなくで運用されていたり,導入が遅れていたりします。 本書では,HTTPキャッシュの基礎から解説し,一冊でしっかり配信が学べます。 速くて落ちないWebサイト/Webサービス/Web APIの実現はもちろん。キャッシュ事故やセキュリティ上の問題を防ぐのにも役立ちます。 こんな方におすすめ CDNやリバースプロキシの導入に興味のあるアプリケーションエンジニア・インフラエンジニア 配信技術を学びたいインフラエンジニア Webサービスを高速化させたいフロントエンドエンジニア 第1章 はじめに 1.1 本書の対象と目的 1.2 本書の構成 1.3 下準備 第2章 配信の基礎 2.1 配信のとらえ方 2.1.1 配信の根幹 2.2 標準仕様でや

                                                Web配信の技術 ―HTTPキャッシュ・リバースプロキシ・CDNを活用する
                                              • Goアセンブリ入門 - Qiita

                                                この記事は Chapter I: A Primer on Go Assembly を翻訳、加筆したものです。 この記事では以下のような人を想定しています。 Go言語の文法を理解している サブルーチンコール時の一般的なスタックの挙動を理解している 環境 擬似アセンブリ Goコンパイラが出力するアセンブリは、抽象化されたものであり、実際のハードウェアにマッピングされていません。 Goアセンブラはこの擬似アセンブリを対象のハードウェアに沿った機械語に変換します。 Javaのバイトコードのようなものを想像するとわかりやすいかもしれません。 このような中間層を設けることの最大の利点は新しいアーキテクチャに対応するのが楽になることです。 詳細を知りたい場合は、Rob Pike氏著の The Design of the Go Assemblerを見てください。 Goアセンブリを知るためにもっとも重要なこ

                                                  Goアセンブリ入門 - Qiita
                                                • Perl5.36の変更点 - Mobile Factory Tech Blog

                                                  こんにちは、エンジニアの id:mp0liiu です。 少し前の話になりますが、5/28にPerlの最新安定バージョンである5.36がリリースされたので、コミュニティ周りの動向も含めて気になった点についてまとめていこうと思います。 use v5.36 一番影響がある変更は use VERSION の効果が変わったことです。 use v5.34 以前はバージョンチェック、要求されたバージョンで利用可能なすべての機能(featureバンドル)の有効化、strict の有効化を行っていましたが、 use v5.36 からは warnings も有効化されるようになりました。 use v5.36; my $str; say $str; # Use of uninitialized value $str in say at ... 1行だけで strict, warnings, 最新の機能の有効化が

                                                    Perl5.36の変更点 - Mobile Factory Tech Blog
                                                  • Rustで『コンピュータシステムの理論と実装』を演習した

                                                    n番煎じ。 演習問題回答のリポジトリはこれ。ライセンスは本書P.361の記載に則りGPLとしていますが、問題等ありましたらご指摘頂ければ幸いです。 https://github.com/guricerin/nand2tetris いわゆる『nand2tetris』と呼ばれる本。本書独自のHDL(ハードウェア記述言語)を用いて仮想的な回路を作成、回路から仮想的なハードウェアを構築、アセンブラの作成、独自のプログラミング言語処理系の作成と続き、最終的には仮想コンピュータ(以下、Hackコンピュータ)上で簡単なゲームの作成を目指す。 低レイヤといえばRustな感じがあるのでRustで演習問題をこなしたが、実際にRustの出番があるのはアセンブラ作成の6章からで、それまでは本書独自のアセンブリなどを使ってせっせと問題を解く。なので別にRustにぴったりの題材というわけでもなく、むしろテキスト処理・

                                                    • 「プログラマーのためのCPU入門」を買いました - FPGA開発日記

                                                      面白そうなので買ってみました。物理本は送料が意外と高かったので電子書籍版を買いました。 https://www.lambdanote.com/products/cpu プログラマーのためのCPU入門 ― CPUは如何にしてソフトウェアを高速に実行するかwww.lambdanote.com ざっくりと眺めましたが、タイトルに偽りなし、ソフトウェアエンジニアにとって、ハードウェアをどのように理解すればよいか、ということに重きが置かれています。これでハードウェアが書けるようになるというわけではないので、そこは勘違いしないようにしたい。 実際問題、ソフトウェアエンジニアの人たちは、サービスの速度向上を図りたいとき、どのようなアプローチをとっているのだろう?というのは興味があるところです。まさかフロントエンドエンジニアが「このサブルーチンはこういう命令に変換されるから...」ということを考えてプログ

                                                        「プログラマーのためのCPU入門」を買いました - FPGA開発日記
                                                      • 生きているのならシェルスクリプトにだってなってみせる、そうPerlならね - Sexually Knowing

                                                        シェルスクリプトを書くのをやめる - blog.8-p.info これを見て: 夢の可能性が高くなってきたんですが、Perlのプラグマかなにかで、シェルスクリプトと混在できる……というか、存在しないサブルーチン呼び出しを外部コマンド呼び出しにするやつありませんでしたっけ— aereal / 青木華絵 (@aereal) 2021年9月16日 まじだ... https://t.co/IF6SyBR4o8— Kazuyoshi Kato (@kzys) 2021年9月16日 Shell - run shell commands transparently within perl - metacpan.org use Shell qw(cat ps cp); $passwd = cat('</etc/passwd'); @pslines = ps('-ww'), cp("/etc/passwd"

                                                          生きているのならシェルスクリプトにだってなってみせる、そうPerlならね - Sexually Knowing
                                                        • 60年前からの和文プログラミング論文を掘り起こした話

                                                          日本の人々が「プログラミング」にかかわるようになったのは、いつごろでしょうか? その前に、まずは世界のコンピュータとプログラミングの歴史を簡単に振り返ってみましょう。まずは OS から有名どころをたどると、 わかりやすく Windows 95 が 1995 年 [1] その前に広く使われた Windows 3.1 は 1992 年 [2] その下で動く MS-DOS は、バージョン 6 が 1993 年、バージョン 1 が 1981 年 [3] Linus Torvalds が Linux の開発を始めたのが 1991 年 [4] その「契機となった」 Andrew Tanenbaum の MINIX が 1987 年 [5] さらに遡ればオリジナルの BSD (Berkeley Software Distribution) が 1977 年 [6] それらの礎であった Unix (と S

                                                            60年前からの和文プログラミング論文を掘り起こした話
                                                          • ランサムウェア「LockBit 2.0」の内部構造を紐解く | 技術者ブログ | 三井物産セキュアディレクション株式会社

                                                            すでに多くのニュースや公開記事で言及されているように、「LockBit 2.0」はリークサイトを持つ暴露型ランサムウェア攻撃グループの中で現在(2021年後半)最も活発である攻撃グループです。LockBit 2.0のリークサイト上では、いきなり窃取データが暴露されるのではなく、「被害組織名」とともに「暴露までの残り時間」をリアルタイムでカウントし被害組織に圧力をかけます。そのため、リークサイトに初めて掲載された時点においては被害組織と攻撃者間で金銭の支払いに関する交渉が行われているかもしくは交渉前の段階にあるケースが多いものと考えられます。 LockBit 2.0の開発者は自身のサイト上で、LockBit 2.0のランサムウェアが世界で最も暗号化速度が速く他のランサムウェアよりも優れていると、攻撃の実働部隊であるアフィリエイトに向け詳細にアピールしており、加えて他のランサムウェアには無い新

                                                              ランサムウェア「LockBit 2.0」の内部構造を紐解く | 技術者ブログ | 三井物産セキュアディレクション株式会社
                                                            • テスト技法「同値分割」を信頼していいのかわからなくなった - 若くない何かの悩み

                                                              これまで同値分割を信頼できる手法だと信じてきました。最近になってどうして同値分割が信頼できる方法なのかその理由を私が説明できないことに気づきました。この原因は2つあります: 同値分割の分割の基準が不明確であること 後述するいくつかの仮定を満たさない場合、ある同値パーティションの代表値の出力が正しければその同値パーティションの他の値の出力も正しいといえる根拠に乏しいこと この2つから、不明確な基準の同値分割はその信頼性の説明ができないこと、同値テストは後述するいくつかの仮定が満たされたときのみ有効な手段でありいずれかの仮定が満たされない場合はさして信頼できないことが導かれます。 この記事ではこの結論に至るまでの過程について詳しく説明していきます。なお誤りのご指摘は大歓迎です。ぜひ皆さんで議論しましょう。 同値分割とは 後述する複数の文献の同値分割の説明に共通しているのは以下の2点です: 入力

                                                                テスト技法「同値分割」を信頼していいのかわからなくなった - 若くない何かの悩み
                                                              • 【マイナー志向?】元コミックボンボン派がその後の人生と影響を語る会 - イーアイデム「ジモコロ」

                                                                『ボンボン』派……王道の『コロコロ』に対するカウンターとして存在し、その後の人生もなぜかマイナーな方を選んでしまいがち。そんなボンボンっ子たちが、好きだったマンガやなぜ好きだったのかを語ります。プラモ狂四郎、お気楽忍伝ハンゾー、海の大陸NOA、アホーガン、SDガンダム、サイボーグクロちゃん、ロボットポンコッツ……実は名作揃い! ハイパーヨーヨー、ミニ四駆、そしてポケットモンスター…… 1988年生まれの筆者にとって、小学生時代のカルチャーは常にコロコロコミックの影響下にありました。 月刊コロコロコミック 小学館が発行している小学生向けの月刊漫画雑誌。1977年創刊、現在も発行中。ドラえもん、ビックリマン、ミニ四駆、ポケモン、星のカービィ等を扱い、小学生男子にとってのバイブルかつ、カルチャー発信基地だった クラスの男子のほとんどがコロコロを読んでましたね。少なくとも僕の小学校はそうでした。

                                                                  【マイナー志向?】元コミックボンボン派がその後の人生と影響を語る会 - イーアイデム「ジモコロ」
                                                                • リックライダー「人と計算機の共生」 - 山形浩生の「経済のトリセツ」

                                                                  翻訳中の本に、影響力の強い文として出てきたので、座興でやってみた。んー、いまだとそんなにすごい感じではないのと、ChatGPTとか出てきて、人間計算機共生のありかたそのものの、歴史的前提が崩れ始めている感じではある。とはいえ、60年以上前の話だから…… むしろ、この中で出てくる、人間で拡張された機械、という概念の方が妥当性が高いんじゃないかとさえ思う。 人と計算機の共生 Man‑Computer Symbiosis J. C. R. リックライダー 山形浩生訳 (hiyori13@alum.mit.edu) IRE Transactions on Human Factors in Electronics, volume HFE-1, pages 4-11, March 1960 groups.csail.mit.edu 要約 人と計算機の共生は、人と電子計算機との協力的な相互作用の中で、予

                                                                    リックライダー「人と計算機の共生」 - 山形浩生の「経済のトリセツ」
                                                                  • オレオレASICとオレオレCPUで作る「オレたちのSoC」 CPU脳をたたき直す“自由ASIC時代”の到来

                                                                    Kernel/VM探検隊は、カーネルやVM、およびその他なんでもIT技術の話題ジャンルについて誰でも何でも発表してワイワイ盛り上がろうという会です。takeoka氏は、現在開発中のSoC(System-on-a-chip)について発表しました。 LSI(Large Scale Integration)の民主化が進んでいる takeoka氏(以下、takeoka):俺ASICと俺CPUを作っているのでその話をちょっとします。 最近、日本でも半導体復興と言われています。(半導体は)お金持ちの物だと思っていたけれど、近頃はGoogleが安く作れるようにしてくれていたり、OpenEDAやOpenLANEというOSSのツールを使えば作れます。 これはだいぶ前からですが、Googleががんばっています。ほかにも、FOSSi(Free and Open Source Silicon Foundation

                                                                      オレオレASICとオレオレCPUで作る「オレたちのSoC」 CPU脳をたたき直す“自由ASIC時代”の到来
                                                                    • Amazon SESとAmazon Bedrockで問い合わせメールの一次対応を自動化する | DevelopersIO

                                                                      「メールでのやり取りなんてレガシーだよね」? いえいえ、生成AIを使えばまだまだ可能性が見えてきます。 みなさん、こんにちは! 福岡オフィスの青柳です。 みなさん、生成AIを使って業務改善してますか? (挨拶) 今回は、「改善したい業務」の上位にランクインしているであろう (俺調べ) 「問い合わせメール対応」を、生成AIを使って自動化・効率化してみたいと思います。 やりたいこと 「問い合わせメール」の対応窓口が抱える課題 利用者から問い合わせを受けた際、なるべく早く「あなたの問い合わせを認識していますよ」という点を利用者に知らせてあげると、利用者は安心しますし、問い合わせ窓口に対する信頼感も向上すると思います。 そのため、問い合わせ窓口では「できるだけ早く一次応答を返す」ことを目標にしている場合も多いかと思います。 しかし、多忙なサポート担当者にとっては様々な対応に追われて、どうしても一次

                                                                        Amazon SESとAmazon Bedrockで問い合わせメールの一次対応を自動化する | DevelopersIO
                                                                      • ゲームギアで弾幕STGを創ってみた - Qiita

                                                                        はじめに 以前、VGS-Zeroというラズパイで動作する自作ゲーム機を紹介させていただきました。 今回、上記の記事でも触れているVGS-Zeroのローンチタイトル「Battle Marine」(下記)をゲームギアに移植してみました。 本書はBattle Marineをゲームギアへ移植した経緯や技術的に苦労した点などを纏めたものとなります。 なお、今回ゲームギア(実機)で動作できるソフトとしてBattle Marineを開発しましたが、セガの公式なライセンス商品ではなく、飽くまでも ゲームギアと互換性のある同人ソフト となります。 何故ゲームギア? Battle Marine のゲームジャンルは「弾幕STG」です。 もしかすると、この点については議論の余地があるかもしれませんが、少なくとも私は弾幕STGとして創ったつもりです。 「Z80のゲーム機」としてはチート級のスペックのVDPを搭載して

                                                                          ゲームギアで弾幕STGを創ってみた - Qiita
                                                                        • gocycloを使ってgo言語のプロダクトをシンプルに維持する|moli9ma

                                                                          1. 対象者 - go言語を使用している方 - 対象のプロダクトの可読性が悪いと感じている場合 2. 概要 ソフトウェアの品質を一定の水準に維持する方法には大きく、テストケースの網羅率を測定する方法とソフトウェアメトリクス(モジュールの依存度、ソースコードの行数、ネストの深さ、循環的複雑度.. etc)を測定する方法があります。今回は、これらソフトウェアメトリクスの内、循環的複雑度に着目してgo言語で実践する方法を紹介していきます。(go言語を取り扱いますが、概念自体は技術を制限するものでは無いので、他のプロダクトでも応用可能です。) 3. 循環的複雑度 循環的複雑度は、対象の関数やメソッドがどれだけ複雑さを持っているかを表す数値です。この循環的複雑度が高ければ高いほど、可読性が低く保守性が悪いコードである可能性が高くなります。 使用する技術によって、目安は変わってきますが、おおよそ20~

                                                                            gocycloを使ってgo言語のプロダクトをシンプルに維持する|moli9ma
                                                                          • コードの可読性についてのプレゼンテーション紹介 vol. 2: "命名とコメント" 編

                                                                            LINE株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。 LINEヤフー Tech Blog はじめに こんにちは。コミュニケーションアプリ "LINE" の Android クライアントチームの石川です。 この記事は、 "コードの可読性についてのプレゼンテーション紹介" の不定期連載記事の第二回です。前回の記事は こちら です。 今回は、プログラム中に書く自然言語として、第二章 "命名" と第三章 "コメント" の解説をします。 第二章: 命名 プログラムを書くときは、クラスやリソースなどの様々なものに名前をつける必要があります。その名前が、正確・明確・記述的であると、コードはより読みやすくなります。この章では、どのような名前がコードを読みやすくするかについて、特に型 (クラス, インターフェース, トレイト等)、値

                                                                              コードの可読性についてのプレゼンテーション紹介 vol. 2: "命名とコメント" 編
                                                                            • Scala 3のマクロTips 100連発 - 貳佰伍拾陸夜日記

                                                                              この記事はScala Advent Calendar 2023の12日目だ! Scala 3のマクロを書く上で役に立つ, メタれたTipsたちを紹介するぜ! 勢いに任せて書いていくからサンプルコードがちゃんと動かなかったらごめんな. 一応, Scala 3.3.1を想定しているぞ. マクロ 1. メソッドをマクロとして定義する 2. マクロの本体を実装する 3. マクロ実装の記法の意味を知る 4. マクロで生成されるコードの内容を確認する 5. 引数の式を評価せずに使う 6. 返り値の型をマクロの実行結果によって決める 7. マクロの返り値の型を制限する 8. マクロの返り値の型を書かない 9. マクロで計算された型をテストする 10. マクロで計算された型をScalaTestでテストする 式 11. 定数式の値を得る 12. 定数式でなければコンパイルエラーにする 13. 定数値の式を作

                                                                                Scala 3のマクロTips 100連発 - 貳佰伍拾陸夜日記
                                                                              • ドメイン コントローラーの構築時に言われないと気付かないこと

                                                                                本記事はマイクロソフト社員によって公開されております。 こんにちは。Windows Commercial Support Directory Services チームです。 ドメイン コントローラーは多くの組織で利用されておりますので、今までドメイン コントローラーの設計や運用に関わったことがなかったものの、急に担当することになってしまったという方も多いのではないでしょうか。 今回は、そのような方向けに、これからドメイン コントローラーを新規で構築する際に、言われないと中々気付きにくいことについて、紹介させていただきます。 後から予期しないトラブルに直面することを避けるためにも、構築時から問題の起きにくい構成を目指していきましょう! 非推奨の話※ 以下の構成は推奨しておりませんが、この構成においてサポートをお断りすることはございません。 ただし、最終的に構成変更以外の対処が難しい場合もござ

                                                                                • 今日のインターネットはいまだにARPANET時代のプロトコルを信頼している: Request for Comments

                                                                                  IEEE Spectrumより。 RFCは、ARPANETの最も永続的な遺産かも知れません。 スティーブ・クロッカー UCLAのBoelter Hallには、4つのオリジナルARPANETノードの1つが収容されていました。 毎年3月、7月、11月になると、私たちはインターネットが成熟して安定した技術ではないことを思い知らされます。私たちは、経済、社会、教育、政治の生活に不可欠なツールとしてインターネットに依存しています。しかし、インターネット・エンジニアリング・タスク・フォースが4か月に1度、大陸から大陸へと移動する公開会議で会合を開くと、世界中から1,000人以上の人々が考えを変えさせるために集まって来ます。全人類が共有するグローバル・ネットワークに関する彼らのビジョンは、ダイナミックで進化し、継続的に改善されています。彼らの努力は、無数の他の人々の貢献と相まって、インターネットを常に機

                                                                                    今日のインターネットはいまだにARPANET時代のプロトコルを信頼している: Request for Comments