無駄かもしれない足掻き

github : https://github.com/zer0-u

ニートをやめてカサレアルに入社しました

タイトルで用件は終わりなんだけど、それだとあっけなさすぎるのでもう少し詳しく書く。

5月17日にニートを卒業し、18日から株式会社カサレアルに入社しました。多田さんの紹介です。 ありがとうございます。主に教材開発を中心に担当することになりそうです。

twitter.com

やってることがおもしろそうだったからというのと、ニートをやるにも結構体力が必要なんだなーと思ったのと、推している俳優さんを応援するのにマネーというパワーが不足してきたのとで入社しました。

大学時代は文章を書いたり紙面を作ったりといった活動に全力を注いでいたところから、何を勘違いしたのか心機一転エンジニアになり、一周回って元の位置に帰ってきたような気がします。何か作りたいと思ったから、というよりはただ単純に学ぶことが好きで、学ぶことが尽きなさそうな場所にたどり着きました。

まぁでも結構悩みました。確かに自分の出は文系だし、√が出てくるだけでびびるくらいには数学が苦手(嫌いではない)だし、みっちりコンピューターサイエンスを学んできた人にかないっこないことはさすがにわかります。でも、もう少し頑張ればまだ伸びるんじゃないか、エンジニアとしてなんかすごいことができるんじゃないか。確かに教材開発はおもしろそうだし自分にも向いていると思うんだけど、それだけでエンジニアとしてのキャリアを途切れさせることができるか。時間もたっぷりあったのでひたすら悩みました。

で、結局入社を決めたのは、まぁ一つには考えすぎて疲れたというのもあります。時間があるととことん考えられる分体力がものすごく持っていかれますね。しんどい! それと、ニート中にてにみゅさーちを作ってみて、自分にはこのくらいちまちまと俺得なものをゆっくり作っていた方がいいのかもなぁと思ったのもあります。自分で作って自分でめっちゃ利用してます。だいぶテニミュ俳優の名前がわかるようになり、次の舞台にどのくらいテニミュ出身がいるかもなんとなく把握できるようになりました。しかしまだテニミュを見たことはない。見たことないのにどんどん詳しくなっていく。

でも多分一番大きかったのは、自分の信念に最も近いことをしてたからかもなぁ…とぼんやり思います。信念というか、確信というか、予感というか。私は学ぶことが好きです。なんでかというと、学ぶことで今まで知らなかった世界が少しでも垣間見えて、それによって今まで考えてきたことが覆されたり、苦手だったものが好きになったりして、生きていることが豊かになる気がするからです。思い込みかもしれませんが。少なくとも私は学ぶということをそういうものだととらえています。己の人生をもう少し豊かにするために新しいことを学ぶわけです。技術を学ぶのは現場のクソさを呪うためではなく、自分が使うものを見極め、少しでも改善していくためです。でもそれって多分自分一人ではなかなかできないことじゃないかな、と(主に1社目での)経験を振り返って思いました。チームで開発している以上チーム全体で学ばなければ改善できることにはたかが知れているというか。そう思うと、私がすべきことは自分一人の知識を向上させるのではなく、また違う道を選ぶことなんじゃないかなぁ…とぼんやり考えた次第です。

まぁ、エンジニアとしても物書きとしても未熟もいいところなので、どれだけ進めるかわかりませんが。ここで背を押したのが、ニート中に見に行った劇で、すごく印象に残ってる台詞です。「紛い物だろうがなんだろうが、貫きゃ誠になるはずだ」というものです。作品特定したら黙っててください。ちなみに推しさんも出ていましたがこの台詞を言ったのは別の方です。努力する前からできないかもしれない、うまくいかないかも…と不安がるのも疲れたので、行けるところまで貫いてみせようと思います。

明日も早いのでこのへんにしておこうかな。通販をあまりしないのでほしいものリストがなかなか充実してませんので公開はしません。ノートPCでBlu-rayが見られる何かがほしいです。あとスマホ。あとは舞台関連のDVDがたくさん。そんな感じなので肉を奢ってください(挨拶)。

以上!

2017/05/21追記 干し芋のリストを整備しました。よければ何か恵んでください。

整備してて思ったけど、自分がほしいものって意外と出てこないというか、こういうリストにしてもわからないですね。明確に「これがほしい!」というものは大体自分で買いますし、わからないものはここのリストに入れようがありませんし。

Javaに本格再入門した

話題のアクロ本ことJava本格入門を読んだ。

どうでもいいけどアクロ本って打ち込むと悪路本になってしまうのでどうにかしたい。

Java本格入門 ?モダンスタイルによる基礎からオブジェクト指向・実用ライブラリまで

Java本格入門 ?モダンスタイルによる基礎からオブジェクト指向・実用ライブラリまで

読んでいるときのぜろゆの状況

  • Java歴2年ちょっと
    • その時のJavaは古のJavaだったので今でもあんまり思い出したくはない
  • 最後にJavaをがっつり触ったのは去年の7月ごろ
    • その後はC#とかRuby on Railsとかやってる
    • もしかしたら今後Javaに出戻るかもしれない

雑感

とりあえずざっと目を通した程度(理由は後述)だけれど、自分のJavaについての理解を整理するにはちょうどよい分量だった。入門とあるけれど、Javaを全く知らない人には少し難しい。一応Chapter1,2でインストールや基本的な書き方は拾っている。けれど、本書の重要なところはそれ以降の部分にあって、そこは実際にJavaを使ってみて、ここどうなんだろうとか、もっとうまいやり方があればいいのにな、というときの指標となるからだ。だから、ある程度業務でJavaを使っていて、まだ自分のコードには改善の余地があるんじゃないかと思う人や、私のようJavaから少し離れていたが出戻るにあたって最近の動向を知りたいと思う人に最も役に立つ気がする。

というのも、いろいろな題材において「Java6より前」と「Java7以降(そしてJava8)」での書き方が併記されていて、自分がどこまで知っているのか・自分が使っているのはどれかを把握できるようになっているからだ。初めて本格的に触れたJavaが古つまりJ2SE1.4で、うまく書けないなとぐぐって出てくるコードは全部コンパイルエラーになり、自分の何が間違っているのか真剣に悩んだ経験がある身からすると非常にありがたい。まぁこれは極端すぎる例だけれど、「Javaにバージョンがあること」と「バージョンによって使える文法が異なること」を知る機会というのは意外と少ない。軽自動車に軽油云々の話題が最近TLに多く流れていたけれど、それに似た感じで「知っている人にとっては常識だけど、それをいつ知ったかはわからない」知識だと思う。私は周囲に恵まれているから比較的早く気づけたけれど、会社でのみコーディングしていて、たった一つのJavaのバージョンにしか触れることがなければ、いつ気付けただろうか…。そういった意味でも、多少幅を取ってでも過去のJavaと併記してあるのは非常に価値がある。新卒の頃の私に送りつけてさっさとそんなJavaに見切りをつけろと言いたい。

加えて特徴的だなと思ったのが、Chapter 10の「オブジェクト指向をたしなむ」のところ。クラスがひな形でインスタンスが実体で、みたいなよく見かける説明をされるのかと思ったら、いきなり参照渡しとかライフサイクルとか言われて最初は面食らった。でもよく考えてみると、実際にJavaを使って何か作るとなるとここに書かれている内容こそが大事になる。想定読者はひな形と実体の話は知っている前提で、表紙にある通り「効率的で品質の高いコードを書くために」この章を構成したんだなというのが一番よくわかった。Chapter 14のライブラリの選び方も「わかる~~~~~めっちゃ悩んだ~~~~」ってところを突いてきていて、実務でJavaを使い続けている執筆陣だからこその着眼点だったんだろう。

あとすごいのが索引。この分量と内容であれば索引なしでも十分だと思う。目次もしっかりしているから気になるところがあれば目次から簡単にたどれるようになっているし。にもかかわらずここまで細かい索引を載せたのは、ほんの少しでも品質の高いコードを書くために、できる限り短時間で目的の項目にいけるように、という配慮だと感じた。索引に載る項目も単語ではなくフレーズになっていてほんとに至れり尽くせり感がすごい。実際、この索引を見た時点で「じっくり時間をかけて読むのではなく、全体をさらっと目を通してあとは必要に応じて索引使えばいいか」と判断したくらい。

ということで、カバーに書いてある通り「効率的で品質の高いコードを書くために」必携の一冊だと思った。ある程度Javaを触っている人が読んだら絶対に損しない。いい本を買いました。

そんな感じです!

サービスを育てるということ

連休はお金もないので家でだらだらする予定のぜろゆです。

てにみゅさーち、リリースしてぼちぼちデータも増えてきたんだけど、ちょっと前に書いた初期データ問題とか、

teafortw0.hatenablog.com

あと単純に転職活動でばたばたしたりしてたのでちょっと更新が滞っている。あとDVD情報を4つ足したら2ndシーズンはとりあえず完了かなってところまで来ているので連休中にはけりをつけたい。

続きを読む

環境を整える話

ニートライフもそろそろ1か月を迎えることになりましたぜろゆです。わりとお金がない気がしてきました。失業保険の説明会に行くと「お前らは立派な労働者たちが納めた税金で養ってもらってるんだからさっさと再就職しろよ」ということを八つ橋にくるんで教えてもらえます。結構大ダメージです。でもまぁいい経験です。そう思うことにします。

前回記事への反響ありがとうございます。いろいろメリットデメリットありそうなので少しずつ検討しているところです。やはり現行の seed.rb ごり押しは間違っていた(結論)

今日は技術的な話というよりはなんとなく考えたことをつらつらと書いていく記事です。

続きを読む

初期データをどう管理するか問題

てにみゅさーち、少しずつデータを拡充してます。

その過程でどうしたらいいのかなーって問題が2つ挙がったのでなんかアドバイスがあればなぁと思って記事を書いています。

問題その1 肥大するseed.rb問題

てにみゅさーちは検索機能を提供するサービスなので、元となるデータがたくさんないと意味がない。で、今のところ3環境(本番・テスト用*1・ローカル上)あるのでそれぞれでデータを同じように持っていたい。初期データを用意するのはseed.rbを使うと便利だと学んだし、rails db:seed でデータをざくっと入れてくれるのはとても便利なのでそこに追記しているのだが、結構無理が出始めていて困っている。

問題だと感じているのは以下の3つ

  • 単純に行数が増える
    • データが増えれば行数が増える。なのでだんだんスクロールがつらくなってくる
  • カテゴリごとに分けるのがめんどくさいが分けないと読みづらい
    • キャラクターとか、公演情報とか、まぁざっくりいうとテーブルごとに分類したほうが読みやすいのはわかるんだけど結構めんどくさい
  • いちいち適用済をコメントアウトしないといけない
    • rails db:migrate は適用済のものを避けてくれるけれど、 rails db:seed にはそんな便利機能はない
    • だから適用済は削除なりコメントアウトなりで避けておかないと二重データができてしまう
    • これが結構めんどくさい(のでカテゴリごとに分ける手間がさらにかかる)

seed.rbに追加するのは初期データのみにしろというのはわかるけれど、3環境にデータをサクサク追加していくには今のところこれ以上の案が出てこない。やりたいのは以下2つだから、それになんかちょうどいい感じのソリューション*2があれば教えてほしい。

  • 3環境(heroku上に2つ・ローカルに1つ)それぞれにさくっと(コマンド1つくらいで)大量データを追加できる
  • 適用済やカテゴリ(テーブル)での分類が簡単にできる

問題その2 相関テーブルの作り方を間違えたような気がする

出演情報や公演情報は多対多の関係が出てくる。1人のキャストが2人のキャラクター(双子らしい)を演じることがあるし、1人のキャストは複数の公演に出ているし。なので相関テーブルを用意した。が、その作り方が雑だったような気がしてきた。

参考にしたのは以下のサイト

ruby-rails.hatenadiary.com

この方法がいいとか悪いとかではなく、この方法で作った相関テーブルに初期データを追加するとなると結構大変である。 IDで連携してるみたいなので、seed.rb でもXXX_id と指定する。これがまた結構めんどくさくて、IDを特定するのはまだしも、うっかり二重データを作ってID用の整数値が進んでしまったりしてデータを作り直さなければならないとしんどい。追加方法を変えれば改善するかもしれないが、もうちょっとデータをコントロールできるような方法はないだろうか…。

こんな感じで悩んでいるので何かアドバイスがあれば教えてほしい。

*1:heroku上にある

*2:言ってみたかった