たれぱんのびぼーろく

わたしの備忘録、生物学とプログラミングが多いかも

javascript

粗い理解: gumbel softmax

確率分布からの微分可能なサンプリング手法 確率ベクトルにノイズ入れてargmaxすればindexが取れ、そのままone-hot vectorにもできる. => ノイズの入れ方を工夫すると分布通りのサンプリングが可能 (Gumbel-Max Trick) サンプリングはするけど微分もしたい a…

超速!5分でReactアプリ作って世界へ公開

もはやパソコンいらずでReactアプリを作成・公開できる時代. 必要なもの Webブラウザ GitHubアカウント steps レポジトリ生成: 好きな名前のGitHubレポジトリを.gitignore=Nodeで生成 (10秒) 編集モード: ↓Codeボタン -> Open with Codespaces (待ち1分) 素…

Async Generatorの使いどころ

A: 逐次処理と中間結果利用を、関心に基づいて分離できる Async Generator (Async Iterator with Generator) とは async function*で定義できるGeneratorのこと。 例: // Delay utility const asyncProcessing = (output: number): Promise<number> => new Promise((</number>…

Node.jsでもimport/exportは動く

Node.jsでES Modulesがネイティブに動く時代なのです。 Working Code // package.json { "type": "module", } // eptESM.js export const f1 = () => 1; // eptCJS.cjs const f2 = () => 2; module.exports = f2; // ipt.js import { f1 } from "./eptESM.js…

Atom IDEとは。何ができるのか

Atom IDEとは: Atomエディタを統合開発環境 (Integrated Development Enviroment)のように運用する、という概念 Atomプラグイン群によって実現できる IDE-like UI: atom-ide-ui Language Server support: atom-languageclient 各言語で ide-xxx (e.g. ide-ty…

最小手でUnity-Node.js間WebSocket通信

Unity & Node.js使いなら、最速5分でできるよ。 概要 Unity (client) 側はwebsocket-sharpを、Node.js (server) 側はwsを使う。 Unityアプリの画面click回数をserverへ送るテストコードを書くものとする。 手順 websocket-sharpのダウンロードとビルド serve…

ブラウザとモジュールとバージョン管理

ブラウザはモジュールを持つか ブラウザとモジュール モジュール化は綺麗で管理しやすく安全なコードを生む。 モジュールは最高だ。 そして今や、ブラウザ(フロントエンド)でもモジュールは使える モジュールは単体で動くのが主たる仕事ではない。 他のモジ…

GmailからGoogle Calendarに予定を登録

Gmailへ決められた形式で予定のメールを送ると、Google Calendarにその予定が自動登録される. その方法を調べてみた. 概要 仕組み schema.orgが定める形式に則って予定をメールする。 メールはhtmlメール。JSON-LD等が形式として定められている。 Gmailサー…

逆引きRamda.js

Ramda.jsの関数を機能ごとに整理してみた。 日本語のRamda.js記事が少ないのは、なんでなんだろね? 制御構造の抽象化 条件分岐 if系 R.ifElse R.ifElse(condition, onTrue, onFalse) condition関数に基づいてonTrue || onFalse関数を実行. http://ramdajs.c…

システムトレード作成で身につけた技術

非同期とエラー処理 エラーを起こしうる、複数の非同期処理を扱うのがツラミだとよく分かった. 非同期処理の完了タイミングはネットワークによって前後し、エラーで仕切り直す処理が必須になる. うまく処理するための技術として Async/await try-catch (with…

Node.jsでHTTPリクエスト

意外と難しい、けど理化すると簡単。 方法 Node.js謹製、HTTP.request() requestライブラリ 1. HTTP.request() Node.jsに付随するモジュール. 仕様書通り使えば簡単に使える. HTTP | Node.js v9.3.0 Documentation 2. requestライブラリ npmで配布されてるラ…

d3.jsとデータの書き換え

入力値やインタラクションの結果をデータとグラフに反映する仕組みはd3.jsに備わっているのか否か 結論 d3.jsには双方向バインディングに該当する仕組みがない. dataの取得・更新とrebinding、rebinding後の更新が必要. うーむ There's no data-binding magi…

SVGのtextをその場で書き換える

下のtext要素をクリックしてごらん、なんと編集できるよ!! 私はtext要素。でも編集できるよ! (クリックしてみ) わかる人向け: 仕組みを一言でいうと contentEditableなHTML要素の下にtext要素を配置し、このセットをforeignObjectへ入れてSVG要素下に吊るす…

Javascriptの日時 (date & time)

Javascript標準で日時を扱うにはDateオブジェクトを使う. 使い方は割と簡単で、いくつか問題点はあるけどとりあえず使う分にはまぁ 概要 こんな風になっている inputはローカル時間 (日本時間とかアメリカ時間とか。時差のようなもの) の情報を持っているが…

JavaScriptのgenerator入門

generatorの概念 generator(という概念)とは、繰り返しを簡単に・見通し良く記述する仕組みである. generatorの利用 generatorを利用することによって 繰り返しオブジェクト(イテレータ)の容易な作製 見通しの良い非同期処理コード記述 が可能になる. gene…

Node.js プロジェクト開始手引き

git init npm init gitは.git directory, npmはpackage.json が命 これさえあればgitとnpmが消えても大丈夫(のはず) でもコード自体が吹き飛ぶと元も子もない. なのでGitHubのプライベートリポジトリをリモート. これで万事オッケー! 復旧したいときはGitHu…

Node.js stream

ReadableとWritable Sourceからreadして処理をしていくので、Readable streamがSource相当. writeしてあとはおまかせーと吸い込んでいくので、Writable streamがSink, distination相当. Readable streams are an abstraction for a source from which data i…

node-auto-launch

electronのスタートアップ登録を可能にする不思議ライブラリ node-auto-launch ← node-winreg ← child_process.spawn github.com Child Process Node.js v0.11.11 Manual & Documentation node.jsはそもそもコマンドラインを叩けるらしい. 子プロセス云々. …

HoloLensの開発 with javascript

JSでホログラムは創れる (我ながらキャッチーな言葉) HoloLensを始めとした、Windows Holographicでアプリを作成する. 嬉しいことに、javascriptでそれが可能なんです。 Windows Holographic Windows Holographicsにおけるアプリ Windows Holographicのアプ…

プログラムを改修する

思いつきでガリガリ書いていたプログラムが、案外いい感じになり、リファクタリングしたくなった. 保守という概念を覚える前に書いたコードを、保守出来るようにしたい. こんなとき、どうすりゃいいのだろう. リファクタリング コードの保守・機能追加をする…

配列から特定の要素を取り除く ―ver. ES2016―

配列から特定の要素を乗り除く (例. [a, b, X, d] -> [a, b, d]) 方法を複数紹介する。 一覧 Array.filter (ES2016) Array.indexOf + Array.splice 詳細 Array.filter (ES2016) EcmaScript2016で新登場した、Array.filterメソッドを利用する方法. // ary配列…

d3.js version 4

モジュール Arrays (Statistics, Search, Transformations, Histograms) Axes Brushes Chords Collections (Objects, Maps, Sets, Nests) Colors Dispatches Dragging Delimiter-Separated Values Easings Forces Number Formats Geographies (Paths, Projec…

cognitoでログイン/セッション管理

ユーザーを限定するwebサイト・webアプリはログインの仕組みが必要になる. AWS cognito, 特にUser Poolsの機能でこれが実装できる. Cognitoとは何ぞ?という方はこちら一読を推奨. tarepan.hatenablog.com Cognitoを用いたセッション管理の大枠 インターネッ…

AWS Cognito 入門 -概要と詳細へのリンク-

Amazon CognitoとはIDサービスとデータ同期を提供する. Amazon Cognitoの機能 いくつかのサービスが関わりあって存在. 機能をジャンジャン追加するので名前の整合性が(ry Amazon Cognito Cognito User Pools (Your User Pools) Cognito Identity (Federated …

Cognito User Poolsの機能と使い所

Amazon Cognito User Poolsとはユーザー名簿管理サービスである. User Poolsの機能 User Pools単体を用いることで 名簿の作成・管理 ユーザーの追加・メール認証・削除 password管理 ユーザー属性の管理・呼び出し ログイン/セッション管理 などが出来る. 他…

AWS(クラウド)で手軽にwebアプリを作る

概要 webアプリ(ブラウザで動くアプリ)を思いついた、作ろう。 ブラウザで全部の処理させるのって、すごい大変そう。 サーバーを借りて色々する…のかな、難しそう。 →クラウド(AWS)で手軽にwebアプリが作れる! 具体的に アマゾン ウェブサービス / AWSを使…

Node.jsとAWS Elastic Beanstalk

パッケージのインストール package.jsonのdependencyに書いておけばEB側で勝手にインストール、すごいぞEB package.json ファイルがある場合は、Elastic Beanstalk では依存関係をインストールするために npm install が実行されます。 link アプリの起動 特…

javascriptと最大値 ver. 2016 - オブジェクトの配列も -

Math.max()が基本 最近増えた便利記法: スプレッド演算子 (...) Math.max() 引数の最大値を返します. 引数: 数字 (カンマ区切り, 配列不可) Math.max(1,2,4,7,3) == 7 配列の最大値 新しい方法 スプレッド演算子 (...) を利用. ES6から登場したスプレッド演…

データの更新・遷移・引き出し/D3.js

データの更新 Data(data, key)のkey指定を利用 nebuta.hatenablog.com データの遷移 transition treeの遷移 Interactive d3.js tree diagram - bl.ocks.org データの引き出し data() 引数無しでselectionの第1groupからjoinされたdatum配列を返してくれる. h…

有向非循環グラフの可視化

概要 有向非循環グラフの可視化(visualization)について手法と記事のまとめ。 有向非循環グラフ Directed Acyclic Graph architecture topolodical sort layer assignment vertex ordering within layers median vertex positioning within layers Sugiyama …