焼売飯店

GoとかTS、JSとか

ライブラリとして公開したGoのinterfaceを変更するのは難しいと言う話

昨日Twitterに書いた内容に、sivchariさんとhajimehoshiさんからリプライをいただいたので、備忘録的にまとめておきます。 発端 interface型と非interface型の後方互換性について interface型を公開した場合 1. メソッドの追加 2. メソッドのシグニチャの変…

GitHub Sponsorsで支援している方を勝手に紹介する記事【2022年度版】

本記事では、2022年末時点でGitHub Sponsorsで支援している方を勝手に紹介していこうと思います! 現在支援させていただいているのはこちらの方々です。 kt3kさん kazuponさん sosukesuzukiさん yhattさん yusukebeさん 以下、順番に紹介させていただきます。

近況についてのご報告

最近の自分の状況について、特にどこかで書いたりしていなかったので、つらつら書いてみようと思います。 目次 仕事について 趣味について 暮らしについて 以上の三本立てでお送りします。

Go Quiz Advent Calendar【17日目】 - メソッド値は難しかった編

こちらは Goクイズ Advent Calendar 2020 - Qiita の17日目の記事です。 問題 今回はMethod values (メソッド値) の問題です。(前回のGo Language Specification輪読会で見付けたものです) package main import "fmt" type I interface { M() int } type T s…

Go Quiz Advent Calendar【10日目】 - iotaのカラクリ編

こちらは Goクイズ Advent Calendar 2020 - Qiita の10日目の記事です。 問題 今回は、皆さん大好きなiotaの問題です。 package main import "fmt" const ( X = 0 A, B, C = iota, iota + 1, iota * 2 D, _, E _, F, _ G = iota + iota ) func main() { fmt.…

Go Quiz Advent Calendar【3日目】

こちらは Goクイズ Advent Calendar 2020 - Qiita の3日目の記事です。 問題 序盤と言うこともあるのでシンプルな一問です。 package main import "fmt" func main() { var x = nil fmt.Println(x) } 結果はどちらでしょう? compile error <nil></nil>

Protocol Buffersのpackageの名前解決ルールを調べた

Protocol Buffersのpackageの名前解決ルールを調べました。 このブログはproto3のドキュメントベースで書いています。 developers.google.com protobufのpackageについて protobufでは、messageなどの定義名が衝突することを防ぐことを目的として、名前空間…

tsconfig.jsonはJSONじゃないと言う話

気になったので調べてみました。 tsconfig.jsonと普通のJSONの大きな違い tsconfig.jsonには、コメントが書けます。 tsc --init した時に生成されるtsconfig.jsonに、大量にコメントが付けられているので、すぐに気付くことと思います。 例) { "compilerOpti…

Goの標準パッケージのwasmサイズを計測した

Go 1.11でgo buildのtargetに GOOS=js GOARCH=wasm を指定できるようになって久しいですが、皆さんこちらお使いでしょうか? Goが出力するWebAssemblyのファイルサイズが気になり、 これを計測するためのリポジトリ、go-wasm-sizesを作ったので、こちらと合…

Vue.js (+ Vuex)でTrelloもどきを作った話

久しぶりの更新です。 先週末と今週末の二日を使って、Vuexの勉強がてらTrelloもどきを作ってみました。 これまでちまちまVue.jsは使ってきましたが、SPAを作ったのは初めてです(小さいですが) プレビュー デモ: https://syumai.github.io/trollo リポジト…

Rubyでdotenv的なやつを小さなスクリプトで実装してみる

手元のプロジェクトで環境変数をファイルから読み込む必要が出てきて、dotenvが欲しくなったのですが、ただそれだけのために依存関係増やすのもなぁ…と思ったので、自分で書いてみることにしました。 コード envloader.rb class Envloader class << self def…

ドットでチェーンして値を追加していけるHashを実装してみた

手抜き実装なので、まだ色々足りて無さそうな感じがしますが、一旦の目的までは達成出来ています。 名前はChainableHashとしてみました。 コード class ChainableHash < Hash def method_missing(name, *args, &block) if name[-1] === '=' self[name[0..-2]…

Docker HubにPushしたイメージをAmazon ECSにデプロイしてみる

Docker HubにイメージをPushしてみる - 焼売飯店の続きです。 かなりアッサリ出来ました。 手順 1.AWSコンソールからECSを選択 これら2つをガイド付きで実行できるようになっています。 ただし、今回はこのどちらも使わない(ECR使わないし、サンプルアプリも…

Docker HubにイメージをPushしてみる

SinatraアプリのHello world on Docker with Alpineの続きです。 前書き 前回作ったSinatraアプリのコンテナを、Amazon EC2 Container Services (以下、ECS) にデプロイ出来るようにしたいと思います。 ECSから自分のイメージを使えるようにするためには、ど…

SinatraアプリのHello world on Docker with Alpine

RailsのデプロイをDockerで行いたかったのですが、 色々躓いてしまったので、一度シンプルにSinatraで動く物から作って、一歩ずつ確認していこうと思います。 今回は、完全にHello worldだけなので超お手軽構成です。 コードはこちら https://github.com/syu…