1月振り返り

kenkoooo.hatenablog.com

2月に向けて

すでに1週間経ってますが……

反省

無為に仕事をしすぎている。働きすぎているというよりも、長時間働いた割に結果を見てみると自明なことしかやっていない、ということが多いので、もう少し労働時間は減らせそう。例えば、実装する前に方針を確認するとか(社会人として)基本的なことをやるだけで十分改善すると思う。初手実装から入って中盤で計算量がバグってて爆発、みたいなのが多すぎる……

AtCoder

問題を解く時間をちゃんと作る。空いた時間にやろうと思っても絶対に空かない。

やること
  • 黄difficultyが23問あるので、まずはそれを解く。
  • 橙difficultyは……

英語

CNNニュースリスニングは、教材としては良い感じもするけど、いかんせんニュースなのに内容が古かったりニュース感がなかったりしてあまりに興味が湧かない。

やること

BBCを1日1話聞く。

BBC Learning English - News Report

中国語

「口を鍛える…」が良い感じなので続ける。

やること

「口を鍛える…」を1日1課ずつやっていく。

Rust LT #8 で発表した

Rust LT #8 で発表した。

rust.connpass.com


低レイヤー寄りの発表が多かったので、tide を使って5分でバックエンドサーバーを作るという実用に特化した内容で発表した。

発表内容

use futures::executor::block_on;
use serde::Serialize;
use tide::{Request, Response};

fn main() {
    block_on(run_server()).expect("Failed");
}

async fn run_server() -> Result<(), std::io::Error> {
    let mut app = tide::new();
    // /api/user_id

    app.at("/api/:user_id")
        .get(|request: Request<_>| async move {
            let user_id = request.param::<i64>("user_id").unwrap();
            let username = get_username(user_id);
            let user_info = UserInfo { username };
            let response = Response::new(200).body_json(&user_info).unwrap();
            response
        });

    app.listen("0.0.0.0:8081").await?;
    Ok(())
}

#[derive(Serialize)]
struct UserInfo {
    username: String,
}

fn get_username(user_id: i64) -> String {
    match user_id {
        1 => "kenkoooo",
        2 => "rust",
        _ => "unknown",
    }
    .to_string()
}

良くなかったこと

つい勢いで Python の悪口を言ったが、特にこういったコミュニティ活動の場で悪口を言うのはコミュニティ全体に悪影響を与えかねないので最悪で、本当に良くなかった。僕の場合は普段から意識して気をつけないとまた同じことをやってしまう気がする。反省する。