ニコニコ動画に動画をアップロードしたときのエンコードの仕様が変わった?

確か以前まで動画ファイルのサイズが 40MB だか 100MB までの動画はアップロードしたときに再エンコードされずにアップロードできていたので、アップロード後の画質が落ちることはなかったと思うのですが、先ほど前に上げた動画を再アップロードしてみたところ、とてつもなく画質が悪くなってしまいました。

どうも 12/8 の仕様変更で挙動が変わってしまったらしく、アップロードした動画はすべて再エンコードされてしまうようです (下記リンク先参照)。ゲーム制作実況の動画はすべて 40MB で統一していたので、そのまま再アップロードするとかなり見れたもんじゃない画質になってしまいました。

とりあえず動画の元データはまだ残っているので、アップロード用の動画を再作成してみて、いい感じにアップロードできるかどうか試してみたいと思います。結構パワー使いそうだ…。

]]>

ニコニコ動画の動画の投稿や保存容量などが変更されたようです

昨日知ったのですが、12/8 にユーザーごとの動画の保存容量が変更されたようです。詳しくはページ下のリンク先を参照していただいたほうが分かりやすいのですが、全体的にはプレミアム会員も一般会員も拡張された仕様になっているようです。

ただ一部デメリットとして、一般会員の動画投稿については上限が50動画までとなっています。今までは1動画のサイズが40MBまでで合計2GBまで投稿できていたので、最低でも50動画投稿できてることになり、1動画あたりのサイズを減らせば50動画以上は投稿できていました。ここは若干機能ダウンというところでしょうか。まあ代わりに1動画のサイズが1.5GBまでとなったので、上限の2GBは撤回されたような形にはなるのですが。

プレミアム会員については動画の投稿数の上限がなくなったのでうれしい限りです。

]]>

Microsoft アカウントのメールアドレスのエイリアスを作成する際に「contact」というテキストを入れると作成できない

タイトルの通りなのですが、メールアドレスのエイリアスを作成しようとしたときに、アドレスに「contact」という文字列をいれた状態で作成しようとすると「XXXXXXX(メールアドレス)は使えません。」というエラーメッセージが出て作成できません。リンク先のヘルプもエラーについては一切触れていないのでハマってしまいました。

数字や記号を入れたり、文字を並び替えたりしても作成できず、もう適当でいいやと思って打ったら「contact」が「contacf」になったらしく作成できました。

エイリアスの作成でしか試していませんが、もしかしたら通常のアカウント作成時でもそうなるのかもしれません。メールによる詐欺を防ぐとかのためでしょうか。

]]>

[ASP.NET MVC] Redirect メソッドと RedirectPermanent メソッドの違い

Redirect メソッドと RedirectPermanent メソッドはどちらも同じ別ページに遷移するためのメソッドですが、クライアントに返すステータスが異なります。Redirect メソッドが「302 (Moved Temporarily)」を返し、RedirectPermanent メソッドが「301 (Moved Permanently)」を返します。

これはサイトを閲覧しているユーザーのためというよりは検索エンジンのクローラーに対してのメッセージとして使われます。302 は一時的に生成したページに遷移するという意味を持ち、クローラーはそのリダイレクト先の情報を収集しようとはしません。301 は古いページから新しいページに移動させるためのリダイレクトとして解釈され、クローラーは新しいリダイレクト先の情報を収集します。(収集しない、すると明言して書いていますが、実際の挙動はクローラーに依存します)

ですので、ユーザー登録のための画面や一時的なダウンロードページなど、クローラーに収集されたくないページへリダイレクトする場合は「Redirect メソッド」、遷移先のページをクロールされてもいい場合は「RedirectPermanent メソッド」のように使い分けをします。

]]>

ドメイン間ポリシーファイルの配置場所

Silverlight や Flash などのアプリケーションが提供されたドメインと異なる URL の Web サービスを使用するには「ドメイン間ポリシーファイル」が「Web サービス側」に配置されている必要があります。(Silverlightドメイン間ポリシー(clientaccesspolicy.xml)や Flashドメイン間ポリシー(crossdomain.xml))

イントラネットワーク内のサイトで提供している Web サービスでも同様でドメイン間ポリシーファイルを配置する必要がありますが、配置する場所は必ずホスト名直下の URL で取得できる位置に配置する必要があります。(例:http://<サーバー名>/clientaccesspolicy.xml など)

IIS などで同じポートで複数のアプリケーションを配置するために Default Web Site の下にアプリケーションを作成する場合があると思いますが、その場合も個々のアプリケーションごとにドメイン間ポリシーファイルを配置するのではなく、Default Web Site が使用している物理フォルダ (デフォルト「C:inetpubwwwroot」)に配置する必要があります。

]]>

Silverlight でファイル選択ダイアログ、または保存ダイアログを表示する前にブレークポイントを挿入してデバッガーを起動するとエラーになる

意外とはまるのでメモ。

Visual Studio を使っているとブレークポイントを使ってプログラムの流れをチェックすることはよくあると思いますが、Silverlight で同様にブレークポイントでデバッガーを立ち上げた状態でファイル選択ダイアログなどのコモンダイアログを表示させようとすると SecurityException がスローされます。

同じことを書くのも面倒なので詳しいことは下記のリンク先を参照してください。

ファイル選択、ファイル保存、印刷ダイアログはそれぞれクライアント PC に直接影響するので Silverlight アプリケーション以外でのプロセスでローカルリソースにアクセスするのはだめということみたいです。リソースに影響しないメッセージボックスは例外はスローされません。

]]>

IISにASP.NETアプリケーションのインポートメニューを追加する

【環境】

  • Windows Server 2008 R2 SP1
  • IIS 7.5

【内容】

ASP.NETアプリケーションをIISに配置する際にIISの「アプリケーションのインポート」を使えば余計なファイルをコピーせずに配置できるのですが、既定ではこのメニューはついていなかったんですね。

「アプリケーションのインポート」その他展開メニューを追加するには「Web配置ツール」をインストールする必要があります。Web配置ツールは以下のリンク先からダウンロードできます。また、Web PI からもインストールすることもできます。

]]>

ワークグループ環境の SQL Server の各機能に対しての認証の方法まとめ

ドメイン環境であれば認証はある程度 Active Directory に任せられるので楽なのですが、ワークグループ環境では各サービスごとに認証が異なっていたりなど、ハマリどころが多いです。とりあえずわかる範囲でまとめていますが(自分用)、もしかしたら間違っているところもあるかもしれませんので参考程度に見てください。

■環境

  • ローカルPC (ワークグループ or ドメイン環境)
  • サーバーPC (SQL Server インストール, ワークグループ環境)

■接続メモ

 

【SQL Server データベース】

  • Windows 認証と SQL Server 認証を選択可
  • SQL Server 認証の場合、接続文字列にユーザー名とパスワードがあればそのほかの認証は必要なし。事前に SQL Server のログインにユーザーを登録する必要はある。
  • Windows 認証の場合はローカルPCとサーバーPCに同じユーザー名、パスワードのアカウントが必要
  • データベースアクセス時に認証ダイアログが表示される場合があり、サーバーのアカウントさえ入力できれば接続できるようにも思えるが、ローカルにあるアカウントも同時にチェックしているため、やはりローカルとサーバーに同じアカウントが必要である。
  • サーバーに作成したユーザーアカウントを SQL Server のログインに登録する必要あり。また、登録したアカウントに対してデータベース、テーブルなどそれぞれアクセスできる権限を設定する必要あり。

 

【Analysis Services】

  • Windows 認証一択
  • ローカルPCとサーバーPCに同じユーザー名、パスワードのアカウントが必要
  • キューブアクセス時に認証ダイアログが表示される場合があり、サーバーのアカウントさえ入力できれば接続できるようにも思えるが、ローカルにあるアカウントも同時にチェックしているため、やはりローカルとサーバーに同じアカウントが必要である。
  • キューブに接続できるユーザーを指定したロールを作成する必要あり。

 

【レポート マネージャー】

  • Windows 認証一択
  • レポート マネージャーに接続する際に認証ダイアログが表示されるが、サーバーに登録されているユーザーを入力すれば認証可能。ローカルに同じユーザーを作る必要はない。これはレポートマネージャーが Web システムであり、実行するプログラムの実態がサーバーにあるため。
  • レポートビルダーからレポートサーバーにアクセスする場合も、サーバーに登録されているアカウントを指定すれば認証可能
  • レポート マネージャー、レポートにアクセスできるユーザーは、レポートマネージャーでフォルダ、ファイル単位に設定

 

足りない項目は後で追加するかもしれません。また何か違う内容、または追記すべき項目があればコメントください。

]]>

レポート ビルダーでレポート マネージャーに配置してあるデータ ソースを参照したときにデータ ソース クエリを参照できないエラーの対処法

はまったので簡単にメモします。

【環境】

■クライアントPC

  • レポート ビルダー 3.0

■サーバーPC

  • Reporting Services (SQL Server 2008 R2)
  • 参照するテーブル、またはキューブ
  • 上記のデータ ソース配置

 

【原因と対処法】

レポート ビルダーを使うクライアントからサーバーにあるデータ ソースを参照し、クエリデザインを開こうとしたときに認証エラーになる場合があります。

【エラー例】

  • ログオン失敗: ユーザー名を認識できないか、またはパスワードが間違っています。
  • 対象のコンピュータによって拒否されたため、接続できませんでした。

逆にサーバー内で直接レポート ビルダーで編集するときや、レポート マネージャーから(サーバー、クライアントからアクセスどちらでも)データ ソースの接続テストを行った場合には問題ない場合があります。

これのよくある原因としては、データソースのホスト名指定に「localhost」を指定している場合に発生します。

サーバー上で編集している場合は自分自身(localhost)にデータソースが存在するのでエラーが発生しません。クライアントからレポート マネージャーを開いてデータソースの接続テストを行った場合にも、実際にプロセスが動いているのはサーバーなのでこちらもエラーになりません。

レポート ビルダーからサーバーのデータソースを参照した場合は、データソース自体はサーバーにあるのですが、そのデータソースを使って実行するプロセスはクライアントになるため、localhost はクライアントPCを指すことになり、データ ソース(テーブルなど)が存在しないため、エラーになることがあります。

ですので、レポート マネージャーに配置するデータ ソースが参照するホスト名は localhost にはせず、必ずサーバー名、または IP アドレスを明示的に指定する必要があります。

]]>

ホスト名にアンダーバー(_)を含むサイトに Internet Explorer でアクセスすると Cookie が保存されない

完全に盲点な仕様でした。ASP.NET で Web サイトを構築していたのですが、なぜかホスト名でアクセスするとセッションに保存していたデータが消失してしまうという謎の原因が発生し、解決の糸口が見つからなかったので MSDN フォーラムで質問していました。

ホスト名にアンダーバーをいれた場合、Cookie が保存されないのは IE だけの仕様なんですね(IE 6~9 で確認)。ほかのブラウザでは問題なく Cookie は保存されるようでした。

検索してみると結構出てくるみたいです。

ひさびさに大ハマリしてしまいました orz

]]>