2018年4月20日金曜日

動画をパラパラアニメに変換するサービスを5日で作りました

どうも、俺です。

 やれライブ配信だ、やれ動画広告だ、と騒がれがちな昨今ですが、
 動画ファイル(.mp4 .mov)をパラパラアニメに変換するサービスを作りました。







パラパラ動画です。


変換したい動画ファイルを選択し、
フレームレート(fps)と再生速度、出力フォーマット(gif または webp)を選んでアップロードすれば、
見事なパラパラアニメが完成します。

aPNGにも変換できるようにしてるんですが、
如何せん変換後のファイルサイズがバカでかいので、取りやめました。
仕事の合間に作ったので結構日数かかりました。

素のPHP + TwitterBootstrap3 + SQLiteです。
ページデザインはこれ以上オシャレにできませんToT

「ブログにパラパラ画像を載せたい!」というような場面で是非活用してもらえればうれしいです。



以上でぇぇぇす。

2018年4月19日木曜日

今さらながら、Let's EncryptでSSL対応 + 自動更新

どうも、俺です。

今日は、随分前からWeb界隈でもてはやされているLet's Encryptの導入と自動更新設定についてメモ。

環境はCentOS6.9。たぶんCentOS7系でも一緒だと思う..。
Apache 2.4。

(1) certbotをダウンロード

$ wget "https://dl.eff.org/certbot-auto"

// certbot-autoを適当なPATHへ持っていく
# mv certbot-auto /usr/local/bin

// certbot-autoに実行権限を付与
# chmod +x /usr/local/bin/certbot-auto

(2) SSL証明書を作成

※注意 :この時点で対象サーバーにドメインが当たっていないと以下のコマンドは失敗します。

# certbot-auto certonly --webroot -w /www/path/to/public -d example.com --email info@example.com

うまくいくと
IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/example.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/example.com/privkey.pem
   Your cert will expire on 2018-07-18. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot-auto
   again. To non-interactively renew *all* of your certificates, run
   "certbot-auto renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le
が表示されます。

(3) 証明書の確認

$ ls /etc/letsencrypt/live/example.com

README  cert.pem  chain.pem  fullchain.pem  privkey.pem


  • cert.pem ... 証明書
  • chain.pem ... 中間証明書
  • fullchain.pem ... 証明書と中間証明書とを一緒にした証明書
  • privkey.pem ... 秘密鍵

(4) Apache(2.4系)の設定

対象の.confファイル内に以下を記述。
SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem

※2.2系の場合は以下も記述。
SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem

(5) Apache再起動

# /usr/local/apache2/bin/apachectl restart

(6) Let's Encrypt 自動更新設定

Let's Encryptの証明書は3ヶ月で有効期限が切れます。
そのためcronで自動更新させましょう。
# vim /etc/crontab

30  5  *  *  1  root /usr/bin/certbot-auto renew -q --no-self-upgrade --post-hook "/usr/local/apache2/bin/apachectl restart"

↑毎週月曜AM5:30に更新コマンドを叩いています。
更新ができるようになる30日前になったら、証明書が更新されます。
-qオプション ... 出力なし。
--no-self-upgrade ... プログラムの新バージョンへの自動更新をしない。




以上でぇぇぇえぇぇす。

2018年4月3日火曜日

"〜〜" not found using pkg-configのエラーが出る

どうも俺です。

Linux上で何かのプログラムをインストールしようとして、
$ ./configure
ERROR: libwebp >= 0.2.0 not found using pkg-config

のようなエラーが出る場合、pkg-configとやらが悪さをしている可能性があります。

その場合は、
$ export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig

で解消する場合があるのでお試しあれ。
以上でぇぇえぇぇぇす。

2017年9月26日火曜日

Xcode8のままiOS11ビルドをする

どうも俺です。


iOS11がリリースされ、それに合わせてXcode v9もリリースされました。
Xcodeをバージョンアップするためには、
先にMacOSをバージョンアップする必要があって...いつもながら超面倒です。

Xcode8のままだとiOS11用にビルドできない...とお思いのみなさん、
裏技を使ってそのままiOS11ビルドできます。

※動作保証はできませんので、自己責任で行って下さい。


(1) Xcode 9をダウンロードする
https://developer.apple.com/download/more/
からXcode 9をダウンロードし解凍します。
結構時間かかります。

(2) Xcode 9.appを適当なディレクトリへおく
/Application/Xcode-9.app などへ移動させましょう。

(3) Xcode 8を適当な名前にリネームしておく。
仮に、Xcode-8.app としておきましょう。

(4) Xcode 8.appにXcode 9.app内にあるiOS11ディスクイメージのシンボリックを貼る

$ sudo ln -s /Applications/Xcode-9.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/11.0\ \(15A5278f\) /Applications/Xcode-8.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/11.0

(5) Xcode 8.appを再起動
再起動したら準備OK。iOS11端末をつなげてビルドできます。




ここに答えが。
Use Xcode 8 with iOS 11 | stack overflow



以上でぇぇぇぇす。

2017年8月8日火曜日

linker command failed with exit code 1が出た時の解決方法案

どうも、俺です。

Xcodeで開発してて目にすると1時間はその解決に費やしてしまうこともある地獄のエラー文言。
そう、それが
linker command failed with exit code 1


※Xcode 8.3.3

今日はこのエラーが出た時「これやったら直った」というあらゆる手段をお伝えします。


■プロビジョニングプロファイルは正しく設定されているか

人により設定方法は様々ですが、僕の場合、
・General>SigningにあるAutomatically manage signingのチェックをはずす

・Build Settings内、
 ProvisioningProfile (Deprecated)とProvisioning Profileの2箇所に適切なプロビジョニングプロファイルを設定。
 Code Signing Identityに正しい証明書を設定。
 最後にDevelopment Teamにチーム名を設定。

としています。
このミスの際は、ちゃんと「プロビジョニングプロファイル間違えているよ」というエラーが出ることが多い...。


■Enable Bitcodeの設定を間違えていないか

Build Settings>Build Options内にあるEnable Bitcodeが「Yes」になっているとアカン場合がある。
組み込んだフレームワークがbitcodeとやらに対応していないかもしれないので、速攻「No」に設定し直す。




■存在しないリソース(画像etc)を取り入れようとしていないか

Build Phases>Copy Bundle Resources内に存在しないリソースがないか要チェック。
無いものが含まれている場合は削除します。



■Deployment Targetを間違えていないか

General>Deployment InfoにあるDeployment Targetに無茶な値を入れていないか。
古すぎるターゲットなどに設定している場合は、よく考えて適切な値にします。



■Info.plistの設定Target Membershipは大丈夫か

Info.plistを選択してTarget Membershipにチェックが入っているとアウト。
チェックを外します。



■Xcodeを再起動しよう

この方法を使うと90%の確率でビルドが成功します。
試してみる価値あり。



■Mac本体ごと再起動しよう

この方法を使うと50%の確率でビルドが成功します。
試してみる価値あり。




上記以外でこのエラーの対処方法があれば教えてください。


※※※2017.08.18追記
このエラーが出た時に詳細ログが見れないのでモヤモヤしてたのですが、ログを見る方法が分かりました!
command+8 !!
LogNavigatorというやつらしいです!
これで具体的にエラー内容確認できます!


以上でぇぇぇぇす。

amazon