はぜにっき

日記です。(毎日更新ではない)

雑記: 一人暮らしで風邪をこじらせるとめちゃくちゃつらい

こういう時用のポカリスエット2L * 4本が2日で無くなって笑った。
今は鼻水とたまにくる腹痛以外は元気です。多分。

春風邪、思ったより長引くし結構しんどいし気をつけましょう。

技術書典6 行った

美味しかったです。


無料配布を除いで13冊書いました。正直買いすぎた。

無料配布:

  • mixi tech note #1
  • XFLAG Tech Note vol.02
  • できるビットバンク

購入:

以下で詳細+雰囲気で半分ちょっと読んだので軽く感想を書いていきます。


Hatena Tech Book

techbookfest.org

はてな有志で書かれた本。
papix さんの障害対応五訓が良かった。
はてなカウンティングが合宿で作られたということを知るなど。
Perlのコード久しぶりにみた)

FiNC TECH EDITION #1

medium.com

FiNC Technologies社有志で書かれた本。
Scrapboxの使い方が良い。
入社した人がドキュメントをメンテナンスしていく形は自分の所属企業でもやっていたりするけど、属人性を無くしていくのは確かにScrapboxのほうが良いなーと思ったり。(Qiita:Teamだと共同編集にしないと他の人が書き換えられないし)

あと食事記録のアプリ画面リニューアルも良かった。リニューアル後の画面しか見たことなかったから、こういう話があったんだなーという感想

Denobook

techbookfest.org

Deno, イラストは知っていたけど中身は全く知らなかった。
Nodeと比較したコードがちょこちょこ出てくるの良い書き方だなーと思った。
素のDenoでHTTP/1.1サーバを作る っていう話があったりメンテナンスとか実装とかの話が出てきて、これから作られていくんだなあという雰囲気が伝わってきて面白かった。
Productionに使える日はいつになるんだろうか

GatsbyJS Guidebook / NETLIFY RECIPES 30

techbookfest.org

薄めの商業誌か???という雰囲気の本。とても良かった。
Netlifyは雑に公式ドキュメント読んでGitHubに繋げてとりあえず運用しているだけだったのもあって、知らない機能が結構出てきて驚いた。
__redirectの使い方とJSONサーバとして使うやつが参考になる。

Gatsby、聞いたことはあるけど使ったことはなかったので https://hazesoft.work あたりを読んで実装してみようと思う

Practical TypeScript

techbookfest.org

ビットバンク社の本。
これから読む。
Nest.jsの話が気になる

Applloドハマリ事件簿

techbookfest.org

これから読む。
前回のServer側に引き続きClient側の話っぽい。
Apolloまだ全然触れていないんだよなあ

DynamoDB はじめる前に読む本

techbookfest.org

DynamoDBのテーブル設計について。

使って慣れるしかないんだろうな〜〜〜難しい.......

Google App Engine Webアプリ開発入門

techbookfest.org

絵がかわいい。
GAEからReact返せるのかっていうのがまず驚きだった。
GAE便利だな〜〜〜APIサーバ立ててみよう

pospomeのサーバサイドアーキテクチャ2

techbookfest.org

これから読む。
1もまだ読んでいない.........!

コンテナ時代のWebサービスの作り方

techbookfest.org

まだ読んでいない。
技術スタック的に多分一番仕事で役に立つ本になりそう。

フリーランスを完全に理解できる本

techbookfest.org

単価のリアルな話から、「なるべきか?」から書かれている良い本だった。
税金周りはゆるめに書いてあるから参考程度に。経費の話は年末に読み直したい。

エンジニアの心を整える技術

techbookfest.org

とりあえずめくったら目次が強い。
最初の方の話、似たような経験した人が読んだらフラッシュバックするんじゃないだろうか...っていうレベルの(よく聞く)話が生々しく書いてあってウッてなったりした。
エンジニアリング組織論への招待に近いような内容があったり、マインドフルネスあたりの話は参考になりそう。瞑想。


10,000人超え!すごい。
11時20分ぐらいに入ったけど、最初はそこそこ空いていて快適だった。
12時手前は大変なことになっていたし13時以降は大変だっただろう...

自分が買う本がそうなだけかもしれないけど、前回、前々回と比べると分厚い本が増えた印象があり、出品側の人たちすごいなーという気持ちに。
書くネタができたら書くかなー、たぶん。次回も多分行きます。

運営の方々、お疲れ様でした!楽しかったです

自動でカーテン開け太郎が最高

友人に教えてもらって買いました。最高

元々カーテンを開ける習慣自体があんまり無かったから、自動で開いてくれると外の様子が見れて良いですね。当たり前ですが

朝7時に開いて、23時に閉まるように設定しています。

稼働音がそこそこうるさいという話を聞いていましたが、はぜはうすは首都高+大通りの目の前にあって車の音がそこそこ入ってくる、それと同じぐらいの音だったから特に気になってないです。

設置は簡単だし、アプリもそこそこ使いやすいしの満足度は高いです。おすすめ

Google AssistantとかIFTTTに繋げられたらな〜〜〜〜

近況報告

はぜです。生きています。
退職エントリっぽいタイトルだけど違います。

春ですね。

ざっくり

  • 社会人になって3年が経過しました
  • 大学生になりました
  • 開業しました
  • 本業は続けてます

社会人になって3年が経過しました

何か変わるわけではありませんが、社会人になって3年が経ちました。
なぜか2回転職していて、新卒当時では想像の付かないような生活ができています。ありがたい。
(退職した会社にいた周りの方々含め)色々な人に色々なことを教わり続けた3年間だったような気がします。これからも精進します。
そろそろ会社とは別に、社外に見えるような成果を出していきたい...と思って、います。頑張っていきましょう。

大学生になりました

4月1日、放送大学に三年次編入しました。大学三年生です。
年齢的には大学ストレート卒業後の新卒2年目なんですが、これぐらいなら大学生って言ってもそんなに変ではない、はず。多分。

2年生の情報系(情報処理技術者試験を取りまくるタイプ)の専門学校を卒業して20歳で新卒として就職したんですが、学歴コンプレックスが酷いのと、
どこかのタイミングで論文を書きたくなりそうとか、大卒以上でしかそもそも選考を受け付けてくれないような会社が世の中にはあったりで、
今後何かしたくなった・方向を変えたくなったときの選択肢を広げることが目的の大学進学です。
ついでに中学レベルで止まったままの英語学習とか、簡単な統計とか、心理学みたいな普段やらないようなところもできる範囲で拾っておこうかな、と思っています。
(お金もだいぶ少ないとはいえ払っているので何か学ばないと勿体無いし卒業もできない

放送大学通信制の大学で、編入の場合は単位認定試験以外は大学に行かなくても卒業ができるので便利。
その代わりに自分で授業を見たり教科書を読まないと確実に単位を落とす。当然だが。

仕事をしながらなのでのんびり3〜4年ぐらいかけて卒業する予定。
調子に乗って最初に単位を入れすぎたので半分ぐらい落とすだろうが、できる限りでやっていこうと思う。

開業した

本業で働きながら空いた時間とか土日に他の会社で副業をしていて、青色申告したほうが有利になりそうな程度には稼ぐ見込みが立ったので開業届を出しました。
屋号は「はぜそふと」です。よろしくお願いします。
エロゲ開発会社みたいな名前だと言われたりしましたがエロゲは作りません。

ノリでドメインも取りました。 https://hazesoft.work

freee登録したり、専用口座作ったり、個人事業主名義のクレジットカードを作ったりすると、行政周りはまだまだ紙の世界なんだなというのを実感しますね。こういうのをなんとかする仕事一回やってみたい。

本業は続けています

hazediary.hateblo.jp

入社して9ヶ月。なんとか首にならずに済んでいます。
相変わらずDockerはよくわかっていないし、GraphQLやRailsも簡単なところで詰まったりで色々困っていますが、少しずつ手をつけられる範囲が広がって、いるような、いないような、という感じです。

ちなみに上のエントリに積本を減らしたいと書いてありますが、今確認すると逆に増えています。
今は "エンジニアリング組織論への招待""UIデザイン みんなで考え、カイゼンする。" を同時並行で読んでいて、明日 "失敗から学ぶRDBの正しい歩き方" が届きます。
(組織論の方は友人間で輪読会をやっていて、そのペースに合わせてゆっくり読んでいる)

本も読んだらエントリ書くようにしようかな


そんなわけで、正社員+副業+大学生 と空き時間がほぼ無い生活を暫く過ごす予定です。
GWまでに体力が底に付かないかどうかが心配です。
今年度もよろしくお願いします。

Job DescriptionとWeb履歴書+職務経歴書とHRを繋げたWebサービスを作りたい

全然まとまった文章じゃないから雰囲気を感じてくれ。

なにこれ

  • 去年の後半頃からずっと考えている「実現したいこと」の文章化をするためのエントリです。
  • 個人でさっさと作れば良いじゃん、と言われそうですが内容が内容なので法人で動かないとうまく行かなさそうだなっていう、でもとりあえずできる範囲でスモールスタートしようかなあと思っている段階。
  • その前にちゃんと構想立てないといけないんだけど

概要

実現したいこと

  • エンジニアに限らない全職種の人が適切な職業/就職先の選択ができるようになる
  • 日本の就職、転職における面倒臭い部分を減らす
  • 仕組みを取り入れる求職者、雇用主の両方に使用することで利益が生まれる正常なサービスにする
    • (くそ高いとか、そういうのは無し という話)

要件

  • 求職者側

    • Job Descriptionによる就職先選択の簡易化
    • 就職/転職活動における紙の履歴書・職務経歴書の簡易化
    • 入社時の書類手続きの簡易化
  • 雇用主側

    • 採用に用いるサービス、HRサービスの複数利用を無くす or 連携することによるHR業務量減少
    • 求職者の検索、リクルーティングコストの減少

サービス概要

  • 求職者側

    • Webフォームで入力した内容を元にポートフォリオページの作成
    • Job Descriptionの検索機能による就職先の探索、及び応募
    • 雇用主とのチャット
    • ポートフォリオページの内容、及び追加内容を元に雇用主へ渡す書類の自動作成、確認
  • 雇用主側

    • フォーム入力によるJob Descriptionの作成、公開
    • 求職者のポートフォリオページの検索、オファー送信
    • 求職者とのチャット
    • 入社処理時に必要な書類の自動作成、及びサービスを介した求職者からの情報入力依頼
    • 雇用者管理(既存HRサービスとの連携)

説明

最近ソフトウェアエンジニア向けのオファー形式の転職支援サービスが結構な数出ていて、それはそれで良いんだけど、エンジニア以外にも目を向けたいなと。
自分が知らないだけかわからないけど、Web/ベンチャー界隈で当たり前に行われている(と思う)リファラルも他業種だとそんなに聞かないし、良い仕組みだと思う反面、これが広がらないのは残念だなーと。

これに限らず、就職・転職そのものの考え方がエンジニア・デザイナーと比べて他業種はかなり違うのを感じていて、なんとか良い方向に持っていけないかなーと思っているのがこの構想のきっかけです。

「もっと転職しろ」というわけではなく、"転職したいと思っているけど書類作ったりエージェントと会ったり色々するのが面倒でできない" と思っている人たちがとりあえず登録して軽く探し始められる世界観になれば良いなと思っています。

(今回フリーランス、副業等の業務委託に関して全く考慮していない説明をしているのですが「求職者」の中に入っています。適宜読み替えてもらえると。)

で、それの実現に海外で浸透しているJob Descriptionを使ってやっていこうというやつです。

Wikipedia: 職務記述書#日本における職務記述書

愚痴、というか考えの元

これまで転職を2回しています。
1回目は「エンジニア向け転職サービス」と「大手転職エージェント」を、
2回目は「エンジニア向け転職サービス」とリファラルで活動していました。

「エンジニア向け転職サービス」のフォームで入力してプロフィールページを作ってそれを元にオファーを貰ったり、応募したりするところまで良いんですが、それとは別に面接までに履歴書/職務経歴書が必要なところが殆どなんですよね。
面接のときには必要ないよっていうケースでも入社までにとりあえず作ってもらいたい、という流れになりがち。
また、転職エージェントは大体面談前に履歴書と職務経歴書を書いてこいと言われます。

新卒就活時は履歴書が必須だし、というかいまだに手書きを要求してくるような会社もあった。

正直相当無駄なことが多かったし面倒で、なんとかしたいなーってずっと思っています。

海外だとLinkedInとかがあって楽そう。
作りたいのは国内版LinkedInか?って言われたら、まあ、そうだねっていう感じです。

(大元の発想の半分ぐらいは人聞き情報のLinkedInでの転職方法とか、Web界隈の転職事情から。)

スモールスタートを前提にした 簡易ロールマップ

α

  • Web履歴書/職務経歴書の作成と公開、編集、管理
  • Job Descriptionの作成、公開、管理

β

  • オファー検索
  • 求職者検索
  • チャット

それ以降

  • HRサービスとの連携、その他 書類作成など

なんでこのエントリ書いてるの

自分のための整理と、やりたいことがこれで人に伝わるかのテストみたいなものです。
あと色々手伝ってくれる or お金くれる人がいたら嬉しい。特に後者。

イデアをパクって作る人がいたらそれはそれで良いと思っているのでやりたい人いたらやってくれ。うまくいったら高給で雇ってほしい


今調べてみたら履歴書 / ポートフォリオの自動生成サービス結構あるんですね。まじかあ。まあ差別点はたくさんあるからいっか。

履歴書の自動生成サービスを使う | キャリアインデックス

転職に役立つ情報が満載「かんたん履歴書メーカー」を紹介|excite転職 | excite転職

プロフ(Proff) | スマート履歴書を簡単作成

RESUME(レジュメ)| 全ての人のためのWebポートフォリオサービス

国内のHR Tech業界、あんまり明るくなくてしょっちゅう話題になっているSmart HRと、自分がこれまでユーザとして使ってきたサービスぐらいしか知らない。

書いてあることの一部でも良いので実現しているサービスがあったら教えてほしいです。参考にしたい。 :bow:


割と本職で近い内容のことを話したりしているんだけど、それとはちょっと別軸の考え方をしているのでとりあえずざっくり出してみた。

未踏にこれ出そうかなって一瞬思ったんだけど、去年の採択内容と今年の公募要領みたら明らかに求められているものとは違うなってなったので一般公開です。よろしくお願いします。

雑記: Redux 難しい

仕事でたまにReactを触るんだけど、正直周りのコードを見ながら雰囲気で書いているので、たとえば1からProduction用にフロントやってくれって言われたら声が出なくなって灰になって死ぬ。
そんな遠くないうちに自分でWebサービスを作ったり、仕事でSPAもAPIもガッと作るときが来るだろう、ということで最近は色々調べたりし始めた。

今はReduxについて調べたり、Code Sandboxで眺めてみたり、自分で書いたりしているところなんだけど、自分で書く時に露骨に手が止まるのをどうにかしたい。
ボイラープレートみたいなの欲しい。のでそのうち作りたい


軽くReduxについて(だいたい)理解した概念をまとめておく してないのもある

そもそもReduxって何

ReactをView専用として使って、Storeっていう概念を中心に状態を管理する仕組み。狭義は reduxjs/redux
ReactにはHOCで値を流し込むと、それを元にReactが描画してくれるようにつくる。

ReactのStateの使いどころ

Reactにも元々Stateっていう状態管理用の仕組みがあって、それをどう使い分けるかについて。

ツイートに書いてある通りなんだけど、コンポーネントを越えるStateはReduxのStoreに入れて、コンポーネント内で完結するStateはReact Storeを使う。
実際のところ、コンポーネント1つだけで完結するような状態はそんなにない(と思う)から殆どはStoreに入ることになる

ツイートのリブセンスさんところのエントリがめっちゃわかりやすくて良い

Actionとかdispatchとか

jimbo先生のスライドを見ればなんとなくわかる 気がする。 勝手に引用してすみません

speakerdeck.com

だいたいActionがだるくなってくるから、repatchを使ったり、Typescript-fsaを使ったりするっぽい。
どうやって書くかはわからん

Functional Conponent

元々SFCって言われていたやつ。
状態を持たないコンポーネントをシュッとかけるっぽい。
状態を持たない=Functionalだし普通に関数で書けばよくね???という発想。なんか難しそうに聞こえるけどただの関数なので大したことはない

ただ、状態を持つFCがあったりHooksがあったりしてその辺は謎。だれか教えてくれ

APIからデータをどう取ってくるか とか

なんか色々やり方があって謎
耳にするのは thunk, saga, promise 辺り。今ここで困っている。
外部へのHTTP通信を含んだReactのライフサイクル周りをイメージでいないから、多分非同期処理以前にReactちゃんとわかってないんだと思うけど

それっぽいsampleはcode sandboxにあったけどまだちゃんと理解してない

最初みたときポインタか????って思ったけど違うっぽい
なんか説明が難しいけど、だいたい他言語のProcとかyieldを使ったやつと同じ。多分

TypeScript

www.typescriptlang.org

ドキュメントを読もう

js.studio-kingdom.com

日本語版のTypeScript-Handbookもある。 今知った

VS Code使っていればTypeScriptにしたほうが色んなとこに飛べるようになって便利。ただJavascriptのコードをコピーして手を抜こうとすると色んなところで型がないぞって怒られてつらくなる


とりあえずコード書いたり写経したりして概念を掴んでいきたい。
ところでみんな最初どうやって理解してるの???ドキュメント全部読んでなるほど〜〜って言って自分で一から書けるのかな。
自分は参考になるコードを丸コピしてそれを継ぎ足ししながら少しずつ概念を覚えていくほうが楽で良いんだけど、なんか色々調べても丸っと使えるのはなくてだめっぽい。自分でなんか作れという話ではある


herokuにRails Applicationをデプロイしようとしたら思ったより詰まった

趣味で勉強がてら適当に作るRails Applicationのデプロイ先、色々考えてみたけど結局今のところherokuが一番だよねーっていう結論になってしまった。
東京リージョンに結構な金が掛かるからherokuを触るのは避けていて、ようやくリージョンを諦めて 今回初めてデプロイしたんだけど思ったより詰まったのでメモがてら軽くまとめておく。

ローカル環境のバージョンは、それぞれ
ruby: ruby 2.5.3p105
rails: Rails 5.2.2
です。DBはmysql5.7。

前提として、 rails new [APP_NAME] --api -d mysql でアプリケーションを生成していることとする。まあAPIモードじゃなくても同じだと思う。

Bundlerのバージョン

remote:  !
remote:  !     You must use Bundler 2 or greater with this lockfile.
remote:  !

どうやらherokuの初期状態のBundlerは bundler-1.15.2 だそうで、ローカルでBundler2を使っていると怒られる。

jp.heroku.com

herokuにはbuildpackというのがあって、いろんな言語に対応するための仕組みが用意されている。それにBundler2への対応ができるpackがあるので、それを入れると解決する。

$ heroku buildpacks:set https://github.com/bundler/heroku-buildpack-bundler2
Buildpack set. Next release on [APP] will use https://github.com/bundler/heroku-buildpack-bundler2.
Run git push heroku master to create a new release using this buildpack.

何故かrubyがdetectedされないときがあって、その場合はrubyのbuildpackを入れると解決する

heroku buildpacks:set https://github.com/heroku/heroku-buildpack-ruby

これでとりあえずはbundle installができて、 remote: Verifying deploy... done. が出る。
特にrails自体をいじっていなければ open すればRailsの初期画面が出てきてくれるようになる。

mysql2対応

herokuのデフォルトで設定されるDBMSPostgreSQLらしい。mysqlでやりたいので変更する。
(Postgresを使う場合でもID/PW/Hostの設定は必要だろうけど)

devcenter.heroku.com

DBはAddonを使って設定を変える。
ClearDBというアドオンがあって、それを使ってMySQLを立ち上げる。

heroku addons:create cleardb:ignite

そのあとおもむろに heroku config をすると立ち上がったMySQLの設定が出てくる。

CLEARDB_DATABASE_URL:     mysql://ba1d50d1a663b5:891cd108@us-cdbr-iron-east-03.cleardb.net/heroku_4d7ba2ac4dad221?reconnect=true

ここに書かれている ba1d50d1a663b5 がユーザ名、 891cd108 がパスワード、 us-cdbr-iron-east-03.cleardb.net がホスト名、 heroku_4d7ba2ac4dad221 がDB名になる。

ので、 config/database.yml の設定をそれに合うように変更する。

[config/database.yml]

production:
  <<: *default
  database: heroku_4d7ba2ac4dad221
  username: ba1d50d1a663b5
  password: 891cd108

(わかりやすくするためにpassword直書きしてるけど、普通に環境変数使おうね。 heroku config:set '環境変数名'='891cd108' で設定できる )

あと、 DATABASE_URL という環境変数を作って、そこに mysql2://[CLEARDB_DATABASE_URLと同じ] を入れる。これでadapterがmysql2になってくれる。

そうしたら、 git push heroku master して、 heroku run rails db:migrate をして、成功したらOK。

どこか抜けてるかもしれない。もっかいやった時にまた詰まったら追記する。


終わり。
こういう環境構築みたいなので困ると本当にやる気が無くなるので「全部良い感じにデプロイできるマン」欲しい....まあ最初からサーバレスに乗っかれっていう話だけどさ...
SPAはNetlifyで良い感じにCDNとか証明書まで全部やってくれるから最高。多分Netlify + AWS Lambda + Dynamo? が一番手っ取り早いんだろうなあと思ったりした


追記