読者です 読者をやめる 読者になる 読者になる

木木木

Swift / Ruby on Railsなどの学習メモ。


インターネット上の玉と石

p-shirokuma.hatenadiary.com

インターネット上の情報が玉石混交(ただし99%が石) という状況に対し、どういった対策が考えられるだろうか。

匿名が基本であり、「誰が言ったか」より「何を言ったか」が重要だったのが昔の「インターネット」。
しかし徐々に「誰が言ったか」の重要性が増してきた。
実名や顔写真を晒して発言する人やそれを当然とする文化のSNSも増えた。
Twitterは有名人アカウントに「本人である」という印がつく。

昨今においては、やはり「誰が言ったか」が一番の価値であるように思う。
専門知識のある人間が、責任を持って発言している内容かどうかが、
手早く玉と石を見分ける手軽な方法だと言える。
Googleの検索結果に、ページの著者 (metaタグのAuhtor) が表示されるようになって久しい。

やはりメディアとしての価値を上げるにはいわゆるマスメディアのように、
「専門性のある人間が責任を持って発言している」情報が集まるメディアをネット上にも作るしかないのかな。
そういったアプローチのWEBメディアも少なからずある。

News Picksは多分、友達もフォローできるけど、業界専門家をしっかりと囲い込んでいて、
彼らの意見をキャッチアップしていけることにバリューがある。
newspicks.com

専門家というフィルターを通して情報を選別してくれるメディアがもっと必要なのかも。
どうしてもマスメディア的なアプローチになってしまいそうだけど。

もしくは情報の質を判定してくれるAIを作るということもいいかもしれない。
Googleはフェイクニュースをラベル付けする技術を検索結果に反映しているようだが、
これも多分機械学習によるものなのではと思う。
似たようなアプローチで情報の質を機会に判定してもらえばよいかもしれない。

seopack.jp

chrome + httpsアクセスでERR_CERT_AUTHORITY_INVALIDエラー

herokuで運用していたRailsのWEBアプリにchromeでアクセスしたら突然

この接続ではプライバシーが保護されません

的なエラーページが表示されるようになりました。

どうやらStartSSLを使っていたのが原因のようで、ChromeFirefoxの新し目のバージョンだと
無効な証明書と判断されてしまうようです。

blog.hinaloe.net

Let’s Encryptに乗り換える

無料でしかも簡単にSSL証明書が発行できるLet’s Encryptを使うことにしました。
Let’s Encrypt自体は自動更新に対応しているというなんともすごいサービスのようですが、
herokuでは未対応の模様? (ちゃんと調べてない)
期限は90日間らしいけど、とりあえずどんなもんか試してみます。

certsbotというhomebrewでDLできるツールを使いました。
詳しくは以下の記事で。

qiita.com

Opensslと比べてもすごく簡単で、何より使いづらいUIのWEBサイトをポチポチやったりする手間がなくなったのがありがたい。。
素晴らしいと思います。

Unityで動画再生の調査メモ

Mac / Windowsアプリを作るために色々調べてます。

Unity自体の機能であるMovieTextureはQuickTimeを使ってますが、Quick TIme for windowsはサポート終了してしまったため使えなさそう。
自分でOpenCVとかで実装するか、アセットを買うしかなさそうですね。

こちらの資料によるとEasyMovieTextureがよさそう。

EasyMovieTexture $65

Asset Store

AVPro Videoもよさそうだけど、$450か。。。 Asset Store

DynamoDBをLambdaを使ってオートスケールさせる

便利ライブラリありました。 github.com

レポジトリ落として、カスタマイズしてzipにしてlambda管理コンソールからアップしてねって感じです。
カスタマイズにはここのページが便利そう。

docs.aws.amazon.com

自分で1から実装するなら

dev.classmethod.jp

上のdynamodb-lambda-autoscale が1分ごとにlambdaで全テーブルの情報を舐めるというアプローチと違って、
こちらはCloud Watchのアラームにフックして自動スケールするというもの。
効率はこちらの方がいいですね。

ただ、こちらはGlobalSecondaryIndexには対応していませんので、本番で使うにはカスタマイズが必要そう。

Cloud Watch にはアラームにフックしてAuto Scaleさせる機能も備わっているようです。
が、これはEC2をオートスケールする機能であってDynamoDBには対応してないのかな?

Sererless Frameworkの中にいい感じに組み込めるオートスケールの仕組みが欲しいところですね。

ゼロからつくるDeep Learning 読書メモ

ちまたではDeep Learningが流行してます。
自分もDeep Learningで面白いもの作りたいぞ!と思うものの、何からはじめていいやらという感じで、
数学は非常に苦手で、微分積分ってなんだったっけというレベルです。

そんな中名著だと聞いたのがこの本。

ゼロからつくるDeep Learning

いざ読み始めてみると、正直初学者の私には全然難しいですww
とはいえ他の入門書よりは格段にわかりやすいという噂なので、慣れない数学と格闘しながら読んでます。
数式だけじゃなく、「Pythonで書くとこう」というのがわかるので、「あーこれならわかるわ」って感じで、数学できなくてもプログラム書ける人なら全然読めると思います。

以下、わからくて調べたことをメモしていきます。

ネイピア数とは

数式の中にちょくちょく「e」というのが出てきます。
e: ネイピア数

野中文雄さんのわかりやすい解説動画がありました。

iOSアプリで悪意あるユーザーに値を改ざんされないために

有料アプリなどを作っていると、脱獄などを行ったユーザーに値を書き換えられるとまずいことがあります。
対処法はざっくり3つかなと

ファイル暗号化

UserDefaultsを使用していると、iExplorerなどのアプリを使えばiPhoneファイルシステム内部を見ることができ、
脱獄してなくてもファイルの書き換えができちゃうみたいです。
保存する前にデータを暗号化すると良さそう。

Keychain accessを使う

UserDefaultsを使うのではなく、Keychain Accessを使うのもよさそう。
そもそもユーザーがアクセスできない領域のようなので安心。
だが、脱獄したiPhoneですらアクセスできないのかは未確認。
このへんの情報、ややディープなのでなかなか出てきません。
知ってる方いたら教えていただけると助かります。

keychain accessの詳しい解説

Cocoaの日々: [iOS] Keychain Services とは

重要な情報はサーバーに保存して都度問い合わせ

まぁこれが一番安心といえば安心です。

【Swift3】Boolのイニシャライザに色々渡すとどうなるか試した

試してみました。

Bool(1) # true
Bool("true") # true
Bool("1") # nil
Bool("t") # nil
Bool("a") # nil
Bool("True") # nil
Bool("1") # nil

Bool(0) # false
Bool("false") # false
Bool("False") # nil
Bool("0") # nil

Bool(2) # true
Bool(10000) # true
Bool(-1) # true
Bool(-10000) # true

Bool(nil) # fatal error

文字列の場合

“true” か “false” を渡すと初期化される。
それ以外はnilが返る。

数値の場合

0を渡すとfalseで初期化される。
それ以外はtrueで初期化される。

日本で一番簡単にビットコインが買える取引所 coincheck bitcoin