2021/08/06

2021/08/06 日記

周りがnoteで日記をつけているのを見て、やりたくなったのでやる。モチベが続くかはわからない。 モチベが続くように箇条書きで書き殴ろうと思う。

  • ついに20歳の誕生日だったので、檸檬堂を買ったぞ
    • 学校の体操着でコンビニへ買いにいったら、年齢確認されなかったので、ビックリした
  • 編入先の単位認定に関するお知らせを見て、シラバスとにらめっこをした
    • 対応する講義を探すのがなかなか難しい
  • ChickenSchemeをMSYS2 UCRTでビルドしたら、 chicken-install の挙動がおかしかった
    • 日記を書くにあたり、org-mode→ox-md→AtomPub→はてブロの流れを作ろうと思っていた
      • そこで、Schemeの勉強を兼ねて、AtomPubからはてブロに記事をアップするCLIアプリを書こうと思っていたのだが、厳しいか……?
    • 適当にggってたら、参考になりそうなメーリングリストの投稿があった
      • 英語を読む気力がなかったので明日以降に……。
      • IRCで質問することも視野に入れる
  • 学校見学会が近い
    • 文章を書いたら、一瞬で900文字くらい書けた
    • できているのはクロック回路、リセット回路、ROMと、ALUの一部なので、それらの回路を説明すればいいのだが、暴走して、学科のカリキュラムと計算機の概論的な文章になってしまい、ボツになりそう
      • 後でなんらかの形で公開するのもいいかもしれない。
      • そういえば、高専生活に関しての記事をまとめようと思い、全然書いてないのを思いだした

山口旅行記

高専カンファレンス in 西京2へ行くついでに、山口県をちょっとかじってきたので書きます。

1日目 3/15

出発日です。地元から東京まで出てきて、防長交通の萩エクスプレスに乗りました。消灯時間に寝ようとするも全然寝られず、悶々としていました。

2日目 3/16

詳細は

eniehack.hatenablog.com

に詳しいですが、簡潔にまとめます。

  • バス降りたら急に雹が降ってきてビビり散らしました。
  • バスの降車場所は最寄り駅が山口駅である、山口西京橋をノリで選択してしました。
    • しかし、今回カンファレンスの開催場所は湯田温泉街が近い場所でした。しかも、山口駅湯田温泉駅は本数が少ないうえ、歩くと結構な時間がかかるので、移動が面倒になってしまいました。
    • オタク達これは知見ですよ
  • かるくんと昼食の約束をしていたので、湯田温泉なか卯で昼食を共にしました。
  • その後、なか卯から歩いて会場へ。
  • カンファレンスをしました。
  • りゅうさんくんとBlackBerryツーショットを取りました。
  • 晩餐会でsublimerさんやかるくん、hmdさん達を色々お話させてもらいました。
  • その後、ほぼ晩餐会のメンバーで足湯「狐の足あと」へ。
  • 足湯コーディング
  • 20:30くらいにお開きとなり、同じホテルを予約したかるくんと帰りました。
  • ホテルで開発しよう、とかるくんを誘ったものの、疲れが残っていたのか結局叶わず寝てしまいました。

3日目 3/17

8:30とまぁまぁの絶起をキメました(朝起きたらりゅうさんくんがもう旅行を初めていてビビった)。 まぁ、8:30は私としては健康的な起床ではありますが…。 それはさておき、泊まっているホテルは朝食が無料なので、かるくんと朝食をとりながら今日どうするか~って話をして、チェックアウトしました。

秋芳洞秋吉台旅行

かるくんと話し合って秋芳洞秋吉台に二人で行くことにしました。

秋芳洞

  • 水が澄んでいて綺麗だった
    • 川底が見えるくらい
  • 自然の神秘を感じた

秋吉台

  • 山に岩が刺さっている光景を初めて見た
    • とても不思議だと思った

かるくんとの別れ

秋芳洞秋吉台から新山口に帰ってきて、お土産を買ってかるくんは帰っていきました。別れるとめちゃめちゃ寂しかったです。

オタク飯

かるくんとの別れのあと、サードプラネットにいるオタクたちといろいろ話したかったのもあるし、バス乗り場の関係もあり、湯田温泉へ向かいます。

サードプラネットでオタク達と合流。 そこで、kvinさんが気を効かせてくれて早めにゲームを切り上げてガストへ行く話になりました(ありがたい)。 ガストの席の位置でヤマゲンさんを端にしてしまったのは申し分けなかったです…。 オタク構文禁止ボーリング、競プロ構文はオタク構文に入るか、みたいな話をしました。楽しい。 しかし、バスの時間の関係から1時間で帰らなければならず、残念でした。

夜行バス

なんと同じバスにBBツーショットをしたりゅうさんくんがいました。しかし、バスの席が遠かったのであまり話はできませんでした。それでも休憩時間で話せて楽しかったです。

4日目 3/18

東京駅からネカフェ

夜行バスは8:30頃に東京駅に着き、ここでりゅうさんくんとお別れ。秋葉原と池袋を巡る東京観光を計画していたので、秋葉原の店が開くまでちょっと暇になってしまい、ネカフェで朝食を取り、この記事の下書きを書きました。

秋葉原から新宿へ

しかし、秋葉原では欲しいものがなかったので池袋へ。池袋のとらのあな秋葉原で手に入れたかったモノとジュンク堂でElmとElixirの本を買いました。

あきとらさんとのお茶

その後、Twitterで仲良くさせてもらっているあきとらさんとお茶をしました。あきとらさんとはガジェットからプログラミング、経済から思想、アニメ、シナリオまでいろいろな話をしました。ここまでいろいろな分野の話ができる人はなかなかいないので、久しぶりにいろいろな分野の話ができて楽しかったです。

終わりに

他校の高専生達、特にかるくんとりゅうさんくんと仲良くなれてよかったな、って思いました。

今年は初めて高専プロコンに出ると思うので、西京で御会いしたメンツとまた会えるのを楽しみにしています。 また、4/27に高専カンファレンス東京があるので、またりゅうさんくんに会えるのを楽しみにしています(もちろん塚本くんやカコハテくん達の東京プロコンゼミ勢とも会えるのを楽しみにしています)。

山口市は地元の発展した街とは違って、都会を指向しすぎていなくて背伸びしている感がなく、のどかで、中心地に温泉や足湯があって最高でした。また行きたいです。

最後に。

  • オタクは軽率に山口へ行け
  • オタクは軽率に旅へ行け

以上です。

高専カンファレンス in 西京2 参加記

こんにちは。ブログでは久し振りです。昨日高専カンファレンス in 西京2に参加してきたのでその記録です。

参加するきっかけ

当初は参加するつもりはありませんでした。しかし参加者の顔ぶれを見てみると会ったことはないものの、ネット上で交流のある人が大勢参加表明されていたので、参加してみることにしました。

カンファレンス当日の思い出

雹が降る

夜行バスから降りたらすぐ、雹が降ってきてビビりました。

かるくんとのなか卯

その後、かるくんと合流。事前になか卯へ行く約束をしていたので2人でなか卯へ行き、 かるくんおすすめの三種のチーズ親子丼を注文。チーズと卵って相性どうなの…?って不安になりながら親子丼を口にしたのですが、不安なんて杞憂でした。これがうまかった。かるくんありがとう。

てるふのさんのスライド

テーマは何如にしてそれっぽい発表ができるか、というもの。最初はユーモラスだったが、後半になっていくにあたって実用的な心理学の話になっていって参考になることだらけでした。内容を公開してほしいです。(もしかしたらSlideShareに上がっているかもですが)

Ryuki Imamuraさんのスライド

テーマは「pythonモジュールのパッケージングと配布入門」。モジュールを作ったことはあるのですが、PyPIにて公開したことがなく、具体的な公開方法を知ることができておもしろかったです。また、Pythonモジュール配布のトレンドも解説していただいて、Pythonのモジュールを開発してみたくなりました。

りゅうさんくんBlackBerryツーショットを撮った

参加動機はこれが半分くらいです。

ゆんさんのスライド

テーマは「Flaskでお手軽にWebアプリ作成」でした。Flaskは拡張機能ありきというスタンスで開発している、というのは知っていたのですが、 その拡張機能自体をFlask-login以外あまり知らず、いろいろな便利な拡張を知ることができてよかったです。ぜひ使ってみたいです。

Nakamraくんのスライド

ARに個人的興味があったのもそうですが、スライドを分割して無関係の画像を載せるやり方は革命的すぎて思わず笑ってしまいました。

非公式夕食会

カンファレンス終了後、hmdさん、かるくん、sublimerさんてるふのさんhmdさんの後輩と私の6人で非公式夕食会へ。 瓦蕎麦おすすめ店をはすみさん聞いて 長州屋という居酒屋へ。 私は瓦蕎麦初体験だったのですが、蕎麦が苦手な私でも、するっと食べられていつの間にかお腹がいっぱいになっていました。 つゆが麺とよく絡み、つゆと絡んだ麺が肉とこれまた合って箸が進む。これはつゆ駆動型であります。最高でした。

念願の初「足湯コーディング」

その後、はすみさんイチオシの足湯「狐の足あと」へ。 てるふのさんとは事情があり別れてしまったものの、残りのメンバーで話が弾みました。 sublimerさんとhmdさんの会話はおもしろく、為になりました。 足湯コーディングしようと思ったのですが、アドブロックのせいか、はてなに正常にログインできなかった(?)ので全然できませんでした。

感想

今回のカンファレンスでもいろいろな高専生に出会えることができて楽しかったです。 現在のプロジェクトへの意欲がマシマシになりました。 明日からもがんばっていきたいです。

次こそは登壇したい…ということでりゅうさんくんが企画中だという 高専カンファレンス東京で発表するかもしれません。そのときは温かい目で見ていただけるとありがたいです

私もカンファレンスを開きたいなって思いました。

最後に、こいつ飯の話しかしてないな?

WSLで快適な開発環境を作る

最近WSLに感動している。そんなわけ(?)で備忘録も兼ねてWSLのセットアップについて書きたいと思う。かなり雑ではあるがそこはご了承願いたい。

前置き

Debian GNU/Linux,SUSE,Kali Linux,UbuntuといろいろなディストリビューションがWSLに対応しているが、ここは一番利用者の多いUbuntuでやっていきたいと思う。
また、執筆日時当時の設定方法を記述しているため、古くなっている場合がある。そこはご了承願いたい。

  • 執筆日時:2019/01/23
  • OS:Windows 10 Home
  • WSL: Ubuntu 1804.2018.817.0

WSLインストール

スタートからMicrosoft Storeを開き、Ubuntuと検索しインストール。

WSLセットアップ

インストール終わったらスタートから"Ubuntu"を選択するか、コマンドプロンプトPowerShellwslubuntuと打ち、Ubuntuを起動させる。初回起動時はユーザー名とパスワードを設定する必要があるのでそれをする。 とりあえずパッケージの更新をする。

sudo apt update
sudo apt upgrade

日本語化

sudo apt install language-pack-ja-base language-pack-ja
sudo update-locale LANG=ja_JP.UTF-8

ここで一回WSLを再起動する。
echo $LANGしてja_JP.UTF-8が帰ってくれば日本語化は完了である。

manページの日本語化

また、manページも日本語化するのであれば、

sudo apt install -y manpages-ja manpages-ja-dev

でok。

時刻をJSTにする

しかし、この時点では時刻がJSTではないので、

sudo dpkg-reconfigure tzdata

上のコマンドで矢印キーだけで動かせる画面が出てくるので、順に"アジア"->"東京"をEnterで選択すればok。

Neovimインストール

宗教戦争になりかねない話だが、私はNeovimが好きである。なのでこの記事ではNeovimに関してしか扱わないが、vimは標準で入っているし、emacssudo apt install emacsでインストールできると思うのでその辺はggるなりしていただきたい。

sudo apt install neovim python3-pip
pip3 install neovim

dein.vimの導入

ここではVimプラグインパッケージマネージャであるdein.vimを使うこととする。

github.com

これを参考にしてインストールすればよい。しかし、プラグインをいちいちinit.vimに書くのは嫌なのでtomlに書くことにした。書きかえたのが以下である。

if &compatible
  set nocompatible
endif
" Add the dein installation directory into runtimepath
set runtimepath+=~/.cache/dein/repos/github.com/Shougo/dein.vim

if dein#load_state('~/.cache/dein')
  call dein#begin('~/.cache/dein')

  call dein#add('~/.cache/dein/repos/github.com/Shougo/dein.vim')

  let s:toml = '~/dein.toml'
  let s:lazy_toml = '~/dein_lazy.toml'
  call dein#load_toml(s:toml, {'lazy': 0})
  call dein#load_toml(s:lazy_toml, {'lazy': 1})

  call dein#end()
  call dein#save_state()
endif

filetype plugin indent on
syntax enable

if dein#check_install()
  call dein#install()
endif

これで、~/dein.tomlにどんな言語でも使うプラグインを、~/dein_lazy.tomlに特定の言語向けのプラグインについて書いていけばよい。詳しいdeinのtomlの書き方はggっていただきたい。
ところで、dein.tomlとdein_lazy.tomlで分ける理由としては、必要なプラグインだけ読み込むようにして高速で起動できるようになるからだそうだ。 前者は起動した際、最初に読みこまれるが、後者はちょっとして読みこまれるらしい。

シンボリックリンクの作成

WSLでcd /mnt/c/すればわかると思うが、WSLからWindowsファイルシステムへのアクセスは可能である。 よって、OCamlやCrystalのようなWindowsに対応していない言語の開発ではWindowsファイルシステム上でファイルを保持しておき、編集や実行はWSL上で行うということが可能である。
しかし、毎回、cd /mnt/c/…cd /mnt/d/…するのは面倒なので、

ln -s /mnt/(任意のフォルダ) ~/(任意の英数字)

とやって、ホームディレクトリにシンボリックリンクを作る。
ちなみにWindowsからWSLのファイルシステムへのアクセスはファイルが破壊されるため、アクセス不可能になっているらしい(そもそも場所がわからない)。

おわりに

とまぁ私なりのWSLの環境構築をやってきたわけだが、結局はWSLが本物のLinuxに敵うはずはないと思っているのでLinux機が欲しくなった。

校内LTをやったので反省会をする

どうもこんにちは。第一回#nitgcltを主催したので反省記事を書こうと思います。といっても薄い記事になります。

開催の目的

私の通う高専では他の高専よりプログラミングをしている人間があまりないなー、そんな少ない人達とでも知見が共有できたらいいな、あわよくば人口を増やせたらいいな、と思って。機材はそもそも部内LT会をしたいということで揃っていたのでやろう、となった。

反省点

  • 開催発表が2018/12/22で開催日が2019/01/09と突発的すぎた
    • 人数確保ができなかった(といっても開催した場所にギリギリ入るくらいの人数だった)
    • LT登壇した先輩方に負担がかかってしまったり
    • もっと早く知っていれば登壇したのにみたいな声を聞いた

それでも先輩方のスライドは面白くて、すごかった。

  • 運営がグダグダ
    • LT登壇者へのアンケートが不徹底だったためにLTの登壇順をその場で決めるという事態になってしまった。
    • スライドの経過時間を測っていなかった。
    • 記念撮影とか恒例行事をすっかり忘れていた。

次回の課題

次回は新歓とか新入生が来る時期にやろうかなって思ってます。

  • 開催発表から開催までの期間をちゃんと開ける
    • 1ヶ月?
  • 登壇順を事前に決めておく
    • 登壇順は分野でまとめる
    • 登壇者アンケートに分野について聞く項目を新設する
  • 部室で開催したが、10人で満員状態だったので新しい会場を選ぶ

感謝

今回の第一回#nitgclt運営、会場設営に強力してくださった皆さん、おもしろいスライドで会場を盛り上げてくださった皆さん、#nitgclt開催にあたって参考にさせていただいた明石高専 IT系勉強会主催者のJohnさん木更津高専 IT勉強会主催者のぽちゃまぁさんにこの場で感謝いたします。

環境変数PIPENV_VENV_IN_PROJECTを設定すると便利だ、というお話

環境変数PIPENV_VENV_IN_PROJECTtrueと定義する。その後pipenv installするとプロジェクトルート直下に.venvディレクトリが作られる。そしてそこに全てのパッケージが全部インストールされるよ、ってどっかで聞きました。私のWindows環境でこれをシステム環境変数に入れてみたら無事できましたよ、って話。多分LinuxでもMacでもできるんじゃないかな?これやると、Vimvim-virtualenvが反応してくれます。この恩恵としてはvenvにしかインストールしていないパッケージの関数やクラスでも補完が反応してくれるみたいです。

windowsでcurl導入しようとしたらつまづいた話

CouchDBに興味を持ったのでいじってみようかな、と思って、CouchDBの操作にcurl使ってる記事が多いので、curl導入しようかな、と思ったらつまづいたのでメモ。

PowerShellcurlを呼ぶとデフォルトではcurlでない似た何かが呼び出される

まず最初に ここ の一番下からcurlWindows x86-84版zipを入手して、環境変数を設定し、 curl -X GET と動かしたら、-Xってなんぞや?、ってみたいなのが英語で返ってきたので違和感。 curl --helpしてもそんなようなことを返されたので、これはおかしいぞ、ということで「curl windows」と調べた。 そうすると、

qiita.com

curlコマンドはPower ShellではInvoke-WebRequestが呼び出されるらしい(wgetもそうらしい)。 対処法を探しにこの記事にリンクがあった、下のサイトへ。

devadjust.exblog.jp

Power Shellのよくわからんやつ(Invoke-WebRequest)を使いたくないので、恒久的に関連付けを切ろうと対処その3をすすめた。 %HOMEPATH%\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1を編集するらしいが存在しない。

Microsoft.PowerShell_profile.ps1を編集してみた

調べ進めると、

qiita.com

この記事を見つけた。記事に従って PS> $profile

Microsoft.PowerShell_profile.ps1の居場所をPSに聞き、

PS> new-item -path $profile -itemtype file -force

で強引にファイルを作った。

また、前の記事の戻って、Microsoft.PowerShell_profile.ps1に

del alias:curl

と記述して保存。 そしてPowerShellを再起動。しかし、

. : このシステムではスクリプトの実行が無効になっているため、ファイル %HOMEPATH%\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1 を読み込むことができません。詳細については、「about_Exec
ution_Policies」(https://go.microsoft.com/fwlink/?LinkID=135170) を参照してください。
+   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : セキュリティ エラー: (: ) []、PSSecurityException
    + FullyQualifiedErrorId : UnauthorizedAccess

と出た。

Shellの実行権限関連のエラー

またいろいろ調べてみると、

totech.hateblo.jp

なるほど。どうも、権限のエラーらしい。ということで、

PS> powershell -ExecutionPolicy RemoteSigned .\Microsoft.PowerShell_profile.ps1

を実行。しかし、

del : パス 'Alias:\curl' が存在しないため検出できません。
+ del alias:curl
+ ~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (Alias:\curl:String) [Remove-Item], ItemNotFoundException
    + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.RemoveItemCommand

と出る。

結論 del alias:curlは古かった

この原因を2,30分くらい探していたら、

qiita.com

上の記事を発見。どうも、

del alias:curl

と書くのは古いらしく、最近ではsalで変更できるらしい。 ただ、salも永続的に設定を保存してくれるわけではなさそうで、 上の記事Microsoft.PowerShell_profile.ps1をcurl.exeのある場所に値を一部替えれば出来るはず…。 まだPowerShellでは成功するもののHyperでは権限関連でエラーが。再起動しても上手くいかない…

感想

M$さん、破壊的変更はやめてくれ… あと、PowerShellはcmdよりエラーが分かり難いイメージがすごいですね…今更ながら。curl軽く使うくらいなら普通にWSLインストールすればよかったなぁ、って今では結構後悔。 CouchDBの話はまた別の機会にでも。