ブログ引っ越し

こちらに引っ越しました。 blog.tilfin.com

Ubuntu 18.04 上の GitLab CI で Docker イメージをビルドして GCP の Container Registry に登録するまで

環境 さくらVPS に Ubuntu 18.04 をOSカスタムインストールしていて、GitLab CE をインストールします。GitLab CI Runner も同ホストで動かします。 CI で Docker イメージをビルドして、Google Cloud Platform (GCP) の Container Registry にプッシュしま…

さくらVPSで物理HDD障害後にUbuntuのFile SystemがRead onlyになったときの対応方法

さくらインターネットからVPSの障害報告があり、サービス復旧の連絡があり、SSHできたので気にしてなかった。 しかし後日 unable to open /var/xxx: Read-only file system みたいな感じで軒並みVPS内のサービスが止まってしまっていた。 問い合わせところ既…

RubyでYARD定義を使って実行時にメソッド引数と戻り値の型チェックを試みる

(Ruby のカンファレンスの度に、毎度話題になる?) Ruby に型が欲しい件ですが、個人的な見解を書いておこうと思います。ちなみに私は RubyKaigi 2018 に参加しておりません。Twitterのタイムラインでの賑わいを見ていただけです。 最近、Swift を触ってて…

構造化ログのススメとRuby向けロガーOugaiを作った理由

構造化ログ 構造化ログ とは、機械的に処理しやすいログのことであり、その機構(ロギング)である。 英語圏では、 Structured Logging と表記される。たとえば Google Cloud の Stackdriver のドキュメントには下記の説明ページがあります。(残念ながら執…

Transgate という Node.js 製エージェントベースのタスクフローフレームワーク

Transgate というNode.js製のエージェントベースのタスクフローフレームワークを作った。 どうして作ったのか? 自宅の家電を操作するためのプログラムを書いていたら、色々なフローがごちゃごちゃになったから。 Dysonのファンから定期的に温度湿度を取得し…

Windows 上に Python 環境を構築して Tensorflow GPU + Keras で日本古典籍字形の文字認識を試すまで

tilfin.hatenablog.com こちらの記事で書いたように Windows で Tensorflow を GPU で試してみました。この中で Python をオフィシャルのインストーラから入れて virtualenv で動作環境を作成したのですが、後々 matplotlib や OpenCV を入れようとしたとこ…

Ubuntu に OpenCV をインストールして Python で画像から顔をクロップするまで

以前に Tensorflow のセットアップをして、付属するサンプルを試すところまでして終わっていましたが、 実際に何か試してみないとということで、よくある顔判別をやるためにデータを用意する仕組みを作ろうとしてます。 Python 3 と OpenCV 3 を使って画像か…

TensorFlow が正式に Windows サポートして GPU が使えたので試してみた

Google から正式に Tensorflow が Windows 対応して GPU が使えるとのアナウンスがありました。 https://developers.googleblog.com/2016/11/tensorflow-0-12-adds-support-for-windows.html セットアップ環境 OS) Windows 10 Pro GPU) NVIDIA GeForce GTX 9…

AWS IAM Switch Roleのリストを増やすChrome Extensionを作った

AWS Management Console において、AWSアカウントから他のAWSアカウントにスイッチロールできますが、これの最近の履歴が5つまでしか表示されない。あくまでも最近使ったものという位置付けなんだと思います。 某仕事上、1つのアカウントから多数の他のアカ…

GitLab CI から Google Cloud Pub/Sub 経由で自動デプロイ

自分用のちょっとしたWebサービスをさくら VPS環境に構築しています。こんなオレオレサービスでも Git リポジトリの master ブランチに push したら自動的にデプロイできるようにしたい。毎回 SSH して手動で更新はしたくない。 一般的な方法だと、どうして…

TweetDeckライクなGitHubとBacklogのタイムラインビューワーを作ってみた

GitHub のダッシュボードが絶望的に使いづらいので、タイトル通りタイムラインビューワーを作りました。 tilfin.github.io GitHub のイベントダッシュボードは「誰が何をしたのか」はわかるのですが、結局情報が不足してるためにわざわざ詳細ページに飛ぶ必…

AWS EC2にインスタンス一覧から選択してSSHできるスクリプトを作った

EC2 に SSH する度に AWS コンソールからインスタンスの詳細選んで Elastic IP をコピペしてキーファイルを指定して実行というのが怠いので便利スクリプトを作ってみた。 単に SSH 第1引数にプロファイル名を指定します。 ~/.aws/credentials に定義されてい…

Mongoose で完全なる ES6 Promise を使う

現行の Mongoose 4.2.4 ではネイティブ Promise がサポートされていない。Query オブジェクトの exec メソッドを引数無しで呼び出すと、Mongoose 独自の Promise が返るがチェインの中で利用すると上手く動かなかった。 http://mongoosejs.com/docs/api.html…

Elastic Beanstalk へ CI からデプロイ時に特定コンフィギレーションをスキップするには

AWS

CI サービスから自動的に AWS Elastic Beanstalk にアプリケーションをデプロイしたいときに .ebextensions フォルダに置いたコンフィギレーションファイルをスキップさせたいときがある。 awsebcli の eb deploy コマンドでは、Git リポジトリのカレントブ…

iOS 9 のコンテンツブロックで始まる HTTP 2.0 時代の Web 広告

iOS 9 から Safari の Extension 機能としてコンテントブロックの実装が可能になった。 developer.apple.com Web ページ内の特定の HTML 要素を見えなくしたり、特定のURLのロードをブロックする仕組みを Apple は ブラウザ Safari に提供した、それだけであ…

Ubuntu で GitLab を Omnibus に移行し GitLab CI も使い始める

インストールが大変という定評のあった GitLab ですが、マニュアルインストールとアップグレードで凌いでいました。 GitLab CI を導入しようと試す過程で、サブディレクトリ運用だと OAuth 連携が上手くいかないことがわかりました。 現在はオールインワンの…

Xcode 6.1 で自家製フレームワークを追加する方法

適当に Xyz.framework を追加するだけでは、コンパイルは通っても起動後に下記のエラーになっていた。 dyld: Library not loaded: @rpath/Xyz.framework/Xyz Referenced from: /Users/xxxx/Library/Developer/CoreSimulator/Devices/xxxx-xxxx-xxxxxx/data/C…

Acer Aspire easyStore H340 に Windows Server 2012 R2 Essentials を入れる

あらすじ もう購入して6年前ですが、下記の記事で書いた Acer Aspire easyStore H340 という Windows Home Server の4ドライブベイの NAS を使っていました。 Windows Home Server 搭載の Acer Aspire easyStore H340-S1 レビュー - tilfin's note とうに W…

Ubuntu で Unicorn で動かす Redmine を 2.6 にアップデートしたときのメモ

RMagickに必要なパッケージインストール RMagick系のパッケージが要るといわれたので入れておく。 # apt-get install graphicsmagick-libmagick-dev-compat libmagickcore-dev libmagickwand-dev 新しい Redmine の展開 新しい Redmine のパッケージをダウン…

Ubuntu で cron でスクリプトをセットするときのパス解決

rbenv や nodebrew で実行プログラムを管理してる場合、ユーザの HOME 下に環境を構築するため .bashrc や .bash_profile などでパスを通します。 しかし、crontab でそのままスクリプトを定義しても、ruby や node にパスが通っておらず動かない。調べたら …

Nginx で IE 8.0 以下には jQuery のバージョン 1 を返すようにする

jQuery バージョン 2 から IE 9 未満のサポートが切り捨てられて、実装的にもファイルサイズ的にも軽くなっています。 ただそうは言っても IE 8 以前のアクセスもあるため、サーバ側でブラウザに合わせて、jQuery を切り替えて返してしまおうという設定をし…

さくら VPS に Linux Mint 17 (Xfce) を入れて VNC でデスクトップを利用する

インターネット上に常時起動しているデスクトップ環境があると色々と重宝します。 さくらインターネットの VPS に Linux Mint 17 をセットアップしたのでそれのメモです。 ISO ダウンロード デスクトップは軽量な方がいいので、Xfce を選択しました。 Linux …

iOSアプリエンジニア養成読本を共著させていただきました

技術評論社さんから刊行されますiOSアプリエンジニア養成読本[クリエイティブな開発のための技術力/デザイン力/マインドを養う!]を執筆させていただきました。 日頃お世話になっているクラスメソッド株式会社のエンジニアの諏訪さん、平屋さん、平井さ…

リモートワーク

Rebuild: 32: How We Work Remotely (Naoya Ito) この回で 37signals(現:Basecamp)と GitHub を中心にリモートワークについて話がありました。 自分もここ2年ほどリモートワーク中心で過ごしてきたので色々と思うところがありました。 その前に紹介されて…

S3バケットにローテーションしてバックアップする serverbackup-s3

AWS

さくら VPS サーバをいくつか借りていて、ホストの設定ファイルやデータべ―スダンプなどのバックアップを AWS S3 に置いています。S3 へのアップロードは無料なので、それなりに大きなファイルを毎日バックアップしても心配する必要はありません。 元々個別…

Ubuntu で Nginx のキャッシュヒット率を Munin でモニタリング

Nginx をリバースプロキシとして利用していて、さらにキャッシュ設定をしています。実際どれくらいプロキシキャッシュの効果があるのが、Munin で集計して監視してみる設定方法です。 前回は Nginx 自体の状態を監視設定してみました。 Ubuntu で Nginx のス…

Ubuntu で Nginx のステータスを Munin でモニタリング

さくら VPS の Ubuntu 12.04 LTS を入れたホストで Munin による Nginx の監視を始めたので設定方法をメモしておく。 Node サービスのみセットアップ。 $ sudo apt-get install munin-node Nginx - stub_status 設定 Nginx には指定したパスを HTTP 叩くと自…

Xcode 5 で既存プロジェクトを XCTest に乗り換えるときに嵌ったこと

iOS

すんなりできたこと テスト用ターゲットの Link Binaries With Libraries で SenTestingKit.frameworkを外して、XCTest.frameworkを追加した。 既存のテストを Edit → Refactor → Convert to XCTest... でコンバートした。 嵌ったこと テストケースが実行さ…

GitHub に公開した Node.js スクリプトに Travis CI を導入し Coveralls でカバレッジ管理するまで

GitHub に httpreqtest という Node.js で動くクライアントのHTTPリクエスト内容を JSON でそのまま返すスクリプトを公開した。非公開のトリッキーな仕様の API サービスに対して、クライアントを作るにあたり、実装チェックする必要があり勢いで作った。 こ…