見出し画像

4月18日 日曜日 21:30

Node.jsをWindowsノンプログラマユーザに実行してもらうための準備

TypeScriptで書いたJSのコードをWindowsノンプログラマユーザに提供したい。

node.exeとライセンス文を添付し、スタンドアロンな状態で実行できるようにしたい。

参考: Windowsユーザーにてきとうにnode.jsプログラムを配る http://narazaka.blog109.fc2.com/blog-entry-199.html?sp

ーーー (引用ここから) ーーー

1. node.exeを落としてくる https://nodejs.org/dist/latest/win-x86/

2. ライセンスも落としてくる https://raw.githubusercontent.com/nodejs/node/master/LICENSE

3. てきとうにmain.jsとかにjavascriptを書く

main.js冒頭に下記を追記し、拡張子をbatにする(改行はCRLFで)

rem=0;/*
"%~dp0\node" %~0 %*
pause
exit
*/

4. node.exeとLICENSEとmain.jsをてきとうにzipにしてWindowsユーザーに送って、「ここらへんのフォルダにおいて、main.batをダブルクリックしてNE」と言う。
ーーー (引用ここまで) ーーー

batについては少しアレンジした。

node.exeはbin以下に置きたかったのでcommand.exe用スクリプトは次のようにした。

rem=0;/*
"%~dp0\bin\node" %~0 %*
pause
exit
*/
"use strict";
const mainModule = require('./dist/main');
mainModule.main();

これを_main.batなどとし、実際のコードはdist以下にモジュールを配置して呼び出すようにした。

***

プロジェクトフォルダを作り、その中にcdした後、コマンドラインでやることを一旦まとめる。

npm init -y
npm -D i typescript
npx tsc --init
vi tsconfig.json
# {
#   "compilerOptions": {
#     "lib": ["es2015"],
#     "module": "commonjs",
#     "outDir": "dist",
#     "sourceMap": true,
#     "strict": true,
#     "target": "es2015"
#   },
#   "include": [
#     "src"
#   ]
# }
mkdir -p bin
curl -L -o bin/node.exe "https://nodejs.org/dist/latest/win-x86/node.exe"
curl -L -o bin/LICENSE "https://raw.githubusercontent.com/nodejs/node/master/LICENS"E
mkdir -p src # Let's enjoy coding!

TypeScript学習 エラー処理 Option<T>の利用

7章 エラー処理をざっと読んだ。最初から順番に読んでいたのだが、間をちょっと飛ばしてエラー処理のところを読み進めてみた。

Nullを返す、エラーを投げる、などの従来のJSの方法と何も変わらないところはすんなり読めるが、Haskell、OCaml、Rustなどの流れから導入されているOption<T>にSome<T>(成功)とNone(失敗)を包んで受け渡す方法を中心に読み進めた。解説はわかるのだが、写経したものを読み返してみてもなんだかあまりスパッと理解できない。

interface Option<T> {
 flatMap<U>(f: (value: T) => Option<U>): Option<U>
 getOrElse(value: T): T
}
class Some<T> implements Option<T> {
 constructor(private value: T) {}
 flatMap<U>(f: (value: T) => Option<U>): Option<U> {
   return f(this.value)
 }
 getOrElse(): T {
   return this.value
 }
}
class None implements Option<never> {
 flatMap<U>(): Option<U> {
   return this
 }
 getOrElse<U>(value: U): U {
   return value
 }
}

なぜスパッと理解できないのかといえば、やっぱり基本がまだまだ手に馴染んでいないのだろう。ボトムアップ的に書けるものからどんどん書いていくこと、それに、書籍の前半をきちんと飛ばさずに読むことが大事だと実感した。

ウェイツキン『習得への情熱』

第二章を読んだ。

彼の最初の挫折体験とそこから立ち直ったプロセスについて書いてあった。本人の才能、集中力の高さ、率直さなどにも感心したが、それ以上に家族や師匠、ライバル、チェス仲間、友人たちとの人間関係築き方・在り方には学ぶところが多かった。

村岡晋一『ドイツ観念論 カント・フィヒテ・シェリング・ヘーゲル 』

先日から、図書館で借りたものを読んでいる。

冒頭のカントを解説した内容を読んだ。50ページほど。

『純粋理性批判』はどういう位置づけの書物なのか、ということが『啓蒙とは何か』と関連付けて論じられている。(P.24)

啓蒙とはなにか。それは人間が、みずから招いた未成年の状態から抜け出ることだ。未成年の状態とは、他人の指示を仰がなければ自分の理性を使うことができないということである。人間が未成年の状態にあるのは、理性がないからではなく、他人の指示を仰がないと、自分の理性を使う決意も勇気ももてないからだ。だから人間は自らの責任において、未成年の状態にとどまっていることになる。こうして啓蒙の標語とでもいうものがあるとすれば、それは「知る勇気をもて」だ。すなわち「自分の理性を使う勇気をもて」ということだ。

(中山元訳、カント『啓蒙とは何か』)

上のカントによる挑発的な文章の引用をした後に著者はこのように付け加える。

しかし、自分の理性が「他人の指示を仰がずに」自力でどれほどのことをなしうるかをあらかじめ確信していなければ、「自分の理性を使う勇気を」もてるものではない。純粋理性の批判という課題は、啓蒙という新しい時代の必然的要請なのである。

(村岡晋一『ドイツ観念論 カント・フィヒテ・シェリング・ヘーゲル 』P.25)

『純粋理性批判』が書かれた背景について腹落ちできる。

日記

引き続きSNSデトックス続行中。

Twitter・Facebookを見ないだけ、というそれだけで随分こころが平和になるんだなと驚かされる。

SN

この記事が気に入ったらサポートをしてみませんか?