importするライブラリのバージョンを指定するのを忘れていて悲しい目に遭い、ライブラリとの付き合い方を考えた結果、基本的には使わないというスタンスで行こうと思っていましたが、そういうわけにもいかないかも…という情報を見つけました。
2021年10月16日土曜日
2021年10月15日金曜日
deno chat
久しぶりにdenoを利用したプログラムを作成しようと思い、過去のソースをコピペして動作確認してみたらエラーが出るようになっていて、非常に悲しい思いをしました。
Denoマニュアルで推奨されているように、importするライブラリのバージョンを指定するべきだったのですが、していなかったのが原因と思われます…。
この際、ライブラリに頼り切るのをやめる事にしました。
Denoマニュアルで推奨されているように、importするライブラリのバージョンを指定するべきだったのですが、していなかったのが原因と思われます…。
この際、ライブラリに頼り切るのをやめる事にしました。
2021年10月11日月曜日
2021年8月30日月曜日
2021年7月29日木曜日
WPFにWebView2を配置してmshta.exeの代替にするサンプル その2
前回のサンプルではファイルの入出力やコマンドの実行などはサーバ(deno)に頼る形になっていました。
今回のサンプルでは、WPFでファイルの入出力やコマンド実行ができるため、サーバが不要になりました。
今回のサンプルでは、WPFでファイルの入出力やコマンド実行ができるため、サーバが不要になりました。
2021年7月8日木曜日
WPFにWebView2を配置してmshta.exeの代替にするサンプル
WPFを使うのもVisualStudioを使うのも初めてで、ドキュメントも読まずに作ったので正しくない箇所は恐らく無数にある感じだとは思いますが、最低限やりたい事が出来るのは動作確認しました。
2021年7月3日土曜日
PWAを実行可能アプリケーションとしてLAN接続された複数のPCで使いまわしたい
※この投稿では具体的な解決策は示していません。
※願望を綴っているだけです。
使用するPCを変えるたびにインストールしなければいけないのは面倒そうな気がするので…。
こんな方法で出来るかも?とイメージだけ描いてまだ試していません。
※願望を綴っているだけです。
使用するPCを変えるたびにインストールしなければいけないのは面倒そうな気がするので…。
こんな方法で出来るかも?とイメージだけ描いてまだ試していません。
2021年7月2日金曜日
2021年7月1日木曜日
denoでPWAをサポートする、最もシンプルなサンプル
PWAを利用するためにはhttpsが必須だと思っていましたが、localhostの場合はhttpでもokでした。
denoを使ってPWAを使うための最もシンプルなサンプルを作成しました。
denoを使ってPWAを使うための最もシンプルなサンプルを作成しました。
2021年6月28日月曜日
2021年6月27日日曜日
denoをどうにかしてデスクトップアプリとして使いたい
この投稿は雑談的な内容です。
最後まで読んでも、特に役に立つ内容は(多分)ありません。
タイトルの通り考えて試行錯誤した経緯を書いておけば、後々何かの役に立つ機会もありそうな気がしたという感じです。
最後まで読んでも、特に役に立つ内容は(多分)ありません。
タイトルの通り考えて試行錯誤した経緯を書いておけば、後々何かの役に立つ機会もありそうな気がしたという感じです。
2021年6月26日土曜日
2021年6月25日金曜日
deno infoを使用して依存ファイルをダウンロード
deno infoサブコマンドを使うと依存ファイルのURLが取得できます。
そのURLに対応するファイルをまとめてローカルフォルダに保存するサンプルを作成しました。
そのURLに対応するファイルをまとめてローカルフォルダに保存するサンプルを作成しました。
2021年6月24日木曜日
denoから全角文字を含むps1ファイルを作成して実行する
WindowsPowerShellがサポートする文字コードは限られています。
denoから出力できるファイル形式も、現状あまり選択肢はありません。
全角文字を含むps1を出力してPowerShellで実行するためのサンプルを作成しました。
denoから出力できるファイル形式も、現状あまり選択肢はありません。
全角文字を含むps1を出力してPowerShellで実行するためのサンプルを作成しました。
2021年6月23日水曜日
2021年6月22日火曜日
denoからPowerShellを使ってファイルの更新日時を揃える
TypeScriptからJavaScriptファイルに変換するプログラムを昨日投稿しましたが、変換前後のファイルの更新日が揃っている方が好ましいので、更新日時を揃えるだけのサンプルを作成しました。
2021年6月21日月曜日
denoが作成するcacheファイルを使ってTypeScriptをJavaScriptに変換する
denoはTypeScriptをJavaScriptに変換してから実行します。
その変換後のキャッシュファイルが必要になったので、抽出するプログラムを作成しました。
その変換後のキャッシュファイルが必要になったので、抽出するプログラムを作成しました。
2021年6月20日日曜日
deno compileで作成したバイナリファイルの終端側から切り出したファイルは同じバージョンのdenoに結合しないと動作しない
先日作成したサンプルでcompile後のバイナリファイルを、サイズを小さくした状態で保管できるようになりました。
しかし実行する際はcompileした時と同じバージョンのdeno.exeに結合しなければいけないようです。
しかし実行する際はcompileした時と同じバージョンのdeno.exeに結合しなければいけないようです。
2021年6月19日土曜日
deno infoをconsole.logで表示した場合とテキストファイルに出力した場合の違い
出力内容に対してRegExpを使用したら謎の結果になって、タイトルの件について確認したら違いがあることが分かりました。
2021年6月18日金曜日
TypeScriptでRegExpを使う方法
JavaScriptと同様に「'abc'.match(/b/)[0]」みたいな書き方をするとTypeScriptではコンパイルエラーになってしまいます。
回避する方法が以下。
回避する方法が以下。
2021年6月17日木曜日
(new Date)['get' + 'Month']()みたいな方法はTypeScriptではできないっぽい
JavaScriptではできましたが、TypeScriptでは駄目なようです。
ブラウザによって違うのかもしれませんが、少なくともDenoは受け入れてくれませんでした。
ブラウザによって違うのかもしれませんが、少なくともDenoは受け入れてくれませんでした。
2021年6月16日水曜日
webSocket通信が必要になる度に接続するサンプル
webSocketの同時接続数には制限があるらしいです。
1つの接続を各機能で共有してやりくりする方法を昨日投稿しましたが、各機能が必要としたタイミングで接続して用が済み次第 切断する、というバージョンも作成してみました。
1つの接続を各機能で共有してやりくりする方法を昨日投稿しましたが、各機能が必要としたタイミングで接続して用が済み次第 切断する、というバージョンも作成してみました。
2021年6月15日火曜日
ブラウザからwebSocket経由でdeno.readTextFileを実行
先日作成したものと見かけは同じですが、中身が少し違います。
sendで渡したオブジェクトが持つプロパティによって異なる機能を呼び出せる仕組み(ただし今回はreadTextFileのみ)になっています。
sendで渡したオブジェクトが持つプロパティによって異なる機能を呼び出せる仕組み(ただし今回はreadTextFileのみ)になっています。
2021年6月14日月曜日
2021年6月13日日曜日
webアプリを(若干)デスクトップアプリっぽく表示する
作成したプログラムがブラウザ上で動作する、またはインターフェースとしてブラウザを使用する場合、プログラムを起動すると基本的にはブラウザ内のタブの一つになる感じになりますが、それだと他のタブを閉じる時などに誤って一緒に閉じてしまう場合があります。
そういう問題の解決策の一つとして、chromeの機能が良さげでした。
そういう問題の解決策の一つとして、chromeの機能が良さげでした。
2021年6月12日土曜日
実行したコマンドを中断したい場合は「Ctrl + C」
今はdenoでプログラムを作成・実行しているので中断したくなった瞬間にブラインドタッチでキー入力できますが、コマンドラインの操作をしばらく止めると また忘れてしまいそうです。
忘れっぽい自分の未来のためにメモ。
忘れっぽい自分の未来のためにメモ。
2021年6月11日金曜日
2021年6月10日木曜日
denoでwebSocketが自動切断されるまでの時間を調べる
webSocket接続は自動的に切れてしまう場合があるらしいです。
通信していない状況が一定時間継続すると切れてしまう場合は、その時間に達する前に通信するように仕組めば良いと思います。
まずは手元の環境で、どのぐらいの時間で切れるのかを確認するためのサンプルを作成しました。
通信していない状況が一定時間継続すると切れてしまう場合は、その時間に達する前に通信するように仕組めば良いと思います。
まずは手元の環境で、どのぐらいの時間で切れるのかを確認するためのサンプルを作成しました。
2021年6月9日水曜日
denoで一時的なテキストファイルを作成する
テキストファイルを経由して何らかのデータの受け渡しをしたりする時に使用する。
path文字列は渡せるけどJSONみたいな各種記号なども含む長い文字列は無理な場合など。
path文字列は渡せるけどJSONみたいな各種記号なども含む長い文字列は無理な場合など。
2021年6月8日火曜日
denoでアクセス元に応じて処理を切り替える
deno上で動作するデスクトップアプリを作成してブラウザからファイルの読み書きや各種プログラムの起動などを行えるようにする一方で、ネットワーク接続された他の機器から「http://IPアドレス:ポート番号」で起動中のアプリの画面を開いて操作されるのは防がないと色々危険なので、アクセス元に応じて処理を切り替えるサンプルが以下。
2021年6月7日月曜日
2021年6月6日日曜日
Deno.runはダブルクォーテーションを渡す際に¥マークが入ってしまう
例えば「dir "C:¥ab c"」のようなコマンドを実行したい場合、「Deno.run({cmd:['cmd', '/C dir "C:¥ab c"']})」とすれば良い…かと思いきや、それを実行するとコマンドラインに渡る文字列は「cmd /C dir ¥"C:¥ab c¥"」となってしまいます。
これがどうにか回避できないと非常に困るので色々試した結果が以下。
これがどうにか回避できないと非常に困るので色々試した結果が以下。
2021年6月5日土曜日
denoでhttp接続用portを自動選択する(修正版)
deno上で動作するデスクトップアプリを数種類作成して、必要に応じて起動させたり終了させたりしたい関係で、TCP接続に使えるポート番号を探すサンプルを先日作成しましたが、意図した通りの動作になっていませんでした。
具体的には、使用中のポート番号でのサーバ起動をトライしたタイミングでエラーが発生してしまうという状態でした。
上記の問題を解消したバージョンのサンプルが以下。
具体的には、使用中のポート番号でのサーバ起動をトライしたタイミングでエラーが発生してしまうという状態でした。
上記の問題を解消したバージョンのサンプルが以下。
2021年6月4日金曜日
denoでローカルエリアにあるテキストファイルのPathをブラウザから指定して中身を読み込むサンプル
ブラウザに表示されたinputボックスにテキストファイルのPathを入力してボタンを押すと、内容がテキストエリアエレメントに表示される、というサンプルが以下。
2021年6月3日木曜日
denoで自作モジュールを使用する
モジュールのimport/exportについてはdenoはECMA Script6に倣っているようなのでdenoに限らないのかもしれませんが。
一つのファイルに色々詰め込むと見通しが悪くなるので、分割できるようにするサンプルが以下。
一つのファイルに色々詰め込むと見通しが悪くなるので、分割できるようにするサンプルが以下。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import { test1 } from "./sub.ts"; | |
console.log(test1('hoge')) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
export function test1(msg:string): string{ | |
return '['+private1(msg)+']' | |
} | |
export function test2(msg:string): string{ | |
return '<'+msg+'>' | |
} | |
function private1(msg:string): string{ | |
return msg + '---' | |
} |
2021年6月2日水曜日
JSON.parse(), stringify()
モダンなJavaScriptとかいう物に慣れてる人には常識かもしれませんが、私は長らくHTAとWSHで戦ってきたのでJSONの入出力もテストしないと不安だったのでテストしました。
2021年6月1日火曜日
カレントディレクトリを指定した状態でcmdを起動する方法
最終的にユーザがアプリを日常的に利用する状況ではバッチファイルから起動できるようにしておくのが良いと思いますが、プログラムの開発中は、バッチファイルではなくコマンドラインから起動する方が手軽だったので、やり方をメモしておきます。
2021年5月31日月曜日
denoのプロセスをブラウザ側からwebSocket通信で終了させるサンプル
denoを使ってローカルマシン上で動作するクライアントアプリを作ろうとしている。
ユーザの視界に入るのはインターフェースであるブラウザだけにして、裏で動作するdenoが見えないように運用するイメージで検討中。
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を取得する最低限のソースが以下。
そのためにscript自身のpathを取得する最低限のソースが以下。
2021年5月26日水曜日
2021年5月25日火曜日
「deno compile」を使わない理由
denoをキャッシュから起動する方法を先日投稿しました。
denoには「compile」というサブコマンドがあり、「deno compile sample.ts」のようにすれば単一の実行可能ファイルが作成されるのに、なぜ手間をかけて他の手段を選択するのか…という理由は以下。
denoには「compile」というサブコマンドがあり、「deno compile sample.ts」のようにすれば単一の実行可能ファイルが作成されるのに、なぜ手間をかけて他の手段を選択するのか…という理由は以下。
2021年5月22日土曜日
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を使えるようにする方法が以下。
「"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などを起動したい場合のサンプルが以下。
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に表示するだけのサンプルが以下。
読み込んでconsoleに表示するだけのサンプルが以下。
登録:
投稿 (Atom)