タグ

ブックマーク / qiita.com (420)

  • 2019年の3D物理演算ライブラリ状況 - Qiita

    現状でメンテされているのはAmmo.jsですね(npmの ammo.js は4年前から更新されてないけど) Cannon.jsやPhysijsは3年以上更新されてない状況です。 オススメの物理演算ライブラリの話は three.js forum でも議論されてます。 Cannon.js はドキュメントが整備されており使いやすいがメンテされてない、Ammo.js はメンテされているがファイルサイズが大きいと言ってる人もいますね。 three.js forum - Preferred physics engine (cannon.js, ammo.js, DIY…) ちなみにBabylon.jsではCannon.js、Oimo.js、Energy.js、Ammo.jsと幅広くサポートしてます。 しかも物理演算用のInterfaceが提供されているので、どのライブラリを選択してもほぼ同じコードで動

    2019年の3D物理演算ライブラリ状況 - Qiita
    aont
    aont 2023/01/19
  • Babylon.js を使用して手で操作できる WebXR ピアノを構築してみよう! - Qiita

    この投稿は、WebXR ( WebVR/WebAR ) Advent Calendar 2021 の 20 日目の記事です。 記事では、Babylon.js を使って WebXR の VR 空間上に 3D ピアノを構築し、ハンド トラッキングを有効にして手で簡単な操作をできるようにする方法を紹介します。 Babylon.js とは Babylon.js は、3D コンテンツとイマーシブ アプリケーションを簡単に開発できるようにする JavaScript 3D エンジンのフレームワークです。Visual Studio Code などの開発環境で実装することはもちろん、Playground と呼ばれるオンラインのエディターや、Babylon.js Editor という専用のリッチな開発環境を利用してすぐに開発を始めることができます。Babylon.js Editor については、Limes

    Babylon.js を使用して手で操作できる WebXR ピアノを構築してみよう! - Qiita
    aont
    aont 2023/01/19
  • WebVRだのWebXRだの状況をまとめてみた - Qiita

    ようするに、なんなんだ。 WebVRが登場し、ついにWebでもVRできるようになるぞ! と喜んでいたのもつかの間、WebXRってなんですか。 おそらく、そういう思いでいる方が大半でしょう。状況をまとめてみました。 Three.jsとかでVRプログラミングしたい人 何も心配いりません。WebVRだろうとWebXRだろうとThree.jsなどのライブラリが内部でこれらをうまく使って抽象化してくれるため、そういう方はこれらのAPIを触る機会がそもそもないでしょう。記事を軽く流しで読むか、「へー、いずれはWebXRに世の中移っていくんだね〜」ということだけ知っていただければ十分です。 まず、WebVRとは WebVRはWebブラウザで動作するVRのためのJavaScript APIです。このAPIは2014年にMozillaから提案され、その後GoogleChromeチームも参画して2016年

    WebVRだのWebXRだの状況をまとめてみた - Qiita
    aont
    aont 2023/01/19
  • AWSで動画コンテンツをDRMする&パッケージング&配信する仕組みを作る - Qiita

    概要 この記事はDMMグループ Advent Calendar 2020 12日目の記事です。 過去に、AWSを用いて動画配信基盤のディザスタリカバリスタックを構築した記事を書いたことがありますが↓ もしもに備えた動画配信基盤のDRシステム - DMM inside この記事ではその際の知見を使って、0からAWSで動画コンテンツのエンコード・DRM・パッケージング・配信をする仕組みを解説します。 今日は社会情勢も相まって、世界中で急激にライブ配信・リアルタイム通話・VOD・音声配信・ライブECなどのストリーミング関連サービスが勢いをつけてきていると思われます。0から自前でストリーミング機能を実装するようなケースも増えてきているのではないでしょうか。 AWSな配信システムにDRMな仕組みを導入したい、開発工数に余裕がない、プロトタイプ的な配信システムをセキュアかつコスパよく構築したい、という

    AWSで動画コンテンツをDRMする&パッケージング&配信する仕組みを作る - Qiita
    aont
    aont 2023/01/19
  • asyncio を使って簡易の HTTPS サーバーを立てる - Qiita

    概要 イベントループのための asyncio モジュールおよび uvloop の練習のために簡易の HTTPS サーバーを立ててみました。uvloop は asyncio および libuv をもとにしたモジュールです。2016年以降、uvloop を採用した Sanic や japronto などの新しいマイクロフレームワークが台頭しました。 前提 Python 3.6 を前提とします。Python 3.6 で ssl モジュールの SSLContext のデフォルト値の変更や定数が整理統合されました。 uvloop について uvloop は asyncio.AbstractEventLoop を実装し、uvloop と互換性のある API を提供しています。libuv の制約から uvloop は Windows をサポートしないため、asyncio が uvloop フォールバック

    asyncio を使って簡易の HTTPS サーバーを立てる - Qiita
    aont
    aont 2023/01/19
    asyncio show_index ファイル一覧
  • Kubernetes マルチクラスタ管理ツール ~ KubeFed - Qiita

    背景 エッジクラウドのシナリオで、K8s を各地に分散していくアーキテクチャがよくあります。 例えば全国の各店舗にエッジを置いて、試着の AR を動かしたり、各地工場にエッジを置いて IoT シスエムを動かしたりするケースが考えられます。 K8s cluster が複数に分散されますが、それぞれの店舗、工場に IT 人員を配置することはもちろん不可能ですが、たとえすべてリモートで接続できるとして、数百個の Cluster に対して一々 kubectl を打ったりするのも非現実的です。 もちろんスクリプトやAnsible/Jenkinsを組めば、自動的に回すことができますが、例えばやりたいことはすべてのクラスタに対して同じコマンドを打つのだけではなくて、地域によって、クラスタをグルーピングして、特定のグループに対して特定な操作を一斉にしたい場合ならば、状況が複雑になります。これで、大量の同質

    Kubernetes マルチクラスタ管理ツール ~ KubeFed - Qiita
    aont
    aont 2023/01/17
    マルチクラスタ間で Replica Set を重み付けてリソース分散配置する機能
  • ChatGPT使い方総まとめ - Qiita

    こんにちは!sakasegawaです! ( https://twitter.com/gyakuse ) 今日は今流行のChatGPTについて紹介します! ChatGPTとは OpenAIが開発するGPT-3(※)というめちゃくちゃすごい言語モデルをベースとしたチャットアプリです。 色んな質問にすぐ答えてくれます。 この記事ではさまざまな使い方を紹介します。 https://chat.openai.com/ ちなみにGPT-3関連では、noteの以下記事も便利なのでぜひ読んでみてください AIがコミットメッセージ自動生成!神ツール『auto-commit』『commit-autosuggestions』の紹介 ※正確にはGPT-3.5シリーズと呼ばれています ChatGPTの仕組みを考えながらプロンプトを作る手法はこちらに別途まとめています 文章 質問-応答 〜について教えて Wikiped

    ChatGPT使い方総まとめ - Qiita
    aont
    aont 2023/01/16
  • VSCodeにChatGPTの拡張機能を入れてコードレビューやバグを発見してもらう - Qiita

    ChatGPTとは? OpenAIが開発するGPT-3という言語モデルをベースとした(執筆当時)チャットアプリです。 こちらの質問に対して、AIが色々な質問に答えてくれて、一般的な内容だけではなく、コードレビューやバグなども発見してくれるめっちゃ凄いやつです。 細かい内容は以下の記事がとても参考となります。 筆者の関連記事 VSCodeと連携して、ブラウザを開かなくてもChatGPTを使用できるようにする 通常はブラウザを開いて使用するのですが、コーディング中にサクッとレビューしてもらったり、バグを見つけてもらえるような拡張機能があったので、そちらの設定方法について記述してみます。 今回インストールする拡張機能 使用までの手順 環境 PC: MacBook Pro (Apple M2) OS: macOS Ventura 13.1 VSCode: v1.74.3 OpenAIの価格について

    VSCodeにChatGPTの拡張機能を入れてコードレビューやバグを発見してもらう - Qiita
    aont
    aont 2023/01/16
  • 環境を作って、mTLS通信の基礎を学んでみよう - Qiita

    1. はじめに Mutual TLS (mTLS/相互TLS認証) は 主に B2B間でWebサービスを使用する際に使われる サーバ・クライアントが相互に認証をする仕組みのことです。(公式な仕様・定義はみつけられなかったのですが、広く使われている用語のようです。) 普段使われている TLSは ネットワーク上でなんらかの通信を行う際に用いられる暗号化のためのプロトコルです。主に、PKI(Public Key Infrastructure)の X509.証明書から構成されています。X509.証明書は 証明書のフォーマットで、https通信の基となる TLSで採用されています。 デフォルトでは、TSLプロトコルは、X509.証明書を利用して、クライアントがサーバのアイデンティティを検証します。企業間(B2B)のWebアプリケーションのように、サーバだけでなく、クライアントのアイデンティティ検証

    環境を作って、mTLS通信の基礎を学んでみよう - Qiita
    aont
    aont 2023/01/16
  • Cloudflare の ngrok的なサービスがあるらしい ⇒ $ cloudflared tunnel --url localhost:8080 といった使い方 - Qiita

    Cloudflare の ngrok的なサービスがあるらしい ⇒ $ cloudflared tunnel --url localhost:8080 といった使い方cloudflarengrokArgoTunnel 概要 タイトルの通りです。 ngrok とかが有名どころの、ローカルに立てたサーバをインターネット側からアクセスできるようにするやつです(Bot開発のプロトタイプを作る時とか、ローカルでテスト的に作ったサーバにインターネット側から HTTP リクエストを送りたい、とかそういう時に使う感じの)。 類似サービスもいろいろありますが、今回のものは自分は初めて見かけたように思います。 導入や使い方 cloudflared の導入方法 Mac で Homebrew を使ってるなら、以下のコマンドで簡単に導入できます。 その他の各OS での導入は、以下を見ると良さそうです。 ●Instal

    Cloudflare の ngrok的なサービスがあるらしい ⇒ $ cloudflared tunnel --url localhost:8080 といった使い方 - Qiita
    aont
    aont 2023/01/12
  • Skupperを使ってMAC PCとAWS上のOpenShiftのマルチクラスタネットワークを作ってみる - Qiita

    1. はじめに みなさん、こんにちは。 記事では、AMQP準拠のルータ(Qpid Dispatch Router)を用いて簡単にKubernetesのマルチクラスタのアプリケーション間通信を実現するオープンソースであるSkupperを紹介します。 また、IstioのサンプルアプリケーションであるBookinfoのPodをMAC PCAWS上に配置し、Skupperを用いて接続する方法を記載します。 2. Skupperとは Skupperは、KubernetesのマルチクラスタをInterconnectするソフトウェアです。 クラスタ間のネットワークを構成する方法として、SubmarinerなどのIPsecを用いる方法や、Istioを使用してmTLSでクラスタ跨ぎでアプリケーション間通信を制御する方法などがありますが、NATやファイアウォール越えの対応やテナント分離の課題(Cluste

    Skupperを使ってMAC PCとAWS上のOpenShiftのマルチクラスタネットワークを作ってみる - Qiita
    aont
    aont 2023/01/10
  • パケットの気持ちになってみる PART3: 〜 L2スイッチ自作編 〜 - Qiita

    2 処理概要 2.1 受信ハンドラの登録 vswconfig add コマンドを実行すると vswitch.ko ではカーネル関数 netdev_rx_handler_register() により、指定されたNICにおいてパケットを受信した際に呼び出される受信ハンドラを登録した後、NICをプロミスキャスモードに設定します。 vswitch_packet.c: vswitch_rx_handler_register() 2.2 パケットの受信 NICでパケットを受信した場合、2.1で登録した受信ハンドラが呼び出されます。受信ハンドラでは以下の処理を行います。 ・受信パケットの送信元MACアドレスと受信したポートをFDB(Forwarding Database)に設定します。 ・BPDUやLLDP等、転送の必要がないL2の制御用パケットを破棄します。 ・パケットの転送処理を呼び出します。 vs

    パケットの気持ちになってみる PART3: 〜 L2スイッチ自作編 〜 - Qiita
    aont
    aont 2023/01/09
  • 顔認証機能を提供しているOSSについてメモ - Qiita

    業務で顔認証機能を提供しているOSSについて調査する機会があったので、メモを残しておきます。 1. OpenCV OpenCVは、画像処理・画像解析および機械学習等の機能を持つオープンソースのライブラリです。オープンソースですので、基的に無料で使用することができます。Pythonを始め、C/C++Java、MATLAB用として公開されており、もともとはインテルが開発・公開しています。 関連記事 公式ページ,Github https://opencv.org https://docs.opencv.org/3.4.3/d1/dfb/intro.html https://github.com/opencv/opencv OpenCVで顔認証やってみた https://qrunch.net/@Atom/entries/Q9fV8JEIQJVCDVId?ref=qrunch OpenCV だけ

    顔認証機能を提供しているOSSについてメモ - Qiita
    aont
    aont 2023/01/08
  • Pythonスクリプトのメモリリークを探す - Qiita

    どんなプログラミング言語でもメモリリークの追跡は難しいものです。特に、他人の作ったライブラリでメモリリークがある場合、原因を切り分けるのは非常に面倒な仕事になります。 Pythonにはtracemallocという組み込みモジュールがあり、これがメモリリークの調査に便利だったのでまとめてみます。 メモリ消費量トップ10を出す tracemallocのマニュアルにも書いてあるのですが、下記のようにするとメモリ消費量のトップ10が出せます。 import tracemalloc tracemalloc.start() # ... メモリリークしてるっぽい処理 ... snapshot = tracemalloc.take_snapshot() top_stats = snapshot.statistics('lineno') print("[ Top 10 ]") for stat in top

    Pythonスクリプトのメモリリークを探す - Qiita
    aont
    aont 2023/01/07
  • PythonからGPU使用率などの情報を取得する(nvidia-smiコマンド) - Qiita

    サーバのどのGPUが空いてるか調べたい→プログラムからGPU使用率とか取れないのかな〜と思ってちょっと調べたらいつも使っているnvidia-smiコマンドはオプション次第でマシンリーダブルな出力を出してくれそうなことがわかりました。 --query-gpuオプション --query-gpuオプションは欲しい情報を並べるとそれをとってきて--formatオプションで指定した出力スタイルに加工して出力してくれます。 たとえば以下のような情報を指定することができるようです。 index: 0からはじまるハードウェアのマシン上の番号, "0"とか"1"とか memory.free: 空きGPUメモリ量, "5123 MiB" とか memory.used: 使用GPUメモリ量, "3451 MiB" とか memory.total: GPUに搭載されているメモリ量, "8113 MiB" とか u

    PythonからGPU使用率などの情報を取得する(nvidia-smiコマンド) - Qiita
    aont
    aont 2023/01/06
  • nginxで特定のIPからは公開したいけどそれ以外はBASIC認証にしたいときの設定 - Qiita

    件、件名の件名の対応をやろうとググったら 昔自分が書いた(2013/02/21)会社のブログが出てて(記憶力のなさにビビった) だけど該当ページがなくなっててw キャッシュからからQiitaに再掲 やりたいことを端的にいうと 外部にあるテストサーバーとかで 社内からはアクセスは無条件で公開したいけど それ以外のアクセスはBASIC認証にしたい場合の設定です (社内だけじゃなく、外部からもチェックしなきゃいけない場合とか) いきなり設定どーん location / { satisfy any; allow 123.123.123.123; deny all; auth_basic "basic authentication"; auth_basic_user_file /etc/nginx/.htpasswd; }

    nginxで特定のIPからは公開したいけどそれ以外はBASIC認証にしたいときの設定 - Qiita
    aont
    aont 2023/01/02
  • https_proxy=httpとhttps_proxy=httpsは何が違うのか? - Qiita

    1. はじめに ことの発端は、IBM Cloudの CLIでProxyを設定できるかどうかを検証していた時である。 その記事では、 export https_proxy=http://10.0.0.4:3128 としたが、 export https_proxy=https://10.0.0.4:3128 ではなぜダメなのか?と思った次第。実際、後者のやり方で実行すると、IBM Cloud CLIで実行するとproxyconnect tcp: tls: first record does not look like a TLS handshakeというエラーが出たので、やはり挙動としては違いはあるはずである。そもそも設定上の組み合わせとしては以下の4つがあるはず。Case1はhttpでの指定として自然だし、Case3はhttpへのアクセスにhttpsを利用するという上であり得ない組み合わせの

    https_proxy=httpとhttps_proxy=httpsは何が違うのか? - Qiita
    aont
    aont 2023/01/02
  • Appiumを使って複数デバイスで実機テストする - Qiita

    はじめに SauceLabsを利用してAndroidアプリのテストを動かそうとして、まずはテストを書いてみようと手元の環境Appium+Androidエミュレータ環境で試みました SauceLabs + AppiumでAndroidアプリのテストを走らせる ローカルにあるアプリをAppium + SauceLabsでテストする ところが動きがあまりにももっさりとしていたので実機で試してみたくなり・・・ 実機でやってみるとサクサクでした せっかくなので、一度に複数の端末で同じことやらせたいなと思い、やってみたので記録します 前提 Appiumが利用出来る環境が構築していること ここに書いています adbコマンドが利用出来る 上のリンクのチュートリアルどおりにやれば入ります 注意事項 以下の場合はAppiumを使ったデバイスとの通信ができませんので、はまらないようにしてください デバイスにロッ

    Appiumを使って複数デバイスで実機テストする - Qiita
    aont
    aont 2023/01/02
  • PythonでGmailの下書きを作成する - Qiita

    Windows10 home Python 3.8.3 google-auth-oauthlib 0.4.1 google-api-python-client 1.12.2 やりたいこと ローカル環境でPythonを動かし、GmailにAPI経由で下書きを作りたい。 この記事では必要最低限だけのエラーハンドリングもクソもないコードを書きます。 悪しからず。 手順 大まかな手順は以下のようになっています。 GCPプロジェクトの作成 GCPで認証情報の作成 Pythonスクリプトの作成 1. GCPプロジェクトの作成〜 2. 認証情報の作成 1と2に関しては記事→「Python を使い、Gmail API 経由で Gmail の送受信を行う」 が大変にわかりやすいです。 基的に記事に従っていけば問題はないはずですが、自分の場合「VivaldiGCPにアクセスをするとclient_<id

    PythonでGmailの下書きを作成する - Qiita
    aont
    aont 2023/01/01
  • メモ:MiniUPnPで家庭用ルータの外向きIPアドレスを知る - Qiita

    参考:Linux/コマンド/upnpc ルータの外向きIPアドレスは、ルータの外のマシンにアクセスして取得するのが一般的だが、ご家庭ルータがUPnP IGD (Internet Gateway Device)に対応していれば、UPnPクライアントを使うことで外向きIPアドレスを取得できる。 apt-getでインストールする。 $ upnpc -s upnpc : miniupnpc library test client. (c) 2006-2010 Thomas Bernard Go to http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/ for more information. List of UPNP devices found on the network : desc: http://192.168.1.XXX

    メモ:MiniUPnPで家庭用ルータの外向きIPアドレスを知る - Qiita
    aont
    aont 2023/01/01
    upnpc public ip global ip グローバルIP パブリックIP