MJHD

エモさ駆動開発

2023年振り返りと抱負

去年のやつ: mjhd.hatenablog.com 師走と言いながら今年はゆっくりした年末年始を過ごしております。 前職よりお仕事がちゃんと定時に始まって定時に終わっており、連勤も徹夜も残業もなくてすごい。 去年一昨年の抱負であった「均し」は割と達成できたかな…

2022年振り返り 学んだことと来年の抱負

去年の振り返り mjhd.hatenablog.com 早いもので一年も終わり。年々一年経つのが早くなっており、今年は3か月分ぐらいの記憶しかありませんが、振り返ってみたいと思います。 今年学んだこと 今年も、例年に引き続き 低レイヤー周り CS・数学 哲学・思想 の…

ズボラ自炊ブートキャンプ

やあお前ら!元気に過ごしているか? この記事は 一人暮らし Advent Calendar 2022 - Adventar の17日目の記事だ。他の記事もみんな面白いからぜひ見てくれ! 今日はズボラに自炊を続けるノウハウを、ブートキャンプ形式でお前らに伝授したいと思う!楽しい…

株式会社サイバーエージェントを退職しました

mjhdです。 内定者バイト・新卒で入社し、4年勤め5年目に入る株式会社サイバーエージェントを退職しました。 お世話になった方々、ありがとうございました。 どんな会社だったか? CA用語とも言われますが、独自の用語があることが度々話題になることからも…

Github Actionsのcacheをデータの永続化(?)に使う

Github Actionsでワークフローを作るとき、「どこかにデータを保存して次の実行時に参照したいな」「別のワークフローとデータを共有したいな」と思ったことはないでしょうか。 実は、普段キャッシュ用途に使っている actions/cache を使うと、制限付きでこ…

読みやすいコードって何だろう

読みやすいコードってなんでしょうね。 新卒の頃、たくさんリテイクを受けて書き直しした経験からよくよく考えはじめましたが、永遠に結論はでなそうです。 ひとまず、ここ数年考えている頭の中身を書き出したいと思います。 「コード」ってなんだ? 「読み…

2021年 振り返りと抱負

去年の振り返り mjhd.hatenablog.com 早いものでもう2021年も終わり、体感的にはまだ6月ぐらいなんですが、カレンダーはバグらないので僕がバグってるのでしょう。 振り返りたいと思います。 どんな年だったか エモさ溢れる年でした。今年も仕事でチームを移…

Rustでファミコンエミュレータを自作した話

前回、ゲームボーイエミュレータを開発してから2ヶ月ほど、今度はファミコンエミュレータを開発したのでゲームボーイとの開発の比較をしたいと思います。 ちなみに、ファミコンエミュレータの作成はこれで二回目。 スーパーマリオを動かした様子 前回の記事:…

Rustでゲームボーイエミュレータを自作した話

ここ2ヶ月ぐらいゲームボーイエミュレータを自作してました。結果として「物量も少なくエミュレータ自作入門にオススメ」と思ったので、時系列で完成までの流れをまとめつつ、エミュレータ開発は楽しいぞということ伝えたいと思います。 星のカービィをプレ…

2020年 振り返りと抱負

どんな年だったか 今年は引き籠りが合法となったことにより、プライベートが充実した年だった。 相対的に仕事の記憶があまりない。めちゃ頑張った気がするけど。 プライベートは年始から急にハマった現代思想に始まり放送大学に入学したり、UberEatsが高いの…

2020年 買ってよかったモノ

一昨年のエントリ: mjhd.hatenablog.com 気がついたら「もうそんな未来?」感のあった2020年も終わりを向かえそうな日頃になってきましたがみなさんいかがお過ごしでしょうか? 僕はと言えば家から出ず会話をするのはコンビニのレジぐらい。「レジ袋要りませ…

2020年最高のWSL環境を求めて

前回: mjhd.hatenablog.com 熱狂的なWSL信者の皆さん、お元気でしょうか。 前回WSL環境について記事を書いてから1年が経ち、WSLを取り巻く状況も様変わりしました。Windowsのアップデートもあり、手元の環境もスクラップ&ビルドを繰り返したため、開発環境…

チーム異動後のターミナル周り

半年前にチームの移動をした。プロダクトは同じだが、サーバからWebフロントへポジションチェンジした。 以前からvimを使っていたが、Go言語はlspへの過渡期があったためIntelliJのvimバインドを使用するなどCLI離れをしていた。 チームの異動後はTypeScript…

Golangメモリ周りのメモ (goroutine割り込み)

前回 mjhd.hatenablog.com 最近、面白いツイートを見つけた。 Interesting bug caused by cooperative preemption and mutex fast-path inlining in Go: https://t.co/CHeGvBVhTE— Roberto Clapis (GMT -7) ️‍ (@empijei) August 16, 2019 内容は、ゴルーチ…

Railsにsorbetインストールしてみた with LSP

Rubyの静的型チェッカー、「Sorbet」がオープンソース化された。 LSPも実装されており、これだけRubyもシェアがあるので、覇権を握れるのでは。 手元にちょうど良いRailsプロジェクトが合ったため、導入してみた。 Sorbetのインストール ここではあまり詳し…

Golangメモリ周りのメモ (mid-stack inlining編)

前回 mjhd.hatenablog.com mid-stack inliningとは mid-stack inliningとは、前回の記事でも紹介したインライン化をより積極的に行うようになる機能のことである。 前回の記事からの引用だが、 Goのコンパイラは、関数が以下の条件に当てはまるとき、関数を…

WSLのIO遅いよ問題

WSLは理論的にはLinuxカーネルを起動するオーバーヘッドがなく軽量に動作するはずなのだが、実際に動かしてみると色々ともっさりしている。 例えばnpm installなどが重たすぎて永遠に終わらなかったりエラーが出てしまったり。 この辺のもっさりは、WSLのIO…

2019年最高のWSL環境を求めて

2016年、僕はWSLに出会い感動してからというもの、「最高のWSL環境を求めて」さまよい続けました。 来る日も来る日も「Windowsは最高・・・Windowsはクソ・・・Windowsは最高・・・」と呟きながら花びらを散らし、バグのあるWindowsアップデートにも負けず、…

サウナー用語

この頃サウナにはまっており、話題のサービス「サウナイキタイ」のサウナー達によるレビューを読み漁ってたらなんとなくサウナー用語(サウナスラング)がわかってきたのでまとめる。 外気浴 人間の三大欲求の一つ。 サウニング サウナに入ること。また、サウ…

2018年買ってよかったもの

年の瀬なので2018年に購入したものの中で、買ってよかったものをまとめてみた。 1位. ミラーボール 友人との会話の中でふざけて購入したミラーボールが思いのほか生活に潤いを与えてくれている。 このミラーボールは音に反応して光る機能があり、通常は流れ…

Golangのメモリ周りのメモ

以前、このレポジトリがバズっていた。 GitHub - intel-go/bytebuf: Example of how CL133375 can be utilized to mitigate Go escape analysis limitations. bytebufが小さなサイズのバッファ用にあらかじめ用意しているbootstrapというバイト列が、エスケ…

Prometheusの長期ストレージメモ

Prometheusを使うに当たって、長期ストレージについて調査をしたのでそのメモ。 Prometheus v2 Prometheus v2では、Remote Long-Term Storageのサポートがされている。以下のストレージを選択可能。 AppOptics: write Chronix: write Cortex: read and write…

いまさらSSL/TLS証明書

今までSSL証明書をなんとなく雰囲気で使っていた感が否めないため、自信を持って解説ができるよう具体的な仕組みを調べたメモ。 X.509証明書 X.509証明書はISO/IECによって定められている証明書に関する仕様。 公開鍵証明書、属性証明書、特定証明書の三つが…

GoでSpannerを扱う際のポイント

そもそもSpannerって? SpannerはGCPが提供する高可用性のあるリレーショナルデータベース。SQL文が使え、スキーマ定義・スキーマの変更・SELECT系のクエリを実行できる。(INSERT, UPDATE, DELETEは無い) プライマリーキーを適切に設定すれば、負荷に応じて…

golangとbazelで作るいい感じなビルド環境

※Makefileに一部間違いがあったため、修正しました bazelはビルドシステムの一つで、Googleが開発し社内でも使用している。makeなどの従来のビルドシステムと比べると、簡潔な設定で幅広い言語・ビルド対象に対応していて、ビルドが必要なものはほとんどbaze…

ノートパソコンをタッチ対応に…Neonode AirBarを購入してみた

www.air.bar AirBarは、タッチ未対応のノートパソコンの画面を、タッチ対応にするデバイス。(現在はWindows10のみの対応。今後Mac対応の製品が発売されるらしい) お値段も$69.00で買え、13.3inchから15inchまでのサイズをそろえている。 最近、秋葉原で5000…

macOS SierraでJIS配列キーボードを US配列として使う方法

mjhd.hatenablog.com この記事でも書いたのだが、macOS SierraからはKarabinerが使えない。 そこで、前回はカスタムキーボードレイアウトを作成することで対処をしたのだが、この方法の難点は、「日本語入力中の配列が JISのまま」というところ。 不完全な方…

WSLをXenialにアップデートしてみた

mjhd.hatenablog.com 過去記事で紹介したBashOnWindows(WSL)環境において、UbuntuのバージョンをTrustyからXenialへアップデートしたメモ。 アップデート方法 以下のコマンドを実行するだけ。 sudo do-release-upgrade その後、いくつかのアプリケーションに…

オブジェクト指向とは

新人プログラマに知っておいてもらいたい人類がオブジェクト指向を手に入れるまでの軌跡 - Qiitaなどを参考にまとめたメモ。 オブジェクト指向プログラミングとは,オブジェクト同士の相互作用として,システムの振る舞いを捉える考え方である.所謂手続き型…

FuelPHPのemailで日本語メールを送る際に気を付けること

マルチバイト環境でFuelPHPのemailを使う際、いくつか気を付けなければいけない問題がある。 今回想定している環境は、以下。 FuelPHP 1.8 UTF8でメールを送りたい HTMLメールを送りたい 自動改行処理を止める(あるいは、改善する) FuelPHPのemailパッケージ…