桐生あんずです

日常やプログラミングについて書いています。

実家のリモート環境を整えていく

Twitterで昨日以下のように好き勝手言っていたら毎日自分のTwitterをネトストしている父親から少し心配されて退勤後にケーズデンキへ買い物にいくことになった。

昨日父親におつかいに行ってもらおうとして失敗したType-CからHDMIの変換器の購入に成功して、ついに明日から仕事でサブモニタが使えるようになるので嬉しい。

www.apple.com

ついでだから無線で使えるイヤホンマイクも欲しいという話をしていたら、ケーズデンキの店員が父親にAirPodsの購入を進めまくってくれて買ってもらえることになった。(家庭内共用という名目ではある)

 

明日ちゃんと使えるか気になったのでstand.fmに早速登録してマイクテスト投稿してみた。多分使えそう。

 

椅子に関しての問題も言及していたら「コロナが心配だしこの際だから椅子もニトリで週末買いに行こう」と約束してもらえて環境がどんどん改善してきて嬉しい。

 

とは言いつつも、早速社会人になってすぐに実家で親のスネかじりをしまくってるのは異様な状況な気がするので東京に戻る日をちゃんと決めて初任給が出た時に何らかの贈り物をするなど考えた方がいいなと思っています。(4/16までには戻る予定です)

 

リモート初入社(at実家)

新社会人として初出社の日だった。東京に行く日を引き伸ばした結果、実家の自部屋でリモートから入社式を迎えることになって、中々ない体験だったと思う。

自分視点だと、椅子の座り心地が悪い以外はまぁまぁ耐えられて、社員さん達はみんなすごく優しくて頑張っていこうという気持ちになった。

ただ、両親視点だと中学校時代に四六時中ネトゲをしていた様子とあまり変わらないように見えているっぽくてあまり好感を持たれていないのかピリピリしている空気を感じてしまいこれを4月中ずっと続けるには厳しい感じだった。

 

あと、父親にType-CからのHDMI拡張子ケーブルを頼んだらライトニングケーブルの端子からHDMIに繋ぐ拡張子の方を買ってきてもらってしまい厳しい感じになってしまった。(純正だったので6000円した)

会社のリモート飲み会の後にそれが発覚して破滅しかけている酔っ払いのまま対応してしまい更に厳しい空気になってしまい、来週中には東京へ戻らないと家庭崩壊しそうな予感すらするので気を付けようと反省している。

 

実家リモート、朝昼晩にご飯が出ることと疲れた時に実家の犬を触って癒されることははめちゃくちゃありがたいけれどその他は気を遣う点が多すぎてお互い疲弊していきそうな感覚があるので学びがあるなーと思った。

今週中はどっちみちいることになるので、これ以上家庭内が悪化しないようにできるだけ気を遣いつつ仕事の方も頑張りたい。

2年4ヶ月の間アルバイトで勤めていた株式会社坂ノ途中を卒業しました

桐生あんずです。

時間が流れるのは本当に早いもので、大学の卒業と東京への就職を機に、2017年12月にアルバイト勤務で入社した株式会社坂ノ途中を退職することになりました。

最終出社は2020年3月24日(火)でした。

合計で2年4ヶ月ほど在籍しており、その中で色々学ぶことが沢山ありました。今回の記事ではその話をしたいと思います。*1

 

きっかけ

入社する前にバイトとして半年ほど働いていたプログラミングスクールが突然消失したことで時間に余裕ができたので個人でWebサービス開発をしながらインターネット活動をしていたところ、RailsGirlsのコミュニティの繋がりを通じて会社のエンジニアの方から声をかけていただきアルバイトとして入社しました。

また、上記の職場で一緒に働いていたid:taca10 さんとも再会を果たすというミラクルな出来事もありました。約2年経った今でも同僚として仲良くしていただき、すごくお世話になっています。

 

やったこと

坂ノ途中は、環境負荷の小さい農作物の流通や通販をしている会社です。

その中でも、「farmO(ファーモ)」という農業者と飲食店や小売店などの買い手をつなぐ、B2Bのマッチングや受発注を簡単にできるWebサービスの開発に関わっていました。

勤務形態は週2~3勤務で、長期休みのタイミングでは週3~4でコミットするように切り替えるなどしていました。

大学に関しては「学業優先で頑張ってください!」とチーム内の方々にとても気を遣っていただき、試験前には1~2週間ほどお休みを取らせていただくことなどもありました。

 

業務面では、チーム内のエンジニアはチームリーダーの方と私の2人体制だったこともあり、サーバイサイド側もフロントエンド側も両方とも触りつつ機能追加やバグ修正のタスクに着手するのが基本的なお仕事の流れでした。

サービスのUIに関しても発案からコーディングまで一通り進めることもよくやっていて地味にUI力も付いていったような気がします。

 

農家さん・バイヤーさん向けのサービスに関わること自体はもちろん人生の中で初めてでした。

サービス開発に関わっていく中で農家さんの現状を把握したり社内のビジネスサイドの方々の意見を取り入れながら、対象となるユーザーの方々がより便利に使えるように機能実装を進めていく経験は今後の仕事の中でもかなり為になるものだったと思います。

具体的な部分だと、受発注機能や納品書のPDF出力機能の開発に携わることがあり、その上でどのような導線・UIを用意することでより質の高いユーザー体験を作っていけるかどうかを考える機会が多くあったのが記憶に残っています。

 

入社してすぐの時には、以下のようなエントリを書いていて当時の初々しい状況が伝わってきます。

kiryuanzu.hatenablog.com

 

今この記事を読み返すとリアルに顔がちょっと熱くなるレベルで恥ずかしくなってしまうのですが、今から4ヶ月ほど前にこのエントリを読んだ大学生の子がエンジニアの学生インターンとして応募して入社してくれたという大変嬉しい出来事があり、結果的に会社のHRに貢献できて良かったなと思うことができました。ブログの力ってすごい。

 

入社した当時は「Railsのコードをギリギリでコピペして個人のWebサービスをなんとか作れる程度の完全未経験の文系学生」そのものだったので、最初の数ヶ月は分からないことが沢山あり、ご迷惑をおかけした部分があり当時のことを思い出すと申し訳ない気持ちになります……。

ですが、業務での経験や独学、就活でのインターンを重ねていくうちに仕事のスピードが徐々に早くなっていき、チーム内の人からも「最近どんどんスキルが上がってきてるように見えます」と褒められることが増え、ビジネスサイドの人達から自分の成果に関してすごく良い評価を伝えてもらえる出来事が何度もあり、自分がやっている仕事に対してじわじわと自信が持てるようになりました。

kiryuanzu.hatenablog.com

ここ数ヶ月のタイミングでは、前述のインターンの子が週1でやってきてくれるようになった為、メンターっぽいことをやってみたり、コードレビューのタスクにも触れる機会が多く、バリエーション広くやらせていただくようになり本当に楽しかったです。

 

思い出

バイト先の方々は本当に優しい人たちばかりで、リアルやSlack上でいつでも気軽に技術に関する質問や雑談に乗っていただいたり、学業や就活の状況に関してもずっと気にかけていただいたように思います。

内定が決まった時にちょうどバイト先にいて、その場で感極まって泣き出すというアレな状況になった時に部屋にいた方々に拍手してもらったエピソードが今でも根強く記憶に残っています……。

試験前でナーバスになり「いま大学で学んでいる法律の勉強は将来役に立つんだろうか」という旨の悩みについて日報チャンネルに投稿した時も、以下のようなアドバイスをエンジニアの社員の方にしていただきすごく励みになったことも覚えています。f:id:kiryuanzu:20200324012032p:plain

そして忘れてはいけないのが毎日お昼に作っていただけるまかないです。野菜メインで栄養もあり、出社する日はかなり健康的で過ごせていたような気がしています。

会社のエンジニアの方(id:daaaaaai さん)にお魚を捌いていただいたこともありました。

 

このように、坂ノ途中にアルバイトとして所属している間は今までだったら体験することができなかったような食事面に関する興味深い出来事が多くあり大変楽しかったです。

 

このように振り返っていくと、様々な局面で親身に関わっていただいたエピソードが他にも沢山あったことをどんどんと思い出して寂しくなりますが、ここで得られた経験を糧に次の職場でも頑張っていきたいと思います。

社員の皆さま、本当にありがとうございました。京都に帰ってきたときはまたお会いできる機会を作りたいです。

 

これからについて

就活時のエントリでも触れていますが、Classi株式会社に2020年4月から新卒エンジニアとして入社します。

corp.classi.jp

今まで関わってきたサービスとは、技術スタック・サービスの規模感などかなり違いがある模様なので今後新しく学んでいくことが沢山ありそうでドキドキしています。

とりあえずまずは会社で使われているらしいAngularの公式チュートリアルを写経したり、Vue.jsのガイドのドキュメントを読み進めたりしています。

この約2年半の中でエンジニアとしての経験を積むことはできましたが、まだまだひよっこであることには変わりないので自分のペースで頑張っていこうと思います。今後ともよろしくお願いいたします。

 

蛇足

大学3回生の頃にスーパーの品出しのバイトを続けられる自信が全くなく3日で辞めたという社会不適合者エピソードがあるのですが、エンジニアのバイトは約2年半も続けていて、結構すごいことなのかもしれないなと振り返っていてふと思いました。

今後も10年、20年ぐらい続けることができていたらもっと良い話なのでまだまだやっていきたいです。ウオ〜。

 それでは、ありがとうございました。

 

*1:チームの方々にプレビュー記事の段階でご一読いただいてから投稿しています!!

大学入学当初は全く単位が取れず更にはWebの世界にハマって2留したけれど立命館大学法学部を卒業できることになりました

桐生あんずです。タイトルで全て説明しています。結論から伝えると人生で色々あり2留もしましたがなんとか今期で卒業に成功することができました。

 

今までのあらすじ

kiryuanzu.hatenablog.com

kiryuanzu.hatenablog.com

上記の記事で当時の留年生活について赤裸々に語っています。

 

GPAと留年小話

もう最後なので学期GPAを公開しておきます。全く参考にしないでください。

f:id:kiryuanzu:20200310232334j:plain

GPAを元にして振り返ると状況が手にとって分かると思うのですが、大学3回生になるまで本当に単位が取れませんでした。毎期平均8単位しか取れてなかった記憶があります。大学3回生になっても合計40単位に達していなかったと思われます。

その後3回生で頑張って年間で40単位ほど取ることに成功したのですが、大学4回生からプログラミングの世界にハマりバイトと就活のタスクも重なってどんどんとGPAが下がってしまいます。(2018秋学期には就活周りのタスクに没頭するために全く学校に行かなくなってしまいGPAが0.00になってしまいました)

 

ですが、2019年6月頃に就活が無事終わります。

kiryuanzu.hatenablog.com

「社会人になるためにも2020年3月までに卒業しないと人生が大変なことになってしまう……」と大学の卒業に対して真剣になり始めます。

当時(大学6回生春学期)の合計取得単位は116単位でした。124単位取らないと卒業できないため秋学期で残りの8単位を絶対に取らなければなりません。

ここで4年かそこらで大学を卒業した人からすると「8単位なら楽勝やろ」と思われる気がしていますが、留年を2度も経験した人間が1タームで8単位を取るのはめちゃくちゃ精神力を使う行いでした。

しかも、立命館大学法学部には忌まわしき専門化プログラムという必修過程があり、私は「法と文化」というプログラムを選択していたので2019年冬学期にアジア法を取らないと留年が即座に確定するという縛りがありました。

春学期でヨーロッパ法をとっておけばよかったのですが、「就活中で授業に出れなかったんですがレジュメは残っていますか?」と先生に直談判したところゴミを見るような目で「過去にもうレジュメ棚で配っています。その時に取っておいてください。」と正論を突きつけられ、授業に行く気が完全消滅してしまったのでした。

授業内で友達を作っておけという話なんですが、2留もすると知り合いがほとんど卒業してしまうという悲しい現実があります。

上記のエピソードは完全に自己責任だと思いますが、法学部の先生はmanabaに電子版のレジュメをアップロードすることを義務化する仕組みを作らないと学部内の留年率は下がらないと思います。今後入学される法学部生の為に検討をお願いします。

(ただ、中には「iPadでmanabaからPDFをダウンロードしてメモを書きながら授業を受けているので、授業前にアップロードしていただけると大変嬉しいです」と直接お願いしたところ快く受け入れてくれた先生もいるので法学部全体がレジュメの電子化に対して逆らっているわけではないと思われます。)

 

といったように、留年していた当時のことを考えると様々な辛い記憶が蘇ってついエモーショナルな感情に陥ってしまう病気にかかってしまい、この留年に対する思いを浄化させたくC97で本を出しています。(通称:「 留年本」)

kiryuanzu.booth.pm

C98も当選したら「卒業本」と題して卒業するまでにどのような闘いがあったのかを解説するエッセー・メソッド集を出したいと思います。卒業できず留年に苦しんでいる方がいたらC97で出した留年本と一緒に手にとっていただけると幸いです。

例をあげると、以下のような体験談や試験勉強の方法、大学のサポートルームで試験のアドバイスを聞こうとしたらWANIMAみたいな法学部の下回生がやってきたけどあんまり参考にならなかった話などを掲載しようと思っています。

 

 

 

 

色々ありましたが卒業します

なんとか今は落ち着いてきましたが、卒業に成功したという実感を得るまで数日ほどかかってしまったように思います。

それがなぜか一つ理由を挙げるならば、大学に入学してから何人もの留年・退学者を見てきたからかもしれません。

退学はしたくない、でもいつ卒業できるかわからない。いつか諦めて彼らと同じ側にいくことになるかもしれない……」とずっと心の中で思い続けていました。気分的には覆せない未来を変える為にタイムリープし続けるSF物の主人公みたいな感じです。

それでも目の前には卒業に成功した現実があるので、その状況を理解して4月からの社会人生活を頑張ろうと思います。本当に、本当に良かった……。

 

P.S

卒業できるのは良いんですが、大学の卒業式は消滅してしまったので3/28のお昼くらいから鴨川で卒業式をやろうと思います。興味ある人はフラッと遊びにきてください!!!!

atnd.org

 

追記(2022/1)

無事留年本の完全版の「真・留年と闘う」が完成しました!興味がありましたら手に取っていただけると幸いです
kiryuanzu.booth.pm
kiryuanzu.hatenablog.com

VSCodeのエディタからRailsのminitestをファイル/ブロック単位で任意に実行できるようにした

桐生あんずです。

今までRailsのminitestからテストする際に、ファイルやブロック単位で実行する際に以下のコマンドを流し見しつつ手打ちで頑張っていたのですが、流石に他の方法がありそうだな、と思い用意してみました。

rake test TEST=test/sample_test.rb TESTOPTS="--name=test_sample_2"

様子

ツイートの内容通り、最初は以下のような自作シェル関数を作ってテスト関連のファイルをfindしてpecoで一覧化して探索できるようにする方法にしたのですが、

function peco-test() {
        local files=$(find test | peco)
        if [ -n "files" ]; then
                BUFFER="bundle exec rake test TEST=${files}"
                zle accept-line
        fi
}
zle -N peco-test
bindkey '^T' peco-test

「一度コマンドを打ったらヒストリーから辿れば良いだけなので、そんなに実用性があるわけでは無い気がしてきた……」となり色々調べていて「エディタから実行したいテストの行をクリックして個別に実行する」という手法が便利そうだったので、参考になりそうな記事を探して作ってみることにしました。

参考にした記事

hakobe932.hatenablog.com

この方の記事ではPerlのテストを実行していますが、Rubyで同じように動かすとしても.vscode以下のフォルダにtasks.jsonを作成してブロック単位でテストを実行したい時に動かすwrapperスクリプトを用意するだけで再現可能だったので、Rubyで以下のように書いて実行したところ無事思った通り動かせることができました。

//.vscode/tasks.json

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "run Ruby test all",
            "type": "shell",
            "command": "bundle exec rake  test TEST=${relativeFile}",
            "group": "test",
            "presentation": {
                "reveal": "always",
                "panel": "shared"
            }
        },
        {
            "label": "run Ruby test here",
            "type": "shell",
            "command": "bundle exec ruby .vscode/exec/run_test_at.rb ${relativeFile} ${lineNumber}",
            "group": "test",
            "presentation": {
                "reveal": "always",
                "panel": "shared"
            }
        }
    ]
}
.vscode/exec/run_test_at.rb

filename = ARGV[0]
file_line_number = ARGV[1]
open(filename) {|file|
    lines = file.readlines
    file_line = nil
    file_line_number.to_i.downto(0) do |i|
        file_line = lines[i]
        break if file_line.match(/test\s+".+?"/)
    end
    return unless file_line
    file_block = file_line.slice(/test\s+".+?"/).gsub(" ", "_")
    cmd = "bundle exec rake test TEST=#{filename} TESTOPTS=--name=#{file_block}"
    puts cmd
    system(cmd)
}

これで普段よりテストの個別実行が楽になったので大変嬉しい……!と思いつつも世の人はこういう場面に出会ったときにどう対処しているのだろう?とふと疑問に思ったり。

このつぶやきに反応してくれたフォロワーは以下のようなやり方で対応しているとのことでした。

 

庭いじり

最近バイト先で作業しているときにターミナルで長いコマンドを叩いていると、手が疲れるしちょくちょくミスるしたまに忘れてめんどくさいと思うようになってきて、どうにか効率化したいと思い~/.bashrcの中でaliasの設定を書き加えて短縮コマンドを用意する技をやっと覚えるようになった。

一例

設定したと言ってもRailsやgitまわりでよく使うコマンドを以下のように短縮させたぐらいなのだけれど、自分の中ではとにかく便利になったように感じられて、短いコマンドでどんどんターミナルを動かしていくのもオタクっぽくて良い。

alias gl='git l'
alias st='git st'
alias push='git push origin HEAD'
alias pull='git fetch -p && git pull'

alias t='bundle exec rake test'
alias r='bundle exec rake routes'
alias testlog='tail -fn100 log/test.log'
alias s='rails s'
alias c='rails c'

こうやって効率化する作業を試行錯誤しながら進めていくの、庭いじりみたいな作業で面白いな〜と思っていたら友達が以下の記事で今の使っている環境を教えてくれた。すごい。

sakahukamaki.hatenablog.jp


zshとpecoを触っておくと色々便利で楽しそうな感じなことが分かってきたので以下の記事を参考にしながら入れてみた。今までbashしか使ったことがなかったので割と大きな一歩にも見える。

qiita.com

qiita.com

ここら辺の記事を読んでいると「ghqも入れると良いよ」とだいたい書いてあって、じゃあ入れてみるか〜と思い導入してみた。
これでCtrl + r でコマンド履歴の一覧が出るようになり、Ctrl + ] でghqの管理下のリポジトリの一覧をシュッと眺めて移動できるようになったのだった。めでたい。

便利そうになったようにも見えるけれど、実際使っていかないと手が慣れなくて作業効率が下がりそうな予感もするので実際に触って使いやすくカスタマイズする必要がありそう。


とりあえず直近の庭いじり作業としては、テストを手動で回すときに個別でファイル単位やブロック単位で実行する際、以下のように書くのが地味にめんどくさくて嫌なのでファイル名やブロック名だけを書いて引数として渡すだけでテストが走るコマンドを用意したいです。明日か明後日の自分頑張ってほしい。

rake test TEST=test/sample_test.rb
rake test TEST=test/sample_test.rb TESTOPTS="--name=test_sample_2"


そういえば退勤前に以下のような大喜利を思いついて勝手に一人でニコニコしていました。参加してくれる方いないかな。

追記
実装できました
kiryuanzu.hatenablog.com