タグ

関連タグで絞り込む (215)

タグの絞り込みを解除

programmingに関するxiangzeのブックマーク (395)

  • panic!すべきかするまいか - The Rust Programming Language 日本語版

    panic!すべきかするまいか では、panic!すべき時とResultを返すべき時はどう決定すればいいのでしょうか?コードがパニックしたら、 回復する手段はありません。回復する可能性のある手段の有る無しに関わらず、どんなエラー場面でもpanic!を呼ぶことはできますが、 そうすると、呼び出す側のコードの立場に立ってこの場面は回復不能だという決定を下すことになります。 Result値を返す決定をすると、決断を下すのではなく、呼び出し側に選択肢を与えることになります。 呼び出し側は、場面に合わせて回復を試みることを決定したり、この場合のErr値は回復不能と断定して、 panic!を呼び出し、回復可能だったエラーを回復不能に変換することもできます。故に、Resultを返却することは、 失敗する可能性のある関数を定義する際には、いい第一選択肢になります。 稀な場面では、Resultを返すよりもパ

  • 第44回流体力学講演集原稿

  • Rust std fs slower than Python!? No, it's hardware!

    I'm about to share a lengthy tale that begins with opendal op.read() and concludes with an unexpected twist. This journey was quite enlightening for me, and I hope it will be for you too. I'll do my best to recreate the experience, complete with the lessons I've learned along the way. Let's dive in! All the code snippets and scripts are available in Xuanwo/when-i-find-rust-is-slow TL;DRJump to Con

  • 純粋関数空間 Hideyuki Tanaka

    ここは田中英行(Hideyuki Tanaka, a.k.a tanakh)の個人ページです。 Recent Posts Run Rust code on PEZY-SC processor - December 20, 2016 RustのコードをPEZY-SCというプロセッサーで動かしてみる PEZY Computing 求人情報 - January 20, 2016 第12羽「転職は僕の決定的瞬間」 - December 25, 2015 ごちうさ Advent Calendar 2015 友利奈緒とコミュニケーションするアプリ - December 20, 2015 友利奈緒 Advent Calendar 就職しました - July 12, 2015 就職しました …or you can find more in the archives. Copyright (c) 2011-

  • 「京大生でもx=x+1が分からない」、喜多教授が明かすPython教育の実態

    プログラミング言語「Python」の大規模イベント「PyCon APAC 2023」が2023年10月27日と28日の2日間にわたって開催された。1日目に行われた京都大学国際高等教育院の喜多一教授による基調講演を中心に、イベントの内容をリポートする。 PyCon APAC 2023は、1日目の基調講演「Why University Teachers Wrote a Python Textbook?」で幕を開けた。京都大学でPythonを使ったプログラミング教育を担当している喜多教授が、その実態について英語で講演した。 喜多教授は、主に大学1年生向けの教養教育の一環として、Pythonを使ったプログラミングコースを2018年に始めた。そのための教科書をつくり、2019年に公開した。誰でも無償でPDFをダウンロードできる。教科書は毎年改訂しているが、一般向けに公開したのは2019年版と2021

    「京大生でもx=x+1が分からない」、喜多教授が明かすPython教育の実態
  • ソフトウェアはなぜバージョンアップしなければならないのか - Qiita

    はじめに 社内インフラの運用担当者にとってソフトウェアのバージョンアップは地味な割に大変な業務です。 特に社内のオンプレサーバで動いているようなソフトウェアの場合、バージョンアップに伴う諸々の調整をそのソフトウェアを利用している各部署と行う必要があります。 そんなときに「今は忙しいからバージョンアップを先送りしてほしい」「このバージョンはスキップしてもよいのでは?」なんて声が各部署から聞こえてきます。バージョンアップの価値を各部署に理解してもらうのは大変です。 この文章はそんな時になぜバージョンアップしなければならないのかを上司や各部署のマネージャに伝えるために書きます。 ソフトウェアの有効期限は2-5年 まず、第一に、ソフトウェアというものは無限に使えるわけではなく、一定の有効期限があり、それを過ぎると徐々に動かなくなってきます。俗にいう「何もしてないのに動かなくなった問題」です。 なぜ

    ソフトウェアはなぜバージョンアップしなければならないのか - Qiita
  • 徐々に高度になるリングバッファの話 - Software Transactional Memo

    リングバッファのイメージ図 1. リングバッファとは何か 機能的にはFirst In First Out (FIFO)とも呼ばれるキューの一種であるが、リング状にバッファを置いてそれの中でReadとWriteのインデックスがグルグルと回る構造をとる事によって容量に上限ができることと引き換えに高速な読み書き速度を得たものである。キューを単に実装するだけなら山ほど方法があって線形リストを使ってもいいしスタックを2つ使っても原理的には可能だ。その中でもリングバッファを用いた方法の利点はひとえに性能の高さでありメモリ確保などを行わないお陰でシステム系の様々な場所で使われている。 これの実装自体は情報系の大学生の演習レベルの難度であるが少し奥が深い。まずリングバッファのスタンダードなインタフェースと実装は以下のようなものである。 class RingBuffer { public: explicit

    徐々に高度になるリングバッファの話 - Software Transactional Memo
  • 型の理 型の利 - ohataken のはてなブログ

    プログラミングを学びはじめたころ、わたしにとっての最初のハードルは分岐でも繰り返しでも関数でもなく、型でした。コードを書いたらすぐに動かしてみたいのに、暗黙の型変換はよくないとか、文字列のつもりなのに数値が入ってきてるとか、細かいことをチクチク指摘してきて、あまり面白くありませんでした。まるでプログラムが敵対的な意思をもっていて、動こうともせずにここがダメだからやりませんと言っているように感じられたのです。一家に一台の時代、Pentium III のノートパソコンを独り占めしていた中学生のころのことで、思い通りにならないと面白くない年頃だったのでしょう。 プログラミング教育に携わっていた経験から言っても、型を説明するのはむずかしくて、一斉講義であれば極力避けますし、個別の対面指導であれば、型は難しいよねと寄り添ってから、いまやりたいことと、次にやることのイメージを具体的にしてあげて、学習意

    型の理 型の利 - ohataken のはてなブログ
  • AWSによるクラウド入門

    真野 智之 (Tomoyuki Mano) <tomoyukimano@gmail.com> version 1.0, 2020-06-19

  • Jupyter AIでHuggingFace Hubを使うと、これまたすごい! | moritalous blog

    前回はOpenAI APIを使ってチャットなどを試しましたが、Jupyter AIOpenAI 以外にも様々なAPIに対応しています。 今回はHuggingFace Hubを使ってみます。 環境構築​HuggingFace Hubの機能を使うにはhuggingface_hub、ipywidgets、pillowをインストールする必要があります。コンテナで用意します。

    Jupyter AIでHuggingFace Hubを使うと、これまたすごい! | moritalous blog
  • C++ユーザーの為のリンクの話1 - Qiita

    C++と書きましたが C でも Fortran でもだいたい同じです。とりあえず gcc (g++) で Linux の話をします。目標としては次の二つです リンク時の undefined reference エラーとは何なのかを理解する(この記事) 実行時の cannot open libXXX.so エラーとは何なのかを理解する(次回) コンパイルとリンク C++ではプログラムを実行可能な形式にするまでにいくつかの形をとります ソースコード (*.cpp, *.cxx 等) オブジェクト (*.o) アーカイブ (*.a) 共有ライブラリ (*.so) 実行可能ファイル (a.out, これには普通拡張子はつけない) ソースコードから実行可能ファイルや共有ライブラリを作る操作を一般にコンパイルと呼びますが、特に複数のオブジェクトファイルを単一のアーカイブや共有ライブラリ、実行可能ファイ

    C++ユーザーの為のリンクの話1 - Qiita
  • オブジェクト指向はコードを複雑に読みにくくする - きしだのHatena

    「オブジェクト指向するとプログラムが読めなくなるから禁止」のような話は昔からあって、新しい技術についてこれない人を揶揄するようなニュアンスで使われていましたが、実際にはこれはオブジェクト指向迷路にうんざりした現場での率直な意見だと思います。 オブジェクト指向は、まじめにやるほどプログラムを読みにくくするという性質をもっています。 ※ 使い方次第というコメントついてますが、だからこそちゃんと性質をしっておく必要があると思います。 オブジェクト指向の代表的な指針を3つあげると次のようなものがあります。 オブジェクト同士の連携としてプログラムを組む 単一責務の原則 インタフェースと実装の分離 まず、オブジェクト同士の連携でプログラムを組むと、コードが飛びまくって追いにくくなります。そして単一責務の原則により、小さいクラスが大量に生成されて、追いにくさがさらにあがっていきます。 ダイクストラ先生が

    オブジェクト指向はコードを複雑に読みにくくする - きしだのHatena
  • AMD Fusion Developer Summit 2011 Session Catalog

    Products Processors Accelerators Graphics Adaptive SoCs, FPGAs, & SOMs Software, Tools, & Apps

    AMD Fusion Developer Summit 2011 Session Catalog
  • C# の async/await は実際にどうやって動いているか

    .NET ラボ 2023/05/27 での発表資料 ↓↓↓ スライドより詳細なブログです ↓↓↓ C# の async/await は実際にどうやって動いているか

    C# の async/await は実際にどうやって動いているか
  • Python 内包表記の限界: 複雑な処理と実行速度の関係 - Qiita

    初めに 記事は実務上で速度的優位性を得るために内包表記を使うことが合理的かどうか検証したものです。 文中のコードは読者層を広くするために型ヒントを省いています。 更新履歴 詳細 追記 (2023/05/24) 計測環境はPython3.12.0a6です。 修正 (2023/05/24) 記事中のバイトコードがPython3.7.16のものだったのでPython3.12.0a6のものに差し替えました。 修正 (2023/05/27) 「list(generator) 使えよ」とのご指摘があったので 単純な例の内包表記を[i for i in range(ELEMENTS)]からlist(range(ELEMENTS))に修正しました。 ご指摘ありがとうございます。 追記 (2023/05/28) Twitterでの反応に対しての追記を行いました。

    Python 内包表記の限界: 複雑な処理と実行速度の関係 - Qiita
  • 大規模ソフトウェアを手探る

    括弧内は投稿日. 新しいものを上に書き足します. (過去ログ), (過去レポ) (投稿日 2023/10/04) 2023年度版ホームページ開設 テキスト テキスト GDBを使えるようになろう. 動画版 vscodeの場合 Globalを使おう. 動画版 Windowsで開発するのはおすすめしない. 仮想マシンにLinuxを入れるのを推奨します 補足資料: uftraceについての紹介ブログ uftrace 紹介編 gnumericへ適用編 教科書執筆後, 補足資料として執筆 (自分も教科書の代わりにブログを書いてみた). 参考: uftraceが上手く行かないときの代わりになるかもしれないツール libitrace 説明スライド イントロ (説明予定: 第1回) Gitについて (説明予定: 第2〜3回), イントロスライド 提出物について (説明予定: 後半) レポートその他の提出手続

  • Download CMake

    You can either download binaries or source code archives for the latest stable or previous release or access the current development (aka nightly) distribution through Git. This software may not be exported in violation of any U.S. export laws or regulations. For more information regarding Export Control matters, please visit our Legal page. Latest Release (3.30.1) The release was packaged with CP

  • ドメイン駆動設計の源流のPofEAAを読んでみる | フューチャー技術ブログ

    最近、ドメイン駆動設計(以下DDD)とかそのあたりを読みこんでいる人から、DDDの読み方を教えてもらいました。ここではDDDはエリック・エヴァンスのドメイン駆動設計の方を参照しました。 @katzchang さんから教わったのは「DDDはパターンランゲージの形式を意識してるよ」ということでした。ただし、きちんとしたパターンランゲージの形式になっておらず、記述が著者のものになってるので、読者は注意して読む必要があるのかもとのことです。 @ryoaitaさんから教わったのは「DDDはエンタープライズアプリケーションアーキテクチャパターン(以下PofEAA)を下敷きにしているだよ」ということでした。 DDDももう時代的にはかなり古いです。自分で読んだ限りは全然好きになれなくて、でもきっと何かあるはずだと3-4冊読んでみましたが感想は変わらずでした。ユビキタス言語も「当たり前のものを先頭に

  • Rustで普通にプログラミングするだけでMISRA-Cのルールを90%満足できる - 低レイヤ強くなりたい組込み屋さんのブログ

    はじめに 2019/2/10追記 記事を書いてから気づいたのですが、正確には、Rustのアトリビュートをいくつか設定すれば、MISRA-Cのルールを90%満足できるでした。 私はMISRA-Cのコーディング規約でプログラミングしたことがないため、内容に誤りがありかもしれません。間違っている点があれば、ご指摘いただけるとありがたいです。 後、いつも通りですが、C言語を貶める意図は一切ありません。 昨日からtwitterで、Rustが組込みのセキュリティが重要な分野で広まると良いなぁ、という議論がありました。 その中で、車載では、やはりMISRA基準との関係が明確になること、ということが1つの基準になりそうでした。 github.com @hashaskell さんから、MISRAコーディングルールのうち、Rustコンパイラがアトリビュートの設定を含めて、保証するルールのリストを作成しているレ

    Rustで普通にプログラミングするだけでMISRA-Cのルールを90%満足できる - 低レイヤ強くなりたい組込み屋さんのブログ
  • 「ZigはCよりも速いです。」をVector/SIMD最適化で検証する

    「パフォーマンスについて言えば、ZigはCよりも速いです。」 この一文は Zig 言語の公式サイトの詳細な概要に実際に書いてある文章です。 その理由としていくつか挙げた上で最後にちらっと「ZigSIMD ベクトル型を直接公開しており、移植性の高いベクトル化コードを簡単に記述することができます。」と書いてあります。今回の記事では画像処理っぽいお題を使って実際に SIMD 最適化される様子を検証してみます。 ベンチマーク環境 OS: Ubuntu20.04 on WSL2 on Windows11 CPU: AMD Ryzen 9 5900X 12-Core Processor お題 一般的な画像データ構造の表現である、幅×高さ×4(RGBA)の長さを持つ8bit整数の配列を受け取り、in-placeでRGBの値を 10 加算して明るくするという関数を考えます。Aの値は元のままとします。

    「ZigはCよりも速いです。」をVector/SIMD最適化で検証する