FreeBSD上にMonoをそのままインストールしただけではSSL接続を行った際などにTlsExceptionが発生します.
試行錯誤の結果,回避できたみたいなので方法をメモ.
pkg install ca_root_nss cert-sync /usr/local/share/certs/ca-root-nss.crt
先日,Amazonがプライム会員を対象に写真データを無制限に保存できるサービスを始めましたね.
なんでもRAWなども含めて再圧縮なしでいくらでも保存できるとのこと.
とするとJPEGなんかにファイルを埋め込めば好きなデータを保存できるのでは…という気がしてきます.
そんなことを思いつつ対応ファイル形式を眺めていたら…
なんとBMPに対応しているではありませんか!
確かBMPはファイル構造が単純だった気がするので,任意のデータをBMPに変換することができればAmazonプライムフォトを容量無制限のクラウドストレージとして使えるような気がします.
というわけで早速試してみましょう.
WikipediaでBMPのファイル構造を調べて…
それをもとに適当にファイルをBMPに変換するコードを書いて,適当なファイルを放り投げてみると…
出来ました!
19676×19675ピクセルで1.44GBという狂気のBMPファイルです.
ちゃんとWin10の標準ビューアで開けます.
あとはアップロードするだけですが,ここで自分がAmazonプライム会員じゃないことに気が付きました.まぁ,せっかくなのでこれをいい機会にとAmazon Studentに登録.
さて,いざアップロード...
Amazon強い
やりました!ちゃんと画像として認識されています.その後試しに10GBぐらいのBMPもアップロードしてみましたが,同様に画像として認識されてます.どうやら画像として認識されるファイルサイズに上限はないみたいです.
あとはこの一連のBMP化→アップロード,ダウンロード→元ファイルに復元する処理を裏でやってくれるようなファイルシステムをDokanあたりで作ればかなり面白そうな気がしたのですが,残念ながら日本のAmazon Cloud DriveのAPIはまだ提供されてないそうです.
@YDKKK API自体は.comと同じのがあるんだけど、キーを提供してくれないので使えない。
— れい(太陽系外) (@rei_software) 2016年1月23日
というわけで,とりあえず今回はここまで.
追記:
と言われたので一部表現を変更しました.内容はほぼ変わりません.誤った使い方でドヤ顔してる。AmazonもMicrosoftも悲しいでしょ。ブログ、表現の仕方次第でこんなにも印象が変わるっていう例。 https://t.co/2aFnuFSdT6
— シンジ☁Shinji (@sudachikawaii) 2016年1月29日
こんなのを見かけたのでC#で書いてみました。
なるべく短く書こうとしたけど2回Parseしたりしてて無駄があるなーと。
どうにかなりませんかね。
using System; using System.Linq; static bool ValidateMyNumber(string input) { //入力チェック if (input.Length != 12) return false; var checkDigit = 0; if (input.Any(n => !int.TryParse($"{n}", out checkDigit))) return false; var remainder = input.Take(11).Reverse().Select((v, i) => new { v, i }).Sum(n => (n.v-'0') * (n.i <= 5 ? n.i + 2 : n.i - 4)) % 11; return checkDigit == (remainder <= 1 ? 0 : 11 - remainder); }
追記 Parseやめたらちょっとだけ短くなった
Windows 10をThreshold 2にアップデートしてからストアアプリの最小幅がPackage.appxmanifest
の指定にかかわらず広くなりました.(スケーリングとか関係してそうな気がするけどよく分からない)
これ以上幅が狭くならない…
UWPアプリであればApplicationView.SetPreferredMinSize
メソッドを呼び出して最小サイズを指定すれば済みますが,これはWindows 10のAPIであるためUWP以前のWindows 8.1向けのアプリからは直接呼び出すことができません.
そこで,リフレクションを利用して呼び出します.
public MainPage() { InitializeComponent(); var v = Windows.UI.ViewManagement.ApplicationView.GetForCurrentView(); var m = v.GetType().GetRuntimeMethods(); var mi = m.FirstOrDefault(x => x.Name == "SetPreferredMinSize"); mi.Invoke(v, new object[] { new Size(320, 0) }); //最小サイズを指定 }
これで,非UWPアプリでも今まで通りの最小幅に戻すことができました.
どうやらAPIキーが殺された模様
続けて使うには
https://apps.twitter.com/app/new から新しいアプリを作る
最近はSMS認証が必要みたい
コールバックURLにはhttp://hoge.hoge/を指定
作ったアプリのKeys and Access TokensからConsumer Key (API Key)とConsumer Secret (API Secret)をMoonStrikeに食わせる
設定→アカウントの追加→下のXORみたいなボタン
Enjoy!
取り急ぎこんなもんで。
なお規約的に思いっきりアウトな気がするのでやるときは自己責任で
HDDがご臨終された関係で仮想マシン関連ファイルの移動などをしていたのですが、奇妙な現象に遭遇したのでその解決法をメモ。
症状:ReFS→NTFS→ReFSとHyper-Vの仮想ディスク(vhd, avhd)を移動したら
「仮想ディスクシステムの制限により、要求された操作を完了できませんでした。NTFS上では仮想ハードディスクファイルの圧縮と暗号化がいずれも解除されている必要があります。ReFS上では、仮想ハードディスクファイルの整合性ビットが設定された状態にしておくことはできません。」と言われて仮想マシンが起動できなくなった。
解決法:Power Shellで次のコマンドを実行する
Get-Item "仮想ディスクファイル" | Set-FileIntegrity -Enable $False
参考:Disable the Integrity Bit of VHDs Copied to an ReFS Volume
owncloudが急にログイン後白画面になって動かなくなりました。
思い返せば直前にアプリをいくつか有効化してたので、その相性の問題みたいです。
とりあえず復旧までの手順を簡単に、
まずowncloudのログを確認
# cat /mnt/storage0/data/owncloud.log : 略 : {"app":"PHP","message":"Class 'OC_Filestorage_Common' not found at \/var\/www\/owncloud\/apps\/files_archive\/lib\/storage.php#9","level":4,"time":"2013-12-10T09:23:40+00:00"}
フォルダ名より、files_archiveアプリに問題がありそうだと推測、
sqlコマンドを直接たたいてfiles_archiveアプリを無効化
# sqlite3 /mnt/storage0/data/owncloud.db sqlite> UPDATE oc_appconfig SET configvalue="no" WHERE appid="files_archive" AND configkey="enabled";
以上で復旧できました。