2016-09-29

MnMn 0.22.0

バージョンとしては動画がDL出来ない件の対応が大きなところ。

今まで動画DL時に64MBメモリ確保していたのを64KBの確保に下げた。
C#……じゃないね、.NET Frameworkは85KB以上をLOHとして別扱いするからここで死んでったっぽい、まぁLOHもGCに含めていた気ではいたんだけどダメだったね。人生はうまくいかないのです。

あとそれだけじゃ味気ないので現時点でのニコ生再生機能をマージして試験的に公開した。
ニコ生なんてこのソフト作って初めてさわった機能なんでなんも分からんですよ。

ロケーションバー表示しっぱしなだったりアドレス入力可能だったり急いでたから気にしないでね。

2016-09-28

MnMn 0.21.1 以前で動画が再生できなくなる事象について

こっち見てくらはい。

動画がダウンロードできない件について 

処理の成否はともかく、こういう時手軽に挙動変更できる #22 は英断だったと思っていいんじゃないだろうかと自分を褒め称えたい。

2016-09-27

にこなま 3

表示自体は出来るんですけどさぁ、いい感じにDOMいじろうと思うと CORS が私を殺しにかかってたので私は死んだ。

22:30 追記:
security.fileuri.strict_origin_policy で制御して iframe から contents() 取ろうとしたけどダメだったんですん。

2016-09-25

MnMn 0.21.0

細かい挙動をあれこれやった。

長期のブランチ並走がきっつい。


12:34 追記:
うんこちゃんのため 0.21.1 を緊急リリース。

2016-09-23

歯医者

会社終わってダッシュで 歯医者いってきた。
虫歯ないけどかみ合わせが地味に悪くて神経死にかけてるかもって言われた。

やだねぇ。

2016-09-21

歯が痛い

ので引きこもりになります。

連休あたりから痛かった。
今日もう無理だと悟った。
金曜日の歯医者まで鬱々。

2016-09-19

にこなま 2

RSSに名前空間つけるとか勘弁してくらはい。

にこなま

#161で調査から始めてるけど仕様わっかんねぇなぁ。

そもそもニコ生使ったことない人間が実装とかアホでしょ。
ニコニコ自体もそんな知らんけどさぁ。

MnMn 0.20.0

MnMn がデブになりました。

WPF が標準提供してくれてる WebBrowser を置き換えたことにより 30 MB太りました。
ユーザー側から見たらわっけわかんねー改修なんだけど開発側として WebBrowser は何も考えずただ表示させるだけならいいんだけどそこから何かどうでもいいレベルの機能を実装する際に軽く数回は死ねるんです。

ブラウザ系のコントロールを色々試したんだけど、
  • CefSharp: ライブラリがexeと一緒になってサブディレクトリに入れる方法が分からなかった。
  • Awesomium: ライセンスの扱いがようわからんかった。
  • WebKit .NET: 更新されてない Web 通信プログラムとか怖くて無理。
どれも微妙だった。

なので最終的に GeckoFx に落ち着いた。
GeckoFx のレンダリングエンジンである Gecko は Firefox で十分に実績があるので安心感は半端ないがファイルサイズえらいことになるのが何とも微妙だけど WebBrowser 使い続けることに比べたらまだ許容できた。

で、本題はここから。

GeckoFx を使用するにあたり、Flash Player を MnMn としてどうするかを考えた。
というのも今のところ Flash Player は使用せずにやってきた。
FLV再生のためにプレイヤー部分を VLC で、SWFのために変換ツールとして Ffmpeg を用いて親の仇のごとく Flash Player を回避してきたんだけどストリーミング提供の動画やニコ生の対応が絶望的に難しい、まともに対応したら死ぬ。
なのでストリーミング・ニコ生は Flash Player を用いるというのが現実的な方法となる。
問題は Flash Player を持っていない(インストールしていない)環境をどうするかになった。
Flash Player 必須です、で終わりにするのが一番楽なんだけど私の開発環境自体に Flash Player 入ってないのでここまで来たら意地でも入れたくなかったので GeckoFx に頑張ってもらった。
(まぁ実際はテストや動作確認のために入れたり消したりを繰り返したけど)

GeckoFx(というよりGecko)は起動時にシステムにインストールされているプラグインをスキャンする。
その際に Flash Player があればそれを使用し、なければ自身のサブディレクトリからプラグインを検索する。
さて、この際にシステムにインストールされているプラグインを検索するかどうかは about:configplugin.scan.plid.all が決定する。
そして自身のサブディレクトリにプラグインさえ格納しておけばいい。
つまりは MnMn\lib\Firefox\plugins にプラグインぶち込んで plugin.scan.plid.all を False にしてやればシステム環境に依存せず特定の Flash Player が使えるって感じになる。
Adobe がセキュリティ向上や処理改善のためにアップデートするプラグインをわざわざ固定しちゃうことになるので脆弱性としてはダメダメちゃんだけどユーザーがユーザーの環境下で自分のストレージをどう使おうがまぁ大目に見てくれるんじゃないかな!

でですね、開発時なんか特にそうですけど開発側で環境を揃えたいってことが多々あるじゃないですか。
AさんとBさんで開発する際に互いの開発環境が足並みそろってないと結構悲惨ですよね。
なので一応開発時には Flash Player のバージョンを合わせられるようにしておいた。
開発する人は本体設定の「プラグインディレクトリを開発用に構築する」を押下すれば特定バージョンのプラグインを取得するようになっている。
あーでも再配布とかは禁止されてるから本当は使わないでね、私がデスクトップとノートで開発環境行き来する時やどうしても開発者間で足並みそろえる目的です。
もし構築機能を使う場合は何をするのか自分で理解して実行してください。

ていうか使わないでね!

2016-09-18

こうべ

3-4年ぶりに三ノ宮行ってきた。 JR降りたとこのマクドなくて私は死んだ。

2016-09-14

MnMn 0.19.0

内部的な処理と報告上がった処理と次回リリースに向けたアップデートファイルのダウンロード時間待ち時間を延長した。

とりあえず次バージョンでキー操作周りを実装・整理する。

2016-09-13

次の次のリリースくらいでWebBrowser置き換えますん

前回も書いたけど GeckoFx に替える!
もう WebBrowser むりだわしんどいわ。

WebBrowser 替えるにあたり別作業を長々着手していた。
MnMnの作成のきっかけが私の環境に Flash Player が入ってないのにニコニコを見る必要があったからなんだけど、今回の WebBrowser 置き換えでどうしても Flash Player が必要かもしれないなぁと感じた。
でも Flash Player をインストールするのがなんか嫌なのでインストールしないでいい方法を探してた。それっぽい方法はあった。
ので表題の通り次の次くらいで WebBrowser を置き換えるとともに Flash Player を使用してみようと思う。

ただ、本当なら Flash Player も組み込んでしまいたかったけど再配布に関してライセンスどう頑張って読んでみても一個人じゃどうにもならないことが分かったのでとっても遠回りで灰色な方法で一個人を主張して脆弱性を残した。このあたりは該当ブランチをマージしたリリース版配布後にでもちまちま書く予定。

とりあえずはユーザーが頑張ればシステム依存しない Flash Player バージョンを使えるようにして置いた。最悪だろうけどね。

現行のプレイヤーは現行として、Flash Player の方は RTMP とかニコ生での使用をできたらいいなぁと楽観的に思ってる(ぶっちゃけブラウザそのまま表示でいいと思ってるし)。




まぁブラウザ機能載せ替え自体もセッション共有とかクリアしないといけない課題がたくさんあるからそんなにすぐじゃないと思うけど。

おまけ:
Geckoにおんぶ抱っこで表示したニコ生





2016-09-12

ブラウザのコントロールについて

課題の方でも#137に書いてるけど.NET環境での標準ブラウザコントロールがしんどい。

そんであれこれ試してみた結果 GeckoFx が使えるかもしんない。
(画像がテスト中のやつで上がWebBrowser、下がGeckoFx)


気軽にコンポーネント載せ替えられるようにコントロールに一枚かぶせた対応しておいた自分をほめたい。

ただこれだけなら万歳記事なんだけど、これ容量30MBくらいあるんよねぇ、どうしたもんかねぇ。。。まぁいっかこの際。

今日は夏休み

なのにガスの点検来たり仕事の電話あったりでなんなんだ。

20:45追記:
結局会社行くっていうね。

2016-09-11

考えることを放棄しそう

PS+でよるのないくにが無料だったので落した。

何も思うことはなく、考えることすら何もなくただボタンを押す作業。
全思考を排除してプレイできるレベル。
一つ一つの要素を磨けばすごく化けそうなんだけどなんかこう冒険せずに無難に落とし込みました、みたいな出来。
それで PS4 におんぶ抱っこしてしょうもないところで処理落ちします、みたいなよくわからん完成度。


あとこないだまでダークソウル3してた身としてはグラフィックに戸惑う。 

ちなみに風ノ旅人もやった。飛んだ。さくっとやるには長くやりこむには短かった。
これだけだとただの文句になっちゃうけど、ゲーム自体はふわーっと飛んで砂漠だと思ってたら意外と深海っぽくて魚チックな何かにマント食われたりで面白かった。

2016-09-10

MnMn 0.18.0

先送りしてた #12 を実装した。
現IFに依存してそうで怖い。てか View と ViewModel の分離なんかこんなもん無理だろ。

あとは再生周りをいじった。つかれた。


追記: 2016/09/10 21:05
更新履歴に書いてる #12 の挙動に対する言い訳に関してマルチディスプレイ関係なさそう。
コメント一覧でシングルディスプレイを超えるときに変になるっぽい。
まぁそんな変わんないから別にいっか。

2016-09-09

I don't want to job

書類作業とかちょーだるいんでマジ勘弁してください。

プログラムから書類書くならともかく意味もなく Excel でぽちぽちはしんどい。
せめてセルの結合してないテンプレートくらはい。

つーか家の廊下の電気切れるし まじ勘弁。

2016-09-07

MnMn 0.17.0 とマウス買った

要望もらったので優先度上げて対応した。

次バージョンは設定まわりをあれこれいじりたい。

-----------------------------

チャタリングがしんどくてマウス買った。

M950にはただ去ってもらってMX Masterに頑張ってもらうことになった。
まだ慣れない。

2016-09-05

MnMn 0.16.0

なんか寝れなかったから夜中にポチポチいっぱいがんばった。

朝日が昇ったのでリリースした。

朝日を見て仕事行くのが非常にだるくなって眠たさに気付いた。

関係ないけどマウスがチャタって鬱陶しい。
三回保障交換したM950はそろそろ引退かな。

2016-09-04

MnMn 0.15.0

ソース整理とかWebBrowserのインフラ周りとか整備した。

別ブランチでRTMPやってみたけど無事に成果0だった。