なんか無性にゲームが作りたくなったのでブラウザで遊べる簡単なゲームを作っています。 今のところまだ2つだけですが、少しつづ種類を増やしていきたいです。 マインスイーパ ライフゲーム 久しぶりすぎて基本中の基本であるゲームループの実装すら忘れてました。
デザイン勉強中のプログラマの日記です。
最近、急須や土瓶にザルが入っている手抜き商品をよく見かけますが、ふざけるなと言いたくなります。デザイナーの皆さん急須のデザインをするなら毎日お茶を飲んでください。
CABTMIDILocalPeripheralViewControllerを使わずにMIDI over BLEでアドバータイズする方法
ワイヤレスMIDI接続をしてアプリから他の端末にMIDIデータを送信したい CoreAudioKit の CABTMIDILocalPeripheralViewController を使うとiPhone(またはiPad)アプリ上に MIDI over Bluetooth LE のアドバータイズの設定画面を表示することができます。 上記画面の Advertise MIDI Service の項目をオンにするとアプリ側を BLE ペリフェラルとしてアドバータイズすることができます。 CABTMIDILocalPeripheralViewControllerを使わずにアドバータイズしたい Swift…
「ブログリーダー」を活用して、グラスオニオンさんをフォローしませんか?
なんか無性にゲームが作りたくなったのでブラウザで遊べる簡単なゲームを作っています。 今のところまだ2つだけですが、少しつづ種類を増やしていきたいです。 マインスイーパ ライフゲーム 久しぶりすぎて基本中の基本であるゲームループの実装すら忘れてました。
標準地域メッシュは日本限定のガラパゴス仕様 普段、データ分析業務などで標準地域メッシュを利用しているのですが、この規格は日本限定でしか利用できずなんともガラパゴス感がありました。Quadkey や Geohash のように全世界で利用できるといいなと漠然と考えていて、なんかよい方法ないかなと探していたところ世界メッシュを発見しました。 一般社団法人世界メッシュ研究所 – Research Institute for World Grid Squares ブラウザで世界標準メッシュを利用してみたかったので自前で TypeScript でライブラリを開発しました。 開発したライブラリはこちら ブラ…
最近の個人活動 忘れないようにメモ Webサービス開発 Web Tools Texを出力するサービスとか地域標準メッシュやQuadkey、Geohashの可視化サービスなど。世の中インフレだけど年収が上がる気配が1mmもないので収入増を狙って作ってみた。しばらくはこのサービスを拡充したい。 tools.9revolution9.com OSS開発 anonypy Pythonのk-匿名化ライブラリ。勢いで開発して放置してたにも関わらず思ったよりもスターがついていてびっくり GitHub - glassonion1/anonypy: Anonymization library for pytho…
k-匿名化ライブラリ 個人活動でPythonでk-匿名化するライブラリを開発しています。l-多様化とt-近似化にも対応しています。まだまだ改善点たくさんありますが少しづつ良いライブラリにしていきたいとおもいます。 github.com 開発にあたりこちらの書籍がめちゃくちゃ参考になりました。 プライバシー保護入門作者:中川裕志勁草書房Amazon
今後技術記事はZenn.devに投稿します。 長年ブログに技術記事をかいてきましたが、フロー情報とストック情報を分けて投稿することにしました。 今後、技術記事はZenn.devに投稿します。 最近投稿したZenn.devの記事 最近は主にGoの記事を書いています。 GCPで理想の構造化ログを出力する方法 GoでHTTP/gRPCリクエストのレスポンスサイズを計測する方法 Go で標準出力に書き込まれた文字列のテストをする方法 Goでミドルウェアとインターセプターのテストをする方法 引き続き、本ブログをよろしくお願いします。 引き続き、お気持ち表明とか、近況報告、おすすめの本情報なんかはこちらの…
GCPマネージドサービス(GAE/GKE/Cloud Run)向けのGoのLoggerライブラリを開発しました。 github.com Google App Engine 第1世代のロガー(google.golang.org/appengine/log)からの移行ができるように関数のインフタフェースを揃えてあります。
ワイヤレスMIDI接続をしてアプリから他の端末にMIDIデータを送信したい CoreAudioKit の CABTMIDILocalPeripheralViewController を使うとiPhone(またはiPad)アプリ上に MIDI over Bluetooth LE のアドバータイズの設定画面を表示することができます。 上記画面の Advertise MIDI Service の項目をオンにするとアプリ側を BLE ペリフェラルとしてアドバータイズすることができます。 CABTMIDILocalPeripheralViewControllerを使わずにアドバータイズしたい Swift…
3年間放置していたiOSアプリをホームバーに対応させた話 かれこれ3年くらい放置していた iPhone/iPad 両対応のアプリをホームバーに対応させようと思ったら結構大変だったのでその記録です。 ちなみに放置していたアプリはこちらです。 ピアノ - 即興ピアノtaisuke fujitaミュージック無料apps.apple.com 対応前の設定はこんな感じ 4.7インチの iPhone(6, 6S, 7, 8, 第2世代SEなど1334 * 750ピクセル)をベースにiPadにも対応させるため、SKScene の幅を1334ピクセル高さを1000.5ピクセル(4:3)に設定し、アンカーポイン…
Time 型のフィールドを含む構造体を JSON にエンコード、JSON からデコードすると特定条件下で Time 型オブジェクトの time.Location の情報が失われることがあります。 以下のプログラムを見てください。 package main import ( "fmt" "time" "encoding/json" ) type Hoge struct { Name string CreatedAt time.Time } func main() { time.Local = time.UTC // Hoge構造体を生成する h1 := Hoge{ Name: "aaa", Cr…
Prometheus で収集した GKE アプリケーションのメトリクスを GCP の Cloud Monitoring(旧Stackdriver Monitoring) にエクスポートして Cloud Monitoring のダッシュボードを作成する方法を紹介します。Prometheus といえば Grafana を使ってダッシュボードを作成することが多いですが GCP 環境では Cloud Monitoring に一元化して監視できたほうが何かと便利です。あえて Grafana を使わず Cloud Monitoring でメトリクスを可視化します。 以下の記事で GKE 上に構築した Re…
こちらの記事で Prometheus の static_config を設定して Redis のメトリクスを取得する方法について紹介しました。 glassonion.hatenablog.com Prometheus で監視対象のサーバの設定をする方法は static_config の他に Service Discovery があります。static_config はわかりやすく簡単に設定できるので入門にはとても良いのですが、実運用を考えると static_config よりも Service Discovery を使ってメトリクスを取得するのがおすすめです。この記事では Service Di…
PrometheusからRedisの状態を取得する 私は普段 Redis を GKE 上に構築して使用していますが、GCP コンソール画面から得られる情報が Pod の CPU 使用率、メモリ使用率、ディスク使用率くらいしかなくもう少し細かい情報を得たいと考えていました。そこで Prometheus を使って Redis の状態を監視してしてみたところとても良い感じだったのでその方法を紹介してみたいと思います。 Prometheus を使うと Redis の INFO コマンドで得られる情報を時系列に見ることができます。Prometheus は機能が豊富でいろいろできるのですが、この記事では必…
以前の記事 go-mode + eglotを使ってEmacsのGolang開発環境を整える - A Day In The Life で eglot を使った Go の開発環境構築方法を紹介しましたが、今回は lsp-mode を使って環境を構築してみたいと思います。前回と同じく Go の Language Server は gopls を使います。 動作確認バージョン Emacs 26系 Golang 1.13.x Emacsは25以上、Golangは1.11以上なら問題なく動作するはずです。 gopls のインストール Go の Language Server は3種類あります(bingo …
GCP環境でRedisを使う GCP には Cloud Memorystore という Redis 互換のマネージドサービスがあるのですが、対応している Redis のバージョンが古い(4系)ので自前で GKE 上に Redis を立てることにしました。どうせ立てるなら master/slave 構成のほうが良いだろうということで Redis Sentinel にしました。 環境 GKE 1.13.6 Redis 5 Redis Sentinelって何? Redis Sentinel は master/slave 構成の Redis の監視を行ってくれるサーバソフトウェアです。自動フェイルオー…
普段 Golang でサーバコードを書くときはもっぱら Emacs を使っています。Go Modules に移行してから gocode が動作しなくなったので最近はやりの LSP(Language Server Protocol) を導入することにしました。Go の Language Server は gopls 、Emacs のLSPクライアントは eglot を使います 動作確認バージョン Emacs 26系 Golang 1.12.x Emacsは25以上、Golangは1.11以上なら問題なく動作するはずです。 gopls のインストール Go の Language Server は3…
日本の地域メッシュコードから緯度経度ポリゴンを算出する Python3.7 のプログラムを作成しました。 前回の記事の逆バージョンです。 Python を使って緯度経度から地域メッシュコードを算出する - A Day In The Life プログラム 3次メッシュコード(基準地域メッシュコード)から緯度経度ポリゴンを算出します。精度を出すためにミリ秒で計算しています。 # ミリ秒 MILLISECOND = 3600000 class Grid(object): def __init__(self, code, parent=None, divide=0): size = len(code)…
緯度経度(latitude, longitude)から日本の地域メッシュコードを算出する Python3.7 のプログラムを作成しました。 地域メッシュ - Wikipedia プログラム 緯度経度から1-3次メッシュコード(基準地域メッシュコード)を算出します。精度を出すためにミリ秒で計算しています。 import math # 計算の単位(ミリ秒) MILLISECOND = 3600000 class FirstGrid(object): def __init__(self, lat, lon): ''' 1次メッシュコード計算 ''' self.lat = lat self.lon =…
SRID=4612(JGD2000測地系+地理座標系)のgeometry型フィールドだとgeography型に変換できる postgres=> SELECT ST_SetSRID(geom, 4612)::geography FROM map WHERE id=1; st_setsrid ---------------------------------------------------- 0101000020041200006B405577CB756140404749F6A1BF4140 SRID=3857(WGS84測地系球面+メルカトル図法)のgeometry型フィールドをgeogra…
はじめに A Day In The Life(https://glassonion.hatenablog.com、以下当サイト)は、個人情報に関する法令等を順守し、個人情報を適切に取り扱います。 個人情報の管理 当サイトは、お問い合わせいただいた内容についての確認・相談、情報提供のためのメール送信(返信)の目的以外には使用しません。また知り得た個人情報を第三者に開示することは、警察・裁判所など公的機関からの書面をもった請求以外に一切利用いたしません。 広告について 当ブログでは、第三者配信の広告サービス(Googleアドセンス)を利用しており、ユーザーの興味に応じた商品やサービスの広告を表示す…
MarshalJSONを使ってJSONに表示用のフィールドを追加する 無限ループしないように元の構造体を拡張する // UTCな時間をJsonに変換するタイミングでJSTに変換する例 import "time" type Hoge struct { ID uint CreatedAt time.Time } func (h Hoge) MarshalJSON() ([]byte, error) { type Alias Hoge return json.Marshal(&struct { Alias CreatedAtJST time.Time }{ Alias: (Alias)(h), Cr…
標準地域メッシュは日本限定のガラパゴス仕様 普段、データ分析業務などで標準地域メッシュを利用しているのですが、この規格は日本限定でしか利用できずなんともガラパゴス感がありました。Quadkey や Geohash のように全世界で利用できるといいなと漠然と考えていて、なんかよい方法ないかなと探していたところ世界メッシュを発見しました。 一般社団法人世界メッシュ研究所 – Research Institute for World Grid Squares ブラウザで世界標準メッシュを利用してみたかったので自前で TypeScript でライブラリを開発しました。 開発したライブラリはこちら ブラ…
最近の個人活動 忘れないようにメモ Webサービス開発 Web Tools Texを出力するサービスとか地域標準メッシュやQuadkey、Geohashの可視化サービスなど。世の中インフレだけど年収が上がる気配が1mmもないので収入増を狙って作ってみた。しばらくはこのサービスを拡充したい。 tools.9revolution9.com OSS開発 anonypy Pythonのk-匿名化ライブラリ。勢いで開発して放置してたにも関わらず思ったよりもスターがついていてびっくり GitHub - glassonion1/anonypy: Anonymization library for pytho…