寝ても覚めてもこんぴうた

プログラム書いたり、ネットワーク設計したり、サーバ構築したり、車いじったり、ゲームしたり。そんなひとにわたしはなりたい。 投げ銭は kyash_id : chidakiyo マデ

Go で Spanner とよろしくやるためにガチャガチャやっている話

この記事は Go Advent Calendar 2020 14日目 の記事です。 みなさん Go してますか? Spanner も触ってますか? 最近やっと部分的に本番環境で Spanner を利用し始めました。 Spanner のスキーマなどを git で管理しつつ、チーム内でレビューなどをしつつ運…

GCP の DNS を yaml ファイルを利用して管理する

GCP の DNS を利用する場合、Web UI や コマンドでレコードをポチポチ投入するの大変ですよね。 今回は Cloud DNS のレコードをまるごと yaml で管理し、 export/import する方法を書いてみます。 必要なもの 試す際に Google Cloud SDK(gcloud) のインスト…

GCP でアプリケーションのログや特定の値をいい感じに BigQuery にエクスポートしたい

アプリケーションを実装していて、ログをかっちり決めたカラムに挿入したい、や、 難しい API を利用せずに BQ に特定のデータを挿入したいという場合ありますよね。 普通にやると、BigQuery の API を経由し、ストリーミングインサートするなどちょっとひと…

たった 60 分で Go の静的解析が理解できる神コンテンツ

タイトルの通りで 60 分ほどで静的解析が理解できるコンテンツを見つけたので共有。 静的解析ってなんじゃ? ASTってなんじゃ? って状態から、「なんとなく静的解析やれそう」になれたのでぜひ試してみてほしい。 静的解析をはじめよう - Gopherをさがせ!

IntelliJ で Eclipse の Outline 機能のような形でファイルのプロパティ一覧を表示したい

Go を書いていると、 Go の文化としてファイルをあまり分割せずに、フラットにファイル内に書きづづけるということがお多くなるかと思いますが(自分は結構分割しちゃうけど)、その場合、どこにあのプロパティ/関数あったっけ?みたいになりますよね。 Ecli…

Spanner で NOT Nullのカラムを追加したい

Spanner は RDB のようにかっちりとスキーマを定義する DB なので、 Datastore などのように、プロパティをふわっと追加してデータ投入などできません。 RDB と同じように DDL を利用してカラム追加して利用しますが、 NOT NULL のカラムの追加ができないと…

Spanner のスキーマ管理をする wrench を試してみた

先日 Spanner のスキーマ管理ツール hammer を利用した ブログ を書きましたが、 Cloud Spanner Echosystem から wrench というツールが提供されていることに気づきました。 hammer 最近更新されてないのかな(?)、と思いながら試していたところもあるので、…

Spanner の DDL (スキーマ)管理を行う hammer を試してみた

Datastore を利用していたときにはスキーマがあってなかったようなものなので、基本的にはエンティティの定義 ≒ スキーマみたいなところがあったが、Spannerは正統派RDB的な振る舞いをするので、 DDL によってスキーマを定義します。 スキーマの設計自体を D…

Google Cloud Japan イベントアーカイブ(オンラインイベントのアーカイブ一覧ページ)ができたっぽい

最近は GCP 関連のイベントもほとんどがオンラインになりましたね。 興味ありそうな内容のイベントがあっても気づけなかったり、知っていても調べるのが大変、というのがあったと思いますが、公式にイベントアーカイブページが公開されていました。 Google C…

Cloud Code (IntelliJ) を利用して、 Cloud Run にアプリケーションをデプロイする

タイトルの通り、IntelliJ 版の Cloud Code プラグインを利用して、 Cloud Run をデプロイすることを試してみます。 内容は こちら GCP ドキュメント をベースにしています。 事前に必要なこと GCP のプロジェクトの課金を有効にしておく必要があります。 ま…

Amazon の価格履歴が確認できる Chrome Extension の Keepa を利用したら高値づかみしなくなって QOL 上がった話

みなさん、Amazon で買い物してますか? 以前から、Amazon の価格履歴が確認できるアプリがあることは知っていたのですが、関係ないっしょって感じでインストールしていなかったのですが、何かのきっかけでインストールしてみたら快適だったので共有します。…

Cloud Run で最新のリリースバージョンにトラフィックを流す

Cloud Run を利用する際、defaultではデプロイした新しいリビジョンに対してトラフィックが移行されるような振る舞いになっていると思います。GAE の gcloud app deploy コマンドで言う --promote オプション相当です。 ただ、Web の UI などから過去のリビ…

# Go のテスト並列化してテストが速くなることを改めて確認してみた

Go のテストに並列機能があるので、それで単純に速度アップができるのかという点と、 parallel オプションで並列数操作したらちゃんと反映されるよね。という点を確認した。 早速ソースコード slow_test.go func Test_slow1(t *testing.T) { time.Sleep(3 * …

キャッシュレス関連用語集 [経済産業省]

キャッシュレス関連用語集 が公開されていて良さそうな感じだったので。 目次はこんな感じ。 リンク先はPDFです https://www.meti.go.jp/policy/mono_info_service/cashless/image_pdf_movie/cashless_glossary_R1_06.pdf

Cloud Run と GitHub を連携して、GitHub にコードをプッシュするだけでファイルをインターネットに公開できるように設定する

Cloud Run が GitHub と接続設定をするだけで、 GitHub 上に push したコードをデプロイ出来る仕組みが簡単に作れるので、静的ファイルを簡単にデプロイ出来るミニマムな方法になります。 GCSで公開やFirebase Hostingなど他にも公開するシンプルな方法はあ…

今更読んだ : 監視 入門 ~ マイクロサービス時代の監視設計

Songmu さんの書いた 2019 年の Rancher Meetup Tokyo の記事 監視周りの基本的なエッセンスがまとまっていて、 要点を手っ取り早く吸収したい人にはおすすめ。 junkyard.song.mu

anyenv のインストールから nodenv のインストールまで

anyenv のインストールから nodenv のインストールまで Mac が新しくなったので node をインストールしようと思い、以前 nodebrew を使っていたので GitHub を見に行ったら開発はいまいち活発じゃなさそう。 なので、ちょっと調べてみたら nodenv の方が活発…

IntelliJでコードフォーマットするショートカット

Option + Cmd + L 以上!w

Cloud Run で VPC 経由で Memorystore(Redis) に接続確認してみる

待望の機能がBetaですが発表されましたね! 注意 : Cloud Run の VPC 接続は現在(2020/05/15)Betaです。 注意 : 以下、Cloud Runと読んでいるものはすべてフルマネージド版になります。 Cloud Run のようなサービスは Memorystore(Redis) に接続する際、 S…

Macでトラックパッドをダブルタップした際に選択状態にする

マックで文章を選択したい場合、トラックパッドをダブルタップ(ダブルクリック)で単語を選択状態にしたり、 トリプルタップ(トリプルクリック)をして1行まるっと選択状態にしたりという使い方ができますが、 新しくMacを買ったら設定がされていなかった…

STUN / TURN / ICE とかってなんの略?(WebRTCに関する用語)

略がわからないと単語わからなくなるのでメモ 略 STUN (Session Traversal Utilities for NAT) TURN (Traversal Using Relay around NAT) ICE (Interactive Connectivity Establishment) SDP(Session Description Protocol) MCU(Multipoint Control…

ブラウザでCSVファイルをダウンロードしようとするとブラウザで開いてしまう (GCS編)

GCS

ファイルのダウンロード機能など作成することがよくあると思いますが、 Chromeだとファイルとしてダウンロードができるのに、Safarだと何故かブラウザ上でダウンロードしたいファイルを展開してしまう。 そんな事ありますよね。 何が必要か 答えをいきなり書…

Mac OS 10.15 (Catalina) にOracle JDKを複数インストールして管理する方法

MacにJDKをインストールすることって開発者の人であればまぁまぁあることだと思いますが 確定申告などでJDK 8(JREでよいが)など古いバージョンが必要、などと言われることがありますよね。 そんな場合にCatalinaに複数のOracle Javaをインストールして管理す…

GitHub Actions で job や step 単位で条件での実行を行う

こんにちは、GitHub Actionsつかってますか? GitHub Actions は workflow(yamlファイル) 単位で柔軟に条件の指定ができます。 たとえば on: push: branches: - 'master' paths: - 'go/*' こんな感じであれば、goディレクトリ配下のファイルに変更があるmast…

メールを送る(mailto)のリンクから起動したメーラーにSubjectやBodyを入れた状態にする

Webコンテンツのリンクから、メーラーを起動したいケースもあると思いますが、 メーラーで起動した際に、 件名(Subject), 本文(Body)、CCとかも入っていると最高ですよね。 それ、できます!! この記事は @yukinagae からの提供情報記事です。 HTML(mailto)の…

ElasticsearchをDocker(compose)で気軽に起動してみる

Elasticsearchの振る舞いを気軽に確認したい場合、Docker(compose)で環境を作成すると非常に便利そうだったので、Macのローカルでdocker-composeで動くElasticsearchを構築してみた。 Dockerfile を作成する ElasticsearchサーバのDockerのイメージを作成す…

flutter-webやってみる

ここ をベースに試してみます。 セットアップ $ flutter channel beta $ flutter upgrade $ flutter config --enable-web ここまで実行したらエディタを再起動しましょう webが有効になると flutter devices コマンドの結果にChromeが出力されます(betaにし…

Goの標準機能で過去のバージョンをインストールする

自分個人の環境はいつも最新のGoを利用しているので特にgoenvなどのようなバージョンを切り替えるツールを使っていないのですが、Goのバージョンを切り替えて使いたい人もいるみたい。 体感的にgoenvを利用している人が多そうではありますが、Go標準に複数の…

GAE/goの東京リージョンからServerless VPC Access経由でMemorystoreへのアクセスをベンチマークしてみる

つい先日、東京リージョンにも Serverless VPC Access がやってきたので、GAE/SEから Memorystore が利用できるようになりました。 Memorystoreは内部的にはRedisで、今までのGAE/SE 1st-genと呼ばれる環境ではmemcacheが提供されていましたが、2nd-genから…

Kindle fire 10 (19年モデル) を買ったのでGoogle Playをインストールする

サイバーマンデーで10月頃に発売されたKIndle Fire HD 10が1万以下で出ていました。 子供がAmazon PrimeVideoを見ているとテレビを専有されるので子供のプライムビデオ用に買ってみました。 Kindle Fireを購入したのはこれで3台目で 7,8,10 インチとすべて揃…