miyasakura’s diary

日記です。

プログラミング

Let's Encryptの自動更新がエラーになっていた

2017年頃から運用しているサーバーで、毎日cronで certbot-auto renew を実行していた。 しかし、今月に入ってLet's encryptから証明書の期限(2018-12-26)が近づいてきたというメールが届いた。 サーバーに入って確認してみると80番ポートが空いてないよーと…

PuppeteerでWebフォントを含むページのPDF化をするとAdobe Readerで文字化けする

久しぶりにバグの共有エントリ。 Webフォントを使っているページを印刷するとAdobe Readerで読み込んだときだけエラーが出てしまう。ブラウザ上のPDFリーダーやMacのプレビューだと問題なく、Adobe ReaderやAdobe AcrobatだとMac/Winどちらでもエラーが出る…

Coursera Machine LearningコースWeek 7~9

1月の中旬から始めたコースですがなんとか終わりが見えてきました。 Week7 Support Vector Machine について。昔習った気がするけど全く覚えてないよ。 一連の講義の中で一番わかりづらかったので実際使う時は復習しないとなぁという感じ。 特徴量が少なめの…

Coursera Machine LearningコースWeek 6 (1ヶ月ぶり)

3月入ってから全然できていなかったコースやっと再開できました。これ期日に間に合わなくても1ヶ月も遅れると新しい期日設定して新しく再開できるんですね。 前回まででLinear RegressionとLogistic Regression、Neural Networkを学んできました。 Week 6は…

Coursera Machine LearningコースWeek 4〜5

5週目が期限に間に合わず…。土日でやろうと思ってると別の予定が入ると厳しくなりますね。とはいえ間に合わなくてもペナルティは特にない模様。 4、5週目はニューラルネットワークについて。FeedforwardとかBackpropagationとか。 なんか最初の方でforループ…

Coursera Machine LearningコースWeek 3

何とか三週目も期限前にクリア。先週の土曜にやろうと思ったらCourseraが落ちてたためやるタイミングが無くなって時間かかってしまいました。 3週目の内容はこんな感じ。 Logistic Regression Model 先週までは線形回帰で今回はロジスティック回帰 線形回帰…

CourseraのMachine LearningコースWeek 2

先週から始めたCourseraですが、2週目はまだなんとか続いています。 内容はこんな感じ。 Environment Setup 課題提出などのためにOctaveを入れました。mac だと $ brew install octave で出来ましたがその先のレッスンでグラフを出す時にgnuplotを使うのがう…

CourseraのMachine LearningコースWeek 1

機械学習で調べるとよくおすすめされているやつですが、一念発起して始めてみました。日本語字幕もありますが英語の勉強も兼ねて英語字幕にて。 Week 1では大きく4つのセクション。 Introduction コースの概要 Supervised LearningとUnsupervised Learningに…

Spring SecurityでAES暗号化された文字列をRubyで復号してみた

AESで暗号化されたテキストを手元で復号しようと思ったけど意外とAESのことを知らなくて苦労したので簡単にメモ。(勉強を兼ねて無理矢理RubyでやっただけでSpringで普通に復号すれば良いだけなので実用性は無いと思う。) Spring Securityでの暗号化 こんな…

DockerでRails+Wheneverによるcron実行

cronは cron -f で動かせるが、環境変数が引き継がれないので期待した動作をしてくれない。少しやり方に悩んだので解決方法をメモ。 Wheneverはenvを記述することでcrontab内に環境変数を定義してくれるのでそれを利用した。結果としては下記のようになった…

ActiveModelのi18n

ActiveRecordを継承せずに直接ActiveModelを使ったときの i18n のやり方がわからなかったのでメモ。 def User include ActiveModel::Validations validates :email, presence: true end みたいな使い方をしているとき。 ja: activemodel: attributes: user: …

CloudFormationの定義からDynamoDB Localにテーブルを作成する

DynamoDBをCloudFormationで作ったは良いけどローカルでdynamodb-localを使って検証する際にどうしようか少し悩んでました。 Terraformにしようかとか、AWS上のテーブル情報を持ってきてどうきするようにしようかとか悩みましたが、結論としてはCloudFormati…

S3がOriginのCloudFrontを設定したら307 Redirectされる

S3がOriginでカスタムドメインのCloudFrontを設定したところ、設定は間違っていないのにアクセスすると元のCloudFrontのURLにリダイレクトされてしまう現象がでた。数回程度同じ設定をしたことがあるがこの現象は初。 (追記) https://stackoverflow.com/qu…

ElectronでWebサイトにマルチアカウントでログインできるアプリを作った

AWSアカウントを7アカウントほど利用していてChromeのアカウント切り替えが面倒になってきたので、こんな感じのものを作った。 Electronを触ったことない状態から4時間くらいである程度動作するところまで。 設定画面はなくてサイトのURLなどはHTMLべた書き…

Go+Google App Engine を使ったメモ

最近ちょっとしたWebサービスをGo+App Engine+Google Cloud Datastoreで作ったので、はまったことをメモ。 Qiitaにまとめようかと思ったものの、くだらないミスが主で内容としては大したことがないのでチラ裏的にこのブログに。 選んだ理由 この資料の影響が…

Railsで常駐プロセス(Daemon)の作り方に悩む

今作っているものがデーモンを作ってDBのテーブルを監視する必要があり、それをどう実現するのが良いのか調査中です。 候補は下記辺りでしょうか。 serverengine: rails + serverengineで お手軽daemon foreman: foremanを使ってRailsのActive Job(Sidekiq)…

AWS Lambdaを触っているんだけどテストってどうやるんだろう

最近ちょいちょいAWS Lambdaを使ってるんですが、コード書き換える→zipコマンド→手動アップ→テスト実行 を毎回やっててかなり効率悪い。 TDDとかほぼ興味ないので、動かしてテストという非効率なテストはいつも通りといえばそうなんですが、それでも耐えられ…

atomutil gemでエラー出た

ライブドアブログに自動投稿する仕組みを作ろうとして昔使ったことのあるatomutil (https://rubygems.org/gems/atomutil/versions/0.1.4) というGemを使ったところ文字コード周りで動かなくなっていました。 ```Encoding::CompatibilityError: incompatible …

productionでcssが読み込まれない問題

昨日は assets:precompile のしわざかなと思ってたのですが、よくよく見たらnginxの設定の問題でした。 Chromeだとエラーはなにも表示されてなかったのですが、Firefoxで確認すると text/plain だからCSSは読み込めないよ!ということでした。 いやいやHTML5…

assets:precompileに嵌まる

1日でRailsアプリを作ったは良いけど本番環境に持って行ったらCSSが適用されない。 productionだけ動作が変わるので開発環境で気づかないという問題。 Gemで入れたやつがどこで読み込まれるのかとかを時間あるときにちゃんと理解と毎回手間取ってる気がする。…

データベースの外部キー制約

ちゃんとDB周りを復習しようと思ってMySQLの本を読んでます。 よく考えたら最初にSIerに居た時にOracle Masterの勉強はしたけど、MySQL使うようになってからちゃんと勉強してませんでしたごめんなさい。 で、外部キー制約(Foreign Key)について。 IPAの試…