はぜにっき

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

でかい4Kディスプレイがめちゃくちゃ良い

f:id:hazeblog:20180913224005p:plain

リモートワークの様子です。
なんかパッと見が浪人生の机っぽい感じがしますが、ここで仕事をしています。角砂糖は辛くなってきたときに齧る用。身体に悪い。

机はIKEAの200cm*75cmの板に高さ調節のできる脚をつけたやつです。

本題のディスプレイはこれです。三週間前ぐらいに買って使っているんですが、端的に言うと最高です。
31.5inchなので、首を動かさずに大体一望できるし、文字が潰れないので普通に読める。(コンタクトをつけた状態で視力1.0~1.1)

買った時より5000円ぐらい値段が下がっていてちょっと気分が落ちた。

f:id:hazeblog:20180913224228p:plain

4Kなのでこういうことができる。
作業しているメインで使うウィンドウだけMacbookProのディスプレイに写して、他は外部ディスプレイに投げる。
近いウィンドウを見れば集中はできるし、途切れてきたら上の方を眺めて休憩としてTwitterを眺めたり溜まったslackを見たりしてやっている。

これに慣れてきたせいか、オフィスに行ってMacbookProのディスプレイだけにすると、地味にウィンドウ移動でつらく感じる様になってしまった、この点が一番のデメリットかもしれない。

入院していた

前兆。

日曜日の夕方に氷結を一本飲んで、ピリ辛きゅうりを食べて「明日仕事か〜9月だしもう入社して2ヶ月経ったのか」みたいなことを考えていた。
夜に軽くお腹を下していたけど、元々お腹はゆるくてしょっちゅう下しているので(これはこれで駄目)気にせず寝た。

朝の4時半に異常な鳩尾の痛みと、息ができなくて目が覚めた。
飛び起きようと思ったけど上半身が持ち上がらないし、そもそも力を込めて息をするのが精一杯な状態になっていた。
で、力を入れれば入れるほど痛みは増えるし、このままだと息出来なくなると思って気合いで声を出して救急に連絡。近くの病院に搬送された。

鳩尾が痛かったけども、痛みの種類はなんか覚えがあって、搬送されながら思い出すと高校の頃になった虫垂炎だった。
痛みの場所的には胃だから、胃潰瘍か何かだと思ったら急性胃腸炎だった。ついでに小腸にガスが溜まってて腸閉塞かと思われた。


というわけで月曜日から木曜日まで入院していました。今は退院して家に帰ってきています。
入院している間に平成最強の台風が来て地元が大変なことになっていたり、来週旅行に行く予定の北海道で大地震が起きていてびっくりした。

入院中に思ったことを適当に下にまとめてあります。緊急入院する際にでも思い出してください。


やることない問題

高校の時の盲腸で同じように緊急入院したときに何も持っていかなくて死ぬほど暇だったことを思い出して、救急を読んでから車が来るまでの間に、日曜日に買ったWebを支える技術Web API The Good Partsスマホの充電器を鞄に入れて持っていった。
おかげで3日半入院していたがほぼほぼ暇にならずに済んで良かった。持って行かなかったらずっとTwitterで暴れているところだった。

とはいえこれは家に居て、救急車は呼ばないといけないけど最低限動ける状態で、かつ物を持って来てくれる家族や友人がいない時にしか意味がない。
自分は東京で一人暮らしだし、親や兄弟は全員関西に居るし、東京に居る友人は全員仕事だし、彼女もいない...。彼女ほしい。つらい。

点滴してても腹は減る

仕方ないとはいえ、めちゃくちゃきつかった。
急性胃腸炎なので当たり前なんだけど、胃腸を休めるために1日以上絶食をしなければならない。1日半経てば、胃の中身がなくなってお腹があいていくのがわかる。
で、胃腸が大丈夫そうになったら流動食で少しずつ胃腸の働きを戻していくんだけど、まあ流動食なのでスープとか重湯なわけで、全然お腹は膨れないしまあつらかった。

まあ食べられるようになっても、満腹まで食べるのが結構怖くて7分目ぐらいに抑えているんだけども。

いつ退院できるかは直前にしかわからない

退院直前に「あなたは急性胃腸炎で、こういう処置をしました」っていう説明を受けるんだけど、それまで自分の身体に起きていることはふんわりとしか伝えられない。
(まあこれは病院とか医者によるんだろうけど)
3交代で看護師さんが変わっていくので毎回いつ退院できるかと、そもそも身体の状態って初期はどうなっていて今どんな感じなのかを聞き続けていたんだけど、これがまあ毎回全然違ってかなり困惑した。
他は良いとしてこれだけはなんとかしてほしかった...つらみ...

家の鍵を閉めよう

鍵、空いてました。
1Fエントランスに入る前の扉がオートロックなので何とかなった。アパートとか一戸建てとかだったら大変なことになってそう。

眼鏡を持っていきましょう

普段はコンタクトで、外したらすぐベッドに入る生活をしていたせいか、救急車を呼んだときに眼鏡がどこにあるか分からなくて周りが見えない状態で搬送された。
右目がPWR -3.5で、一応何があるかぐらいはわかる程度には見えたので何とかなった。本は頑張って読んだ。

病院食

看護師さんが うちのご飯はあんまり評判が良くない と言っていたけど普通に美味しかった。
唯一、流動食のときに出てきた既製品の濃厚流動食だけめちゃくちゃきつい味がして飲むのが大変だった。
ディストピアの世界観の漫画でコレ飲むだけでOK、とか、ブロックみたいなご飯とかが出てくるけど、飲み物がこれだったら最悪だなーとか思った。
少し前に話題になった完全食COMPとか、BASE PASTAとかも試しに買ったけど口に合わなかったし、そもそも自分がこういうの苦手なだけかもしれん。

痩せると思ったら痩せなかった

全然変化無し。5kgぐらい減ってくれても構わないんだけども。
まあ全く動かなかったし冷静に考えると痩せる要素はそんなに無い。筋肉も少ないし。


体力はこれから戻していきますが、ひとまず退院して家でご飯作ってPC弄れる程度には回復しました。心配してくださった方ありがとうございました。

Reactの雰囲気はわかってきたけどサクッと画面作れるっていうレベルになるまでは結構時間かかりそう

hazediary.hateblo.jp

7月末にパンダの本でReactをちょっとやったんだけど、完全に記憶から消し飛んでいたからもう一回やりました。
最後はそれのメモが書いてあります。参考になれば。

タイトルの話

とりあえずイメージしている画面をサクッと作れるようになるまではひたすら演習っぽい感じでUIを作り続けるしかなさそう semantic-ui-reactしか使ってないけど、それっぽい感じの画面になるしひとまず慣れるまではこれで良いか感

ひとまずまだ本読みながら演習やるしかしてないから、自分で適当にAPIとUI考えて作ってみよう


React.Component

  • 表示要素の単位。UIとロジックをまとめて定義してる

Props

State

  • コンポーネントにおける状態をあらすための変数
  • constractorで初期値をセットする

ライフサイクル

  • Componentが
    • Mountされたら
    • Unmountされたら
    • Propsを受け取ったら
    • Updateされたら
    • など
  • を条件にして実行されるメソッド群を使って、ライフサイクルに沿った処理を行うことで画面を描画したり変更したりする

shouldComponentUpdate(nextProps, nextState)

  • 基本的に, propsやstateが変更されたらComponentは再レンダリングされるが、しなくても良い場合があったりする
  • shouldComponentUpdateはprops, stateが変更されたら呼ばれて、trueを返却したらレンダリングして、falseを返すと何もしないように処理を分けることができる
  • this.props.foo !== nextProps.foo みたいな条件でやっていく

  • npm init -ypackage.json が生成される
    • package.jsonscripts が便利

npmでとってくるものたち

$ npm i react@16.2.0 react-dom@16.2.0
$ npm i react-router@4.2.0 react-router-dom@4.2.2
$ npm i semantic-ui-react@0.78.3
$ npm i axios@0.18.0
$ npm i -D @types/react@16.0.40 @types/react-dom@16.0.4
$ npm i -D @types/react-router@4.0.22 @types/react-router-dom@4.2.4
$ npm i -D typescript@2.7.2 ts-loader@4.0.1
$ npm i -D webpack@4.1.1 webpack-cli@2.0.10 webpack-dev-server@3.1.0
$ npm i -D tslint@5.9.1
$ npm i tslint-config-typings@0.3.1
  • react-router: routing機能のパッケージ
  • semantic-ui-react: UIコンポーネントのパッケージ
  • axios: httpクライアント

使うAPI Server

  • https://us-central1-haze-development.cloudfunctions.net/v1

Endpoint

  • /channels/:cname/messages
    • GET: メッセージ一覧の取得
    • POST: メッセージ送信

ディレクトリ構成

.
├── dist
│   ├── img
│   │   └── avatar.png
│   ├── index.html
│   └── js
├── package-lock.json
├── package.json
├── src
│   ├── Routes.tsx
│   ├── client.ts
│   ├── components
│   │   ├── ChannelList.tsx
│   │   ├── MessageFeed.tsx
│   │   ├── MessageForm.tsx
│   │   └── index.ts
│   └── containers
│       ├── Channel.tsx
│       └── index.ts
├── tsconfig.json
└── webpack.config.js

+ node_modules
  • dist/ が実際にブラウジングする際に使われるところ

    • dist/js/ にbuildされたjsが吐かれる
  • src/components がcomponentsで

  • src/containers がcomponentsを束ねた上位のcomponentでロジックを定義する部分

使ってないslackのchannelを一気にarchiveしてくれるCloud Functionsツール作った

github.com

α版。

中身としてはNode.jsでひたすらSlackのAPIをぶっ叩く。以上。
channelリストを取ってきて、対象になるchannelを最後に投稿されたメッセージとかから抜き出して、そのchannelに対して「使ってないから消すやで」っていうメッセージを送って、アーカイブするっていう流れ。

今後対応したいこととしては

  • Google Spreadsheetに「このチャンネルはあんまり動かないけど消すとまずいリスト」(=ignore list) を用意できるようにする
  • エラーとかログ周りをもうちょっと真面目に作る
  • OSSライセンスつける(?)
  • CI回せるのかなこれ、テストとか用意したい
  • cron処理とかまともに書いてサービスっぽくしてみる?とか

こんな感じ。

ちゃんとした使い方はあとでまとめてREADME.mdに載せる予定。

2.5年後の25歳を見据えた基礎能力の向上を考えたい

はぜです。

20歳で就職して、社会人3年目、22歳のはぜです。
エンジニアの世界では「わかもの」と言える状態だと思っています。多分。知らんけど。

現職に入社してから思っているのは、自分の基盤となるようなものが無いなあということ。
(一応これまでやっていた)Back-Endで何か強いものを持っているわけではないし、Front-Endにも興味が出てきてはいるし、色々やりたいことはある。
持っているのは、資格試験で身につけられるレベル感の基礎知識と、短いエンジニア経験ぐらい。
興味や関心でずっと生きていけるわけではない(なくなったら終わりだとは思うけど)し、自分としてもふわふわした状態で居続けるのはつらいので、ちゃんと数年後を見据えた勉強のやり方をしていかないといけないタイミングなのかなあ と思って、この文章を書いています。

基礎能力って何

所謂CSと、数学と、英語になるのかなあ と。
コンピュータサイエンスは高校〜専門学校でやったとはいえ、基本情報+α程度のことしかやってないし大学や大学院の情報科学を専攻してきた人達とは大きく差が開いている。
あと数学、AtCoder等の競技プログラミングをやるとよくわかるんだけど、情報科学/数学の大1〜2年知識が必須で解説がされていて、その一番下のところまで行けていないので結構焦る。
というかそもそも高校の数学もII/Bまでしかやってなくて、III/Cやってない。よくこの界隈で生きていけてるなってよくおもう。
英語は今も絶賛困っていて、今月からDUO3.0を毎日読むのはやってるんだけど明らかに頭に入ってないし、ちゃんと考えてやらないといけないなあと。

Software Engineerとして

あと、上に挙げたこととは別に、ソフトウェアエンジニアとして0 -> 1程度の小規模なプロダクトは作れるようになりたいというのがあって。
最低限++ ぐらいのInfrastrcture, Back-End, Front-End, 他諸々の技術を得た状態にはなっておきたいと思っていたりする。
具体的には、各分野の流行り廃りがある程度肌で感じられるぐらい。
今はDockerとかk8sのあたりが全然わからなかったり、Front-Endはまだまだ謎が多いし、Back-Endもふんわりとしかわかってない。
Web以外となると、関数型はさっぱりだし組み込み方面とかHPCとかはもう。何それっていう用語が飛び交っている。つらい。

とまあ、後半は置いといて良いにしろ、自分が住んでいる世界の一回りぐらいは理解できるようになりたい。 というのがふわっとした目標。

2.5年

今2018年8月末で、25になるのが2020年の12月。@27ヶ月。
具体的にどうブレイクダウンしていくかはこれからだけど、とりあえず期日だけはしっかり頭に置いて動いていきたいと思う

がんばろう。


直近やること/必要になること

Front-End

Back-End

  • Ruby (on Rails), REST API
    • API Serverをサクッと作れるようになる, Performanceについて考えられること
  • Go (他Rustとか?)
    • Railsでどうにもできない速度が必要な部分や、型が必要になるものを作るときに別の選択肢を入れられること
  • Secure Programming

Infrastrcture

  • OSまわり
  • Search Enginesについて(Infraではない気がするな)
  • Container

全体的に、一つの技術に特化するというよりも、その場その場で適切な判断が取れるように正しくある程度深みのある知識を広く持てるようになりたい。
というかそうしないと自分の本当の意味での興味とか関心がわからん。


現状頭にあることはこんな感じ。
3ヶ月単位?ぐらいで色々目標決めて、物を作っていったり行動したりっていうのを続けていくのが良いのかなあと考えている。 これからは現状頭にあるWebサービス群をさっと作れるようになるための、Webサービス開発における基礎を身につけていく予定。

同時に、英語とか数学に手を出したいんだけど、時間を作るのって難しい。効率良く学んでいきたいと思う。また考える。

使ったことのない技術を身につけるための事前準備としての資格取得は結構良いような気がする

前段

転職をしたり、転職をしたりすると思うことなんですが、自分の頭に入っている知識の半分以上って情報処理技術者試験からなんですよね。
高校〜専門学校が資格取得に力を入れているところだったこともあって、17〜20歳の間に

を取っていて、それがかなり業務で役立っている。

IPAが運営しているこれらの国家試験はあくまで能力認定試験の一つとして存在していて、
士業のように持っていないと "仕事ができない" というわけではない。
今まで自分が働いてきた企業でも、これらの資格を持っておらずエース級の人がいたり、逆に大量に持っていても仕事が全然できない人がいたりもした。

ただまあ、当たり前だけど取って損するようなモノではないし、”何を勉強すれば良いのかわからない” 情報系の学生や、SIerに入った社会人なりたての人には結構おすすめできるんじゃないかなあと思って、この記事を書いている。

本題

自分は20でユーザ系SIer企業に入り、転職をしてアドテク系Web企業に入り、更に転職してWeb系スタートアップ企業で働き始めたところ。

最初に入った会社ではコードは全く書くことがなく、所謂下請け、パートナ企業の工数管理や、開発する(≒してもらう)Webサービスの要件定義を行なっていた。
二社目では、Perlをメインに使って広告配信管理を行うWebサービスの機能追加をしたり、ツールを作ったり、Node.jsでLINEチャットボットを作ったりした。
現職ではRuby on RailsでできているWebサービスを動かしたり、SaaSの監視サービスを導入したりしている。

どの環境においても「触ったことのない技術」や「そもそも聞いたことがないツール」が当然のように存在していて、それらを即座に使いこなす必要がある。
その際に、前述の資格で得た知識が相当役に立っている。

例えば、
工数管理での基本的な考え方や、要件定義で定義すべき内容、実施すること、
及びそのあとのフォータフォールで必要になる各工程の知識、
Webサービスにおける基本的なセキュリティの考え方や用語に関する知識・理解、
DB設計における基本的なキー制約の設計、正規化、 などなど。

それ以外にも、感じることがないレベルで慣れている言葉の表現、用語についても「資格取得の際に調べたことが前提知識となっている」モノは無限にあるかと思う。
もちろんその事前知識がなくても理解はできるだろうが、おそらく自分が学生の頃にこれらの学習をしていなかったら今と同じ水準で仕事はできていないだろう。
そういう意味で、自分はこれらの資格を取っていてよかったと思っている。

言いたいこと

最近はあんまり聞かないけど、少し前にWeb界隈で 資格取ってても意味ないという話が持ち上がった記憶がある。
それらを鵜呑みにして、適当にDIsったり頑張って最近流行りの技術を学ぼうとする人が、表に出てこないから見えないだけで、世の中には結構な数いるんじゃないかなと思っている。
そういうのはあんまり良くないような気がしていて、流行りだからといって学んで本当に自分の糧になるかと言われるとそうでもないだろうし、逆に枯れているモノから学ぶことも沢山あると思う。
それに、情報処理技術者試験無駄に範囲が広く、業務だけでは知りようがなさそうな知識を得ることができたり、別分野の物事を知れたりもする機会になるんじゃないかなと考えている。


そんなわけで、何をすれば良いのかわからないというレベル感の学生や、新卒〜数年目ぐらいの見習い(?)エンジニアの人たちは資格を取っ掛かりにしてみるのも良いんじゃない?という話でした。
おわり。

日記

8月の半分が終わったけどやろうと思っていることの1割も出来ていなくてかなり萎えている。
今日はかなりマシになってきたけど、暫くずっと頭が痛かったり霧がかかったような状態になっていて、完全に夏風邪だったような気がする。
体調を治そうと仕事以外の時間ゆっくり休んでいたら10日ぐらい一瞬で過ぎてしまってやっちまった...という状態。やばい。
8月後半はプライベートで色々用事があって、それはそれで時間が取れなくて結局何も出来ずに8月が終わりそう。
どうしようかなあと悩んでいるけど、割とどうしようもない感があって、ひとまず元気でやっていくことを第一にしていくぐらいの気持ちで行こうと思っている。


rijfes.jp

フェスというイベントに人生で初めて行った。
9mmとかNICOとかずっと生で演奏を聴きたかった人たちが居て、感動したしめちゃくちゃ良かったんだけど、「座りたい」と「雰囲気がつらい」のほうが大きくて、割ともう行きたくねえな...って思った。
半年前ぐらいに米津玄師の武道館ライブに着席で行って最高だった覚えがある。座ってちゃんと聴けるライブに行きたい。全体の一体感とか盛り上がりは数曲で良いんだ。


結婚式で踊ったり歌ったりすることになったから必死に練習しているんだけど、運動不足を実感しまくっている。
学生の頃(2年前)は踊ったり声を出しまくる部活動で暴れてても全然元気だったし、24時間カラオケで耐久していても普通に生活できていたのだが...2年でこうなるのか...

近所にプールがあることに気付いて、定期的に通おうか悩み中。あと自転車にも最近乗ってないしやっていきたい。