人に変わってサービスし続けてくれるサーバー。その元祖、タイムシェアリングシステムは、60年近く前、1961年開発。

商業的初成功を収めたダートマス・タイムシェアリングシステム(DTTS)は、誰もがコンピューターを使えるようにとダートマスBASICと共に1964年開発。 見慣れたコマンド、LIST / RUN / SAVE / NEWが並ぶ。 そう、これらはBASICのコマンドではなく、TSS(今で言うシェル)のコマンドだったのです!

圧倒的に高速なコンピューターくん、マイクロ秒単位で相手する人を切り替え、人間から見てあたかも同時に対応してくれているように振る舞います。 シェルは、コンピューターと人とをつなぐ窓口のひとつ。IchigoJam BASICのように、コマンドを送ると、その結果を返事として返してくれます。

開発大詰め迎えるjigインターン、デモのためそれぞれチームごとに提供しているサーバーを設定し、Deno(JaavScript)で開発しているサービスをデプロイ(公開)しよう!

サーバー(AWS)上でDenoをサービスとして動かす方法
まずサーバーにログインする

動かしたいサービスをGitHubからとってくる
リポジトリの緑ボタン[Code]からで、Use HTTPS に切り替えて、Clone with HTTPSのアドレスをコピー

git clone https://github.com/.....git

Webサーバー Nginx(エンジンエックス)設定のため、一時的にrootユーザーになる

sudo su -

Webサーバーnginxの設定を追加する

cat > /etc/nginx/default.d/team.conf

下記を貼り付けて、Ctrl-D(ポート番号 8881 はそれぞれの環境に合わせる)

location / { proxy_pass http://127.0.0.1:8881; } location /ws/ { proxy_pass http://127.0.0.1:8881/ws/; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; }

nginxを再起動して設定有効化

nginx -s reload

で動かすとエラーがでる

Location の設定がかぶっているので、下記を修正

vi /etc/nginx/conf.d/ssl.conf vi /etc/nginx/nginx.conf

"Location / { }" を # を頭に付けてコメントアウト

再び再起動

nginx -s reload

で動かし、エラーがでなければ設定完了!

exit

で、ユーザーを root からもとに戻す

サービスの動かし方

cd [service path] deno run -A main.js

サーバーのホスト名をブラウザに入れて、確認してみよう!
自分たちで作ったサービスが動くと感動ですね!

画面共有と音声帯域を使ったリアルタイムサポート、チームで感動も共有!

サービスとして、ターミナルから抜けてもずっと動くようにする方法

nohup deno run -A main.js &

サービスの止め方

ps -u [account name]

denoのPIDを探して

kill [PID]

サービスの止め方2
サーバープログラムに、ファイルを見たり、特定アクセスで Deno.exit(0) するようにプログラムしておく

サービスの更新方法

git pull

サーバーで更新してしまっていて、pullできない場合

git stash

で、一時保存した上で、 git pull
サーバープログラムを更新した場合は、サービスを一旦止めて、起動
(staticフォルダ内など、クライアント用ファイル更新のみの場合は再起動不要)

サーバー操作にも通じる、BASIC。
黒い画面に強いこども達が生む、サービス誕生が楽しみです!


ザイログZ80伝説(カラー版) | 鈴木 哲哉 | 工学 | Kindleストア | Amazon
今も生き続けるZ80、開発秘話から現況、タイムシェアリングのはじまりから回路設計まで幅広く多様な内容が楽しい!


IchigoJam BASICの元とした、タイニーBASICのプログラムも掲載!
このBASICでは、@マークでメモリアクセスになってますね。ご先祖を想って楽しい、コンピューター考古学!

せっかくなので、世界最初のBASICプログラムと言われる、エラトステネスの篩による素数計算をIchigoJam BASICで実装。アルゴリズム、見比べてみましょう。

1 'Sieve of Eratosthenes 10 CLV 20 FOR I=2 TO 10:?I 30 IF [I]=1 NEXT 40 N=2 50 M=I*N:IF M<102 [M]=1:N=N+1:CONT 60 NEXT 70 ?"PRIME NUMBERS" 80 FOR I=2 TO 101:IF [I]=0 ?I;" "; 90 NEXT:?

今日のjigインターンブログは、もしゃ!
jig.jpオンラインインターン2020 8日目! - jigintern2020’s diary
情報交換タイムでのおもしろ写真付き!

バーチャル背景生成アプリというジャンルもおもしろい!

Tweet
クリエイティブ・コモンズ・ライセンス
この作品は「Creative Commons — CC BY 4.0」の下に提供されています。
CC BY / @taisukef / アイコン画像 / プロフィール画像 / RSS