2013年 12月 の投稿一覧

12月に読んだ本を振り返る

来年はもう少し色々読もう。


hideackの本棚 - 2013年12月 (11作品)
僕のアルバム
植田正治
読了日:12月14日
評価5


powered by booklog

2013年を振り返る

今年も大晦日になったので振り返りエントリ。

一年を通して

  • まずは自分が大きな怪我や病気をせずに過ごせたのは本当によかった。家族に感謝。
  • バクツイ 作った!
  • REMPSTORYBOARDSを改良し続けられた!
    • SEO的なところにも気を回せる様になってきて、いろいろ手探りではあるけど試せた。

技術的なところ

REMPSTORYBOARDSをコンスタントに整備していて機能を新規に追加したり、
運営していくのに便利な画面を作ったりしていたところが多くて、利用者数が爆発的に増えているといった状況では残念ながらないのだけど、
確実にサービスを使って喜んでいる人の声が聞こえ始めたので来年も引き続きカイゼンを繰り返していきたいと思います。

そんな中だとccchartというライブラリを使ってグラフを描いたというエントリはそこそこ検索経由とかでも参照されていて
お役立ちエントリになったのかな。と。

あと、この2サービスについては運用環境をVPS上のLXCに移したりもしました。

LXCという言葉だけは知っていたのだけど、実際に自分で手を動かしてみて理解できたところもあったし、構築する際にChefを利用して
構成管理を始めたりと小さいことではあるのだけど一歩前進できたところかなと思ったりしています。

あと、特に目新しい話ではないけど、REMP用のChrome拡張を作ったりもした。はじめてChrome拡張を作ってみたのだけど、
JSだけで完結する世界でブラウザを拡張することができてこれはとても面白かった。

また、利用してもらった人からは好評価だったので、これはこれで嬉しかったり。

「Webサービスとガジェットを組み合わせたものを何か試してみたい!」というのが昨年の振り返りエントリにあったのですが、
会社でちょうど文化祭が企画されてその際に来場者をカウントするガジェットをArduinoで作ってみる
機会がありました。実際にやってみるといろいろ多々課題あり感*1はあったのですが、まずは試すことができたのは非常によかった。

ただ、「これは!」という技術も持たないまま、一層、広く浅く感もあって、ますます自分としてはこれでいいのだろうかという感じが2倍増し位になった
一年になった感は否めないのですが、来年は1つでもそういった技術を持てる様に精進したいと思います。

*1:反省

ストーリーボードが絵文字に対応しました

Markdownでプレゼンテーションを作成できるストーリーボード でエモーティコン(絵文字)が使える様になりました。

GitHub Flavored Markdownに対応しているのでMarkdownを記載する際に

:smiley:

などと記載してもられば、f:id:hideack:20131222191258p:plain というアイコンにスライド上では置換されます。

気楽にスライドを華やかにできるので是非お試しください。

年末を前に。

あらためて。

おもしろき こともなき世を おもしろく すみなすものは心なりけり

心に刻もう。


wkhtmltoimageをChefで入れてスクリーンショットを撮ってみる

ストーリーボードでスライドページのスクリーンショットを取りたい。
という話があって、wkhtmltoimageを使ってみたらどうだろうと朝起きたら
issueにコメントが付いていた*1のでインストールしてみました。OSはUbuntu 12.10です。

wkhtmltoimageは、webkitのエンジンを使ってページをレンダリングしてそれをJPGやPNG画像として保存することができます。

で、例によってChefを使ってレシピを下の様に書いてみました。

# default.rb
%w{libxrender1 libfontconfig1 otf-ipafont-gothic libxext6}.each do |pkg|
package pkg do
action :install
end
end
bash "wkhtmltoimage install." do
user "root"
cwd "/tmp"
code <<-EOH
    wget 'https://wkhtmltopdf.googlecode.com/files/wkhtmltoimage-0.10.0_rc2-static-amd64.tar.bz2';
    tar xjfv wkhtmltoimage-0.10.0_rc2-static-amd64.tar.bz2
    mv wkhtmltoimage-amd64 /usr/local/bin
  EOH
end

やっていることとしては、wkhtmltoimage自体、バイナリがGoogle codeに圧縮されているものがあるので、それを引っ張ってきて配置するだけで、
それに依存するライブラリやスクリーンショットを撮る際に必要な日本語フォントをインストールしています。

インストールされた環境から、以下の様なコマンドを打つことでスクリーンショットを保管することができます。

$ wkhtmltoimage-amd64 --javascript-delay 5000 \
--width 800 --height 600 \
--format png --quality 70 http://www.remp.jp test.png

上の例では、

  • JavaScript実行完了から5秒待ってからスクリーンショットを撮る
  • 画像サイズは800x600
  • 画像クオリティは最高を100とした場合に70を指定
  • 画像フォーマットはPNG

をオプションで指定しています。

実際にスクリーンショットを撮ってみた画像は以下の様な形。

*1:朝起きるとやること決まってて便利

node.jsを公式リポジトリからChefを使ってインストールする

Ubuntu 12.10にChefを利用してnode.jsをインストールしたかったのですが、単に apt-get install すると0.6.19と古いバージョン入るので、リポジトリを指定して以下の様なレシピを用意することでインストールできます。

# site-cookbook/nodejs/recipes/default.rb
%w{software-properties-common python-software-properties python g++ make}.each do |pkg|
package pkg do
action :install
end
end
execute "add-apt-repository -y ppa:chris-lea/node.js" do
user "root"
end
execute "apt-get update" do
user "root"
end
%w{nodejs}.each do |pkg|
package pkg do
action :install
end
end

もう少しスマートになる様な気もするのですが...。インストールされたバージョンは以下の様な形になります。

remper@host:~$ node -v
v0.10.23
remper@host:~$ npm -v
1.3.17

VPS上のLXCを利用してサーバを再構築した

いままで個人で運用しているアプリケーションはレンタルサーバーだったり、PaaSだったり、データベースサーバーだけはVPSで動かしていたりと散った構成になっていたので、重い腰を上げて1箇所に集約する作業を行いましたのでその際のメモ。

まずVPSをConoHaで契約をしてここに全て集約し、単にVPS上に寄せるだけではなくてLXC*1を利用して仮想環境(マシン)を設けてそれぞれでアプリケーションサーバやデータベースサーバを稼働させました。イメージとしては、以下の様な環境。

LXC自体はubuntuであれば、

$ sudo apt-get install lxc

でインストールされて、これだけでLXCを構築する準備ができます。LXCコマンドのリファレンスはWeb上に十分ありますが、簡単にここへも自分の備忘録を兼ねてメモしておきます。

以下、sample という名前のコンテナを作成する例で記載。

処理例 コマンド
コンテナ作成 MIRROR=http://jp.archive.ubuntu.com/ubuntu lxc-create -t ubuntu -n sample
コンテナ一覧 lxc-list
コンテナ起動 lxc-start -n sample -d -c /var/log/lxc-console.log
コンテナコンソール接続 lxc-console -n sample
コンテナシャットダウン lxc-shutdown -n sample
コンテナ強制終了 lxc-stop -n sample
コンテナ完全削除 lxc-destroy -n sample

各作られたコンテナの設定はubuntuの場合は /var/lib/lxc/(コンテナ名) で記録されています。

LXCの構成管理

各LXCはChefで構成管理をしていてコンテナを作りさせすれば各アプリケーションやデータベースサーバ向けのレシピを適用することですぐにサーバが構築される様にしていて、今回だとPadrinoアプリケーション用サーバのレシピ、MongoDB用のレシピ、MySQL用のレシピを作ったりしています。

やっていることは対象のLXCへSSH接続できる様にするための公開鍵の設定だったり、パッケージマネージャを利用してインストールしたりというとてもシンプルな内容です。

得られたメリット

まずは散っていたサーバを寄せることができたこと。あと、LXCを使うことで気楽に実験的に使いたいサーバーを構築することができる様になったのが一番得られて大きなメリットでした。

参考

*1:今、思うとdockerを試してもよかったなとも思った

11月に読んだ本

技術書無いのですが、読了していなかったり完全に辞書代わりとして利用されていたりといった具合。


hideackの本棚 - 2013年11月 (5作品)
powered by booklog