Category 開発

[Go] スライスのfor rangeループ内で新しいスライスにappendしたらバグらせた

久々にポインタ関連でバグらせてしまったので、自戒のためにメモしておく。

tl;dr

  • for rangeループのvalueは常に同じアドレス値を取る。

続きを読む

WebサーバをNginxから証明書自動更新に対応したCaddy 2に移行した

こんにちは、 @p1ass です。

最近、運用していたWebサーバをNginxからCaddyに移行しました。この記事ではCaddyの特徴や移行してみた感想などを書きたいと思います。

続きを読む

レイヤードアーキテクチャを採用した際のWebSocket実装例

こんにちは、 @p1ass です。

先日、レイヤーアーキテクチャを採用しているWeb APIサーバにWebSocketを組み込むことになったのですが、コネクションの管理やどのレイヤーで各機能を管理するか悩んだのでブログにまとめておきます。

使用している言語はGoで、Webフレームワークはechoです。

続きを読む

Docker Contextsを使ってDocker Composeをデプロイする際の注意点

こんにちは、ぷらす( @p1ass )です。

先日、 CAMPHOR- DAY 2020 というオンラインのトークイベントで、「複数サービスを運用しやすい理想のコンテナ環境をVPS上に構築する 」というタイトルで登壇しました。

登壇資料は既にアップロードしていて見られるのですが、端折っている部分の補足をしたいと思います。また、当日頂いた質問についても回答します。

続きを読む

GitHub APIを使ってブランチを新規作成する

こんにちは、( @p1ass )です。

先日、GitHub APIを使用してgitのブランチを作成しようとしたのですが、純粋にブランチを作成するAPIが生えておらず、色々調べた結果作成できることが分かってのでメモを残しておきます。

続きを読む

僕がコンピュータサイエンスに関して知らないこと

こんにちは、 @p1ass です。

最近、Twitter上で、「コンピュータサイエンスについて学びたい」みたいな話をよく見るのですが、僕もその1人です。

コンピュータサイエンスの学科に所属してないので、「独学で学ばないといけない」という気持ちはあるのですが、 「じゃあ一体何を学べばいいんだ?」 となってしまったので、自分なりに知らないことを挙げていきます。

挙げたものが本当にコンピュータサイエンスなのかどうかの確証はないです。

続きを読む

Kubernetesのイメージタグの更新を楽にするCLIツールをGoで作った

この記事は CAMPHOR- Advent Calendar 2019 の11日目の記事です。

はじめに

こんにちは、 @p1ass です。

今回は自分が作った mikku というCLIツールを紹介をします。

mikkuはセマンティックバージョニングで管理しているリポジトリの管理や、KubenetesのマニフェストにかかれているDockerイメージのタグの更新を楽にするCLIツールです。

この記事ではmikkuの特徴、開発することにしたモチベーションや苦労した点などを紹介したいと思います。

続きを読む

Goでデータベースにアクセスするにはどんなライブラリがベストか考える

この記事は Go5 Advent Calendar 2019 の1日目の記事です。

はじめに

Go のメジャーバージョンはいつの間にか5まで到達していたようですね、@p1ass です。

Goでデータベースにアクセスするときに使うライブラリは database/sql やそれをラップした sqlx , gorm , gorp など様々なライブラリがありますが、皆さんはどのライブラリを使っていますか?

おそらく様々な理由があってどれか(ここに挙げられていないものかもしれない)を使っているでしょう。 しかし、それは本当にベストな選択だったのでしょうか?

この記事では、Goでデータベースをアクセスする際に、どんな機能が必要かを考えつつ、上に挙げたのライブラリを比較していきます。 あくまでこの記事で述べるのは僕個人の意見ですが、この記事を通して皆さんが改めてライブラリ選定を考えるきっかけになれば幸いです。

続きを読む

Markdownで書いた実験レポートをTeX組版の美しいPDFに変換するDockerイメージを作った

こんにちは、@p1ass です。

皆さんは、実験レポートを何で書いていますか? Wordですか?それともLaTeXですか?

私はそのどちらでもなく、Markdownで書いています。 Markdownはシンプルなシンタックスで様々な表現ができ、多くのエンジニアに愛されています。 しかし、Markdownは実験レポート用途にあまり使われていないため、そのままでは美しいPDFを作成することができません。

この記事では、pandocという様々なフォーマットのドキュメントを相互変換するツールを使って、Markdownで書いた実験レポートをTeX組版の美しいPDFにする方法をご紹介します。

続きを読む

VS CodeでJupyter Notebooksのノートブックを表示したときにmatplotlibのスタイルをデフォルトにする

こんにちは、 @p1ass です。

VS CodeではJupyter Notebooksのノートブックをネイティブで表示することができますが、matplotlibでplotした時のスタイルが黒ベースのものになっています。自分は標準の色の方が好きなので変更する方法を紹介します。

続きを読む