ホームページサーバーを移転しました

以前お知らせしたとおり、ホームページを運用しているサーバーを移転しました。ドメイン(sorceryforce.net)はそのまま流用していますので、ページへのアクセスについては特に変わらず、今まで通り参照することが可能です。

ただ、ブログについてはアドレスが「http://sorceryforce.net/wordpress/」から「http://blog.sorceryforce.net/」に変更となっています。これについても前の投稿で書いた通りなんですが、アプリケーションサイトの中に WordPress のサイトを作っていたので、これを別サイトに独立させて作りました。アドレスが変わってしまう問題がありますが、リダイレクトさせるようにしたので問題ないはずです。

一応移転は完了したのですが、全ページ見まわしたわけではないので、もしかしたら不具合があるかもしれません。また、ブログについては一部のページで画像が表示されない可能性があるかもしれません。何かあればブログのコメントか Twitter などでお知らせください。

ここから移転についての余談になるのですが、ホームページを移転する際は、先に移転先に同じサイトを構築しておいて、動作確認が終わったらドメインの参照先 IPアドレスを変えるという方法を考えてました。実際にそう行ったのですが、想定外だったのは参照先の IPアドレスを変えるために DNS を変更したのですが、あれって即座に反映されないんですね。ドメインを新規で登録すると割と早くアクセスできていたので、同じ感覚で切り替えられると思っていました。

で、実際にやってみたら最長で2日間ぐらいかかって、最初は何が原因で繋がらないのか全く分かりませんでした (500 エラーとか出る)。まあいろいろいじったりしていたら PING が送る先の IP アドレスがまだ変わってないことが分かったので、とりあえず待つことにしました。

意外と興味深かったのが、アクセスする PC によって同じタイミングでも接続しようとする先が違うことでした。ある PC はすでにアクセスできるようになっていたり、とある PC はまだだったり、さらにはルートドメインは正しい IPアドレスを指すのに、サブドメインは前の IPアドレスを指していたりと、どういう仕組みになってるんだろうなと思いました。

とりあえず移転は完了したので、その間ブログに書けなかった内容を後で書いていきたいと思います。

Share this...

JSON テキスト整形 Web アプリ作りました

.NET Framework の標準機能でオブジェクトを JSON にシリアライズすると、改行やインデントのない1行の JSON テキストとして出力されるのですが、さすがにそのままだと見づらいので、プログラムで JSON テキストを解析して改行やインデントを付加し、見やすくしてたりしていました。

というのをずっと前に実装していたのを忘れていて、この機能ほしいなーと思っていたら、そういえばなんかそういうの作ったことあった気がするなー、と思い出しました。

ほかのサイトでも JSON の整形をやってくれるところはあるのですが、せっかくメソッド1個呼べば整形できるプログラムがあったので自サイトにもあってもいいかなと思って作ってみました。

とりあえず仮で作ったのでβ版開発室においてあります。本アプリとしてリリースするかはまだ決めていませんが、使ってみたい方は使ってみてください。

使い方は簡単で、JSON テキストを入力テキストエリアに張り付けて変換ボタンを押せば出力テキストエリアに整形された JSON テキストが出力されます。

変な形式でなければたいていはきちんと出力されるはずです。変な形式だと変なテキストが部分的に返されるはずだと思います。特別構文のチェックを行っているわけではありません。

Share this...

ホームページ「sorceryforce.net」の実行環境を変更しました

内部フレームワークを変えただけなので見た目とかは特に何も変わっていません。

開発環境を Windows 10 や Visual Studio 2015 に移行したりしていたのですが、ついでなのでホームページを動かしている ASP.NET の中身もいろいろバージョンを上げてみました。もし挙動などがおかしければコメントいただけると助かります。(WordPress 側は特に変えてないのでブログのほうは大丈夫だと思います)

一応変えてみたものは次の通りです。

  • ASP.NET 4 → ASP.NET 4.5.2
  • .NET Framework 4 → .NET Framework 4.5.2 (サーバーがいつの間にか 4.5 対応していたので上げました)
  • Entity Framework 5 → Entity Framework 6.1.2 (4→5 みたいに API 変わってなくてよかったです)
  • jQuery 1.8.2 → jQuery 1.10.2

ただ、Web サーバーのほうが権限の問題で Roslyn を使おうとするとアクセス権エラーが発生してホームページがまったく動かなかったので、web.config から「system.codedom」を抹消して使用しないようにしました。というか自作サーバーでテストしていたときは普通に動いていたのに、いざ本番ホームページサーバーにあげたら不明なエラーが発生して動かなかったので結構焦りました。一時期ホームページが開けなくなっていたのはこのためです。

ちなみに、作り直す前のプロジェクトを VS2013 から VS2015 に移行した時に図のような警告が出ていたので、SQL Server 2012 Express LocalDB を入れようかと思ったのですが、新規に作り直した時に認証系などをすべて外したので警告は出なくなりました。

2015-09-09 20_17_36-Microsoft Visual Studio

Share this...

sorceryforce.net の多言語対応仕様を変更しました

気づいていた人はあんまりいないと思いますが、Web サイト「sorceryforce.net」では複数の言語で表示できるように構築していました。今回その動作仕様を変更しています。

今までは多言語対応は以下のようにしていました。

  1. HTTP ヘッダーで送信される言語情報によって表示される言語を切り替えていた
  2. クエリパラメータに「lang=XX」を追加することによって環境に依存せずに表示言語を切り替えられるようにしていた

しかし、上記の対応ではいくつか問題がありました。

まず 1 についてですが、ユーザーが意識せずに表示言語が自分の環境に合わせて変更されるというメリットがあるのですが、SEO 観点からみると、どんなに複数の言語に対応されていたとしても URL は一つであるため、言語数分の評価がされないということです。基本的には日本語がメインなのですが、代わりに英語で評価されたとした場合にコンテンツ力が低いとみなされると「http://sorceryforce.net/」の評価が下がってしまい、同時に日本語サイトとしての評価も下がってしまうことになります。

2 についても SEO 観点から見た場合、クエリパラメータによる多言語対応はあまり評価対象にはならないようです。

上記の理由から今回以下のように多言語対応の仕様を変更しました。

  1. 言語の変更は URL のドメインの直下で指定するようにした
  2. URL で言語を指定していなかった場合は、HTTP ヘッダーで指定された言語のページにリダイレクトする

1 については前の仕様のクエリパラメータによる言語指定をパスに移動させた形になります。これにより、言語単位で URL が決定するので SEO に対する評価も言語単位になります。クエリパラメータで指定した場合とどれぐらい評価が違うのかといわれると定かではありませんが、URL の見た目的にもユーザーに分かりやすい形になっていると思います。URL の言語部分を変えれば表示される言語も変わります。たぶん大手のサイトとかもこの形式を採用しているところが多いです。

2 については言語が、指定されていなかった場合、日本語がメインのサイトなので日本語のページを表示させようかと思いましたが、正直、URL に対して言語指定ありなしで言語表示を分岐させるのがめんどうだったのでやめました。また、せっかく英語環境で見に来ても日本語で表示されるとみてくれない可能性もあるので、そうであれば対応する言語のページに飛ばした方が有意義かなと思いました。URL を変えずに表示言語を変える方法は前回の使用の 1 に該当してしまうのでやっていません。

上記変更に伴い、せっかくなのでユーザーが言語を変更できるようにページの左側に言語を選択できるドロップダウンをつけてみました。これでいちいち URL を変更せずに直接見たい言語を選択できるようになりました。また、前の仕様ではページを切り替えるたびに URL で再度言語を入力しなければいけませんでしたが、今回の修正に伴い、表示されている言語のままほかのページへページングできるようにもしました。

 

さて、ここまでの話でなんだか大がかりな変更をしているようにも思えるかもしれませんが、実は中身のコンテンツに対してはあまり多言語対応していません orz。特に Tips 系は日本語のままなのでどうしようかなと思っています。実際 HTML の多言語化をどうすればいいのかなーと悩んでいる段階です。まあ、コンテンツについてはおいおい対応していきたいと思います。

同人誌、同人ゲーム、同人ソフトのダウンロードショップ - DLsite
Share this...

ホームページ(sorceryforce.net)の障害の対応終わりました

2014/08/05 23:50 ころにホームページの方を復旧いたしました。

原因については前の投稿の通りデータベース破損によるものでしたので、サーバー管理者に削除してもらって作り直しました。

ほんとは最近のバックアップがあればそれをリストアして完了の予定だったのですが、2月ごろにバックアップを取って以来、まったく取っていなかったという失態を犯してしまっていたため、どうしようかと少し悩んでいました。orz

とりあえずローカルにはホームページとほぼ同じテーブルレイアウトを保持していましたので、いったん2月のバックアップDBをリストアし、ローカルからサーバーへのテーブルレイアウト同期 SQL を発行しエラーが発生しないように修正、更新履歴等必要な情報を一括アップロードしてとりあえず問題なく動いている感じがします。

もしなにかおかしな挙動をしているようであればブログにでもコメントください。

余談:Outlook の予定表にバックアップスケジュール入れていたんですが、2月ごろからまったく通知されなくなったんですよね・・・。

同人誌、同人ゲーム、同人ソフトのダウンロードショップ - DLsite
Share this...

ホームページ(sorceryforce.net)の障害について

2014/08/05の朝あたりからホームページ(sorceryforce.net)を閲覧するとエラーページが表示される状態になっております。

原因としてはデータベースに障害が発生しており、データベースの入れ替え作業が必要なのですが、おそらく作業は深夜あたりになりますのでそれまでお待ちください。

※ホームページとブログでは別々のデータベースを使っているのでブログ側は問題なく動いてます。

Share this...

ちーたんつ~るず 始めます

最近はあまりツールやゲームを作ることがなく、ホームページをちょろっとメンテするぐらいだったので、ひさびさになんか作ろうかなーと思いました。ただ、本格的なものを作ろうとするとそれなりの時間がかかってしまうし、途中で飽きたり挫折したりする可能性もあるので、自分が作りたいものを規模の大きさに関わらず気ままに作るつもりです。基本的に誰かのために作る、というよりは自分が欲しいから作る、というスタンスです。ただ、自分しか使わないのももったいないので、他の人にも使えそうなものがあれば公開していこうかと思います。

さて、ツールを公開するにあたり、ちょんプロ(ちょっとしたプログラム)みたいなものを公開してもなんか素っ気ないので名前を付けることにしました。その名も「ちーたんつ~るず」です。「つ~るず」は Tools をひらがなにしたものです。「ちーたん」は以前作っていた Windows Mobile 用の Twitter クライアントの名前から持ってきました。Windows Mobile のサポートも終了したため開発の方もやめてしまいましたが、それなりに使われたツールであり、そのままなくしてしまうのももったいなかったので名前だけでも今回採用しました。

前述したとおり、ちーたんつ~るずは私が気ままに作るツールなので、誰向けに作るというものではありません。多くの人に使えるツールである場合もありますし、ものすごく限定された人しか使わないようなツールである場合もあります。何を出すかはその時の気分次第です。

どんな環境で動かせるの?

基本的には .NET Framework で作ったツールになるので Windows デスクトップ用になるかと思います。ストアアプリ版を作る可能性もあるかもしれませんが、あちらは申請とかいろいろ面倒なので、気ままに作れるデスクトップ向けツールになるかと思います。場合によっては Web ツールになる場合もあります。その場合は sorceryforce.net のβ版開発室で公開することになるかと思います。

でもお高いんでしょう?

気ままに作ったツールなので、そこからお金を取ることはありません。ツールによっては広告を入れるという場合もあるかもしれませんが、利用者がツールを使うにあたって直接お金を支払うということはありません。アプリの購入やアプリ内課金もありません。

何を作るの?

ここまで書いたのだからなんか出すんだろうと思われますが、はい、まずは第1弾を公開する予定です。詳しい内容についてはツール公開時に書きますが、ほぼほぼできているので週末あたりには公開できるかもしれません。バージョンは 0.01 ですが、なんだかんだいって当初予定していたもの以上の機能をいれてしまったので、Ver 0.10 ぐらいでもいいんじゃないかと思ってます。一応 Windows デスクトップ向けのツールです。デスクトップ向けといってもタブレット向けです。とりあえず内容はお楽しみということで。

Share this...

ホームページの方をいろいろ更新

去年更新の方が停滞していたので、今年は少し更新するようにしました。ブログの方にもちょくちょく書くつもりだったんですがタイミングがなかったので今回まとめて書いておきます。ちなみに更新しているのは「sorceryforce.net」の方で「sorceryforce.com」ではありません。今後は「sorceryforce.net」の方を中心に更新していくつもりです。

各 Tips に概要を追加

各コンテンツのページの最初に概要が入るように、一応ローカルでも概要を登録していたのですが、サーバープログラムの方でまだ出力対応してなかった(というかローカルで作った概要すら取り込んでいない状態だった)ので、今回プログラム改修する際に概要を表示できるように対応しました。とはいってもコンテンツ内容量よって概要を入れるか入れないか切り分けていたりするので全ページに概要が表示されているというわけでもないのですが…。

各 Tips ページにツイートボタンを追加

Twitter のツイートボタンをページの後ろあたりに入れてみました。デフォルトではツイートするときに「ページタイトル – URL」となるのですが、タイトルによっては自分で文章いれてツイートしたのかわかりにくくなりそうだったので、ツイート文章の最初に「Read : xxxx」とつくようになってます。

今回入れたページは Tips 系のページだけになってます。他のページに入れるかどうかは検討中です。

各 Tips 公開

Project Linker を使用して複数のプロジェクトでソースコードを共有する

Visual Studio で複数のプロジェクトでソースコードの共有を自動化させる拡張プラグイン「Project Linker」を使用した説明を載せました。

Project Linker 2012 を Visual Studio 2013 で使用する

Project Linker 2012 は Visual Studio 2012 にしか対応していないため、これを Visual Studio 2013 で動作するための手順を載せています。

リモートデスクトップによる接続を行うための設定

元々の記事は sorceryforce.com の方に載せていたのですが、Windows 7, Windows Server 2008 R2 までしか書いてなかったので、今回 Windows 8, Windows 8.1, Windows Server 2012, Windows Server 2012 R2 を追加しました。

Windows 8, Windows Server 2012 で IME の入力状態をアプリケーションごとに持たせるようにする

元々ブログに書いていた記事なのですが、ブログのコンテンツはどんどん埋もれていってしまうので新たに書き起こしました。Windows 8.1, Windows Server 2012 R2 の確認も追加しました。

Share this...

Tips 追加

sorceryforce.net の方で Tips 追加しました。少し Tips が増えてきたので少しグルーピングしようかなーと思ってますが、まだ実装できていないのでもうしばらくしたらやります。Tips は一部ブログから書き直して転載しているものもあります。

Share this...

URLから言語を指定できるようにしました

sorceryforce.net のサイトのほうですが、今まではブラウザに設定されていた言語設定によって対象の言語で表示するようにしていましたが、URL から表示する言語を設定できるようにしました。

アドレスの後ろに「?lang=en」のようにクエリ文字列を指定すれば対象言語で表示できます。今は40言語程度対応していますが、対応外の言語を指定した場合は日本語で表示されます(たぶん)。

あと、このパラメータはほかの画面に引き継げないので、ほかの言語で見たいページがあるときの対処として使ってください。(ほとんど自分用)

Share this...