インキュベーションスクエアを支える技術について
この記事は呉高専 Advent Calendar 2022 1日目(に出す予定だった)の記事になります。
こんにちは、呉高専在学中のWebフロントエンドエンジニアのkobakazu0429です。
予定では記念すべき1日目にドンッと出す予定だったのですが、運悪くコロナに罹ってしまったので今更出します。
今年は例年に比べて充実しているというのにも関わらず、初日からこのような事態になってしまい音頭をとってくれた後輩には申し訳なく思ってます。
インキュベーションスクエアとは
まず初めにインキュベーションスクエア(以下、スクエアとします。)のご紹介からです。
スクエアは呉高専にある「学生のための自由なものづくりスペース」のことです。
スクエアには3Dプリンターやレーザー加工機、CNCなどの設備を有しており、講習などを受けることで学生なら誰でも自由に使うことができます。
より詳しく知りたい方は↓にまとめてあるので是非ご覧ください!
私はそこでTA(ティーチングアシスタント、管理学生)として主に
- 継続的に
- 安心して
- 安全に
活動できる仕組みづくりやちょっとした便利ツールなどを作っています。
この記事ではスクエアで使っている技術や僕の作ったツールについて紹介できたらなと思っています。
(ちなみにこの記事で紹介することはこの1年間で僕が古き良き管理体制を壊し、考古学をし、後世にどうにか引き継げるように頑張ったことです。ほめてください!)
SREチーム
スクエアではSREチームと称して(今のところ僕一人なので勝手に言ってるだけです)、この記事で述べるようなスクエアの諸々を管理しています。
SREは一般に(Site|System) Reliability Engineerなどですが、ここにスクエア=Squareを足して(Site|System|Square) Reliability Engineerチームです。
詳細はこちら
使っているツール群の紹介
主にこんな感じです。
- Scrapbox
- Googleドライブ (スプレッドシートなど含む)
- Googleグループ
- Cloudflare
- Teams
- LINE Notify
- Vercel
- ASSETBASE
Scrapbox
スクエアのあらゆる情報はScrapboxに統一されています。
これまではWordに書かれGoogleドライブやDropbox、色々なPCのHDDやらUSB、はたまたGoogleドキュメントなどに分断されていた情報を統一し、設備の使い方やメンテナンス方法などをまとめました。
選定理由は特殊表記が少なく、保存という概念や場所という概念がないことが挙げられます。
個人的にはMarkdown以外は使えない体だったのですが、mdは表記を覚えてもらう必要があることから諦めました。
またWiki系のサービスなど色々試しましたが動作が重かったり、管理ができなかったり、ランニングコストがかかってしまうなどの理由から残ったのはScrapboxだけです。
欲を言うとTAのみが見れるページが作れたり、編集権限を柔軟に変更できたりすると完璧なのですが、それはScrapboxのコンセプトから外れてしまうようで実装されることはなさそうです。
残念ですがよくわかるのでしょうがないです。
ちなみに最近はUserScript(ユーザーがJavaScriptを書くことで個人のみに適用できる拡張機能のようなもの)でチェックボックスを作成できるようにしたり、mustache.jsを使ってオンボーディング資料を個人毎に作成し、チェックボックスを使って管理したりしています。
Googleドライブ
Scrapboxに載せられないセキュアな情報や写真、その他のファイルなどを保管しています。
また3Dプリンターのソフトやファームウェアの保管、パラメータファイルなどの公開にも使っています。
構造としては次のようになっています。
スクエア
├── 設備
├── 写真
├── ...
└── 一般公開
├── パラメータファイル
└── ...
スクエア
というフォルダは後述するGoogleグループを使って共有しています。
一般公開
のみURLによる外部共有を許可しています。
Googleグループ
これが一番の功労者でないと大変でした。
スクエアではGoogleドライブの権限周りを一括で調整するためだけに使っています。
まず、TA全員をTA
というグループに参加させます。
次にスクエア
フォルダの編集権限をTA
グループに一括で与えます。
TAは卒業時にTA
グループから抜けるだけで済むので一つ一つ確認する手間が省けます。
そのほかにはSREチームにより強い権限や教員用に弱めの権限を与えていたりもしています。
Googleスプレッドシート
物品の購入やその記録用の注文表、講習状況などの記録、各種ツールのDBとして使用しています。
DBにMySQLなどを使用せず、スプレッドシートを使用する理由は「剥がせる」ためです。
後々dumpしたりしないといけなかったりするので諦めて無理やりスプレッドシートを使ってます。
(めちゃくちゃ辛いです。)
あとはGoogle Apps Scriptと組み合わせてGoogleドライブの共有状況をリスト化して出力したりしています。
Cloudflare
細かいツール群をWorkersに上げたりしています。
例
Microsoft Teams
Slack以外使えない体なのですが、高専全体でAzure AD Premium P1に入ってしまっており、授業でも使っていることから、Teamsを選択するしかありませんでした。
しかし制限がきつくGraph APIのTokenが取れなかったりと素直には自動化できません。
裏技としてGraph Explorerと呼ばれるもので一時Tokenの発行ができるのでこれを利用する手があったりします。
その他
(もっと書きたいことがありますが、気力がなくなってきたのでその他です。)
そのほかには最近テプラPRO SR5900Pを購入したのですが、TEPRA LINK 2(iOS/Android, MacOS向けのテプラ用編集ソフト)の細かい調整が一発でできず、不満が爆発したので直接テプラ用のファイルを生成できる仕組みを作ったりしています。
まとめ
この1年間でかなり色々整備したり作ったりしました。
かなり めんどくさい 大変でしたが、なんだかんだ言いながらみんなに使ってもらえるツールを作るのは楽しかったです。
またランニングコストをかけずに後輩に引き継ぎつつDXを進めるのは非常に難しいことがわかりました。
宣伝
スクエア(正確には呉高専)では寄付を受け付けており、税制上の優遇措置(個人の場合は所得税の控除や個人住民税の控除、法人の場合は全額を損金に算入することができます)などもあります。
もし未来の技術者を伸び伸びと育てるための環境を応援するよ!、支援したい!というお気持ちがある方、よろしくお願いいたします🙇
ちなみに学校への寄付は振り込む必要があったりと少し手間なのでクラウドファンディングなども考えています。
実際に寄付金がどう使われるのか、どうやって寄付すれば良いのか、スクエアではほかにどのようなことをしているのかなどご質問などございましたら、お気軽にkobakazu0429もしくは呉工業高等専門学校 総務課財務係までご連絡いただけますと幸いです。
Discussion