「独創アプリ開発日記」カテゴリーアーカイブ

独創アプリ開発日記 41日目 ロギング

今日もテキスト漫画の復旧作業を行なっていました。本日は例外発生時のロギング処理を作り込んでいました。

バグが元でエラーが発生したり、不正アクセスがあって何か問題があった際に素早く原因を特定して対処出来るよう、どのURLで、ソースコードのどの箇所で、どんなエラーが発生したのかをDBに記録しています。その際、アクセス元IPやブラウザの種類も記録するようにしています。

今、このページにアクセスすると必ずエラーが発生し、あなたのIPと使っているブラウザの種類がテキスト漫画のDBに記録されるよ!

ちなみに、macでアクセスすると以下のように記録されます。

— msg —
method=[AppHttpControllersUserController::edit] file=[/usr/apps/textmanga/app/Http/Controllers/UserController.php] line=[23] msg=[例外テスト]
— referer —
/textmanga/index.php/edit/20
— user_info —
IP:XXX.XXX.XXX.XXX Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Safari/604.1.38
— created_dt —
2017-11-23 23:36:21

サイトの規模の割には無駄にしっかりロギング

しています。

独創アプリ開発日記 40日目

テキスト漫画のサイトについて、只今

本番サイトのソースコードを直接ゴリゴリ修正するという画期的な手法

を採用して開発しております。普通、開発中は本番サイトとは別に、開発用の別の場所で行うものです。

今日はこのページをこの画期的な手法によって開発していました。そのため、いきなりページが真っ白になったりエラーの赤い画面になったりデバッグ用のポップアップメッセージが出たりすると思いますが

ほっといてください。

独創アプリ開発日記 39日目

先日作成したMP4無劣化結合プログラムにより撮りためたドライブレコーダーのデータを調子よく処理していたのですが、今日はなぜか変換に失敗しました。

注意深く変換に失敗したファイル名を確認してみると、鉤括弧”[“と”]”を使っているファイル名で失敗しているようです。

とりあえず処理前にファイル名の鉤括弧を別の文字に変更すれば対処出来そうだったのでそうしました。

本来ならば、どの処理で、どんな理由でプログラムがエラーになっているのか特定すべき!と言う人がいるかもしれません。しかし、プログラムのバグは様々で、どんなことが引き金になってエラーになるかはわかりません。また、仮に真面目に対処してノウハウを身につけようとしても、ある程度頻繁に起こるバグならともかく、レアケースのバグを対処したところで将来役に立たない可能性は高いです。技術が進歩してプログラムの仕様もどんどん変わりますしね。

プログラムは無機質で、完全に同じ動作しかしないと言うイメージがあるかもしれませんが、最近私はプログラムは生命のように曖昧でブレ的な部分があるのではないかと思ってきました。OSSの様々なソースを組み合わせたシステムは本当に予期しない動作をすることがあり、良い意味で「いいかげん」に扱うべき場面があると感じています。

と思ったら、これはPowerShellの定番のエラーで、頻繁に起こる現象みたいです。
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1097548105

能書きの前にちゃんと普通に対処すればよかっt

独創アプリ開発日記 37日目 続サイトのSSL化

今日は、昨日のSSL化に伴いテキスト漫画のサイトが所々動かなくなっていた箇所を直していました。

いや、サーバをさくらのVPSからConoHaへ移行後に、更新やログイン機能などは元々動いてなかったのですが、ページ切り替えとか基本的な部分がSSL化に伴って動かなくなってしまい、ちまちまと直していました。

明日はテキスト漫画の更新機能を復旧したいなぁ。

更新機能を復旧したら、みんな使ってくれると良いなぁ。

      |ハ,_,ハ
      |´∀`’;/^l
      |u”’^u;’  |
      |∀ `  ミ  
      |  ⊂  :, 
      |     ミ
      |    彡
      |    ,:’
      |”~””∪

独創アプリ開発日記 36日目 サイトのSSL化

今日はサイトをSSLに対応させていました。

SSL証明書はLet’s encryptを使い、自動更新設定をしました。WebサーバはOpenLiteSpeedで、証明書を適用したhttpsのリスナーを追加し、既存のhttpからリダイレクトさせるようにしました。

で、ご覧のようにURLを見ていただくと、ちゃんと鍵マークが出ているかと思います。

以下、やったことの殴り書きです。CentOS7です。HTTP/2と合わせて、超快適なサイトになりました!

rpm -ivh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum install certbot

certbot certonly –webroot -w /usr/local/lsws/VirtualHost1/ -d minnano.app
“Enter email address (used for urgent renewal and security notices) (Enter ‘c’ to
cancel):[メールアドレスを指定]”
(A)gree/(C)ancel: A
(Y)es/(N)o: N
IMPORTANT NOTES:
– Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/minnano.app/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/minnano.app/privkey.pem
Your cert will expire on 2018-02-16. To obtain a new or tweaked
version of this certificate in the future, simply run certbot
again. To non-interactively renew *all* of your certificates, run
certbot renew
– Your account credentials have been saved in your Certbot
configuration directory at /etc/letsencrypt. You should make a
secure backup of this folder now. This configuration directory will
also contain certificates and private keys obtained by Certbot so
making regular backups of this folder is ideal.
– 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

OpenLiteSpeedの管理サイトから、HTTPSのListenerを作成
Listener Name : minnano.app
Port : 443
Secure : YES

Listeners –> minnano.app –> General –> Virtual Host Mappings –> Add
Virtual Host : uka.apple
Domains : minnano.app

Listeners –> minnano.app –> SSL
Private Key File : /etc/letsencrypt/live/minnano.app/privkey.pem
Certificate File : /etc/letsencrypt/live/minnano.app/fullchain.pem
Chained Certificate : Yes

Listeners –> minnano.app –> SSL –> SSL Protocol.
Protocol Version : 次を全てチェック SSL v3.0/TLS v1.0/TLS v1.1/TLS v1.2/TLS v1.3

vi /etc/sysconfig/iptables
-A INPUT -p tcp -m state –state NEW -m tcp –dport 443 -j ACCEPT
systemctl restart iptables

Virtual Host –> uka.apple –> Rewrite –> Rewire Rules
先頭に以下2行を追加
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

OpenLiteSpeedを再起動し、https://minnano.appへアクセスして確認

証明書の自動更新
certbot renew –dry-run

正常に動作したことを確認後、cronへ登録
vi /etc/cron.d/letsencrypt
18 3 * * 2 root /usr/bin/certbot renew –post-hook “systemctl restart lsws”
毎週火曜の3時18分にrenewが起動する

WordPressの設定変更
設定 -> 一般
WordPress アドレス (URL) : https://minnano.app/support
サイトアドレス (URL) : https://minnano.app/support

独創アプリ開発日記 35日目 死んでました

今日は2時間程度

死んでいました。すみませんでした。

> 誰も気にしていないと思うけど日記のルールを発表します。
>
> ・必ず1日1回23:59:59までにこのブログでその日に行った開発内容を日記で書く。書く内容が無くても「今日は布団の中から1ミリも出ていません。※スマホは布団の中で握りしめていたのでブログを書けました」でも良いから書く。もし1日1回日記がアップされなければ作者は死んでいると思われます。

独創アプリ開発日記 34日目 続・撮りためたドライブレコーダー動画のGoogleドライブアップロード

昨日作成したMP4の無劣化結合プログラムのおかげで変換処理がとっても捗っています。このプログラムはフォルダを指定しておくと、サブフォルダも含めてファイルを探し出し、指定した条件の単位でどんどん勝手に動画を連結して指定したフォルダに吐き出してくれます。捗りすぎて、Googleドライブへのアップロード待ち時間がボトルネックになってしまいました。

パソコンの特定フォルダに放り込んだファイルを自動アップロードするようにしていますが、連結プログラムが放り込むファイルが溜まる一方です。

まあ、勝手に動くようになっているのでパソコンの電源付けとけば良いんですけどね。

このプログラムのおかげで100時間くらいかかる作業をプログラム作成時間の3時間に短縮出来て、97時間分の余裕ができたのでその余裕で更に別の作業を自動化して、

自動化永続ループ作業に入って自分の寿命以上の余裕を作り出そうと思います。

何言ってるか分からなくなってきた。

独創アプリ開発日記 33日目 mp4の連結プログラム作成

今日は引き続き、日産純正のドライブレコーダーで撮りためた動画を一生懸命Googleドライブにアップロードしようと思いました。

対象のMP4ファイルは合計約600GBで、ファイル数は2万にもなります。日毎や出来事毎にファイルを連結します。ファイル連結はフリーツールの”MP4 Joiner”を使っていたのですが、正直GUIでは面倒すぎます。全ファイルアップロード完了するのに100時間くらいかかりそうです。

そこで、今日はffmpegコマンドを利用して、PowerShellで動画連結プログラムを作成していました。一旦TSという形式に変換すると無劣化で連結できるようです。頑張って作りました。

3時間かけて連結プログラムが完成しました!

97時間は節約出来ました。ホントだよ。

この日記を書いている間にもプログラムは動き続けています。

節約出来た97時間分、ゲームで遊ぼうかな。

独創アプリ開発日記 32日目 撮りためたドライブレコーダー動画のGoogleドライブアップロード

題名の通りです。今日は日産純正のドライブレコーダーで撮りためた動画を一生懸命Googleドライブにアップロードしていました。

日産のドライブレコーダーは最近フルHD(1920×1080)になりましたが、その1つ前の型でHD(1280×720)の解像度です。

このドライブレコーダーは大量の小さいサイズのMP4ファイルを生成します。そのままだとファイル数が多くなりすぎるため、フリーツールの”MP4 Joiner”を使って再エンコードなしにMP4ファイルを良い感じの単位で連結させて、アップロードしました。

かなりの量を撮りためていたので大変でした。多分まだ全体の5%程度も終わっていないと思います。

Googleドライブにアップロードして置き、

老後に寝たきりになった時にでも見返そうと思います。

撮りためてもどうせ後で見ないよね。でもなんか残して置きたいんだよね。