Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
Apple Silicon (ARM, M1) のmacOSにaarch64とx86_64のhomebrewを共存させるMachomebrewx86-64aarch64M1 ARM版Macで開発を始めている方も多いかと思います。 Rosetta2やDocker Desktop on macのおかげでウェブ開発において全く開発ができないということはないんじゃないかと思います。 一方で、Dockerを使わずにネイティブで開発するにはいくつかの問題もまだ残っています。 例えば、homebrewでpythonのいくつかのバージョンがインストールできないとか、Rustがインストールできないとか、そういう問題にぶつかることがあるでしょう。 そこで、本記事ではhomebrewのx86_64 (intel) 版と、aarch64 (ARM) 版を共存させ、どちらを使うか選べるようにします。 Homebre
結論 cat /etc/hosts | awk 'END{print $1}' | sed -r -e 's/[0-9]+$/1/g' docker-composeでとりあえず普通にコンテナどうしの通信 Dockerfileの中でEXPOSE 80みたいな感じでポートを指定 docker-compose.ymlにhostname: hogeでホスト名をつける hoge以外のコンテナからcurl http://hoge/ みたいな感じでしょう コンテナではなくホストマシンと通信 ホストマシンのホスト名を指定すればよいですね curl http://hostmachine/ でも特に開発環境などにおいては、いつもホストマシンにホスト名を設定しているわけではありません。 それなら開発環境におけるホストマシンのIPアドレスを指定すれば解決できそうですが、 そもそもいつもホストマシンのIPアドレスが
はじめに Node.jsを使う際に、標準のfetch API以外、requestモジュール、axiosのモジュールはよく使います。 書き方はGithubのページに書いてありますが、よくGoogle先生に聞く場合も多いです。 やはりオフィシャルに記載した情報は一番ですね。 axios: https://github.com/axios/axios request: https://github.com/request/request axiosのget,post,deleteメソッドを簡単に説明します。 Expressのパラメータの取得方法 まずサーバ側の情報を取得する仕組みを確認します。 Express.jsのリクエストAPI:https://expressjs.com/ja/api.html#req 1. headers // access_token: xxxxxxxxxxxx con
非同期処理とは ある処理を実行中に別の処理を止めないこと処理を非同期処理という。 swiftではスレッドを利用して非同期処理を実現する。 スレッド:CPUにおける最小の実行単位。 スレッド数はCPUが担当できる仕事の数。 どんな場面で非同期処理が必要? アニメーションやサーバーとの通信など、時間がかかる処理・重い処理などに使用します。 マルチスレッド処理 通常プログラムはメインスレッドという単一のスレッドから処理を開始するが、別のスレッドを作成して別の処理を実行させることができる。 !!ただし、iosにおいてユーザインターフェイスに関わる処理は通常メインスレッドで行われる!! しかし!!マルチスレッドは正しく実行しなければ下記の深刻な問題が発生するので注意。 ①メモリの枯渇 ②複数スレッドから同一データを更新するなどの不整合・衝突が発生 ③デッドロック 非同期処理を行う3つの方法 ①GCD
iOS で AVAssetWriter + swifter で HLS 配信 iOS14 から AVAssetWriter に fragmented MPEG-4 ファイルを出力する機能が追加されました!!! swifter を使って httpサーバを起動し、 AVAssetWriter で作成した fragmented MPEG-4 ファイルを配布することで、iPhone から HLS で映像配信する事が可能です 関連リンク リポジトリはこちら Apple のゲームアプリのテンプレートの画面を配信する事が可能です iPhoneからHLS配信できた! pic.twitter.com/9GFckF9tsP — ふじき (@fzkqi) August 13, 2021 参考になりました 実装 fragmented MPEG-4 ファイルの作成 AVAssetWriter を作って、fragme
JS/TSは、バイナリデータをBASE64エンコードするビルトイン機能が無いため、大人しくライブラリを使うか自前でロジックを用意する必要がありました。 結局はライブラリを使用する場合が多いのですが、機密性の高いデータを扱う場面もあるため、ブラックボックスになるのも精神衛生的に良くないなぁと、ずっと思っていました。 とはいえ、アルファベットテーブルを拵えて6ビット区切になるようビットシフトして文字列加算して...を毎回用意するのも気が引けていました。 しかしある時「実はビルトイン機能を組み合わせるだけで簡単に出来るのでは?」と単純な思い付きで書いたコードがすんなり動いてしまったので、本当に大丈夫なのか有識者の意見も欲しく、こうして記事にしてみました。 本体コード function base64encode(data:Uint8Array){ return btoa([...data].map
ReactNativeとSkyWay ネイティブアプリケーションを作る際に、ReactNativeはとても生産性が高く、好んで使っています。 また、SkyWayですが、WebRTCを使ったアプリケーションを作る際のプラットフォームとして、特に日本では一定のコミュニティもありますし、良い選択肢だと思います。 SkyWayでは、iOS SDKとAndroid SDKが提供されているのですが、ReactNativeからそれらネイティブSDKを使おうとすると、JSとブリッジしてやる必要があります。 今回、ReactNativeからSkyWayをブリッジするネイティブモジュールを書いて公開した1ので、その紹介をかねて導入と簡単なサンプルコードを説明させてもらおうと思います。 react-native-skyway 以下は、iOSで説明していきますが、Androidにも対応することが可能です。 プロジ
はじめに Androidアプリの中にWebサーバを設置する方法として、Nanohttpdを利用した方法を記載する。 1. 開発環境 macOS High Sierra ver.10.13.6 node.js: ver.10.15.1 npm: ver.6.8.0 yarn: ver.1.13.0 vue.js (vue cli): ver.3.4.0 Google Chrome (macOS): ver.74.0.3729.131 Android Studio: ver. 3.3.1 Androidスマホ:Moto G5 Plus (Android 8.1.0) 2. Kotlinの新規プロジェクトを作る 今回はKotlinベースのAndroidアプリを作る。 2-1. 新規プロジェクト作成 (Android Studio) Android StudioのFile -> New -> Ne
この辺が曖昧だったので、書き残しておきます。 ビルドとは何か なぜビルドが必要か ビルドでは何を行なっているのか ビルドしたらどうなるのか Node.jsの特徴 JavaScriptをサーバーサイドで動かすための実行環境。 モジュール機能(他ファイルの読み込み) ノンブロッキングI/Oで処理を効率化 参考記事 ノンブロッキングI/O (non-blocking I/O) ノンブロッキングI/Oと非同期I/Oの違いを理解する Node.js を5分で大雑把に理解する Node.jsについて調べてみた JavaScriptが辿った変遷 npm とか bower とか一体何なんだよ!Javascript 界隈の文脈を理解しよう ビルドツール Node.jsスタイルのコードは、そのままの状態ではブラウザで動きません。ソースコードを元にして、実際に動くプログラム(実行可能ファイル)を作ってあげる必要
はじめに 先日face-api.jsを使ってみました。 前回の記事↓ 今回はface-api.jsについてもう少し調べてみたいと思います。 face-api.jsとは? 繰り返しになりますが、face-api.jsはブラウザで顔検出(face detection:人の顔を自動的に見つける)と顔認識(face recognition:個人を識別する)ができるJavaScript APIです 機械学習用のライブラリTensorFlow.jsが利用されています face-api.js face-api.jsを使う準備 前回参照。 まだNode.jsは勉強中なので 今回も自分のプロジェクトにスクリプトを含める方法です。 今回試すもの 「トラニナル」はとにかく動くものを短時間で作る。という マッチョな目標があったので読み飛ばしましたが face-api.jsの内容をもう少し読んでいきます。 ⇒読んだ
目的 $.ajaxをasync awaitを用いた同期処理で書く。 Ajax通信を待ってから処理に進む。 同期処理が入れ子にならず、クリーンに書くことができる。 IEには対応していない。注意。 経緯 保守の際、既存コードがjqueryのajaxで記述されていた。 jquery自体は別に良い。 だが、大量のコールバックによる入れ子で非常に見通しが悪くなっていた。 それをasync awaitを用いた同期処理にリファクタリングをした際の備忘録である。 書き方 フルーツID🔑からフルーツ名🍒を取得する。 /** * フルーツ名を取得する * * @param {string} fruitId */ async function getFruitName(fruitId) { const fruitRequest = {id: fruitId} const fruitResult = awai
Promiseで処理が失敗したらリトライしたい Promiseの結果次第でリトライをかけたい場合があります。簡単な実装は以下で、これはググるとすぐに出てきます。 function retry(func, retryCount) { let promise = func(); for (let i = 1; i <= retryCount; ++i) { promise = promise.catch(func); } return promise; } // 失敗時に5回までリトライ retry(() => fetch("url"), 5).then(...) // これは以下と同じ fetch("url") .catch(() => fetch("url")) .catch(() => fetch("url")) .catch(() => fetch("url")) .catch(()
タイトルは釣り、かつ、自分のための備忘録です。 マイクロサービスアーキテクチャでサービスを構築すると、APIサーバをサービスごとに立てるわけですが、 ブラウザ上のJSエンジンからAPIサーバを叩く時に避けて通れないのが、Same-Origin Policy(同一生成元ポリシー)によるCORS (Cross-Origin Resource Sharing)制限です。 これを回避するには、APIサーバ側でAccess-Control-*ヘッダを適切に返す必要がありますが、どう設定するべきかの情報が意外と少ないので(自分的)これが決定版! という設定を考えてみました。 結論 nginxの場合の設定例です。 server { listen 80; server_name site.localhost; charset utf-8; root /var/www/app/public; locatio
TL;DR HLSは原理がシンプルでわかりやすく情報が豊富。 HLSはほとんどのブラウザで視聴可能だが実装依存もある。 HLSでの視聴制限は一工夫必要。 はじめに 近年NetflixやPrime Videoなど、たくさんの動画配信サービスがありますね。皆さんも使われているものもあるのではないでしょうか? Netflixなどほど大規模でなくとも、様々な場面で動画配信の技術を活用しているのを目にします。 私たちはWebサービス受託開発の会社ですので、これまでにお客様からのご相談にお応えして、動画配信サービスも開発してきました。 この文書はオンデマンド動画配信 (VOD: Video on Demand) 開発についてまとめた社内資料を一般向けに再編集したものです。 動画配信サービス開発に興味のあるエンジニアにとってのはじめの一歩となれば幸いです。 想定する読者 VOD実装経験がない バックエン
はじめに WebSocketの通信テスト(SSL)を簡単に実施したくて、EC2上にたててみました。 サーバ側でしたこと EC2の設定 $ sudo su # curl -sL https://rpm.nodesource.com/setup_12.x | sudo bash - # sudo yum install nodejs # node -v v12.10.0 # npm -v 6.10.3 # npm install ws https http securitygroupはssh,http,https,TCP-8080をOPEN SSL用のサーバ証明書一式を/etc/ssl/certs/へコピー Route53の設定 EC2インスタンスのIPアドレスをレコードセットに登録 EC2上に置くWSSサーバのコード websockets/wsのサンプルコードに一部追記しました。 今回cli
1 概要 サーバ & AWS 初めましてな初心者がAWS上にSTUN/TURNサーバを構築することになりました。 ここでは、coTurnによるTURNサーバ構築をわかりやすい言葉で紹介します。 2 前提 2.1 TURNサーバって? TURNサーバ周辺の簡単な説明は【初心者向け】STUN/TURNサーバをざっくり解説してみたをお読みください。 2.2 coTurnって何者? coTurn: https://github.com/coturn/coturn 簡単にSTUN兼TURNサーバが構築できるOSS。 3 本題 coTurnを使ったTURNサーバ構築方法です。 TURNサーバにフォーカスして記述しますが、同時にSTUNサーバも構築されます。 3.1 EC2インスタンスの作成~設定 Amazon EC2 でubuntuのインスタンスを作成します。 (ubuntuだとcoTurnのインスト
Janusの動作確認 ブラウザからデモページ(http://127.0.0.1:8000/videoroomtest.html)にアクセスし、Janusのビデオルーム等が利用できることを確認する。 右上のSTARTボタンをクリックし、ルーム名を入力すると、ブラウザにパソコンのカメラ映像が表示されます。 DockerFile内容 # Base Image Debian FROM debian # OS Update RUN apt-get update # Required library installation RUN apt install libmicrohttpd-dev libjansson-dev libssl-dev \ libsofia-sip-ua-dev libglib2.0-dev libopus-dev libogg-dev \ libcurl4-openssl-d
概要 Node.js アプリケーションのシンプルなサンプルを作成する Node.js を動かす Dockerfile を作成する Dockerfile から Docker イメージを作成する Docker イメージから Docker コンテナを作成する Docker コンテナを起動する 今回の環境 macOS Catalina Docker Desktop Community 2.3.0.3 Node.js v14.4.0 docker コマンドは Docker Desktop に付属のものを使う。 $ docker --version Docker version 19.03.8, build afacb8b $ which docker /usr/local/bin/docker $ ls -l /usr/local/bin/docker lrwxr-xr-x 1 root admin
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く