ここ一年半くらい、このブログが乗っていたサーバをメンテンスしていませんでした。4月に Ubuntu 14.04 LTS が EOL になることと、サーバの面倒をみることに疲れてしまったので、このブログを CloudFront+Heroku に移しました。
さくらのVPSに引っ越したのは [2013-05-27-2] だったので、5年半くらい使っていたことになります。このブログ自体は静的コンテンツですが、nginx のログを fluentd に流したり、各種メトリクスを kibana や GrowthForecast で可視化したり、ちょっとしたアプリケーションを動かしたり、いろいろ実験や素振りをすることが出来ました。今までありがとう。
さて、引っ越し前後の環境の変化です。
《続きを読む》
こちらのパクリです。
「この記事に言及しているこのブログ内の記事」一覧を表示するようにしました - たつをの ChangeLog
修正前
修正後
ずっとやろうとしていて、今日やっとやる気になりました。パールツライデス
chalow スクリプトがまた秘伝のタレ化してしまった...。
[2014-05-03-1]のバージョンアップ。
http://masutaka.net はcapistranoでデプロイしてますが、
http://masutaka.net/chalow はchalow+rsyncを実行する
mkchalow[2009-06-14-3]というコマンドでアップロードしてました。
ローカルのChangeLogメモをchalowで変換しrsyncするので、自分の
MacBook Airと会社のMac miniの複数環境でブログを書くと、過去記事が
消える可能性が出てきます。
そういうのを気をつけるのが面倒なので、capistranoでのデプロイ時に
chalowコマンドも実行するようにしました。
《続きを読む》
http://masutaka.net/ 以下の静的なhtmlはGitHubのprivateリポジトリで
管理しており、変更があったらrsyncでコピーしてました。
あまり変更しないのでそんなに困ってませんでしたが、ちょっとダサいの
とCapistrano3を使ってみたかったので、エイヤッと導入しました。
《続きを読む》
このブログはほぼ静的コンテンツなので、置き換えるメリットはほぼあり
ません。でもいろいろ遊びたかったので置き換えました!
◆置き換え前→さくらのレンタルサーバ [2009-05-17-4]
リアルサーバ。
他の人と/homeを共有する。
コントロールパネルからメールアドレスを作ったり、アクセス解析出来る。
カスタマイズ性はほぼない。
OSはFreeBSD 7.1-RELEASE-p16
WebサーバはApache/1.3.42
年間5,000円(スタンダードプラン)
◆置き換え後→さくらのVPS
仮想サーバ。
ユーザは自分だけ。
コントロールパネルとかはない。
カスタマイズしまくり。
OSはUbuntu12.04 LTSにした。[2013-05-19-1]
Webサーバはnginx/1.1.19にした。
年間16,280円(プランは2G。石狩リージョン)
結構真面目にサーバを構築しました。
参考にしたのはもちろん『入門Chef Solo』[2013-04-22-4]
基本的にVagrantとserverspecで検証しつつレシピを書いたので、本番環境
で悩むことは少なかったです。時代は進みましたね。
Webサーバはnginxにしました。Apacheに比べて、設定がシンプルで惚れま
した。あと、ごく一部で使っているcgi用にfcgiwrapをインストール。
chef-soloで構築してみた疑問や課題はこんな感じ
・パッケージ全体のupgradeはどのタイミングでやれば良いのか?
・他の人のChef-soloリポジトリを知りたい。Vagrantでも真面目にテスト書いている?とか。
chalowはChef-soloでは管理してません。まあ、Webアプリケーションなの
で、デプロイ対象とかそっちの話だと思う。今は自作のmkchalowコマンド
でアップロードしてます。[2009-06-14-3]
ちょいちょい必要になったので作りました。
Githubのリポジトリ放置してるなあ。。
順番に説明。
twitter
Twitterアカウントへのリンクを作るだけです。Twitter Anywhereは去年
の12/6をもって使えないことになったので、代わりを探してましたが、こ
の辺で妥協。
tweet
埋め込みツイートを挿入します。今まで公式の方法で取得しHTMLをベタ
に書いてましたが、これだけで表示出来るようです。
speakerdeck_f
Speaker Deckのプレゼンを表示します。
miil
Miilの画像を表示します。画像は大きさを指定出来ますが、必ずそのサ
イズを取得出来るとは限らないそうです。
省略すると240x240になります。
Instagram
Instagramの画像を表示します。
サイズはt(thumbnail), m(medium), l(large)を指定出来ます。
省略するとmになります。
追記(2013-02-06):
Instagramを追加しました。
http://dlvr.it/ からの通知で気づいたのですが、このブログが1日半ほど
インターネット上から消えていました。
OSXをMountain Lionにバージョンアップしたら、Perlのバージョンが上が
り、HTML::Templateがなくなったことが原因でした。
CPANからインストールして解決しました。
cpanの使い方の整理 « taichino.com
このブログはChangeLogメモという1つのテキストファイルから、chalowと
いう変換ツールを使いhtmlに変換しています。
この作業を自動化した自作のmkchalowスクリプトの作りが甘かった。。自
分しか使わないツールと言えども、エラー処理はちゃんとした方が良いで
すね。ブログが生きているかのチェックも。
ちなみにChangeLogメモを始めたのはこの記事がきっかけです。
[2001-12-30]から書き続けていて、23,000行になりました。
横着プログラミング 第1回: Unixのメモ技術
最近はEvernoteに全部まとめる人が多いみたいですが、技術者だったら絶
対ChangeLogメモの方が良いですよ。手に馴染んだエディタが使えるし、整
理する必要がないので。
ただchalowを使うかは微妙なところかも。やはり全てを自分が面倒見るの
で、時間がないとなかなかメンテしきれません。ChangeLogをWordpressと
かTumblrにインポート出来れば良いのですが。それも時間が..w
Amazon へのリンクに楽天へのリンクも追加しました。
[を] ASIN から楽天ブックスのページへ飛ばす CGI
またもや、たつをさんのコピーです。
楽天のアフィリエイト ID とデベロッパー ID は
http://webservice.rakuten.co.jp/ から確認できます。
楽天 API って、こうやって使うのですね。へえ〜
って、今まで存在を知らなかったけど。。。
- 楽天ブックス書籍検索 API
http://webservice.rakuten.co.jp/api/booksbooksearch/
TODO:
NOT FOUND! だったら、search.rakuten.co.jp を使いたいです。
追伸:
MacOSX で LWP::Simple がなかったら、p5-libwww-perl をインストールす
れば良いです。"sudo port install p5-libwww-perl"
http://zenback.jp/
[を] zenback を設置した
この記事を見たときははてブしただけでしたが、
[を] zenback の素晴らしいのは設置する人以外はアカウント取得の必要がないところ
この記事を見て勢いで移行してしまいました。
設置はすごく簡単で、zenback に新規登録すると提示されるコードを、ア
イテム毎のページのテンプレートにコピペするだけです。便利なサービス
は外注するに限りますね。
DISQUS を使い始めたのは [2010-05-03-1] です。一年も経たずに移行とな
りました。hatana_bookmark_anywhere.js [2009-11-22-1] ももちろん移行
です。
追記(2011-03-05):
やっぱり DISQUS は復活させました。リアクションは zenbak にお任せな
ので、もちろん OFF です。DISQUS の管理画面から変更できます。
DISQUS は標準で IntenseDebate, JS-Kit, Movable Type, WordPress のコ
メントをインポートすることが出来ます。「くっつき BBS」のインポート
は当然サポートされていません。
幸い、WWW-Disqus という DISQUS API を叩く Perl モジュールがあったの
で、これでインポートすることにしました。ありがたいことです。
これを使えば「くっつき BBS」に限らず、どのコメントシステムからも移
行は可能だと思います。
《続きを読む》
[2008-09-29-1] のバージョンアップ。
今まで「くっつき BBS」を自サイト内に構築し使っていましたが、スパム
対策が面倒になってきた、コメントを書いた人が自分のコメントを修正で
きない等の理由から、DISQUS という外部コメントサービスを使うことにし
ました。
同様にトラックバックも「くっつきトラックバック」を使っていましたが、
こちらは廃止しました。実はトラックバックはあまり好きではないのです。
(DISQUS の管理オプションを ON にすれば一応使えます。)
DISQUS のアカウントを作ると、自分のコメントの一覧表示や編集、アバター
機能やコミュニティ機能が使えるようになりました。(アカウントを作らな
くても投稿はできます。)
DISQUS アカウント以外にも Facebook, Twitter, OpenID でもログインで
きます。(ただ、Facebook は何かうまくいきません...。)
コメントを投稿するついでに Twitter や Facebook にも送信出来るように
なりました。(コメントが活発になることを期待。)
Twitter や FriendFeed でリアクションがあれば、コメントの下に表示さ
れるようになりました。
各コメントに返信すると、スレッド化するようになりました。
管理者はスパムのことを気にしなくてよくなりました。
管理者は全記事のコメントを一覧表示出来るようになりました。
最近頂いたコメントは左側にあるウイジェットの RECENT で表示出来ます。
しかし、タイトルに日本語を含む記事にコメントすると、文字化けます。
文字化けるのは "2010-03-06-1 at chalow" の部分です。(この例では
DISQUS API を使ったため文字化けは発生していません。)
過去のコメントは既に移行済みです。これが一番大変でした。次の記事
[2010-05-03-2] で説明します。
参考情報:
Ogawa::Buzz: このブログのコメントシステムにDISQUSを使い始めました
このブログにはコメント欄があるので、時々コメントを残してもらえるの
ですが、はてなブックマーク(以下、はてブ)にも良いコメントがあります。
そこで、アイテム毎のページにはてブのコメントを表示させました。今の
ところ、一番多いのは [2009-10-04-1] の 509 です。この時は一日で
10,000 アクセスもありました。(普段は 100 アクセス程度です。)
以下、設置手順です。
《続きを読む》
アイテム毎のページ(例: [2009-09-03-1])に Google Adsense を表示する
ようにしました。
Google Adsense は、広告配信サービスの一つです。サイトに合った広告を
配信するのが特徴のようです。
Wikipedia - Google_AdSense
現在のアクセス数で収益が出るとは思っていませんが、それなりに適切な
広告が配信されていて興味深いです。
ところで、GIGAZINE にこんな記事がありました。
Google AdSenseの始め方 その1「審査を突破する」 - GIGAZINE
でも、私の場合はあっさり突破できてしまいました。個人向けだからでしょ
うか。それとも、たまたま連絡先メールフォームを設置していたからでしょうか。
配色は、たつをさんのページに触発されました。
[を] コンテンツ連動型広告はどこに設置するのが良いか
なるべく目立たないように設置したつもりです。
ついでに [2009-03-22-1] に設置したシムエントリも周囲に溶け込ませる
配色にしました。
[2009-08-16-2] のバージョンアップ。
「twitter でつぶやく」ボタンに加え、「はてなブックマーク
」と
「livedoor クリップ」ボタンも付けました。
「はてなブックマーク」はそろそろ使おうかなと思っていましたが、
livedoor のアカウントは以前破棄したので、このためだけにアカウントを
再取得しました。
今回も chalow 本体の修正です。chalow ユーザ向けに、オリジナ
ル(chalow-1.0.tar.gz)の cl.conf と chalow へのパッチを貼り付けてお
きますね。[2009-08-16-2] のパッチよりも、こちらのパッチのほうが拡張
性あるのでオススメです。
《続きを読む》
ChangeLog メモの chalow への変換とアップロードは、毎日 0:00 から
3 時間毎に行うように、自宅 PC の cron に登録しています。
登録しているのは mkchalow という自作のシェルスクリプトです。
手動でアップしたい時は、このコマンドをコマンドラインから実行します。
手動での実行が面倒になってきたので、mkchalow を実行する elisp の関
数を作りました。非同期で実行されるので、実行中も他の作業が出来ます。
(defun mkchalow (force) (interactive "P") (let (pro (pnm "mkchalow") (buf " *mkchalow*") (cnm "mkchalow") (opts (if force '("-f")))) (message (format "%sBuilding chalow for masutaka.net..." (if force "Force " ""))) (setq pro (apply 'start-process pnm buf cnm opts)) (set-process-sentinel pro `(lambda (process string) (message ,(format "%sBuilding chalow for masutaka.net...done" (if force "Force " ""))) (kill-buffer ,buf))))) (eval-after-load "clmemo" ;; C-c C-c で mkchalow '(define-key clmemo-mode-map (kbd "C-c C-c") 'mkchalow))
※ clmemo.el を使っていない方は、(eval-after-load "clmemo" 以降を
下記に置き換えて下さい。
(eval-after-load "add-log" ;; C-c C-c で mkchalow '(define-key change-log-mode-map (kbd "C-c C-c") 'mkchalow))
追記(2009-06-14):
Emacs 起動時にエラーになるので、訂正しました。シクシク...。
追記(2010-05-03):
mkchalow() を修正しました。C-u を付けるとメッセージが少し変わります。