さかぽん

さかぽん について

繧繝 Researcher and Developer. AtCoder 水 (1200+). User Interface using .NET (C#, XAML). 繧繝 (うんげん)

11月祭に「過去環境ラボ」を出展しました

未来環境ラボの坂本です。

未来環境ラボは 11月9日 (金) 〜 10日 (土) の2日間、学院祭である11月祭の企画として「過去環境ラボ」を出展しました。
「過去環境ラボ」とは、KCG コンピュータミュージアム所蔵の旧式のコンピュータを起動させる試みです。

動機

KCG は1963年創立で55年の歴史を持ち、過去に実習用に使われてきた汎用機やパーソナルコンピュータ (PC) が校内で展示されています。この KCG コンピュータミュージアムは、情報処理学会の分散コンピュータ博物館の第1号に認定されています。

以前より訪問客や教職員の方たちから「昔のコンピュータを復活させてほしい」という要望があり、将来は汎用機なども起動させることを見据えた壮大なプロジェクトが発足しました。
つい不覚にも興味を持ってしまった方は、Facebook の公開グループ「過去環境ラボ」にぜひご参加ください。当時の知識・経験を活用して運営に協力していただけるとなお助かります。

展示内容

今回は初回の試みということで、PC を数台起動する程度とし、大規模な宣伝はせずに密やかに実施しました。展示内容は、レトロゲーム体験およびプログラミング体験が中心となりました。

  • SHARP MZ-80K (情報処理技術遺産)
    • BASIC プログラミング
  • NEC PC-6001
    • ゲーム
    • BASIC プログラミング
  • TOSHIBA J-3100
    • C言語プログラミングの予定だったが環境を構築できず (コンパイルを開始すると動作停止)
  • Apple iMac
    • PostPet

など

NEC PC-6001 用のゲームの中に「ハイジャンプ」という中毒性の高いレトロゲームがあったこともあり、大盛況のブースとなりました。

PC-6001 ハイジャンプ

BASIC でプログラミング

今回はとりあえず「起動できそうなコンピュータの電源を入れるだけ」でもよかったのですが、ソフトウェアエンジニアとしては、これらの歴史的名機を前にして起動だけして終わりというわけにはいかないでしょう。

というわけで私は BASIC というプログラミング言語を初めて勉強し、この2日間は BASIC で数値計算をさせるプログラムを書いていました。実質的にハッカソンをしていたことになります。
今回書いた BASIC のソースコードや各端末の起動方法のメモを Past-Lab (GitHub リポジトリ) にまとめてあります。

他にも TOSHIBA J-3100 で C 言語を使えるようにする予定だったのですが、こちらは環境構築がうまくできず残念でした。

SHARP MZ-80K でピタゴラス数を列挙:
MZ-80K ピタゴラス数

NEC PC-6001 で円周率 π を計算:
PC-6001 円周率 π

続編

来年の11月祭でもパワーアップして出展する予定です。

参照

comments

ランダムなデータを生成する JSON API

未来環境ラボの坂本です。

2014年に作成した Random Data Web API というものを最近改修しました。
ランダムなデータを生成するための JSON Web API です。
以下のデータを生成できます。

  • アルファベット
  • アルファベットと数字
  • バイト列
    • 16進数形式、Base64 形式
  • UUID (GUID)
  • 時刻順の ID
    • 現在の時刻をもとに、並べ替え可能な GUID を生成
    • SQL Server の uniqueidentifier 型にも対応

という感じで、内容自体はとくに変哲のない API です。
時刻順の ID は少し珍しいかもしれませんが。
また、仕様が記述されたヘルプページ、および jQuery を利用したテストページが付属しています。

Test Page

さて、どちらかというとここからが本題です。
サービスとして公開されているタイプのよくある Web API は、利用する開発者からするとすぐに利用できてとても便利ですが、提供者側の意向でサービスが終了するという問題点があります。
例えば最近では、Google の URL 短縮サービス「goo.gl」が終了予定と発表されました
無償・有償を問わずサービスが永久に提供されるとは限らないため、なるべく自身のアプリをそれに依存させず、自身でサービスを運用することが望ましいでしょう。

そこでこの Web API では、ソースコードをオープンソース ライセンスのもとで提供し、それを利用する開発者自身がサービスをホストすることを想定します。
例えば Azure Web App などの PaaS (Platform as a Service) を利用すれば GitHub から直接ビルドおよびデプロイができるため、簡単な手順でサービスの運用を開始させることができます。

詳細の方法については Azure Web App にデプロイする手順にまとめてあります。
この場合はさらに継続的デプロイが構成され、
設定したリポジトリが更新されれば Azure Web App も自動的に更新されます。

Deployment Option

また、この Web API の技術的な特徴としては、以下が挙げられます。

  • ASP.NET Web API
    • .NET プラットフォームでは、これで JSON Web API を作れます
  • ASP.NET Web API Help Page
    • ソースコード内のコメントからヘルプページを自動生成
  • ASP.NET Web API Cross-Origin Support
    • CORS (Cross-Origin Resource Sharing)
  • HTTPS 必須化

ヘルプページの多言語対応については、ブラウザーの翻訳機能を利用すれば何とか読めると思います。

Help Translation

今後もこのような Web API やライブラリを制作していくつもりです。
KCG の学生の皆さんは、プロジェクト演習などで活用してみてはいかがでしょうか。

バージョン情報

  • .NET Framework 4.5
  • ASP.NET Web API 5.2.3
  • ASP.NET Web API Help Page 5.2.3
  • ASP.NET Web API Cross-Origin Support 5.2.3
  • Blaze 1.1.10

参照

comments