Articles in 技術的

スポットインスタンスの中断通知を受けて Rocket.Chat をバックアップする

普段はお仕事で Rocket.Chat を利用しているわけですが、基本的にはスポットインスタンスを利用しています。

スポットインスタンスである以上は避けられないのがスポットインスタンスの中断なわけでして、スポットインスタンスの料金履歴を見ながら比較的料金が安定しているインスタンスタイプとアベイラビリティゾーンを選んでいたわけです。

それでも起きるときには起きるものです。久しぶりにインタラプトが発生してスポットインスタンスが逝きました。

中のデータ?

もちろん、一緒に逝きました。バッドプラクティスを実現していた結果です。

これでは良くない。ということで、きちんと対策を取っていきます。(この記事は大作でもあります。)

READ MORE

S3 のオブジェクトメタデータを HeadObject で取得するには

S3 には、ユーザーが任意の Key-Value データを保管できるオブジェクトメタデータという仕組みがあります。

単純なデータを格納できるので敢えてデータベースを用意しなくても済むというメリットがあります。

そして、S3 API には、オブジェクト自体を取得せずにオブジェクトの情報を取得する HeadObject という API があります。

API のリファレンスにはオブジェクトメタデータも取得できると書いてありますが、Ajax で呼び出したときには実はメタデータは取れません......。

しばらく悩んでいて、GitHub の AWS JS SDK Issues にもレポートが合ったので Watch していたのですがやっと原因がわかりました。

READ MORE

第1回 ぶろぐの勉強会 で発表したよ

元 CMS・ブログの会社の人として、様々なブログプラットフォームが今はあるよね。っていう話をしてきました。

資料はこちら。

さぁ、ブログをはじめよう どこで?どうやって?

昔は囲い込まれるブログサービスが多かったけど、最近は SaaS タイプな感じで色々連携できる仕組みがあったりして選ぶのも楽しいですね。

興味がある人はぶろぐの勉強会にも参加してくださいね。


EC2 Image Builder で MT の AMI を構築

これまでは、Movable Type AMI 版 を使っていましたが、個人無償版 + AWS な構成に変更することに。

Movable Type 環境構築の手間もあって AMI 版だったわけですが、EC2 Image Builder で AMI を作るパイプラインを作ったので、MT のアップデートに合わせて新しい AMI を作っていけばOK。

READ MORE

AWSTOE で ローカルテスト

AWS EC2 Image Builder というサービスがあります。

Production Ready ないわゆるゴールデンマスターになる AMI の構築は結構手間で、実際の環境を構築してからイメージ作成をおこなう手順が必要でした。

EC2 Image Builder は、この作業を自動化してくれるのと、セットアップされた内容の検証も自動でやってくれるサービス。

READ MORE

Installing Django on Leopard with MacPorts

MacBook上のLeopardにDjangoを入れてみたのです。
ソースコードを落としてきてsetup.pyをしても良いのだけれども、MacPortsに有るのでそっちを入れてみることにした。
LeopardはデフォルトでPythonが入ってるんでMacPortsから入ってしまうPythonとの共存がテーマ(そんな大層なものでもない)

read more...


MediaTombをMacBookに入れてみた

オープンソースなDLNAサーバであるMediaTombをMacBookに入れてiTunes配下の曲やらVideoやらをぶちこんでみた。詳しい設定はここ見た。

Finkのパッケージしか無くてMacPortsな人々は男らしくソースからインストールするらしいのでソースを落としてきて./configureして足りないライブラリをMacPortsでインストールしていたんだけど、試しにMediaTombをsearchしてみたら居るじゃないですかwんじゃまそういう事でとMacPortsで入れました。あーラクチン。

全てのファイルをMediaTombに登録するのはさすがに時間が掛かったけれども、PS3からばっちり見えたので早速再生してみたんだけど、一部のムービーは再生できなかったけど大概良い感じ。ステキ。思ってたよりCPU不可は高くない。うむ、いける。

これで新居で仕事部屋にMacを置いて寝室のTVから再生する手筈が整った。後はお金を借りるだけだw


Installing Subversion on Bluehost

実は入っていなかったSubversion

何かとあると便利なSubversion
レポジトリを公開しなくたってOSSのチェックアウトに使えるSubversion
あゝ愛しのSubversion いま君は何処

と言うことで、今使っているホスティングサーバBlueHostへのSubversionのインストールメモ

READ MORE

EntropyなPHPにxdebugを仕込む

  1. http://xdebug.org/よりソースをダウンロード
  2. 解凍後、できあがったディレクトリに移動
  3. Entropy版のphpizeを実行
    /usr/local/php5/bin/phpize
  4. configureを--enable-xdebug付きで実行
    ./configure --enable-xdebug
  5. make
  6. できあがったファイルをextention_dirにコピー
    /usr/local/php5/lib/php/extensions/no-debug-non-zts-20060613/
  7. Entropy版のphp.iniに項目追加
    /usr/local/php5/lib/php.ini

    [xdebug]
    zend_extension=/usr/local/php5/lib/php/extensions/no-debug-non-zts-20060613/xdebug.so
  8. Apacheを再起動してphpinfo()で確認
以上!
元ネタ:http://www.designified.com/blog/article/60/compiling-installing-xdebug-for-php-525-entropych-build-on-os-x-105


MacPortsでApache2を入れる時は

PostgreSQL8.3より前にインストールしましょう。
もし、間違って先にPostgreSQL8.3を入れてしまうと下記のエラーが出ます。

Error: Target org.macports.build returned: shell command " cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_devel_apr/work/apr-1.2.12" && make all " returned error 2

Command output: /bin/sh /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_devel_apr/work/apr-1.2.12/libtool --silent --mode=compile /usr/bin/gcc-4.0 -O2 -DHAVE_CONFIG_H -DDARWIN -DSIGPROCMASK_SETS_THREAD_MASK -no-cpp-precomp -I/opt/local/include -I./include -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_devel_apr/work/apr-1.2.12/include/arch/unix -I./include/arch/unix -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_devel_apr/work/apr-1.2.12/include -o misc/unix/rand.lo -c misc/unix/rand.c && touch misc/unix/rand.lo

In file included from misc/unix/rand.c:39:

/opt/local/include/uuid.h:94: error: conflicting types for 'uuid_t'

/usr/include/unistd.h:133: error: previous declaration of 'uuid_t' was here

make[1]: *** [misc/unix/rand.lo] Error 1

make: *** [all-recursive] Error 1

もし、こうなってしまった場合は・・・/opt/local/include/uuid.hを書き換えて乗り切りましょう><

ファイルを開き、92〜94行目をコメントアウトするとエラーが出ずにインストールできます。

/* UUID abstract data type */
//struct uuid_st;
//typedef struct uuid_st uuid_t;

べ、別に前にインストールしたときと同じエラーが出てビックリした訳じゃないんだからね><


Ubuntu edgy to gusty

自宅のUbuntuのバージョンアップ祭を行った。
それまで使っていたのが6.10 (Edgy Eft)だったので、最新版である7.10 (Gusty Gibbon)には一気に上げられないため一度7.04 (Faisty Fawn)にしないといけなかったのであーる。
そして、このFaisty Fawnが祭の引き金を引くことに……。

READ MORE