TKC Works

ギジュツ的なメモ、読書感想文など

Azure CosmosDBとFunctionsのbind & multi insert

速度もデータ量も要求されている時にはAzure Cosmos DBを使いたい。 FunctionsとCosmosDBの統合は公式にサポートされているのでいい感じにサーバーレスな仕組みが作れるかと思った。 が、ドキュメントを見ると1件ずつしかinsertできない。 https://docs.micr…

脱webpackerしてみた

今風のフロントエンド開発環境をサクッと構築してくれたwebpackerだけど、(3系からかな?)webpackに関する各種設定が@rails/webpackerパッケージに内包されてしまってカスタマイズがし辛くなっていた。 実際ぶち当たった問題としては、fontファイルが読み込…

RedashのAzure Table StorageのQuery Runnerを作った

Redash Advent Calendar 2017 の9日目の記事になります。 作ったのがちょうど12月でまだ空きがあったのでついでに登録してみました。 使えるデータソースが多いことを理由にRedashを導入しようと動いているところですが、Azure Table Storageには対応してな…

GitlabのMySQLをPostgreSQLに移行した

Gitlabの8系までは大丈夫だったと思うけど、9系に上げると4バイト絵文字の読み書きでエラーになるようになってしまった。 文字コードをutf8mb4に変えてみたが、うまくマイグレーションできなかったのでいっそPostgreSQLに変えてみた。 gitlabのリポジトリに…

Docker for Macのディスク問題への対処

問題 Docker for MacでコンテナをVolumeして使うと辛いですよね。遅いし…。 特に困ったのはイメージビルド時に母艦のディスクは余ってるのにディスクが足りないというエラーがでてDockerfile内のapt-get updateすらコケるようになったこと。 https://github.…

「なぜ、あなたの仕事はおわらないのか」を読んだ

なぜ、あなたの仕事は終わらないのか スピードは最強の武器である作者: 中島聡出版社/メーカー: 文響社発売日: 2016/06/08メディア: Kindle版この商品を含むブログ (4件) を見る 締め切りに慌ててラストスパートを頑張るのではなくスタートダッシュを決める…

「なるほどデザイン」を読んだ

なるほどデザイン〈目で見て楽しむ新しいデザインの本。〉作者: 筒井美希出版社/メーカー: エムディエヌコーポレーション発売日: 2015/07/31メディア: 単行本この商品を含むブログ (4件) を見る 仕事でWebアプリケーションを何個か作ったりメンテしたりして…

『コンピュータで「脳」がつくれるか』を読んだ

コンピューターで「脳」がつくれるか作者: 五木田和也,青木健太郎出版社/メーカー: 技術評論社発売日: 2016/09/27メディア: 単行本この商品を含むブログ (1件) を見る バズワード化してしまって、なんでもかんでもAIって言うようになった昨今、一時の「クラ…

RspecでJSONをPOSTするコントローラをテストする

APIのときとかJSONをPOSTするテストはこのようにかけばOK。 post :your_method, { hello: 'world' }.to_json たぶんRails5ならこんな警告がでる DEPRECATION WARNING: ActionController::TestCase HTTP request methods will accept only keyword arguments …

dockerでzabbixを動かす

公式のイメージ一覧 を見ると、どれ使ったらええねん!って思いました。 結論は全部で4イメージ必要でした。サンプルのgistを貼っておきます。 ※というかmonitoringartistのほうを使う人の方が多そう。 dockerでzabbixを動かす 例えばzabbix-web-nginx-mysql…

プライベートDocker Registryの移行作業

古いプライベートDocker Registryサーバーを移行した。新サーバーには最新のイメージを使った。 Docker RegistryのバージョンV1系とV2系ではデータ構造に互換性がなく、イメージを1個ずつ旧サーバーからPull&新サーバーへPushしなくていはいけないらしい。 …

ISUCON6予選感想

友人のnise_nabeとtatsukiと出て惨敗してきました。 自分たちがどんな感じだったかざっくり書いていくと 1週間前に集まってMTG&過去問を解いて練習 練習はPHPで みんなスキルセットがバラける中、全員がちょっとでもやったことがあったのがPHP 練習でもなか…

Dockerで溜まったゴミを削除する

コンテナを起動しようとするとno space left on deviceというエラーで立ち上がらなくなった。 ホストのMacのストレージは100GB以上空きがあったから、Docker for Macが内部的に確保した領域なのかな? Dockerでno Space Left on Deviceが出てbuildできなくな…

Dockerで作るシンプルなRails開発環境

ずっとローカル開発環境はVagrantを使っていましたが、Docker for Macがリリースされてからは徐々にDockerにしています。 コードはIDE等を使って書いたほうがいいと思っているのでVagrantのsynced_foldersを好んで使っていました。 Dockerの入門記事ではよく…

SOFT SKILLSを読んだ

エンジニア界隈で少し話題になっている(?)SOFT SKILLSを読んだ。 SOFT SKILLS ソフトウェア開発者の人生マニュアル作者: ジョン・ソンメズ出版社/メーカー: 日経BP社発売日: 2016/06/02メディア: Kindle版この商品を含むブログ (2件) を見る 自己啓発本はそ…

フィリピン語学留学の感想

たった2週間だったけど英語を勉強するためフィリピンに留学してきたので感想を書きます。 学校選び 俺セブなんかを参考にコスパで選んだ。 日本人経営か韓国人経営かで食事とかサポートがかなり違うようなのでそこだけ注意。 僕が選んだのはQQEnglish QQEは…

AnsibleでMac環境構築(2016年4月)

1年前くらいにAnsibleを使ってmacの初期設定をやったけどplaybookしか残してなかったので改めて手順をメモ。 気がつけばAnsibleでHomebrewが対応されていたり、homebrew-caskが本家に取り込まれていたりしてたので2016年4月現在のやり方でplaybookなどは修正…

Ansible Inventoryファイルでオプション設定

最近はAnsibleをちょこちょこ試してみています。 例えばVagrantで仮想マシンを普通に立ち上げるとポート番号とか認証キーがデフォルト値じゃないので.ssh/configに以下のように書いたりする。 Host ansible_sample HostName 127.0.0.1 User vagrant Port 222…

CouchbaseのPHP SDKでハマったこと

Nginxとphp-fpmの組み合わせで、Phalconで作ったWebアプリケーションからCouchbaseに接続してたんだけど、 "502 Bad gateway"とか "PHP Fatal error: Allowed memory size of ..."が頻発して困った。 とりあえずこの辺を参考にして、 http://webhoric.com/we…

Swiftで分割したStoryboardの呼び出し方

チームでアプリを開発する場合や一つのStoryboardが大きくなりすぎるのが嫌な場合など、Storyboardを分割したくなるけど、じゃあどうやって呼び出すの?となるので書いておく。 基本的にはObjective-Cの時と同じ UINavigationControllerを使っている場合はち…

ファイル単位でARCを有効にする

ファイル単位でARCを有効にする cocos2d-xでもSocket.IOでリアルタイム通信をやろうとした場合、 v3には標準のクラスに追加されたからそれを使えばなんとかなる。 ただし、Socket.IOのバージョンは0.9で1.0には対応してないしWebSocketオンリー。 C++でよい…

UnityでiOSでもAndroidでもSocket.IOでリアルタイム通信

僕は別にアプリエンジニアじゃなかったんだけど、やらないといけなくなり、検証したのでメモ。 (Node.jsはv0.10.28、Socket.IOは0.9.17、Unityは4.3.4、iOSは7.1.2、Androidは4.4.2で検証) スマホでSocket.IOを使いたい場合、ネイティブではこの辺のライブラ…

NginxによるWebSocketの負荷分散

Node.js、Socket.IOを使ってリアルタイムなWebアプリなんかを作っていて、分散構成はどうすればいいのか試行錯誤しているメモ。 Nginxは1.3.13からWebSocketのプロキシに対応したので以下を参考にサクッとやってみる。 http://nginx.org/en/docs/http/websoc…

sentinel利用時の注意点

ipの変更があった時にsentinel.confのsentinel monitorで新しいmasterのipを指定して再起動したが、勝手にslaveに変えられてしまってハマった。 sentinelはfailover時、以下のように情報をsentinel.confに追記する。 # Generated by CONFIG REWRITE dir "/ho…

Webサイトの負荷テスト参考記事など

apache bench http://blog.verygoodtown.com/2012/05/apache-bench-ab/ wrk http://memo.yomukaku.net/entries/kYIVkXx jMeter http://www.techscore.com/tech/Java/ApacheJakarta/JMeter/index/ http://sy5.sakura.ne.jp/jmeter/ref/ 秒間どれくらい処理が…

sentinel.confの隠し(?)設定

デフォルトでは出てこない、コメントアウトもされていないけど以下は効いた。 logfile "/var/log/redis/sentinel.log" daemonize yes ベースはRedisだし、使いまわせる設定が他にもありそう。

OpenRestyに乗り換え

以前こんなエントリー書きまして、ちょっとしたAPIを作っていたんですが、 redis2-nginx-moduleがRedis2.0までのコマンドにしか対応しておらず、SCANとか新しめのコマンドが使えない自体に。。 まあページトップに大きく2.0と書いているし、GitHub見ても開発…

NginxとLuaとRedisと

NginxはRailsで作ったサービスを公開する時にプロキシとして使うとか、そんな感じでしか使ったことがなかったけど、LuaとRedis組み合わせると何かいろいろ出来そうということでお試し中。この組み合わせならきっと爆速。 http://d.hatena.ne.jp/hiboma/20120…

VagrantとDigitalOceanを試してみた

http://blog.glidenote.com/blog/2013/12/05/digital-ocean-with-vagrant/ このエントリーを参考にVagrantでDigitalOceanを使うのを試してみた。 Vagrant便利でよく使うんだけど、VirtualBoxでMBAだと爆音激熱状態でちょっとつらい。Chefをちょっと使えるよ…

Berkshelf v3.0の変更点など

Berkshelfはv2.0とv3.0でけっこう変わっている。 ボクはVagrant上で何か試したい時にちょっと使う程度だが、係る部分はメモっておく。 Vagrantのpluginはvagrant-omnibusが必要。vagrant-berkshelfは使っていない。 今までは Vagrantfile config.omnibus.che…