研究室マシンをsshでアレヤコレヤする

こんにちは,北山です.コロナもこのまま終息してくれたらいいのですが…今日もいそいそとリモート生活が快適になる工夫を施しています.

北山研では,開発環境を揃えるために,Mac Bookを学生に貸し出して,環境の統一を測っていたのですが,物理的に貸し出すものなので,色々と問題も起こります(キートップが吹っ飛んだり,カメラが動かなくなったり,etcetc…).まあ,修理で解決できるなら修理すればいいんですが.それ以外にも,アップデートしなくていいものをアップデートとか,開発環境ぶっ壊れるとか色々あるわけです.

そこで,研究室の共有マシンに接続して,みんなそこで開発すれば,物理マシンの管理コストなくならね?って発想が出てくるわけですね.ただ,ssh接続してCUIでゴリゴリ開発って結構ハードル高いよねぇって思っていたわけです.そんななか,vscodeの拡張機能「Remote Development」を知って,これだ!!となりました.

簡単に言うと,vscodeのターミナルがssh接続状態になって,実行もssh接続先で行われて,ただただGUIとしてvscodeを使えるようになります.素敵!!

そうなると,ファイルのやり取りもGUIで簡単にできるといいなぁってなるわけですが,こちらはそれほど手軽なものはなくて,FileZillaによるSFTPで我慢することにしましょう.

研究室のMySQLにも簡単に接続できるといいなぁって欲が出ますが,こちらはSequelProさんがssh接続に対応してくれているので,解決です.

sshサーバとWebサーバが別なので,Webサーバでシステム公開しましょうってときに,ファイルをWebサーバに置く必要があります.ローカル,ssh,webの3マシンで,sshからwebにファイル送信をGUI上でできると便利だなって思ったのですが,素直にやると結構たいへんなのです.ただ,sshマシンにwebサーバの公開フォルダをsambaのファイル共有としてマウントしてやると,sshマシンをSFTPで接続したときに,マウント先まで見れることがわかったので,こちらも解決しました.FileZilla + samba素敵!!

ということで,以下のようになり,リモートのsshマシン上でほとんどのことできる見通しになったわけです.

  • プログラミング -> VSCodeでGUI操作可能
  • ファイルのやり取り -> FileZillaでGUI操作可能
  • データベース操作 -> SequelProでGUI操作可能
  • Webサーバへのアップロード -> FileZillaでGUI操作可能

とまあ,ここまで検討をしてきたのですが,この共用のマシンにする予定なのが,M1チップのMac Miniなのがボトルネックになっています.まさかここまでライブラリ類がM1 Macに対応してないとは思っても見なかったので,マシンがずっと眠っています.そろそろ大丈夫かな?って思ったものの,まだまだ未対応のものも多いので,しばらくは寝かせておくしかなさそうですね.

ということで,今回はこのあたりで.ではでは.

誰も教えてなくてもそれなりに学ぶもの

こんにちは.北山です.コロナ禍の話題ばっかりで申し訳ないなと思うけど,気づきがあるのはそっち方面が多いので,ご容赦ください.今回は「誰も教えてなくてもそれなりに学ぶもの」ってことで2つほど遭遇した事例を紹介したいと思います.

その1:ダウンロードフォルダにすべてのファイルが入っている

僕も割とダウンロードフォルダに置きっぱ側の人間であることを前置きしておきます.ただこれは,ダウンロードフォルダ = 一時フォルダ であるという認識のもと,そのうち削除するものが置き去りにされるという形です.定期的に一掃されます.

この話はそうではなくて,講義用のファイルなど,おそらく今後も必要であろう永続的なものをすべてダウンロードフォルダに入れる運用をしているというのが一定数いそうだ.という話です.デスクトップ検索の発達の末,フォルダという概念がなくなったという素晴らしい話ではなく,なんとなく,そもそも「フォルダ分けして整理する」という概念に乏しいんじゃないのかな?という気がしています.

なんでこうなるの?ということを考えたときに,「アプリケーションごとに履歴的な機能があるので,最近開いたファイルはアプリケーション側からアクセスできる.」「スマホ文化なのでダウンロードしたファイルがそもそもどこに行っているのかわからない」「ダウンロード直後にブラウザに出てくる開く方法しか知らない」などが大きそうな要因だろうなと思います.

それに加えて,コロナ禍に入って「他人のPC操作を目にする機会」が激減しているのも一因なのかなぁと思いました.そういう,ちょっとした情報共有から,ファイルの整理を学んでいったりということもあるように思いました.こういう「学ぶモチベーションが低い」「教えるモチベーションも低い」けど,「ちゃんとできるといろいろなことの下地になる」ということを自然と学ぶ機会って,物理的な偶発性が生んでるのであって,能動的に動かないと何もできないオンラインの世界では,うまく機能しないものなのかなぁって思いました.

その2:キーボードのキーの呼び名がわからない

こちらも知っていればどうってこと無いんですが,* とか : とかの読み方がわからないって人も結構いるなぁって感じました.これって,一人で作業している分には読み方がわからなくて困らないし,他の人に指示をするのでも「:」の読みがわからなくても,「キーボードの【け】を押して」って言うので事足りたりするので,「困る」経験が少ないのかもしれません.

それでも,複数人で作業を頻繁にしていると,「コロンを入力して」って言う人と当たる機会はそれなりにあって,そうこうしているうちに自然と学んで行くものなのかなぁって気がします.こちらもコロナ禍で,そういう機会も結構減っているのも一因かもしれないなぁって気はしました.

ただ,どっちかと言うと,オンラインで入力指示をするときに嫌でも音声で伝えるので,それで伝わらないケースが目立つようになったってだけな気もします.物理的環境だと「伝わらないな」って思ったら,指差しするとか呼び名を使わない解決が結構あったので,気にならなかったという可能性もあります.

====

ということで,わざわざ自分から調べたりしないし,講義とかいう形で教えたりはしないけど,自然と身についているといいのになぁってことを紹介しました.この手のことは割と物理空間でたまたま接触することから身につけることが多い気がしています.アフターコロナとなっても,オンラインでの学習は積極的に併用することになると思いますが,講義で教えること以外の「他者との接触で身につくちょっとしたこと」を意識して色々設計できるといいんだろうなぁって思っています.ではでは,今日はこのあたりで.

ちょっとしたオンライン共有対応のプレゼンタイマーを作った話

こんにちは.北山です.今日は夏の研究室オフ期間に作った小物のプレゼンタイマーを紹介したいと思います.と言ってもコードとか仕組みも簡単なので,詳細は自分で考えたほうが楽しいと思うので,それにまつわる話だけです.

zoomなどの遠隔環境が主体のときに,プレゼンタイマー的なものをどうするか?ってなかなか悩ましいんですよね.スマホやタブレットでタイマーアプリ動かして,ベルがなるタイミングでミュート解除とか,もしくは発表者がそれぞれにタイマーアプリ動かすとか.

参加者が誰でもスタートできて,参加者全員のそれぞれのPCで時間が来たことを知らせる仕組みができないかなぁと言うことで,作ってみました.仕組み自体は単純で,

  1. 1鈴,2鈴,3鈴を設定できるWebインタフェースを作る
  2. 時間が来たら,全員が参加しているSlackに通知を送る

ただ,それだけです.Google App Script(GAS)でSlack投稿の仕組みを作り,Webページ側には設定された時間が来たら,GASに投稿の命令を送るだけって簡単な仕組みです.

実はこれ,だいぶ前から(昨年とかそういうレベル)こういうのをサーバレスで簡単にできないかなぁって思っていたんですよね.GASには6分以内に処理を終わらせないといけないって制約があって,命令をしてから時間が来たら通知を返すって言うのが作りにくくて断念していたのですが,Webページ上のjavascriptで時間管理したらGASは通知を投げるだけになるので解決するやん!!ってなったのが,この夏のことでした.思いつけば簡単な話だったという…

まあ,割とアイディアってそういう面もありますよね.気づいてしまえば「なんでこれまで気づかなかったんだろう」って,それで自分の中では当たり前になっちゃうわけです.でも,気づいてない人からすると,新しいアイディアだったりもします.研究テーマ考えるときにも「自分の中では割と当たり前」ということも面白いアイディアだったりするので,色んなことを,色んな人と話をして気づきを得るのが大事ですね.

話がそれましたが…さて,この仕組で規定の時間が来たことを全員に共有するというのができます.次は「常に経過時間を全員で共有したい」という欲が出てきます.これも色々zoomとかだけで完結するアイディアとしては,背景画像をタイマー動画にするとか,画面を仮想カメラで共有してタイマーアプリを写すとかあります.先の仕組みを考えた連想で,Webページでなんとかできるんじゃないかってアイディアが出てきました.まだ未実装ですが…考え方だけ.

  1. 開始時刻と1鈴,2鈴,3鈴の設定をURLパラメータに含めたURLを参加者に共有します.
  2. そのWebページでは,パラメータで指定された開始時刻からの経過時間を表示します.
  3. また,ベルの指定時間が来れば,「JavaScript で Beep 音を鳴らす方法」とかを使って音がなるようにしておきます.

こうすれば,タイマーをスタートしたら,共有URLを発行.あとは各自でそのURLにアクセスしたらタイマーの進行状況を共有できるってわけです.肝は,実際には共有してなくて,各自のPCで独立してタイマーが動いているってところです.実際の共有を諦めることで擬似的な共有を実現する方向に舵を切るとできそうなことがあるぞってことですね.Slackに通知を流すよりもいくぶんかスマートなので,時間ができたらこっちの仕組みも実装しようかなって思います.

ということで,今日はここまで.「プログラムできると自分が使うツールを自分で設計できて工作できるから楽しいよ」「アイディアを考えるのも楽しいよ」ってお話でした.ではでは.

オンライン環境が主軸な研究室活動

こんにちは.北山です.月イチ投稿はのんびりしてていいですね.3年生はそろそろ配属研究室について調べ始める時期でもあるので,ここらでコロナ禍における北山研の研究室活動についてまとめておこうと思います.

今年度の半年間は「自然発生していたであろう研究コミュニケーションの激減」をどう補おうか?がテーマだったように思います.ある意味,昨年の後期に諦めてしまったことへの再挑戦でもあったと思います.

取組その1:全員が参加する研究ミーティングで,北山は発言せず,学生のみで議論する.

取組その2:研究テーマに無関係にペアを固定で作り,定期的にテーマを交換して発表する.

取組その3:上記とは別に学生と北山が個別に相談する研究ミーティングを設定する.

取組その4:研究室として固定の勉強メニューは設定せず,各自学びたいものを持ち寄る.

取組1の狙いは,そのまま,学生間での議論の機会を設定することです.物理的な空間に集まっていれば,雑談から,「最近どんなことしてるの?」とかの研究の話が生まれていたように思います.全然形式や雰囲気が違うので,直接その代わりにはならないですが,機会は用意しようとお言うことです.なんとなく僕はオブザーバとして参加することにしたのですが,教員が参加していると,ちょっと真面目寄りの議論になりがちで,よもすると沈黙も多くなってしまうデメリットがあるように感じました.もう少しざっくばらんに喋れる雰囲気で,実施報告だけ書いてもらう形でも良かったかもしれません.後期はそれに近しい形にしてもいいですね.

取組2の狙いは,取り組み1よりも強固な物を少人数で発生させられないか,ということでした.こっちはこっちでペアの相性やそれぞれのやり方の差でうまく行ったところもあれば,うまく行かなかったところもあるという普通の感想になってしまいますが,それでも「孤独な戦い」になりがちな,個別テーマと遠隔環境の食い合わせの悪さを少しは補ったんじゃないかと信じています…

取組3は,1と2には教員が関与するところがないので,関与するならガッツリやろうということですね.ただ,1人30~45分を10人とやるので,トータル5時間~7.5時間必要とするのがデメリットですかね.ただ,やったかいはあって,前期の進みとしては,例年以上じゃないのかなぁと感じています.もちろん,個々の学生の頑張りがあってのことで,取り組みだけの効果ではないですが.後期に関しては,3年生も加えてこの体制をやると,約18人と倍増しちゃうので,やり方は考えないとだめですね.

取組4については,僕から「これを学ぼうね」って,後々必要になるものを提示すると,そのときには「なぜこれを学ばないと行けないのか?」というモチベーションの問題がどうしても起こる.というのを以前から感じていました.オンライン環境では,モチベーションのほうが実益よりも優先されないとしんどそう,と感じていたので,内発的動機に任せることにしよう.というのが狙いでした.結果的には「論文紹介」だらけになってしまいましたが,「論文紹介」という枠があって,そのために論文を選ぶ,よりも「論文紹介をする」ところから発表者が選んでいる分,モチベーションは高かったんじゃないかと思います.

さてこれを踏まえて,後期にはセミナー生も含めた取り組みを考えていく必要があるのですが,まずは最低限の「同学年でのコミュニケーションの維持」を主軸に,「研究室としてのコミュニケーションの増大」を目指すって感じで進めたいと思います.去年は,前者 < 後者でうまく行ってない箇所が多かったように思うので,今年は前者 > 後者になるようにという感じでしょうか.

そんな感じで,オンライン環境における研究室の雰囲気をお伝えしましたが,いかがでしたでしょうか?では,今月はこのくらいで,ではでは.