ゆるふわ技術日誌

エンジニア見習いの悪戦苦闘日記

毎日ブログを書き続けて1年が経った

本ブログ、「ゆるふわ技術日誌」は本日で開設1年のお誕生日です。

そして、毎日1記事以上書き続けることに成功しました。

本当に中身のない記事の日も多くありますが、Twitter以外に1年以上継続したものがないのでこれは私史でいけば快挙です。今日はせっかくも節目なのでざっくり1年を振り返ってみようと思います。

5月

yurufuwa-tech.hatenablog.com

全ての元凶。

技術的には、ひたすらReactを中心にJavaScript関連に触っていたらしい。

(というのも、エンジニアバイトを始めるにあたってReactを触っているらしいということだけ聞いていたので予習のつもりでやってたような気がする)

この頃は一次情報に当たるということを避けてたのが印象的。公式ドキュメントスルーしてQiitaの記事とか探しまくってた記憶。

6月

基本はバイト入社に向けてJSをやってたっぽい。

途中1週間くらいGoをやっていた週があった。1dayインターンで使うから始めて、インターン終了と同時にやめた記憶。この時は時間的余裕もあったしちゃんとやっておけばよかったのに。

この頃はDockerとかもまともに使えてなくて、多少成長を感じた。

7月

講義の課題でJava書いたりRailsをやったりはたまたフロントエンドをやったり忙しそう。

フロントエンドばっかりやるんだと思って入社したらRailsのタスクをやることになって結構焦って勉強してたような気がする。

8月

とにかくReactNativeな月。サマーインターン + それの事前課題で。

サマーインターン

yurufuwa-tech.hatenablog.com

こんな記事を書いてしまうくらい(記事自体は9月の記事)自分の技術的・メンタル的な弱さを思い知ることができたし、明確に技術志向のエンジニアとして生きていこうと決断した大きなイベントだった。

今でも気持ちが落ち込むとインターンの頃を思い出したりするし、一生忘れない記憶ってこういうのなんだろうと思った。

9月

インターンの余波で設計について学んだりしているっぽい。設計を具現化するのは結局コーディング力がないとダメだし先にその辺の力をがっつり時間割いて鍛えるべきだったなと思う。

そして月の後半は研究室での活動が本格化して、LDAPに触ったり何やらよくわからん細かいタスクをやっていた。勉強になったものもあったし時間だけ浪費してしまったものもあったような。

10月

ここまでで最もダメダメ感のある月。

研究室で降ってきたタスクとバイト先でやったことしか書いてなくて能動的に学んだことマジでなさそう。

11月

特筆することもなくバイトと研究室タスクをやっているように見える。

yurufuwa-tech.hatenablog.com

Node学園祭に行って、トップを走る技術者の高い壁を感じた。「来年行ったらもうすこし理解できるようになっていよう」とか考えてた。今そうなれているのだろうか。

12月

自作インタプリタを書くという講義があってそれにひたすら殺されてた。(ちなみに構文解析部分までが12月締め切りだった気がする)

後日談ですがインタプリタを作る講義はS評価でした。

そしてでんぱ組のライブに行った。号泣したのをよく覚えてる。

yurufuwa-tech.hatenablog.com

1月

試験と課題で手一杯だった。2年で落とした単位の分なので仕方ない。

この時、ある程度真面目に試験勉強しておいたおかげで4年となった今、一切講義がないのは良かった。

そしてインタプリタも完成した。無事に提出できてよかったよかった。

インタプリタを作ることで、コンパイラの動作原理がわかったのは良かったと思う。Webなんて高いレイヤーで生きていくなら必要ないかと思っていたけどそんなことはなかったと思う。

あと、ここまで複雑にロジックが絡むコードを一から書く経験ができたのも良かった。問題の切り分けとかは鍛えられた。

2月

1月末に行ったElmハンズオンの影響で前半はずっとElmやっていた。ずっとやっていたが成果は出せずに気がついたらやめてた。今もそうだけど一回やってみると決めたら一回やってみないとダメだと思った。途中でやめると、使った時間が完全に無駄になってしまう。

後半は研究室タスク関連でKubernetesをやっていた。インフラ面白いなって思った。

あと、バイトを辞めた。無職生活の突入。

https://yurufuwa-tech.hatenablog.com/entry/2018/02/27/234003:cute

その時の記事。辞めてよかったか、現時点ではまだなんとも言えない。

3月

研究室の数名を相手にk8sハンズオンをした。

yurufuwa-tech.hatenablog.com

この時書いたQiita記事が人生初のはてブ100users超えを果たした。嬉しかった。

qiita.com

今見てもこの時のスライドはわかりやすいし、人に教えるつもりで学ぶことで自分の理解も深まると思った。

あとこの辺から研究の勉強を始めたっぽい。

4月

研究の勉強をしてた。あと月の3分の1くらい病んでてまともな記事がない。

いよいよ4年になってしまったという焦りだろうか。

割としょうもない一ヶ月を送ってしまった感じがする。(その証拠に何やってたか先月なのにあんまり思い出せない)

5月

………は、いいか。まだ途中だし。

やってみて結局どうだったのか。

こうやって振り返ることができたしよかったのか?と思う。

ただ1日数十分ではあるものの時間を持っていかれるのは事実だしただの日記をインターネットに垂れ流すことになるので万人にはお勧めできない気がする。(とはいえ、プライベートな場所に日記やっても3日ももたないと思う)

そしてこうやって振り返ってみると1年って意外と長いと思った。去年の5月にやってたことなんて全く思い出せないほど遠い過去のことのような気がする。その長い時間を活かすも殺すも自分次第だということも分かった。

この1年、活かしきれたかと言われれば答えはNoだと思う。こうやって振り返り記事を書いていてもどこか他人事な感じがして、あの時は頑張ったって心から言えるような出来事は数少ない。

学生生活、あと1年を切った。卒業した時にあの時は頑張ったと言える経験をたくさん積みたい。

今後はどうする

どうしようかなと迷ったのですが、特に答えは出ず。

とりあえずブログは続けようかなと。ゆったりまったり。

雑談

エモい感じの記事を書きたかったんだけど無理だったw

Go書いた #358

Go書いてた

なんでGo書き始めたんだから忘れてしまったが諦めるのは癪に触るので今日もGo書いた。

JSONを返すAPIサーバーを書いていて、Appという名前の構造体を作ってそこでアプリケーショングローバルな値(DBへのコネクションとか)を保持しておいてRepositryから使うみたいなコードを書きたかったがどうしても汚くなってしまう。参った。

設計って難しいと思った。設計きにする前にまず終わらせろと思ったところでタイムアップしてしまった。続きはまた明日。

後輩の諸々を見てた

研究室に新たに配属された後輩にとある事情からVMを渡した。

CentOS7を入れたがインストールの手順でミスをしたようでインターネットに出られず。SSHも出来ず。nmtuiというコマンドがあることを知った。

TUIで操作できるのでnmcliのオプション全部忘れても大丈夫。素敵。

雑談

なんやかんやしてたら帰宅が遅くなってしまった。

生活リズム補正のために帰ったらさっさと寝よう。

ダメ人間デーでしたごめんなさい #358

ダメ人間デーでした

6時に起きて4時間二度寝して、起きてから2時間くらい勉強した後3度寝してしまった。

どうにもやる気が出なくてダラダラとiPadで記事読んだりしてた。

休みの日に家にいるとどうしてもだらけてしまうので改善策を早く見つけたい。(家出ればいいのか?そういう問題でもない気がするけど。)

雑談

明日は朝から学校行ってちゃんとやります……

本を読んでた #357

今日は本を読んで勉強してました。なのでコード的な進捗がないです。

本を読んだ

研究室で買ってもらったハイパフォーマンスブラウザネットワーキングを読んでいた。

どうしても自分には必要のない内容っぽくても1ページ目からきっちり読みたくなってしまう。

TCPUDPの仕様の話とか、どっかしらで読んだ話をもういっかい読んでる感じだった。

本を読むときに声を出して読むといいと聞いて数時間ひたすらオライリー本を一人で朗読してた。奇妙。

障害対応した

研究室でいろいろやってるサービスが落ちてるんやが!ってメールが出先でボスからきた。iPadしか持ち合わせてなかったのでタリーズでとりあえずの障害対応をした。インフラエンジニア的な人々はこういうことしたりするのだろうか。

KubernetesのNodeが死んでて、kubeletのstatusを見たら死んでて、リロードしたけどできず、Dockerも死んでてrestartできなくて…。

手っ取り早く復旧したかったのでマシンごとリブート…。とりあえずそれで復旧したもののあとから原因調べようとしたら詰んだ。

というのも、serviceのログはjournalctlコマンドを使うと確認できるんだけど、設定しておかないとリブートしたタイミングでログが消えてしまうらしい。というわけで障害起こしていたタイミングのログは綺麗さっぱり無くなってしまった。つらい。

次障害起こした時はログを保存してからリブートするようにせねばなと思った。

雑談

ゆるふわ

あまり進捗を出せず #356

午前中から予定が立て込んだこともあり、あまり進捗を出せずに、なんとなくだらっとした空気の日になってしまいました。

HTTP-WGのメーリスの過去ログを漁る

HTTPの仕様はIETFのhttp-wgというところで議論されています。

その議論などの様子をみるのにはメーリスの過去ログを漁るのが良いのではないかと思い調べてみたらやっぱり公開されていた。

ietf-http-wg@w3.org Mail Archives

ちゃんと1997年の分から遡れてすごい。ただ、最近のに限ったとしても数が多すぎる…。

ちゃんとあたりをつけて読んでいかないとただの時間の無駄になりそう。

SA

SAやってました。

今日は基礎的なJavaScriptを教えていた。毎週言っているような気がするが、頭で理解していることでも人に教えるとなるととても辛い。

たとえば

let checkBox = document.getElementById('check-box');

的なコードがあって、(実際はちょっと違うけど)checkBox.checkedは呼び出すとそのタイミングでのチェックボックスの値が取れるのに

let check = docuemt.getElementById('check-box').checked;

的なコードを書くと何回checkを見に言っても値が変わらない(取得した時点での値で固定されてしまう)のはなぜ?というようなことを聞かれた。

checkBoxはDOM要素への参照でしかないのだということをうまく伝えることができなかった。僕に質問してくれた学生に申し訳ない…。

研究室に後輩がいっぱい入ってきた

本当は後輩が入ってくるのはもう少し先なのですが、うちの学校の制度で成績の良い人は院進することを条件に半年早く学部を卒業できるという制度があって、その対象の人たちが今日から入ってきました。

てきとうやってるとあっという間に抜かれてしまいそうなので気持ちを引き締めてやっていきたい。

雑談

明日は土曜日なので、1日家で今日の進捗遅れ分含めて進めていこうと思います。

JSON API with Golang #355

今日は午後がSAで潰れたので進捗薄め

Goのお勉強

昨日から再開したGoの勉強、簡単なToDoのAPIをつくるところから始めてみました。

超絶わーきんぐいんぷろぐれす!って感じですが以下リポジトリ

github.com

ずっとレシーバーやらメソッドやらの使い方で悩んでいたのですが、ちょっとわかった気がした。(突然閃いた)

package model

import (
    "encoding/json"
    "net/http"
    "time"
)

// Todo - todo model
type Todo struct {
    ID     int       `json:"id"`
    Title  string    `json:"title"`
    Date   time.Time `json:"date"`
    IsDone bool      `json:"isDone"`
}

// Todos - slice of Todo
type Todos []Todo

func (t *Todo) ServeHTTP(w http.ResponseWriter, r *http.Request) {
    w.WriteHeader(http.StatusOK)
    json.NewEncoder(w).Encode(t)
}

こんなコードを書いてやれば、TodoのインスタンスをHandlerとして扱ってあげられるのではないかと。

とりあえずこれで実装進めてみてから評価したい。

ハイパフォーマンスブラウザネットワーキング

こっちは研究の話

ハイパフォーマンス ブラウザネットワーキング ―ネットワークアプリケーションのためのパフォーマンス最適化

ハイパフォーマンス ブラウザネットワーキング ―ネットワークアプリケーションのためのパフォーマンス最適化

ちょっと古いけど読む。

雑談

明日も半日SAで潰れるなぁ。つらぽよ。

あと、人に教えるのがキツすぎる。頭の中では理解してるけどキツい。

Goより先に日本Goをやった方がいい気がしてきた(激寒ギャグ)

研究室サイトリリース! && 研究爆死 #354

研究室サイトリリース!

長かった…………!

ついに、やっと、研究室のサイトをリニューアルしてリリースしました…。

とりあえずこちら。

www.t-lab.cs.teu.ac.jp

まぁあんまり自慢できるような代物ではなくなってしまいました。

研究室に配属された頃から、リニューアル計画は立ち上がり、最初はWordPressのカスタム投稿タイプ + テンプレート自作でやろうとしてたのですが、WPは将来メンテナンスする人がいなくなって放置された時に脆弱性突かれたりすると怖いとかで棄却。

ならば作ったるわあ!とRailsを使ってちまちまと自作CMSを作ったりもしました。

こんな感じで割とちゃんとした見た目になってて、管理画面から記事書いて内容書き換えて…とかもできるレベルまでは行ってたんですが、よくよく考えてみるとそんな機能は求められていなかったことがわかったので、ボツ。

で、どうするかなぁなんて思っていた時にVuePressが流行り始めたので、(確かQiitaの記事を見かけたんだった気がする)使ってみるかぁと思って軽く試したら思った以上に良くて一晩で自作CMS時代のHTMLをmdに書き直し、諸々の調整の末本日無事リリースされました。

よかった。

リリースの様子▼

f:id:uutarou:20180509223543j:plain

わかりづらいですが、巨大エンターキーでBINDのリロードをしている様子です。

TTLを短くしておく作戦も功を奏して浸透待ち的な事態も起こらずいい感じでした。(実は証明書が死んだりというトラブルはあったけどまぁ)

研究爆死

研究室サイトはうまくいってひと段落ですが、研究の方は爆死してしまいました。

昨日の記事にも書いたように、優先度制御の方法がわかったので、優先度の制御が必要そうなサイトを作ってみて、いろいろ実験してたら、少し思い違いをしていたようで、考えていたことは白紙に戻ってしまいました。

まぁ一進一退すること自体は何の問題もないと思っているのですが、そのサイクルを速めていかないと何もできずに終わってしまいそう。

明日からはその辺も意識しつついろんなことを進めていく。

雑談

進捗プラマイゼロって感じの記事になってしまった。

でも着実に前進している実感はあるので、この調子で進んでいこうと思う。(Trelloでのタスク管理がかなり慣れてきてうまく回り始めたおかげかもしれない)