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

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

アプリで開く

はてなブックマーク

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

はてなブックマーク

トップへ戻る

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

    WWDC25

『qiita.com』

  • 人気
  • 新着
  • すべて
  • JavaScriptとRust(WebAssembly)でグラフの深さ優先探索のベンチマーク - Qiita

    5 users

    qiita.com/_likr

    はじめに 前々からRust + WebAssemblyでネットワーク可視化のライブラリを作っていましたが、使い勝手を良くするためのFFI(Foreign Function Interface)、つまりJavaScript側とRust側のどちらでデータを持つのか、そして他方にどのようなインタフェースを提供するのかの設計には悩まされていました。そこで今回は、グラフ処理の基本の一つである深さ優先探索(DFS)でベンチマークをとり、性能面での比較を行いました。私のアプリケーションでは、RustとJavaScript双方でアルゴリズムを書くこともあるため、グラフデータ構造の隣接リストとDFSのそれぞれをJavaScriptとRustの両方で実装し、4通りの組み合わせを比較します。 実装 それぞれの実装の一部を記載します。全体のソースコードは GitHubのリポジトリ をご覧ください。 隣接リストのJ

    • テクノロジー
    • 2020/08/07 00:04
    • Rust
    • JavaScript
    • performance
    • HTML5
    • techfeed
    • あとで読む
    • wasm-pack + WebWorker + react-scripts - Qiita

      4 users

      qiita.com/_likr

      前提 重い計算を Rust + WebAssembly でやる WebAssembly のパッケージは wasm-pack でビルドする WebAssembly は WebWorker で動かす アプリは React で書く アプリの設定を頑張りたくないので react-scripts (create-react-app) を使う react-app-rewired react-scripts では、WebWorker と WebAssembly のロードができないので設定する必要がある。 react-scripts で eject せずに設定を追加するために react-app-rewired を使う。 worker-loader では WebWorker から WebAssembly を import できなかったので、workerize-loader を使う。 こんな感じで conf

      • テクノロジー
      • 2020/06/23 21:30
      • React
      • techfeed
      • あとで読む
      • 【TC39 Proposals】Math.seededRandoms() - Qiita

        3 users

        qiita.com/_likr

        注意書き 2019 年 10 月 9 日に開催の #tc39_study 用に作成した資料です。 執筆時点で TC39 の Proposals に上がっている機能を紹介します。 将来的に JavaScript(ECMAScript)に取り入れられるかもしれませんし、取り入れられないかもしれませんし、紹介内容から仕様が大きく変更になるかもしれません。 TC39 の承認プロセスについては、https://tc39.es/process-document/ をご覧ください。 Math.seededRandoms() 従来の Math.random() と window.crypto.getRandomValues() は乱数種の設定をすることができず、乱数種の制御が必要な場合は外部ライブラリ等を使用する必要がありました。 本 Proposal は、乱数種の設定ができる擬似乱数生成器(PRNG;

        • テクノロジー
        • 2019/10/09 00:01
        • 【TC39 Proposals】Math Extensions - Qiita

          5 users

          qiita.com/_likr

          注意書き 2019 年 10 月 9 日に開催の #tc39_study 用に作成した資料です。 執筆時点で TC39 の Proposals に上がっている機能を紹介します。 将来的に JavaScript(ECMAScript)に取り入れられるかもしれませんし、取り入れられないかもしれませんし、紹介内容から仕様が大きく変更になるかもしれません。 TC39 の承認プロセスについては、https://tc39.es/process-document/ をご覧ください。 Math Extensions Math に 4 つの関数と 2 つの定数を追加する Proposal です。 コンピュータグラフィックス方面で時々使うような処理が追加されます。 本記事の執筆時点で Stage 1 です。 Math.clamp(x, lower, upper) x が lower を下回ったときは lowe

          • テクノロジー
          • 2019/10/07 21:30
          • qiita
          • 【TC39 Proposals】New Set methods - Qiita

            4 users

            qiita.com/_likr

            Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

            • テクノロジー
            • 2019/10/07 13:41
            • javascript
            • 最小構成で始める@ionic/react - Qiita

              3 users

              qiita.com/_likr

              はじめに 今年のはじめにIonic 4がリリースされました。 Ionic 4では、UIコンポーネントがWebComponentsで再実装されたことにより、ReactやVueでもIonicが利用できるようにななっています。 ということで、早速React版の @ionic/react を動かしてみたいと思います。 (バージョン4.8.0-rc.0で動作確認しました。) @ionic/react を利用するためにはWebpackでいくつかの設定が必要です。 Ionic CLIやcreate-react-appを利用することで、それらが設定済みの状態で@ionic/reactの利用ができます。 (どちらも内部的には react-scripts を使用しています。) しかし、それらの環境では不必要なパッケージもたくさん導入されてしまうでしょう。 ビルド環境を自分でカスタマイズしたい人や、既存のRea

              • テクノロジー
              • 2019/06/07 04:49
              • wasm-bindgenでマンデルブロ集合 - Qiita

                3 users

                qiita.com/_likr

                wasm-bindgenでマンデルブロ集合 はじめに Rustで生成したWebAssemblyとJavaScriptをつなぎ合わせるインタフェースを生成してくれるwasm-bindgenというツールがあります。 wasm-bindgenを使うことで、若干面倒なWebAssembly周りのメモリ操作やデータの受け渡しを楽に行うことができます。 Rustの構造体やメソッドをJavaScriptのクラスとしてラップすることも可能です。 wasm-bindgenのデモとしてマンデルブロ集合を描いてみましょう。 誰もが描いたことがある(?)以下のような図ですね。 本稿の完成版+ズーム機能を付け加えたデモを以下で公開しています。 https://ionic-wasm-mandelbrot.likr-lab.com/ また、関連のソースコードはGitHubで公開しています。 https://github

                • テクノロジー
                • 2018/11/19 08:05
                • web
                • RustでWebGL2 - Qiita

                  9 users

                  qiita.com/_likr

                  Rust Advent Calendar 2017の1日目です。 初日から変化球という感じですが、申込み時点で初日と最終日しか空いていなかったのでご容赦ください。 はじめに WebAssemblyによるRustでのWebフロントエンド開発に興味があり、ちょっとだけ記事を書いたりしてきました。 RustでWebフロントエンド開発 RustでFetch API with Emscripten つい先日、Emscriptenに依存せずにWebAssemblyを生成するwasm32-unknown-unknownというターゲットが公式に追加されたりもして(参考:wasm32-unknown-unknown landed & enabled)、Webフロントエンド開発でRustとWebAssemblyが実用的に使われる日が徐々に近づいているように感じます。 WebAssemblyが盛り上がっていると

                  • テクノロジー
                  • 2017/12/01 09:54
                  • rust
                  • webgl
                  • RustでWebフロントエンド開発 - Qiita

                    35 users

                    qiita.com/_likr

                    はじめに 何故RustでWebフロントエンド開発をするのか、まずはWebフロントエンド開発に詳しくない人向けにも、背景を簡単に紹介します。 HTML5時代なんて言われるようになって久しいですが、Webブラウザがリッチな表現力を持つにつれて、Webは単純なコンテンツ配信のプラットフォームからアプリケーションのプラットフォームへと成熟してきました。 Webフロントエンドアプリでは、基本的にはJavaScriptを使って開発を行います。 しかしながら、JavaScriptを直接書く場合には、言語機能に不足を感じることや、ブラウザに実装されている機能しか利用できないといった問題がありました。 最近では、それらの問題を克服するために、AltJSあるいはJavaScriptトランスパイラを使って、他のプログラミング言語からJavaScriptプログラムを出力するというアプローチが普及してきました。 リ

                    • テクノロジー
                    • 2016/12/06 12:53
                    • Rust
                    • WebAssembly
                    • JavaScript
                    • Web
                    • あとで読む
                    • Workerを駆使するためのプロジェクト構成 with webpack - Qiita

                      6 users

                      qiita.com/_likr

                      はじめに マルチコアプロセッサを持て余した人類のために、WebアプリもWebWorkersやServiceWorkerを使ってマルチスレッド処理を駆使していかなければなるかもしれません。 Workerの小さいコード例はたくさん見かけますが、どうやってプロダクトに組み込むかといった話はあまり見かけない気がしたので、最近試してみてしっくりきた構成を紹介します。 まず、要件として以下のようなことを考えました。 Worker側もES2015(Babel)で書ける 言わずもがな、新しい構文の恩恵を受けたい。TypeScriptなどでも同様です。 Worker側もCommonJSスタイルでモジュールの読み込みができる Worker側もコード量が増えると、当然モジュール分割が必要です。Workerには他のJSコードを読み込むためのimportScriptsが提供されていますが、メインスレッド側でwebp

                      • テクノロジー
                      • 2016/05/30 14:18
                      • webpack
                      • JavaScript
                      • webpackのcss-loaderでCSS Modulesをやる - Qiita

                        19 users

                        qiita.com/_likr

                        Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

                        • テクノロジー
                        • 2016/04/07 09:11
                        • webpack
                        • css
                        • node.js
                        • development
                        • Angular2のRouterを触ってみる - Qiita

                          7 users

                          qiita.com/_likr

                          はじめに 大規模なSPAでは必要不可欠なルーティングの機能をAngular2で試してみます。 Angular2の2.0.0-beta.0を使います。 Router まずは最小限の例を示しましょう。 beta.0で更新された5 MIN QUICKSTARTを参考にディレクトリ構成は以下のようにしています。 my-app ├ node_modules ├ app │ ├ app.component.ts │ ├ page1.component.ts │ ├ page2.component.ts │ └ boot.ts ├ index.html ├ package.json └ tsconfig.json <html> <head> <title>Angular 2 QuickStart</title> <script src="node_modules/angular2/bundles/ang

                          • テクノロジー
                          • 2015/12/20 17:27
                          • Angular2でもとりあえずSVGを描いてみる - Qiita

                            6 users

                            qiita.com/_likr

                            はじめに 私は日頃からSVGを使ったデータビジュアライゼーションをやっています。 2013年頃、はじめはSVG要素の構築にD3.jsを使っていましたが、性能と書きやすさ、保守性などのバランスをとって、最近ではAngularJSやReactへとライブラリを移行してきました。 AngularJSはお気に入りのライブラリですがデータビジュアライゼーションに使うという点では性能に不安がありました。 Angular2がリリースに向けて着々と準備されているということで、性能も改善されたというAngular2でSVGを描いてみます。 Angular1とAngular2で同じ機能を実装して違いを比べてみます。 どちらもTypeScriptで実装します。 Angular1のバージョンは1.4.8、Angular2のバージョンは2.0.0-alpha.53を使います。 Angular1による実装 まずはお決ま

                            • テクノロジー
                            • 2015/12/15 12:39
                            • Native Addonを作ってElectronで使ってみた - Qiita

                              8 users

                              qiita.com/_likr

                              はじめに Electron触ってみようの会でやってみたことのまとめです。 当日は全然時間が足りなかったので持ち帰ってから完成させました。 とりあえずElectronは初めてでしたが、せっかくなので普通のWebアプリではできないNative Addonを自分で作って使ってみようと思いました。 Native AddonとはC++などのネイティブ言語で実装されたNode.jsモジュールです。 Electronのバージョンは0.32です。 今回作成したソースコードは https://github.com/likr/20150915electron に置いています。 Native Addonを作る 何か重めの処理をさせようということで、雑にマンデルブロ集合を計算してみます。 Canvasと連携することを想定して、JavaScript側からビットマップを表すUint8ClampedArrayを受け取り

                              • テクノロジー
                              • 2015/09/16 17:09
                              • node.js
                              • JavaScript
                              • あとで読む
                              • SVGを画像みたいに保存できるD3 Plugin作った - Qiita

                                3 users

                                qiita.com/_likr

                                Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

                                • テクノロジー
                                • 2015/01/16 00:02
                                • WebCLのデモを動かす - Qiita

                                  4 users

                                  qiita.com/_likr

                                  はじめに CUDA & OpenCL Advent Calendar 2014の3日目です。 今回のAdvent Calendarでは、ブラウザ上でOpenCLと同様の機能を実現するWebCLについて3回ぐらいに分けて書いていこうと思いますが、初回の今回はWebCL自体の紹介や実行環境の準備、デモの紹介をしていきます。 WebCLとは Webがアプリケーションのプラットフォームとして成熟しつつある昨今、Webアプリケーションを高速化したいという要求も徐々に強くなってきたように感じます。 最近では、asm.jsなどのJavaScriptを高速化する仕組みや、Web WorkersなどのJavaScriptを並行動作させる仕組みも整備されてきました。 そのような他の技術に対して、WebCLは基本的にOpenCLのラッパーになっているので、デバイスで走るプログラムはネイティブアプリと同じものとな

                                  • テクノロジー
                                  • 2014/12/03 09:06
                                  • WebCL
                                  • Firefox
                                  • プログラミング
                                  • web
                                  • SVGでtext要素のサイズを測る - Qiita

                                    7 users

                                    qiita.com/_likr

                                    D3でグラフ描画なんかをやっているとSVGのtext要素を枠線で囲ったりしたくなります。どのような文字列の入力にも対応できるようにするためには、text要素の縦横幅を取得して装飾を行う必要があるため、この稿ではその方法を紹介します。 SVG要素の描画領域の短形範囲がgetBBox()メソッドで取得できます。text要素のgetBBoxを呼ぶことでtextの縦横幅を取得することができます。 ソースコード <svg width="300px" height="300px"> <rect width="300" height="300" fill="lightgray"/> <text id="text1" x="50" y="30">text</text> <text id="text2" x="50" y="60" font-size="2em">text</text> <text id="

                                    • テクノロジー
                                    • 2014/05/08 21:47
                                    • text
                                    • PyOpenCLでアプリケーション(PIL & PyOpenGL) - Qiita

                                      4 users

                                      qiita.com/_likr

                                      つい最近も書いた気がするんですがGPGPU Advent Calendarの15日目です。もうゴールしてもいいよね? PyOpenCLを使えばGPGPUのプログラムを作るのがちょっと簡単になるということで、Pythonの他のライブラリも使ってGPGPUを使ったアプリケーションを簡単に作る方法を紹介します。OpenCLのImageオブジェクトとPythonの画像処理ライブラリPILを使った例と、OpenCLのOpenGL InteroperabilityとPyOpenGLを使った例の2つを取り上げます。 PyOpenCL + PIL PyOpenCLでImageオブジェクトを扱うにはpyopencl.Imageを使います。そのまんまですね。ImageFormatオブジェクトで画像の表現形式を与えます。今回は1ピクセルあたりRGBA各8ビットの32ビットにするので cl.ImageFormat

                                      • テクノロジー
                                      • 2013/01/02 21:44
                                      • python
                                      • あとで読む

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

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

                                      『qiita.com』の新着エントリーを見る

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

                                      j次のブックマーク

                                      k前のブックマーク

                                      lあとで読む

                                      eコメント一覧を開く

                                      oページを開く

                                      はてなブックマーク

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

                                      公式Twitter

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

                                      はてなのサービス

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