tech

@types/react-native がズレる問題

react-native のプロジェクトを typescript でやる時とりあえず devDependecies に @types/react-native を追加する。 その時の最新バージョンで入る。例えば ^0.57.27 みたいな感じ。 次に react-navigation も使いましょうということで @types/react-navig…

gorilla/sessions と gorilla/context と net/http.Request.WithContext で気をつけること

net/http には net/http.Request.WithContext という context を紐付け直すメソッドがある。 実装はこうなっている。 func (r *Request) WithContext(ctx context.Context) *Request { if ctx == nil { panic("nil context") } r2 := new(Request) *r2 = *r …

react native の switch に ios, android それぞれにそれらしくスタイルを当てる

facebook.github.io 他の component は tintcolor を設定すると ios, android 合わせて大体良い感じになるけどこれはならない。 ドキュメント通りではあるけれど名前が紛らわしい感がある。 まぁ、native の方でも tint color として多分当てられると思うけ…

API とかで配列にいろんな型が来ちゃう時にパース側に unknown 型を用意する

github の event とかみたいなやつで [ { type: 'aaa', payload: { a: 'A' } }, { type: 'bbb', payload: { b: 'B'} }, ] みたいな type ごとにその中身が違うみたいな時がたまにある クライアントでパースするとき、例えば swift とかだったら今な codable …

athena で検索するためにkinesis firehose で s3 に置いたものを glue の crawler でパーティションを更新する

kinesis firehose で s3 に置くと s3://bucket/prefix/$year/$month/$day/$hour/xxx.gz の形式になる。 glue の crawler を作ると、s3 のパスを指定して athena のパーティションを作ってくれる。上のパス形式だと $year, $month, $day, $hour の 4 つを使っ…

swf ファイルから 特定の id(tag) を持つ DefineBinaryDataTag のデータを取り出す

swftools ( swfextract ) が手元に入らなくて、swf ファイルの仕様書ちょっと見たら簡単に書けそうだったので、go で書きました。いわゆる radiko を録音する時に必要なやつ。 github.com http://wwwimages.adobe.com/content/dam/acom/en/devnet/pdf/swf-fi…

docker であげてる mysql を peco で選んで sequel pro でシュッと開く

alias sequel-docker='sequel-open -docker -host $(docker ps --format "{{.Names}}" | grep mysql | peco) -ssh-password $BARGEE_PASSWORD -ssh-user $BARGEE_USER -user root' こんな感じ。いちいち履歴から探すみたいなのをしないようになった。自分は …

Ray Tracing in One Weekend を rust で勉強した

Safari のリーディングリストを整理していたら In One Weekend: Ray Tracing in One Weekend このサイトを発見したので、折角のなので勉強を始めた。3D とかは全く知識なし。 本は amazon で売っていて 355 円で買える。 www.amazon.co.jp 基本的にはベクト…

aws-sdk-go のモックとデータの組み立て

aws-sdk-go にはこういうモックの仕方あるよという感じでこういう記事があります。 雑に言えば各サービスのクライアントの interface 用意しておくのでそれ使えば、という感じ。まぁ自分で用意しても良さそう。インターフェイスが変わったらコンパイル出来な…

macvim の menu のショートカットを消す

macvim を使っている最中に、たまにタイポなのか、make らしきものが実行されていて謎だった。今日それが解決して macvim には cmd+b (メニュー -> ツール -> メイクに定義されている)に :make が割り当てられていた。英字キーボードで cmd に変換を割り当…

タイムアウト(キャンセル)を context.Context に寄せてみる

気が向いたので前書いた go のライブラリの一つのタイムアウトの指定(キャンセルも含む)を context.Context に寄せてみた。 (https://github.com/soh335/test-mysqld-docker/pull/6) このライブラリは docker で test 用の mysqld のプロセスを管理するも…

MacVim.app に入ってる mvim の位置が MacVim.app/Contents/bin/mvim になってた

前は MacVim.app/Contents/MacOS/mvim だった。いつから変わったんだろう?(最近な気がする)

vue シリーズをシュッと試す

自分のローカルで作業する為のフロントを作るのに気になっていた vue シリーズ(vue.js, vuex, vue-router, vue-cli)をシュッと使ってみた。(ついでに material design lite も試した) 片手間のものなのであまり有益な情報ではないけど、一応思うところ含…

safari のロケーションバーでの検索のカスタマイズ

~/Library/Safari/SearchDescriptions.plist にロケーションバーでの検索についての設定が書かれているので、挙動がおかしい場合とか(手元でなぜか amazon 検索が本カテゴリで行われるようになったため)に見る。 新規追加も出来て、alc 等自動で検出されな…

go で mysql のテストに docker を使う

mysql を含むものをテストする際に例えば go だと、lestrrat/go-test-mysqld とかを使います。 perl には Test::Docker::MySQL っていうのがあって、面白いなと思ったので、(雰囲気 go-test-mysqld インターフェースで)go で書いてみました。 github.com g…

Screencast に終了機能とファイルが録画が終わったらファインダーで開く機能を追加した

github.com そういうのがあると便利という意見を頂いたので追加した。 次、治したいのはアップデートのところで、このアプリ最初から全画面だから、自動アップデートのウィンドウが出て来てもそれよりも前にマスクがかかってしまう。設定画面を表示すると押…

Sierra でシュッと JIS キーボードを US キーボードとして認識させる

Sierra で MacBookPro の JIS キーボードを US キーボードとして扱いたかったので作りました。 github.com 10.11 までは Karabiner にこの要件を満たせていましたが、現状はまだ動いていませんのでその繋ぎという感じです。 README.md にも書きましたが、キ…

シュッとウィンドウを選択してスクリーンキャストを撮れるようにした

soh335.hatenablog.com 少し前に上のようなものを作った。たまにウィンドウをシュッと選択したい感じだったので、スペースキーを押すと選択出来るようにした。 github.com sierra にしても何もコード変えることなく動いててよかった。ついでに dmg を sign …

parallel_tests で rspec を並列化する

test-queue でもなんでもいいけど今回は parallel_tests を使った。 readme.md に書いてある通りにすれば使える。二つちょっと工夫した。 一点目は web アプリのテストコードとかでアップロード周りはローカルに切り替えるみたいなのをやるけど、アップロー…

apns ( http2 ) で Token Authentication を行う

apns ( http2 ) で新たに Token Authentication という jwt による認証機能が追加されました。 詳しい内容は下記にあります。 developer.apple.com developer.apple.com 上にある通り、今までは証明書の期限切れという問題がありましたが、Token Authenticat…

mac でシュッとスクリーンキャストを gif とかで撮ってバーンと dropbox にあげる

mac でシュッとスクリーンキャストを gif とかで撮りたいなと思ったので Screencast というのを作りました。github releases からダウンロード出来ます。 github.com なぜ自作したかというと以下の条件を満たしたものが欲しかったからです。 quicktime playe…

ライセンスファイルをシュッと集めてばーんと連結して html にする

github.com carthage を使っているとライセンスファイル集めて、連結するのを自分でやる必要がある(という認識)。 それに加えて他のライブラリとかも使っていたら、それも集めてきて連結する必要がある。 ので、上のようなツールを書いた。 $ licenser --c…

NSToolbar でサイズが切り替わる設定画面のような WIndow を作る

下のようなXcode の設定ウィンドウのように NSToolbar が上部にあり、表示内容のサイズをアニメーション付きで変わるものを作ります。 storyboard NSWindowController を用意します。 NSToolbar をセットし、下のように必要な NSToolbarItem を追加したりし…

mac アプリに go のコードをリンクする

ios の場合は gomobile を使う必要がありますが、osx の場合は必要ないので go build -buildmode=c-archive したものをリンクすると mac アプリから呼ぶことが出来ます。 例えば適当に、 libdummy というディレクトリを作り main.go として以下のようなファ…

GIF の color table を調べる

gif の color table を調べたくなったのでシュッと確認できるよう gifpalette というのを書きました。 github.com 実行すると このように出力されます。 golang には gif の parser が標準でついてるので読むと color table がどこに入っているかとかがわか…

elasticsearch-model レベルでモック・スタブする

github.com これのモック・スタブを行う。 RESPONSE = { 'hits' => { 'total' => 123, 'max_score' => 456, 'hits' => [{'_id' => '1', 'foo' => 'bar'}] } } RESULTS = Elasticsearch::Model::Response::Results.new DummyModel, RESPONSE setup do search …

WERCKER_REPORT_ARTIFACTS_DIR と WERCKER_OUTPUT_DIR

$WERCKER_REPORT_ARTIFACTS_DIR このディレクトリに何かを入れると、web ui からダウンロードができる。 $WERCKER_OUTPUT_DIR 次のフェーズに使うものを入れる。このディレクトリが空の場合 $WERCKER_ROOT ( $WERCKER_SOURCE_DIR ) が使われる。 また、1000 …

gist の comment を rss feed にする

gist で色々やりとりされてるものを追うことがあったので作りました。 github.com $ gist-comments-feed -id <gist id> こういう感じで使います。私は dropbox に定期的に出力したやつを置いて、feedly で追います。</gist>

docker でたてた mysql コンテナに Sequel Pro でアクセスする

mac で mysql の操作を雑にする際に Sequel Pro を使っている。最近は手元に docker で開発していることもあって Sequel Pro から docker でたてた mysql コンテナにアクセスしている。 Sequel Pro は ssh トンネルでのアクセスができるので mysql ホストに…

hugo で特定の記事を noindex にしたり、rss に表示しないようにする

soh335.hatenablog.com こういうどうでもいい記事は noindex になってても良いし、もっとどうでもいい記事*1は rss に表示されなくても良い。 自分で(ある程度)手をいれることが出来れば特定の記事を noindex にしたり rss に表示しないことも出来る。今回も…