ゆるふわ技術日誌

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

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でのタスク管理がかなり慣れてきてうまく回り始めたおかげかもしれない)

研究に進捗があった #353

進捗

HTTP/2の特徴の一つに、1つのTCP接続で複数のリクエスト・レスポンスを処理すること、そしてその各ストリームの優先度が重要だということは昨日書きましたが、それを制御する方法がよくわかってないという状態だったのですが、今日はあっさりその辺が解決しました。

嬉しい。明日は実際にやってみるつもり。

雑談

今日は落ち着いてタスクを一つ一つ片付けることができてとても気分がいい。

継続していきたい。


グレイテスト・ショーマンを観ました。

とても良かった。