Subscribed unsubscribe Subscribe Subscribe

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 に表示しないことも出来る。今回も…

vim で markdown のリンクをタイトルを取得しインサートする

前回の続きになるが、もし hugo 等にブログを乗り換えた際はてな記法が使えなくなり markdown 等で書く必要がある。 現在このブログは基本的には markdown で記述しているが、リンク周りは [http://example.com:title] というはてな記法を使っていることが多…

vim で再度開いた場合にカーソルの位置を復元する、ただし gitcommit 以外。

autocmd BufReadPost * if ine("'\"") > 0 && line("'\"") <= line("$") | exe "normal g`\"" | endif と設定していたけど、コミットメッセージを書く際にも効いていてこの場合は先頭位置にカーソルがあるべきなので autocmd BufReadPost * if &filetype != …

はてなブログの記事データを hugo のデータに変換する

soh335.hatenablog.com にて記事データのパースをすることが可能になったので今度はそれを hugo のデータに変換することを試みる。そのために hatenablog2hugo というコマンドを書いた *1 github.com パースした内容を hugo の下記のようなフォーマットに変…

Movable Type ( はてなブログ ) からエクスポートした内容をパースする

直ちにブログを置き換えたいというわけではないけど、いざそうなあった場合にどうすべきか考えてはてなブログの過去の記事のエクスポートについて調べた。 help.hatenablog.com 上の記事に書いてある通り Movable Type 形式というものでエクスポートされる。…

native webrtc で動画や音声のデータにアクセスする

通常のビデオチャットのような使用用途で native webrtc を用いる場合 *1、動画を表示する view などが sdk レベルで提供されているので、そのまま使えば良い。(音声データは中で複数音声をミキシングなどしてよしなに再生するところまでやっている)ただ、…

swift で FSEvents をシュッと扱う

swift だけで書いてみたかったので書いてみた github.com import FileWatch let filewatch = try! FileWatch(paths: ["/path/to/dir"], createFlag: [.UseCFTypes, .FileEvents], runLoop: NSRunLoop.currentRunLoop(), latency: 3.0, eventHandler: { event…

swift でプロセスのリストを得る

https://developer.apple.com/legacy/library/qa/qa2001/qa1123.html にサンプルがあったので GetBSDProcessList 関数を swift で書いてみた。 ついでに最近 carthage を使っているのでそれでも入れられるようにしてみた。 github.com こんな感じで使う impo…

最近の native webrtc で [NSString stdStringForString:]: unrecognized selector sent to class で落ちる場合

最近の native webrtc を xcode でビルドしてアプリが [NSString stdStringForString:]: unrecognized selector sent to class のようなエラーで落ちる場合は Technical Q&A QA1490: Building Objective-C static libraries with categories これなので、Oth…

ical フォーマットのファイルのコンポーネントや、行をコマンドラインでフィルタする

github.com どうしてもこの ical ファイルからこのコンポーネントやこの行をコマンドラインから削除したいという場合に使えます。 $ cat /path/to/ical | icalfilter -filter-component "..." -filter-component "..." -filter-line "..." こんな感じで正規…

go で同じ flag を slice で受け取る

たまに go で同じ flag を slice で受け取りたくなるので書いた github.com こんな感じで使う。 var ( strs = sliceflag.String(flag.CommandLine, "str", []string{}, "str") ) func main() { flag.Parse() log.Println(*strs) } $ go run main.go ---str a…

apns に go から接続する

apns には前書いた APNs Provider API と昔からある Binary Provider API というのがある。 どちらも tls で接続する必要がある。 前者の場合は net/http の Transport の TLSClientConfig に tls.Config を指定する。 後者の場合は crypto/tls の Dial 関数…

APNs Provider API (HTTP/2 ) を go (1.6) から扱う

APNs Provider API で http/2 を喋るサーバが提供されるようになった。 前のやつみたいに tls でつないで指定された通りに bytes 列を作るということもなくそのまま json を送れば良い。json 以外に必要であったオプション例えば, priority 等は header で指…

osx のメニューバーを暗くした場合に白いアイコンにする

button.image = NSImage(named: "StatusBarIcon") button.image?.template = true こんな感じで template にすればよしなにやってくれる。 ref http://www.leebrimelow.com/prepping-icons-for-yosemite-dark-mode/

ical フォーマットを go でパースする

github.com f, err := os.Open("/path/to/ical") if err != nil { log.Fatal(err) } obj, err := icalparser.NewParser(f).Parse() if err != nil { log.Fatal(err) } var b bytes.Buffer icalparser.NewPrinter(obj).WriteTo(&b) こんな感じで使う。 リファ…

fluentd で go のログを panic 含めて集約する

go で書いたアプリケーションのログを fluentd で集約するとする。 アプリケーション自体のログは fluentd に直接投げるのではなくファイルに書かれていて、普段のログはなにかのフォーマット(例えばここでは json とする)で書かれてる場合このように書く…

weechat の notify_private, notify_highlight なものを pushbullet に送る

soh335/weechat-pushbulletgithub.com pushbullet いつのまにか title を空で body だけで送った場合は body が push 通知に表示されるようになってた。 なので、body だけで送るシンプルなのが欲しかったので書いた。

capistrano の対象の server を ansible の inventory file から設定する

hosts = `ansible -i /path/to/inventory hoge:fuga --list-host` hosts.split("\n").map { |host| host.strip }.each do |host| server host, user: 'app', roles: %w{app} end これだと ansible 上でいう hoge または fuga な host をリストアップし、capi…

native webrtc (objc) で audio track に echo cancel, auto gain control などのオプションを設定する

音声を送る場合は let audioTrack = factory.audioTrackWithID("...") のような感じで作るがオプション (RTCMediaConstraints) を現状 RTCPeerConnectionFactory からだと渡せないのでやはり自前で書く必要がある - (RTCAudioTrack*)audioTrackWithID:(NSStr…

native webrtc (mac) で audio の input device を変更する

既に存在する PeerConnectionFactory から変更する方法が変わらなかったので、とりあえず初期化の時に変更する方法 webrtc::AudioDeviceModule *adm = webrtc::CreateAudioDeviceModule(0, webrtc::AudioDeviceModule::kPlatformDefaultAudio); int ret = ad…

git のブランチ間でのスキーマの差分を ALTER 文とかで出す

git difftool -x=schemalex branch1...branch2 path/to/schema とやると出来る。 別に schemalex ではなくてもよく command <before> <after> で diff を求められるツールがあれば良い。*1 ちなみに git diff でやる場合には gitconfig に diff ["sqldiff"] command = ... g</after></before>…

go で雑に mysql の schema をパースして雑に2つの schema から差分を埋める sql を生成する

先日たまたま Lexical Scanning in Go, Handwritten Parsers & Lexers in Go という記事を見つけ面白そうだなと思ったので自分でも何かパースしてみるかという気持ちになった。 ただパースしたいものが特になかったのでなんとなく mysql のスキーマをパース…

mysqld を使ったテストの際に test database がなくてハマった

go で perl でいう test::mysqld のようにテスト用の mysqld プロセスを立てるには github.com/lestrrat/go-test-mysqld を使っている。 しかし、手元だと走るテストが wercker で実行すると test database がないと言われてどうしたものかと思ったら http:/…

xcode でビルドした ios/mac アプリから AppRTCDemo 以外のことを wbertc で通信する

例えば、mac 用にビルドした AppRTCDemo は今のところ映像の受信は出来るが、送信のコードは組み込まれていない。 なので例えばそれを実現するためには ios の際に利用する RTCAVFoundationVideoSource.h のようなコードを自前で書く必用がある。 環境 osx 1…

mac app から webrtc の DataChannel でやりとりをする

環境 osx 10.10.3 xcode 6.3.2 webrtc の revision b444b3f0ff095fce497c403aa8149f15ce2f3ea9 chrome 43.0.2357.81 webrtc を build する iOS - WebRTC の通りに build する。 How to get started with WebRTC and iOS without wasting 10 hours of your li…

clipboard にあるテキスト等を hotkey でいい感じに preview する PreviewBoard というのを作った

https://soh335.github.io/PreviewBoard/latest.zip 起動したら hotkey を登録し呼び出すと clipboard の中身を上のように表示してくれる。 画像、テキストに対応していて、テキストが url ぽかったらアクセスし png, jpeg だったら表示してくれるというオプ…

go で binary.Write してるところで速度が欲しい場合は binary.ByteOrder interface を直に使う

go で binary package の Write は毎回 allocate しているのでもし速度が必要な場合は binary.ByteOrder interface ( binary.BigEndian, binary. LittleEndian ) を直に使うと改善出来る。 もちろん binary.Write の方が使いやすいので速度とかを気にする場…

NSStatusBar にあるアイコンをクリックした際に NSPopover を表示し、フォーカスが外れたら自動で閉じる

import Cocoa @NSApplicationMain class AppDelegate: NSObject, NSApplicationDelegate { let statusItem = NSStatusBar.systemStatusBar().statusItemWithLength(-2) let popover = NSPopover() func applicationDidFinishLaunching(aNotification: NSNoti…

複数の host に reverseproxy みたいに request を clone して投げて response を集める

soh335/proxy-collectorgithub.com 複数の host に reverseproxy みたいに request を clone して投げて response を集めたかったのでそういうのを書いてみた。 proxy 自体の response は json になっていて、proxy 先のレスポンスも正しい json の場合はそ…

スカパーのサッカーの初回放送のスケジュールを ical に変換する

初回放送スケジュール|番組検索|スカパー!サッカー中継 初回放送スケジュール|番組検索|スカパー!サッカー中継 サッカー(だけじゃなくスポーツ全般)、生放送で見たほうが面白いな〜と思っていて、毎回上の、 スカパーのサッカーの初回放送のスケジュ…

radiko を録音したりする radicast を docker で動かす

soh335/radicast soh335/radicast · GitHub radiko を録音したり、podcast 形式の xml を配信する radicast というのを前に作った。これを動かすには radicast 以外に ffmpeg or avconv rtmpdump swftools が必要だった。 録音する環境を移動しようかと考え…

ansible の role を wercker 上で serverspec で test する

ansible の role を serverspec で test をしてみたいと思い、普段使っている wercker で試してみた。 まず、serverspec と ansible が install されている wercker の box を用意した。 次に sample となる role を作った。 soh335/ansible-role-tmux1.9 so…

ruboty-talk から hubot-zatsudan 作った

soh335/hubot-zatsudan soh335/hubot-zatsudan · GitHub 経緯 DocomoruでBOTと雑に会話する - Qiita DocomoruでBOTと雑に会話する - Qiita これが面白かったので ruboty-talk を hubot に移植してみた。 hubot の話 https://github.com/github/hubot/blob/ma…