来年はもう少し色々読もう。
2013年 12月 の投稿一覧
2013年を振り返る
今年も大晦日になったので振り返りエントリ。
一年を通して
- まずは自分が大きな怪我や病気をせずに過ごせたのは本当によかった。家族に感謝。
- バクツイ 作った!
- REMPやSTORYBOARDSを改良し続けられた!
- SEO的なところにも気を回せる様になってきて、いろいろ手探りではあるけど試せた。
技術的なところ
REMPやSTORYBOARDSをコンスタントに整備していて機能を新規に追加したり、
運営していくのに便利な画面を作ったりしていたところが多くて、利用者数が爆発的に増えているといった状況では残念ながらないのだけど、
確実にサービスを使って喜んでいる人の声が聞こえ始めたので来年も引き続きカイゼンを繰り返していきたいと思います。
そんな中だとccchartというライブラリを使ってグラフを描いたというエントリはそこそこ検索経由とかでも参照されていて
お役立ちエントリになったのかな。と。
- ccchartでグラフを描画する
あと、この2サービスについては運用環境をVPS上のLXCに移したりもしました。
- VPS上のLXCを利用してサーバを再構築した
LXCという言葉だけは知っていたのだけど、実際に自分で手を動かしてみて理解できたところもあったし、構築する際にChefを利用して
構成管理を始めたりと小さいことではあるのだけど一歩前進できたところかなと思ったりしています。
あと、特に目新しい話ではないけど、REMP用のChrome拡張を作ったりもした。はじめてChrome拡張を作ってみたのだけど、
JSだけで完結する世界でブラウザを拡張することができてこれはとても面白かった。
また、利用してもらった人からは好評価だったので、これはこれで嬉しかったり。
「Webサービスとガジェットを組み合わせたものを何か試してみたい!」というのが昨年の振り返りエントリにあったのですが、
会社でちょうど文化祭が企画されてその際に来場者をカウントするガジェットをArduinoで作ってみる
機会がありました。実際にやってみるといろいろ多々課題あり感*1はあったのですが、まずは試すことができたのは非常によかった。
ただ、「これは!」という技術も持たないまま、一層、広く浅く感もあって、ますます自分としてはこれでいいのだろうかという感じが2倍増し位になった
一年になった感は否めないのですが、来年は1つでもそういった技術を持てる様に精進したいと思います。
*1:反省
ストーリーボードが絵文字に対応しました
Markdownでプレゼンテーションを作成できるストーリーボード でエモーティコン(絵文字)が使える様になりました。
GitHub Flavored Markdownに対応しているのでMarkdownを記載する際に
:smiley:
などと記載してもられば、 というアイコンにスライド上では置換されます。
気楽にスライドを華やかにできるので是非お試しください。
vimで指定した範囲の改行を削除する
- 矩形範囲指定をして
J
- なんで忘れるのだろう...
年末を前に。
あらためて。
おもしろき こともなき世を おもしろく すみなすものは心なりけり
心に刻もう。
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を使うことで気楽に実験的に使いたいサーバーを構築することができる様になったのが一番得られて大きなメリットでした。
参考
- さくらVPSでLXCを使って安価に複数台構成を実現する
- Ubuntu Weekly Recipe 第226回 LXCで軽量仮想環境の活用
*1:今、思うとdockerを試してもよかったなとも思った
駅のホーム
駅のホームはせつな系だと思う。
11月に読んだ本
技術書無いのですが、読了していなかったり完全に辞書代わりとして利用されていたりといった具合。
最近のコメント