そういや、苫小牧高専News bot メール版も、授業変更フィードも、subscribeの方法はちゃんと用意してあるのに、unsubscribeの方法はあっても説明不足だったりお粗末まものだったりするので、この土日は少しこの辺作り込んでみよう。
いろいろあってGitHubの草も続いているし。
先日作ったTNCT授業変更情報 iCalendarフィードがたまに落ちる。再起動すると直る。
TOPページは大丈夫なのだが、各クラスのフィードにアクセスするとInternal Server Errorを吐くので、DBまわりのなんかがまずいのであろう。
詳しい原因の究明はこの土日でするとして、とりあえずcronで半日に一回再起動することによって、落ちたまま放置ということは起こらないようにした。。
しかしまぁ、serviceファイルはsystemdで定義しているのに、timer処理はcron使うというこの歯がゆさよ。。だって、時間なかったんだもの。。
監視ソリューションもなんか用意しておかないとな。うむ。
DBのdisconnect忘れてただけであった。。
昔は、風呂なんか音楽聞かずにチャチャッと入ってしまえばいいじゃんという人間だったのだけど、最近は考え方が変わって、風呂で音楽なりPodcastなりを聞きたいという欲求があった。
軽くAmazonで検索してみると、なんと俺達のANKERさんから防水Bluetoothスピーカーが出ていた。2種類も。
Anker SoundCore Sport 防水Bluetoothスピーカー 【IPX7 防水&防塵認証 / 10時間連続再生 / 内蔵マイク搭載 】
Anker SoundCore Sport XL ポータブル Bluetooth スピーカー 【IP67 防水&防塵認証 / 16W オーディオ出力 / モバイルバッテリー機能搭載】 A3181011
前者の後継機が後者という感じかな。機能もいろいろ後者の方がついていそう。僕は、風呂で音楽やPodcastが聴ければなんでもよかったので、安かった前者を購入。
まだ風呂で使ってないけどたぶんいい感じ。小さいスピーカーなので音がこもっている感じがするがまぁそれは仕方がないであろう。このスピーカーに限らず、小さいスピーカーを使っていて音のこもりが気になる人はiPhoneの設定からMusic AppのイコライザをSmall Speakersにすれば良いと思う。めんどいから俺はやらないけど。
実際に風呂で使ってみた。浴室の中にS字フックがあるので、そこにスピーカーのストラップをかける感じ。
音はかなり大きめなので、湯船に使ってる時はもちろん、シャワー浴びてるときでもちゃんと聞こえた。音質云々は、風呂で聞く音楽やPodcastに求めるものではないと思うが、問題には感じなかった。
良い買い物であった。ちなみに今日聞いていたのはyatteiki.fmのep27です。
やる気がない。とにかくやる気が出ない。
僕のまわりの人達は、やる気がしないと言いながらもなんだかんだちゃんとやる人ばかりなので、すごいと思う。こういう人達が社会に適応して、より良い社会を作っていくんだと思う。僕はというと、やりたくない事、つまり、やる気の出ないことは、絶対にやりたくない。
学校という場所は、意味があったり無かったりすることを学生に強制的にやらせて、何かを教えた気になっている人達が運営している場所なので、僕ら学生はやる気の出ないこともやらなきゃいけない。
そういうときは無理してやる気を引き出していたのだけど、そのやる気の出し方を忘れてしまった。低学年の頃は、興味のない事(主に電子回路に関するいろいろ)をなんとかやる気を出してやっていたけど、高学年になると授業の内容がだいたい興味のあること(主にソフトウェアやネットワークに関するいろいろ)ばかりになったので、やる気を出そうと思わなくてもそれなりのやる気で物事をこなす事ができていたし、たとえいくつかのクソ授業があっても一応情報工学科の授業だから、ということで自分の中で納得もしていたはずだ。
今のやり方は、なんというか、何もかもできる人材を育てようとして、何もできない人を育てているような気がしなくもない。学生にiPadを配ればクリエイティブになるわけではない。興味のあることを数年間学んでいたせいで、興味も無ければ授業もクソな物事についてやる気を出す方法を忘れてしまった。
やる気を出さないと本当にまずい。
苫小牧高専の情報処理同好会では、不定期で「Josho.LT」という技術系のLTイベントをやっている。昨日23日(火)に、今年度初のLTがあり、せっかくなので発表してみることにした。最近専攻科とSwitchのゼルダとバイトの開発で忙しくて、全然趣味プログラミングをできていなかったので、これをきっかけにサクッとなんかアプリでも作ろうというモチベーションもあった。LT駆動開発である。
今回のLTのために作ったのは、「苫小牧高専授業変更情報 iCalendarフィード」である。学校のWebサイトの授業変更情報ページから情報を取得し、各クラスごとのカレンダーフィードを提供するという、シンプルなWeb Appだ。フィードでは、前の週の月曜日から、次の週の金曜日までの3週間分の授業変更情報が提供される。
発表資料はこんな感じであった。
ソフトウェアテクノロジー部で2年生向けにRubyをやっています、その時に僕は「Rubyは(去年やったC言語と比べて)サクッとモノを作れるよ〜」という話をしているけど、実際どうなの?というわけで、サクッとモノを作ってみたよー的な話をしたと思う。
スライドのDemoの部分では、こんな感じの事をやった。
スライドにもある通り、このアプリは大きく2つのプログラムから構成されている。授業変更情報を取得してDBに保存するプログラム(mktakuya/jyugyou)と、DBからデータを引っ張ってきてiCalフィードを提供するWebApp(mktakuya/jyugyou-feed)だ。
mktakuya/jyugyouでは、以下のような技術を使っている。
また、mktakuya/jyugyou-feedでは、
という感じだ。
スライドに書くの忘れてたけど、授業変更情報取得プログラムもRaspberry Pi 3上のcronで3時間に1回定期実行するようにしている。また、jyugyou-feedもsystemdのserviceファイルを作って、systemctrlコマンドでstart/stopできるようにしてある。そのうちcronやめてsystemd.timerに移行したい。
あと、HTTPS接続とコンテンツのキャッシュのためにCloudflareを使用している。これiCalフィードもキャッシュしてくれているんだろうか。その辺どうやって調べるんだろう。あとで調べる。
今度の展望としては、まずUIがクソなのでなんとかするのと、コードも書捨てのつもりでサクッと書いたものなのでなんとかするのと、本格的に動かしていくならもっと運用のことも考えていかなきゃいけないという事がある。まぁぼちぼちやる予定。
LTということで発表時間は一応5分で長話もできないし、低学年も増えてきてみんなやってることもバラバラなので深すぎる話をしても意味ないと思うしで、「こんなんあって、こんなん作れる。みんなもやってみて!」的なノリで話した。
RubyなりPythonなりのLLの使い方覚えて、適当なライブラリ探して適当にやりたい事見つけて適当にモノ作るという体験、早めにしておくとプログラミング楽しいってなりやすいと思う。授業でC言語やってるけど思ってたのと違うつまらんって人は、もちろん授業でやるC言語も大事だけど、こういう言語に手を出してみて、適当にTwitter APIなり学校のWebサイトのデータ収集して加工したりなんなりして遊んでみてはどうでしょう。
rebuild.fmの@Nさん回(ep178、ep182あたり)を聞いてたら、無性にゼルダやりたくなったのでSwitchを買った。
— mktakuya (@mktakuya) 2017年5月6日
全国的に品薄な状態が続くSwitchだけど、ゴールデンウィーク前の大事な時期を任天堂やヨドバシが逃すはずが無いだろう、とヨドバシドットコムを監視し続けた結果、見事に読みが当たり購入に成功した。
#ゼルダの伝説 #BreathoftheWild #NintendoSwitch pic.twitter.com/Pmv8X6V3RK
— mktakuya (@mktakuya) 2017年5月9日
これはゼルダの伝説 ブレス オブ ザ ワイルドね。FF15、Fallout 4に続く、人生3作目のオープンワールドゲーです。僕のゼルダ歴は、GCの風のタクトが初ゼルダで、次にGBAの神々のトライフォース、Wiiのトワプリ、3DSのムジュラという感じか。うち、クリアしたのは神々のトライフォースのみである。。。ゼルダシリーズ、最初のうちは楽しいんだけど、ダンジョン作りに気合い入りすぎていて、やってるとダルくなっちゃうんだよねー。で、ダンジョンに迷い込んだまま数日、数週間放置して、久々にゲーム起動したらもうわけわからん、っていう。
でも今作は、オープンワールドゲーで好きなときに好きなことしてていいし、一つ一つのダンジョンというか祠や塔をクリアするまでのステップが短い(代わりにたくさんあるけど)しで、謎→謎解ける→楽しいのサイクルが短く大量に来るので、僕みたいな人間でも楽しめてとても良い。
まぁ最初はオープンワールド過ぎて何をすれば良いかわからなかったけど、とりあえず祠と塔見つけ次第潰してハートと地図を増やしていって、気が向いたらメインのクエスト進めてけばいいんでしょって思い始めてから気楽にやってる。7月あたりに追加のDLCが出るとのことなので、そっから本気出す感じで行こうかねぇ。
もうひとつ、友達と遊ぶ用にマリオカート8 デラックスも買った。ぶっちゃけこれは付き合いのつもりで買ったんだけど、普通に熱中してやってる。ふっくんとやったり後輩にボコボコにされたり、ネットの向こうの知らない人と対戦したりなど、楽しくやっている。こういう対戦ゲーは上手い下手がモロに出るよなぁ。でもたまにアイテムの神が降りて1位取れたりするから、そういうところも楽しいね。
まあ正直言って、ハードウェア的なところでの不満はいくつかある。
まず、Bluetoothヘッドセットをサポートしていないということ。コントローラと本体の接続にはBluetoothを使っているらしく、ということはAirPods等Bluetoothヘッドセット使えても良いのではと思ったら、そこはダメらしい。ションボリ。
あと、Switch単体でのHDMI出力にも対応してほしかったなぁ。研究室のディスプレイにつないでみんなでマリカしたりゆっくりゼルダしたりしたいのだけど、Dockを持ち歩くのはアホみたいじゃん。もう一個買うか〜ってなる値段でも無いし。(9000円ちょいくらい?)
そしてこれはしょうがないかもしれないけど、Switch本体の画面が小さい割に画質が良い(6.2インチディスプレイで1280 x 720)ので、テーブルモードの画面分割でマリカやったりすると軽く視力検査かよってなる。
まぁそんなにすごいハードウェアにしたら3万ちょいじゃとても売れないだろうし、そもそもそういうのを求める人はPCやPS4に行くべきだとは思う。
何よりもゼルダとマリカが楽しいので、そのへんの不満はもうどうでもいいかなという感じ。これはゲーム機なのだ、大事なのはゲームなのだ、という気持ちでいればそんあのまったく気にならない、気にならない。
Switchのせいで学業もバイトも趣味プログラミングも全く捗りません。7月にはスプラトゥーンも出るらしく、あぁ今年はもういろいろと駄目かもしれないね。
人の家でくつろぐ社会人 @fk2763owl pic.twitter.com/B0qyGGRKgy
— mktakuya (@mktakuya) 2017年5月7日
せっかくなのでNintendo Switchをデコった pic.twitter.com/d4AlwR7PiM
— mktakuya (@mktakuya) 2017年5月16日