[ffmpeg] mp4 to mp3 converter – GUIフロントエンド

m4a形式の音源をmp3形式に変換する必要あり。ffmpegのコマンド叩いてエンコードする前にネット検索したら、簡単に実行できるGUIフロントエンドを作ってくれた人がいたのでリンク。ffmpegのオプションはすぐ忘れてしまうので、こういうフロントエンドがあると助かる。

やったーmp4 to mp3 converter 2.0できたよー – aruto’s diary
http://blog.aruto.info/entry/20091107/mp4_to_mp3_converter_ver2

[Unix] curlコマンドの使い方

cURLはURLシンタックスを用いてファイルを送信または受信するコマンドラインツール。

サンプル

参考サイト

curl コマンド | コマンドの使い方(Linux) | hydroculのメモ
https://hydrocul.github.io/wiki/commands/curl.html

curlコマンドの使い方 – @IT
http://www.atmarkit.co.jp/ait/articles/1507/01/news021.html

curl and libcurl
http://curl.haxx.se/

cURL – How To Use
http://curl.haxx.se/docs/manpage.html

cURL – How To Use (マニュアルページ日本語訳)
http://www.hcn.zaq.ne.jp/___/unix/curl_manpage.html

[Unix] cronの使い方

crondが動作しているか確認

ログの所在

/var/log/cron

crontabファイルの所在

/var/spool/cron/<user>

crontabコマンド

他のユーザのcron設定をする場合は-uオプションでユーザを指定する

crontabファイルの書き方

日時指定

  • 分: 0-59
  • 時: 0-23
  • 日: 1-31
  • 月: 1-12
  • 曜日: 0-7 (0と7が日曜日)

記号

  • 「#」: コメント
  • 「*」: ワイルドカード
  • 「-」: 範囲指定 (例: 15-20)
  • 「,」: 複数指定 (例: 15,20,25)
  • 「/」: ステップ (例: 10-20/2 10から20まで2ごと)

サンプル

コマンドの標準出力や標準エラー出力がある場合/dev/nullに捨てること。 (> /dev/null 2>&1)

参考サイト

cronの設定
http://kazmax.zpp.jp/linux/lin_cron.html

crontab使い方まとめ。 – ばくのエンジニア日誌
http://bakunyo.hatenablog.com/entry/2013/06/20/crontab%E4%BD%BF%E3%81%84%E6%96%B9%E3%81%BE%E3%81%A8%E3%82%81%E3%80%82

[PHP] Google Currency Converterから為替レートを取得する

以下のウェブページからドル円の為替レートを取得したい。

Currency Converter – Google Finance
https://www.google.com/finance/converter?a=1&from=USD&to=JPY

スクレイピングによる取得

APIが用意されていないので、GETリクエストのレスポンスから値を抽出してみた。

[Webサービス] 無料で使える為替レートAPI

アメリカ発のドル建て通販サイトに日本円の参考価格を表示したいという要望あり、ドル円の為替レートが必要になった。リアルタイム性は必要なく、せいぜい1日1回定時の為替レートが取得できれば良い。

ネットを検索したら、為替レートを提供しているウェブサービスの比較が見つかった。

The Free Currency Converter API – Comparison
http://www.freecurrencyconverterapi.com/

紹介されているサービスのうち、以下には無料プランがあるらしい。無料プランは更新頻度や取得回数に制限があるようだけど、今回のような用途なら全然問題なさそう。

currencylayer API | Free, Reliable Currency Converter API
https://currencylayer.com/

Open Exchange Rates
https://openexchangerates.org/

[PHP] フォーム入力値の整形に使いがちな関数メモ

文字コードの変換

PHP: mb_internal_encoding – Manual
http://php.net/manual/ja/function.mb-internal-encoding.php

PHP: mb_convert_encoding – Manual
http://php.net/manual/ja/function.mb-convert-encoding.php

全角/半角への変換

英数スペースは半角、カタカナは全角に統一したい。

PHP: mb_convert_kana – Manual
http://php.net/manual/ja/function.mb-convert-kana.php

HTMLタグの排除

PHP: strip_tags – Manual
http://php.net/manual/ja/function.strip-tags.php

先頭と末尾のホワイトスペースの除去

PHP: trim – Manual
http://php.net/manual/ja/function.trim.php

[PHP] 複数の多次元の配列をソートする (array_multisort)

便利そうな配列のソート関数なのでメモ。

PHP: array_multisort – Manual
http://php.net/manual/ja/function.array-multisort.php

以下のような使い方ができそう。

  • ある配列の内容でソート順序を決めて、それに併せて別の配列もソートする
  • 多次元配列の特定の次元でソート順序を決めて、配列全体をソートする
  • 文字列を格納する配列の小文字版を用意し、それでソート順序を決めて元配列をソートする

[Smarty] キャッシュの利用と効果

開発中のサイト(Smarty使用)の表示速度がいまひとつ。原因はデータベース絡み(設計と実装が悪い)ということはわかっているのだけど、リファクタリングする前にSmartyのキャッシュの効果を試してみる。

要件とコード

トップページの表示内容は1日1回のデータベース更新によって変わる。逆に言えば、データベースが更新されてから24時間は表示内容は変わらない。さらに、ログイン中のユーザ名と選択されている言語によって表示内容がパーソナライズされる。

キャッシュを使うにはうってつけの要件かも。ユーザ名と言語を組み合わせた文字列をキャッシュIDとし、キャッシュの有効期限を24時間とすれば、コードは以下のように書ける。

結果

かなりの効果があった。(160ms→25ms)

キャッシュを使わないとき
smarty_no_cache

キャッシュを有効にした直後のアクセス (キャッシュ生成)
smarty_cache1

キャッシュが効いているアクセス (キャッシュをロード)
smarty_cache2

参考サイト

PHP TIPS – 47. Smartyのキャッシュを使って負荷を下げよう:ITpro
http://itpro.nikkeibp.co.jp/article/COLUMN/20070704/276676/

[PHP] PHPスクリプトのタイムアウトを調整する

PHPで重い処理を実行すると以下のようなタイムアウトが起こることがある。

タイムアウトは以下のいずれかの方法で調整することができる。ただし、無限ループ回避のためにタイムアウトは無制限にしないこと。

php.ini

.htaccess

PHPファイル

いくらPHPスクリプトのタイムアウトを伸ばしてみても、ウェブサーバーやブラウザにもタイムアウトがある。小手先のワザでタイムアウトを回避するよりも、重たい処理をいかに確実に実行させるか、処理内容を見直すべきだろうな (たとえば、処理を複数フェーズに分割するとか、サーバーに投げてバックグラウンドで実行させるとか)。タイムアウトが起こるかもしれない前提の設計が問題だと思うので。

参考サイト

PHP: set_time_limit – Manual
http://php.net/manual/ja/function.set-time-limit.php

重いphpがタイムアウトしてしまう場合のTips :: 横浜のフリーランスWeb制作者ブログ
http://sigt.jp/blog/web_dev/2010/10/05/evading_time-out_of_php/

[PHP] PHPスクリプトの実行時間を制御する(max_execution_time) – hogehoge foobar Blog Style5
http://d.hatena.ne.jp/mrgoofy33/20100922/1285168658

Fatal error: Maximum execution time of 30 seconds exceededの対処法 – [PHP + PHP] ぺんたん info
http://pentan.info/php/30timeout.html