2021年5月31日月曜日

denoのプロセスをブラウザ側からwebSocket通信で終了させるサンプル

denoを使ってローカルマシン上で動作するクライアントアプリを作ろうとしている。
ユーザの視界に入るのはインターフェースであるブラウザだけにして、裏で動作するdenoが見えないように運用するイメージで検討中。
denoのプロセスを終了させるためのボタンをブラウザ上に配置するサンプルが以下。

2021年5月30日日曜日

denoとブラウザの間をwebSocketで接続するだけ

ブラウザからローカルファイルを読み書きしたり各種コマンドを実行できるようにするためにブラウザとdenoの間で通信できるようにしたいです。
まずは接続するだけのソースが以下。

2021年5月29日土曜日

denoでブラウザを起動してindex.htmlとcss.cssをロードするだけのwebServer

ファイルの種類に応じてcontent-typeの中身を変えないとcssファイルが有効にならなかった。

2021年5月28日金曜日

denoでファイルの有無を確認する

webサーバを立ち上げてchromeにアドレスを入れると「favicon」を要求されるけどローカルファイルが存在しなくてエラー発生し、サーバが落ちる、という感じになってしまう。
だから、ローカルファイルの有無を確認するためのソースが以下。

2021年5月27日木曜日

denoでscript自身のpathを取得

scriptファイルのpathから相対Pathでindex.htmlとかcssファイルにアクセスできるようにしたい。
そのためにscript自身のpathを取得する最低限のソースが以下。

2021年5月26日水曜日

denoでブラウザを起動する

htaの代用にしたい。だからdenoを起動するのと同時にブラウザを起動したい。
ブラウザを起動するのに必要最低限なソースが以下。

2021年5月25日火曜日

「deno compile」を使わない理由

denoをキャッシュから起動する方法を先日投稿しました。
denoには「compile」というサブコマンドがあり、「deno compile sample.ts」のようにすれば単一の実行可能ファイルが作成されるのに、なぜ手間をかけて他の手段を選択するのか…という理由は以下。

2021年5月22日土曜日

denoでhttp接続用portを自動選択する

この投稿の修正版があります。→修正版

空いてるポートが何番なのか分からず、調べるのも面倒なので片っ端から試してサーバ起動に成功したらポート番号を表示する、というサンプルが以下。

2021年5月21日金曜日

denoをインターネット接続環境が無いPCで使用する方法

「import { serve } from "https://deno.land/std@0.86.0/http/server.ts";」で標準ライブラリを手軽にインポートできるのは良いのですが、インターネット接続環境が無いPCで使いたい場合には困ります。
「"https://deno.land/std@0.86.0/http/server.ts"」をブラウザで開くとソースコードが表示されるので、それをダウンロードして上記の一文を「import { serve } from "server.ts";」にすれば良い…かと思いきや、"server.ts"の中にも「import ~~」という文が複数行 含まれていて、そのファイルにも「import ~~」が複数行含まれていて……という調子で、結局server.tsに関連する全てのファイルは13個ありました。
これを一つ一つダウンロードしていくのは非常に手間ですし、色々と間違えたりするリスクもあります。
そのような手間とリスクを回避して、インターネット接続環境が無いPCでdenoを使えるようにする方法が以下。

2021年5月20日木曜日

denoからGUIアプリケーションを起動したい場合、Deno.runではウィンドウが表示されない

Deno.run()でコマンドラインなどの機能を利用できますが、Deno.runから呼び出されたアプリケーションはバックグラウンドでしか動作できないっぽいです。
Deno.runからエクスプローラやExcelなどを起動したい場合のサンプルが以下。

2021年5月19日水曜日

deno v1.10.1のTextEncoderはShift-JISに対応していない

Deno.runでコマンドを実行し、その標準出力を得ることなどができるようになっているが、Shift-JISの文字列をconsole.logに渡すとエラーになってしまうので、下記の方法で対処する。

2021年5月16日日曜日

暗号通貨について思うこと

とっくの昔に他の誰かが思いついて提案しているか既に実現しているのかもしれないけれど、マイニングしている人同士で計算速度をひたすら競争し合って無益な暗号計算のために電力を浪費するのは勿体ないと思うので。

以下のような特徴を持つ有益な通貨が誕生すればいいのにと思った。


2021年5月15日土曜日

インストールしていないdenoを起動するバッチファイル

・node.jsとかdenoとか使ってみたい。
・しかしインストールとかは出来ればしたくない。(圧縮ファイルを展開するだけで利用環境が整うのが理想)
…という希望をバッチファイルで叶える方法が以下。

2021年5月5日水曜日

denoでテキストファイルを読み込む

Deno.readAllで得られる値の型はUint8Arrayなので、文字列として扱うためにはTextDecoderを併用する必要がある。
読み込んでconsoleに表示するだけのサンプルが以下。