classics.

2017/01/18 Wedflickr

現代のWebページのスクリーンショットを作成する方法メモ

HeartRails Capture という太古のサービスもあったりするけれど、まだIEコンポーネントでサムネイル作ってるっぽいし、URLと対じゃなくてその時時のスクリーンショットを撮りたいとかいう気持ちもあったのでやってみた。ということで apt(wkhtmltopdf) でサクッと入る wkhtmltoimage を使えばよかった。あとサーバー(さくらVPS上のUbuntu)でやるのでレンダリングのために xvfb-run が必要だった。コマンドだとこんな感じ。

$ xvfb-run wkhtmltoimage https://oquno.com/ oqunocom.png

あとは小さめのサムネイルが欲しかったらこれを ImageMagic で

$ convert -resize 800x -crop 800x600+0+0 oqunocom.png oqunocom.thumb.jpg

とかすると(幅800pxにリサイズしてから上部 800x600 のサムネイルに切り出している&ついでに jpg にしてファイルサイズ削減している)サムネイルっぽくなる。

という感じでオレオレGyazoにURL指定でキャプチャ取ったりする機能を追加してみた。ただ、今判明してる限りだと wkhtmltoimage だと --height オプション無しで Twitter の Tweet のパーマリンク投げるとうまくいかない(& --height つけると高さ固定になってしまうのでサムネイル撮るだけになる)。これは同じくWebKitを使ってるNightmare(PhantomJS)を使うと問題ないっぽいのでちゃんとやっていくひとはNightmare使うのが良さそう。

2016/08/13 Satflickr

Ubuntu と MySQL と Perl 周りでハマったメモ

昨晩出先で気付いたら VPS に置いてる Ubuntu の LA ☝(^ω^)☝アゲアゲになってて、どうやら Serene Bach のアクセスカウンター的なスクリプトが MySQL にアクセスできなくて困っていたようだったので Apache 再起動したりしても変わらず、MySQL 再起動は失敗したので思い切ってサーバーごと再起動したのだけれどそしたら MySQL が起動できなくなった。

結果的には小池さんの助言などを受けつつ、サービス無効にしてから

$ sudo mysqld_safe --skip-grant-tables
で無理やり開始してから。
$ sudo mysql_upgrade
でなんとかなった。

帰宅後、で雑に apt-get update, apt-get upgrade, apt autoremove とかしてたらなんか Serene Bach が動かなくなった。Perl の互換性とかかなと思って perlbrew でバージョン下げたりしてみてもうまく行かず、DB が読めないとか。いろいろ試行錯誤した結果、結果的には足りなかったのは DBD::SQLite, DBD::mysql だった。libmysqlclient-dev も apt で入れないと DBD::mysql が mysql_config どこだとかいってインストール失敗したのも注意ポイントだった。

2015/09/19 Satflickr

適当に upgrade してたら mod_proxy_wstunnel ロードできなくなったのに対処

Raspberry Pi で適当に apt-get upgrade してたら apache2 の upgrade からの restart でこけて、

Starting web server: apache2apache2: Syntax error on line 244 of /etc/apache2/apache2.conf: Syntax error on line 2 of /etc/apache2/mods-enabled/proxy_wstunnel.load: Cannot load /usr/lib/apache2/modules/mod_proxy_wstunnel.so into server: /usr/lib/apache2/modules/mod_proxy_wstunnel.so: undefined symbol: ap_proxy_pass_brigade
Action 'start' failed.
The Apache error log may have more information.
failed!

とかなった。mod_proxy_wstunnel は mopidy の Web UI に使っていたしまだ自宅オーディオプレーヤー改良が終わってないしまだ使いたいので対処した。

簡潔に書くとこの通りやったら改善した https://gist.github.com/vitkin/6661683 。svn checkout を apt-get source apache2 にしたくらい。あと raspbian って apachectl パッケージない気がする。

2015/06/13 Satflickr

Raspbian に RMagick 入れるのにはまりかけたのでメモ

rbenv で Ruby 2.2.1 使ってた環境。ImageMagick は入ってたけど失敗した。rbenv 環境で gem 入れるコマンドも忘れがち。以下追加で apt で入れたの。

  • libmagickcore-dev
  • libmagickwand-dev

2015/04/02 Thuflickr

mopidy全然駄目なのでオレオレプレイヤーを復活させることにした

自宅サーバー破滅ついでにVPSに移行してしまったため自宅オーディオプレーヤーがなくなってしまったので、Raspberry Pi2導入時にmopidyなんていうのを見つけて入れてみたのだけれど、どうも遅くて使い物にならなかった(特に大きめのプレイリストぶっこんだ時とか)。そんなわけれで、オレオレ自宅オーディオプレーヤーを復活させることにした。めんどい点としては、mp3のDBがmt-daapdに依存していて、既にmt-daapdはオワコンで世間はforked-daapdに移行しているためインストールがめんどい。forked-daapdはDBの仕様が違うのとスキャンが遅いので好きではない。mt-daapdはこの人を信じて入れた。また、音楽再生のバックエンドにmplayerを使っているのだけれど、mplayer-rubyのgemに勝手にパッチを当てたまま元のgemがわりと更新されててどこいじったか忘れてるので新しい環境に入れたgemを試行錯誤しながら直さないと入れない。あとlast.fmのgemのタイムスタンプがリクエスト実行時じゃなくてインスタンス作成時のタイムスタンプになって困るとかあったような気がする。そんなわけれで、遅くとも今月中には普通に出来そうな気がする。

2012/09/06 Thuflickr

convert コマンドで透過色を白く塗りつぶす

アルバムアートを jpg に統一したいけれど透過 png とかだった場合メモ。昔は PHP 使ってましたね。例: soundcloud

$ wget -O folder.png http://i1.sndcdn.com/artworks-000029762240-59dccy-original.png
$ convert folder.png -fill white -opaque transparent folder.jpg

2012/07/14 Satflickr

Linux サーバーで YouTube を BGM として再生する

うちのは Ubuntu サーバーです。
入ってなかったら mplayer と youtube-dl コマンドを入れる。apt で入るし便利ですね。
そしたら

$ mplayer -novideo `youtube-dl -g "http://www.youtube.com/watch?v={VIDEO_ID}"`

のようなコマンドで映像出力なしで再生できる。色々組み合わせればプレイリストとして流し込んだり、動画情報取得して Last.fm に無理矢理 scrobble とかもできていいかもしれない。

参考 http://linux-suomi.net/modules/sinyD0/index.php?id=3

2012/07/02 Monflickr

続うるう秒トラップ

社会人の皆さんは日曜日ちゃんと休んで月曜に出勤してから24時間以上遅れて慌てて対処とかしてた傾向があったようで、14時間遅れで気付いたのにすごい恥ずかしがっていた自分は何だったのだと思った。

2012/07/01 Sunflickr

うるう秒トラップに引っかかっていたのに14時間後に気づく

load-day

ちょっと音楽再生が詰まることがあるなと思ってはいたけれど、ジョークでうるう秒やばいみたいな感じの事言ってるのだと思っていたらガチだった。起きたのが9:05くらいだったのも敗因でしょうか。具体的には、Ruby(1.8.6 と 1.9.1)の常駐スクリプトのCPU負荷が跳ね上がってました。全くロジックを理解していないけれど、以下の通りにやったら治まった。いつの日かちゃんと理解したい。

2012/05/06 Sunflickr

焦った

alias crontab='crontab -i'

をとりあえず追加して、あと、オプションとか長めのコマンドは cron 用フォルダにシェルスクリプトファイル置いてそれ叩くようにした。あんまり長く crontab に書いてなくて、思い出すのに困らなくてよかった。

しかし crontab コマンドを実装したやつを許してはならない。