カレンダー
クイックサーチカテゴリ管理最近のエントリヤフオク用Greasemonkeyスクリプト VIII
土曜日, 8月 28 2010 C# .Net Frameworkで2重起動に対応 土曜日, 8月 28 2010 ヤフオク用Greasemonkeyスクリプト VII 土曜日, 7月 24 2010 ヤフオク用Greasemonkeyスクリプト VI 日曜日, 7月 18 2010 スモールオフィスのネットワーク III 火曜日, 7月 6 2010 IE、ChromeのGreasemonkey script 月曜日, 7月 5 2010 serendipity Chrome / Safari patch 月曜日, 7月 5 2010 スモールオフィスのネットワーク II 金曜日, 7月 2 2010 スモールオフィスのネットワーク I 金曜日, 6月 25 2010 ヤフオク用Greasemonkeyスクリプト V 水曜日, 6月 23 2010 |
2010年 8月 28(土曜日)ヤフオク用Greasemonkeyスクリプト VIIIYahooAuctionSの最近のヤフオク仕様変更に合わせた改版こちらの続きです。最近ヤフオクは公告収入の増収を狙って(?)、画面の大幅な変更と公告スペースの拡大を行いました。これに合わせてユーザスクリプトも変更しました。特に大幅に増えた公告対応をしました。こちらを見て、設定をカスタマイズしてご利用下さい。 スクリプトはこれ→yahooauctions.user.jsです。
2010年 8月 28(土曜日)C# .Net Frameworkで2重起動に対応C#で二重起動を禁止するコード、起動済みプロセスに処理を移管するコードアプリケーションは通常、プロセスとして複数起動できるものですが、何かの理由で1つのみ起動できるようにしたい場合があります。例えば、唯一リソースにアクセスするものや、インスタンス間の連携のためにスレッドで実現したい場合などです。後者はWindowsでは良く見る仕様で、Officeがそうですし、Adobe Readerなどもそうです。また、Macでは複数のアプリを上げようとしても、既に起動しているインスタンスに切り替わります。 ここでは、単純に2つの仕様の実装を紹介します。
二重起動を阻止プロセスの始めのほうの行に、以下のコードを入れます。Program.cs内で充分です。 // check not to run same processes simultaneously. 要するに、起動プロセスと同じ名前のプロセスがあったら、警告ダイアログを出して終了します。 起動済みプロセスに処理を任せる前述のMacのような仕様です。起動しようとするユーザは、そのタスクを実行したいのですから、「できない」とか言われても困ってしまいます。できる限り、ユーザがやりたいことを実現するべきでしょう。2つ目を上げようとすると、起動できたように見えて、実は1つ目のプロセスのウィンドウがアクティブ状態で表示されます。 なのですが、こちらのほうは実装がすっきりしません。本来であれば、起動済みプロセスにお知らせして、実行を代行してもらうように実装すべき(UNIXであれば、このように実装するでしょう)なのですが、手軽ではありません。そこで、WinAPIを使って、表示を制御してしまいます。 // check not to run same processes simultaneously. 起動済みのアプリプロセスを捜すのに、FindWindowを使っています。本当は、GetProcessByNameで捜すべきところなのですが、これでやると、プロセスは見つかりますが、MainWindowHandleが取れない場合があります。デバッグした範囲では、殆どの場合でOKなのですが、ステータス表示のみ(アイコンボックスに表示されているだけ)の常駐状態の場合には無効なWindowHandleが戻ってきます。仕様(実際にMainWindowが作成されていない/破棄されているのかも)なのか、バグなのか分りません。 まとめこれで、2重起動への対応ができました。上記以外で、通常必要になるかもしれない機能は、起動パラメタを渡すことくらいでしょうか。 WinAPIは既に使うべきではないようですが、便利なので使い続けられて行くでしょう。なんと言うか反則じみていますし、結構危険に思われます。例えば、今回のコードでも、他のプロセスから勝手に表示制御などされてしまえば、最悪プロセスが落ちても文句言えませんよね。稼働中のプロセスの任意のタイミングでスクリーンにマップされてしまう訳で、表示(show)のコールバックなどもアプリが予期せぬタイミングで呼ばれてしまいます。普通に実装していれば動くでしょうが、何らかの状態制御や排他制御などをしていれば必ずしも安全ではありません。
2010年 7月 24(土曜日)ヤフオク用Greasemonkeyスクリプト VIIYahooAuctionSの改版こちらの続きです。 先週ヤフオクの検索画面が変更されましたが、昨日更にマイナーチェンジが施されています。検索時のブラックリストが効かなくなりましたので、改修しました。こちらyahooauctions.user.jsです。 2010年 7月 18(日曜日)ヤフオク用Greasemonkeyスクリプト VIヤフオク ユーザスクリプト: 新検索画面対応こちらのバージョンアップです。 ヤフオクの検索画面がリニューアルされましたので、これに対応しました。
設定のページを参照いただき、元々のスクリプトファイルをyahooauctions.user.jsをバックアップ(例えばデスクトップにコピー)します。次に上記リンクからユーザスクリプトをインストールします。インストールされたユーザスクリプトファイルに、バックアップしたファイルから、設定をコピペ編集します。 # そろそろ設定をスクリプトファイルから切離さないと使い難いですね。 2010年 7月 6(火曜日)スモールオフィスのネットワーク III中小規模の会社ネットワーク その3こちらの続きです。 DNS (ドメインネームサービス)DNSは、コンピュータの名前とIPアドレスを変換する役割を担いますが、機能上3つに分けられます。
例えば、(1)は隣りの机のパソコンとファイル共有したりする場合、(2)はウェブサーフィンをする場合、(3)は自ドメインでサービスを提供する場合に必要になります。 この内で、スモールオフィスのDNSは(1)と(2)の機能を実装します。(3)はドメインのレジストラが提供してくれます。また、ゲートウェイポリシーで「何も通さない」のときは、(2)は必要がありません。 使うソフトウェアはbindというDNSサーバ(named)で、ゲートウェイ上で稼働します。PCのDNSはゲートウェイのIPアドレスを設定します。 インタネットのDNSBindの"forwarders"(転送)機能を使うのが簡単です。ISPの、もしくは近い(応答が速い)公開DNSサーバを幾つか転送設定します。DNSはサーバ上のキャッシュが効きますので、直接解決してくれる上位のDNSサーバを捜すよりも速度的にも有利になります。 forwardersの設定named.confに以下の記述を加えます。実際に試してみて、応答が速いDNSサーバを4〜5コメントを外して下さい。通常はISPのものがあると思いますが、応答が遅くなければそれを使うということで良いでしょう。 forwarders {イントラネットのDNSDHCPと組み合わせて、DDNS( Dynamic DNS)を構築します。これにより、ネットワーク上のPCを名前でアクセスできるようになります。イントラネット上のどこで接続しても、部署間を移動しても、PCの設定を変更する必要はありません。 DDNSの設定DDNSでは、DNS側の設定とDHCPD側の設定があります。 DNSの設定(named.conf)ここで、"secret"のところには、以下を実行すると"Kdhcpddynupdate.+xxx+xxxxx.key"というファイルが作成されるので、その中身を記入します。
dhcpdの設定(dhcpd.conf)ddns-updates on; ここで、"secret"のところには、named.confに記入したものと同じものを記入する。(共通鍵のセキュリティです) これで、各PCで設定されたホスト名で、他のPCからアクセスすることができます。
2010年 7月 5(月曜日)IE、ChromeのGreasemonkey scriptFirefox以外のGreaseMonkeyユーザスクリプト実行環境Firefoxには、ウェブページのGUIをカスタマイズするユーザスプリプト実行環境Greasemonkeyがあります。私もユーザスクリプトを2つ公開しています。最近はWindows環境のIEやChromeを使うことがありますので、そこでもユーザスクリプトを使うことができないか、と思い、調査してみました。 IEとChromeに関してはGreasemonkey互換環境があり、YahooAuctionSは問題なく動作しました。 インターネットエクスプローラIEには2種類あるようです。TrixieとGreasemonkey for IEです。ネイティブな記述言語は、前者はJavascript、後者はDHTMLです。Trixieのほうが歴史が古く、Greasemonkeyとの互換性という点では良さそうです。 TrixieTrixieは外部プログラムになっており、インストールもMSIファイルになります。インストールすると、「ツール」メニューの中に"Trixie Options..."というメニューが追加され、設定を行うことができるようになります。ユーザスクリプトは、<<C:\Program Files\Bhelpuri\Trixie\Scripts\>>にコピーすれば自動的に読み込まれます。(読み込まれない場合、Trixie OptionsでReload Scriptsボタンを押します)。 Google Chrome今年の春に組込み機能としてサポートされたようです。基本的に環境のインストールは必要がなく、ユーザスクリプトをファイルとしてブラウザに読み込ませることでインストールされ、それ以降はスクリプトが動作するようになります。こちらもYahooAuctionSの動作には問題はありません。 しかし、一つ問題があります。それは、ユーザスクリプトがインストールされるフォルダのパスが可読な形式でないことです。例えば、私のところでは、こんなパスです→<<C:\Users\XXXX\AppData\Local\Google\Chrome\User Data\Default\Extensions\ecegpedmokfjpiaofpacmkejhjfidfbf\1.0\>>。つまり、Extensionsの下に直に(他のAddOnと同列に)置かれてしまい、かつ、GUIDのような無意味な文字列のフォルダ名にされてしまいます。しかも、その下は、"manifest.json"と"script.js"とファイルが自動生成されています。(後者はyafooauctions.user.jsをリネームしたもの)。このため、どこにインストールされたかは、ファイルを開けて捜さないと分りません。 YahooAutionSおまけで更新しました。マイオークションメニューの「値下げ交渉」リンクを「検索履歴」に差し替えることができるようになります。「値下げ交渉」というのは使われているのでしょうか? 検索履歴は良く使うので代りにメニューに入れました。 とすることでメニューが切り替わります。var SUBSTITUTE_OFFERDISCOUNT_TO_SEARCHHISTORY = true; ※ (7/7追記 前回「終了したウォッチリストの削除から戻る」が間違ったページに戻るようになっていたのを修正) 2010年 7月 5(月曜日)serendipity Chrome / Safari patchblogシステムserendipityをchromeで編集できるようにするパッチChromeブラウザでserendiputyの管理者スィートを立ち上げた場合、警告(alert)が度々表示される不具合があります。"mozilla < 1.3 beta is not supported"というものです。これをfixするパッチを作りました。 これは、Safari系ブラウザに共通なもののようです。このアラートは、Geckoエンジン(SafariはKHTMLのような?)の場合に、リリース日時を調べて、一定以上昔の場合に表示されています。通常はこれでOKなのですが、Safariの場合はちょっと動作が違っていて、初期リリース(1.0版)のリリース日時を返すとのこと。このため、必要以上に古い日時が返されて警告が表示されていました。 Safari系のブラウザ(Safari, Chrome)は新しく、時期的に"< mozilla 1.3"とかいうことはありませんので、単純に警告を抑制することにしました。実際には、AppleWebKitを使っているものに対して抑制します。調べていませんが、このモジュールが上記動作をしていると思われます。 もしかしたら、serendipityの最新リリースでは直っているかもしれません。(ソースコメントに、この部分の実装が不完全なことが注記されていますので)
2010年 7月 2(金曜日)スモールオフィスのネットワーク II中小規模の会社ネットワーク その2こちらの続きです。 ゲートウェイ名前の通り、外(インタネット)とのやりとりはすべてこの機器によって中継されます。通信パケットフィルターによって、危険性のある通信を遮断し、内(イントラネット)を安全に保つことができます。常時起動であることと、外との通信が容易であることから、DNSやウェブサーバとメールサーバ、NTP等を稼動するのに最適ですし、パケットフィルタリングだけでは処理能力に余裕がありますので、各種のネットワークサービスを稼動することとします。勿論、サービスが重くなれば、他にサーバを立てて処理を分散することも可能です。 GatewayとNATゲートウェイでは通信を中継する際に、ポリシーに沿ってパケットフィルタリングを行います。要するにファイアウォール(防火壁、firewall)を構築します。代表的なポリシーは「何も通さない」と、「内からの通信は許し、外からの通信は遮断」です。いずれにしても、外(インタネット)からのアクセスはゲートウェイ内で処理し、内(イントラネット)には通さないことが原則になります。この場合、イントラネットはプライベートアドレス(192.168.0.0/16、もしくは、172.16.0.0/12)を使うことができます。 何も通さない基本的に、内(イントラネット)からも外(インタネット)からも通信を開始されることはありません。全てのパケットはゲートウェイ内で破棄されます。その代わり、proxyをゲートウェイ内で稼動し、アプリケーション層で中継することになります。proxyでは通常、内から外へのウェブアクセスとFTPを許可します。アプリケーションはproxy対応が必要となります。 内からの通信は許し、外からの通信は遮断NATです。内からの通信はゲートウェイのIPとポート番号を持つ通信として第3,4層(TCP/UDP/IP層)で外のサーバに転送(forward)されます。これは外のサーバからも、内のPCからも透過的ですので、通信プログラム(サーバ、アプリケーション共)はNATの存在を意識する必要はありません。 実装手段LinuxのNAT実装であるIPマスカレードを含むIPフィルタであるIPTablesを使います。設定の概要は以下の通りです。 $IPTABLES = "/sbin/iptables" まず、基本的なポリシーです。外には出られて、中には入れない。 $IPTABLES -P INPUT DROP ローカルホストとイントラネットからのアクセスは受け入れる #--- allow access from lo, internal_net インタネットからは、イントラネットから開始された通信中であるパケットのみ受け入れる。 $IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT ウェブサーバへのインタネットからのアクセス(http, https)だけを受け入れる。 $IPTABLES -A INPUT -p tcp -m state --state NEW,ESTABLISHED,RELATED --dport 80 -j ACCEPT NATの設定 echo 1 > /proc/sys/net/ipv4/ip_forward
2010年 6月 25(金曜日)スモールオフィスのネットワーク I中小規模の会社ネットワーク その1小さな会社や、個人商店に最適なネットワーク構築です。これから、何回かに分けて解説をします。 情報システム(IS/IT)会社のネットワーク構築にはSI(社内/社外)が入り、少なくない予算と多くの機材、設備を要するという考え方が一般的です。このため、ここで紹介するものの極限的にシンプルさに驚かれるかもしれません。しかし、機能や性能は必要に応じて増やすことができますので、基本的な構成はシンプルにできます。よほどの大企業でもなければ、どこでも充分に使えるものと思います。実際、このような構成は私の発明ではなく、10年前までは(大企業でも)普通に使われていたものです。現在のIS/ITへの投資は、得られる効果に比して過剰品質なのではないでしょうか。 機能としては、社外に対しては、ウェブ、ファイル転送、リモートシェル(リモートログイン)を提供し、社内にはファイアウォールに守られたイントラネット、DNS、DHCP、ウィンドウズのドメインコントローラ、ファイルサーバと共有プリンタを提供します。ウィンドウズネットワークとしては、ワークグループの他に、ドメインログオンを提供することも可能です。 利点
構成構成は以下です。Linux PCをゲートウェイとし、その上で種々のサーバを稼働します。
ルーター/ブリッジハードウェアは通信会社から提供される機器を使います。回線は光Fletsか同等の回線を利用すれば良いです。もしかすると場所にも依るかもしれませんが、公称100Mbps、実効で上り下り共30Mbps程度は出るようです。なお、ウェブ等サーバとして提供する場合には、上り回線の帯域が必要になりますので、ADSLは使えません。 プロバイダ(ISP)は固定IPアドレスを取得できるところを選びます。最安値で500円/月程度からあります。固定IPにしないで運用することも不可能ではありませんが、特に疾しいサービスでなければ特にメリットがあるとは思われません。 ゲートウェイハードウェアは汎用PCです。イーサネットポートを増設して100base-Tを2口用意して、一方の口をルータ/ブリッジに、もう片方の口をイーサネットハブに接続します。 Linux OSを使用します。利用するサーバプログラムは、rp-pppoe (PPPOe)、IPTables (ファイアウォール、NAT)、Bind (DNS)、dhcpd (DHCP)、Apache (Web Serever)、Samba (ウィンドウズ共有)。 イーサネットハブポートが沢山付いたciscoとかの高価なものでなくても、家庭用のもので十分です。端末個数が多い場合は、カスケードして使います。 ワイヤレスLANアクセスポイント特別な設定は必要ありません。ただ、NAT機能が付いているようでしたらOFFにしておき、ブリッジとして使います。 「その2」に続きます。
2010年 6月 23(水曜日)ヤフオク用Greasemonkeyスクリプト VYahooAuctionSの機能追加ヤフオク向けGreaseMonkeyユーザスクリプトの機能を追加しました。こちらyahooauctions.user.jsです。 変更点は以下の通りです。
なお、"設定する"と言っても、ユーザがボタンを押して、表示を明示的に変更した場合は、そちらが優先されます。 インストールFirefoxで、GreaseMonkeyのアドオンがインストールされていれば、単にクリックしていただくだけでインストールされます。詳しい設定方法は、こちら"ヤフオク用Greasemonkeyスクリプト II"をご覧下さい。 ※ FORCE_TITLE_AND_PICTURE_ON_WATCHLIST に不具合があったので、差し替えました。不具合は、設定しても最初の一回目は反映されないというものです。
2010年 6月 4(金曜日)ヤフオク用Greasemonkeyスクリプト IVヤフオク ユーザスクリプトの改良ヤフオク画面用ユーザスクリプトを改造しました。改造点は2点です。
ファイルはこちらyahooauctions.user.jsです。 2010年 5月 28(金曜日)SKKのインストール Windows & LinuxSKKの入れ替え嵌り易い漢字変換システムにSKKがあります。その名の通りシンプルな単語変換ですが、入力の手順が手書きと似ているところが気に入っています。元々はEmacsに特化したシステムだったこともあり、ユーザも多くはないながらも熱心な人が多いようで、廃れることもなかったので、利用し続けてきました。また、幸いなことに今ではLinux(iBus, SCIM, UIM, XIM), Windows、Macなど多くの環境で利用することができます。 やっと、受託していた開発を納品することができましたので、なんだか無駄なことがしたくなり、SKK関係の不満を解消しようと思い立ちました。 SKKIME on WindowsWindowsにはSKKIMEがあります。本当に素晴しい。これと、XKeymacsがあるおかげでWindows上でも快適に作業をすることができるようになりました。しかし、私が使っていたバージョンでは「IMEをオープンしたときに"かな"に戻す」の設定が効いていないことが、小さな不満でした。特にWindowsではステータスバーがウィンドウから離れた端っこのほうに出るので、いちいち確認していられないのです。 さて、サイトを見てみると新しい版が出ていますので、入れ替えてみました。設定が大幅に変わっているようで、Shift+Spaceを押しても動きません。どうやら、この辺のキーハンドルが自分でできるように変更されたようです。このため、XKeymacsで設定していた"toggle-ime"のキーマップを解除し、skkimeのプロパティ設定のキーマップの設定で、Shift-Spaceを追加して、toggle-imeを設定。これでできました。最新版では、上記の「"かな"に戻す」も動作しています。 この設定を見ていると、もっとカスタマイズできそうなので、以前から気になっていたのを変更することにします。 SkkInput3 on Linuxこれで気を良くしたので、Linuxのほうも変更してみることにしました。ディストリビューションにはskkinput2が入っているため、こちらをバージョンアップしつつ使っていたのですが、何かの拍子に落ちてしまうこと(しばしばFirefoxと共に落ちる)や、漢字登録ダイアログが消去できなくなってしまうことがあり、解決策を捜していました。 バージョン3版を取ってきてコンパイルしてみると動きそうです。(以前は何故か動かなかった記憶が)。とりあえず、実行ファイルも同じskkinputになるので、同じように使うことができますが、共存は想定されていないようです。 こちらもしばらく使っていた限りでは、前述の問題は解決されています。落ちないようですし、登録ダイアログの動作も申し分ありません。なのですが、原因不明の不具合が発生しており、一時的にバージョン2に戻していて、そのまま乗り換えには至っていません。不具合はFirefox上で"Enter"が入力できなくなってしまうことがある、のと、Backspaceが誤動作(?)することです。skkinput以外の何かの設定が原因かもしれません。 2010年 5月 17(月曜日)ホイールマウスの修理Mouse Wheelのゴム交換マウスは、ボールから光学になって可動部分が減り、大幅に故障が減りましたが、ホィール周りは段々と壊れてくるようで、ネットで沢山ググれます。私の場合は、特に、ホィールに付いている滑り止めのゴムが駄目になってしまうことが多いです。手に汗をかくせいかもしれませんが、ゴムが伸びてきて空回りをしたり、ホィールの外側の部品に当ってしまい回転が悪くなってしまいます。 自己融着テープ今迄、色々なものを貼ってだましだまし使ってみていたのですが、やっと良い修理方法が見つかりました。それは、自己融着テープをホィールに貼る方法です。 修理方法修理方法は簡単で、マウスを分解してホィール部品を取り出し、伸びたゴムキャップを取り除いて、代わりにテープを巻きます。大体、テープを幅1cmくらいの短冊型に切って、それをホィールの幅になるまで伸ばしながら巻き付けていくのが良いようです。 ![]() 成功例 ![]() 失敗例
2010年 4月 11(日曜日)VIA RhineのLinuxドライバVIA VT6102イーサネットコントローラの不具合解決VIA Technologies Inc.社のチップセットKT600(多分他のファミリにも)には、VT6102(6105とかも)イーサネットコントローラ(NIC)が付いています。このNICはRhine/Rhine IIと呼ばれていて、勿論Linuxでもサポートされているのですが動作上の不具合があり、今に至るもfixされていないようです。しかし、VIAが提供するドライバを使えば解決することが解りました。 不具合の内容不具合は、このデバイスをLinuxで使うとき、長時間コネクション繋ぎっぱなし、もしくは連続して大量のデータの通信をすると、"NETDEV WATCHDOG: eth0: transmit timed out"というwatchdogタイマによるリセットが入ってコネクションが切断されてしまう、というものです。リセット後は再度接続可能になるため、Webなど小まめに切断される通信では問題となりませんので、殆どのユーザは気付かずに使っているかもしれません。 しかし、サーバとして使うなどして、大きなファイル転送などを行うと途中で切れてしまうので、使い物になりません。また、Windowsではこのような不具合は報告されていないようですので、原因はハードウェアバグとしてもドライバソフトウェアでの回避は可能なはずです。 以前に一回調査してみたのですが原因が掴めていないようで、カーネルの残バグとして残っています。対症療法として、ACPIを切れば動くとか、APICを使わなければ動くとか書いてあるものもあり、やってみましたが直りませんでした。(Linuxカーネルでは、何か不具合あると、仕様が必ずしもオープンでないACPIやAPICに原因を求めようとする悪い癖があるような。度々grub.confに色々書き込んで試しています)。結局仕方なく、別途NICカードを差して対処していました。 VIAのドライバ今回、ひょんなことからVIAがLinux向けにドライバの提供を行っていると知り、もしやと思って捜してみたらRhine II向けもありました。ソース提供なのでコンパイルして"rhinefet"というモジュールをロードしてみます。今迄使ってみていますが、不具合は出ていないようです。作業で1GBx40個のファイルを転送しましたが大丈夫です。有難いことです。もしも、この不具合に悩まされているサーバ屋さんがいらっしゃいましたら、このドライバを試してみることをお勧めします。 それにしても、Linuxのサポートが全くなかったり、不具合以外のfirmwareやBIOSのupdateを行わないのは、今や日本メーカだけなのではないでしょうか。酷い場合には、アメリカサイトでは提供しているのに、日本サイトだけには置いていなかったりします。最近もF通のPC(Inetl 865チップセット)でPrescottが使えなくて残念な思いをしました。以前はサポートのことも考えて国内メーカ製の機器を選んでいましたが、今は韓国や台湾を始めとする海外メーカのものを選んでしまいます。 2010年 4月 1(木曜日)PS/2、USB変換アダプターPS/2キーボードのUSB化今使っているキーボードのIFはPS/2です。キーボードは機械としてあまり壊れないのと、慣れがあるので、頻繁に換える気になりません。ATプラグが付いているものでさえ未だに現役です。しかし、これからはUSBに統一されていくことは間違いないようです。macや最近のノートPCにはPS/2は付いていませんし、ちょっと前に仕事で使ったデスクトップPCもUSBオンリーでした。私は普段英語キーボードなので、出先にもマイキーボードを持って行くことがあり、そのためにUSBで動くキーボードを用意したいと思っていました。 そんな中、最近、キーボードが一台壊れてしまい、代わりを検討していました。良さそうなHappy Hacking Keyboadも、USBのは少し割高で、PS/2のものであればかなり安く手に入ります。是非を判断するためにPS/2からUSBに変換するアダプターを調べてみましたら、かなり価格が下っていることが分りました。概ね1000円以下で購入できます。しかし、動作検証サイトを見てみると、動いたり動かなかったりするようです。
|
ブログ管理 |
|||||||||||||||||||||||||||||||||||||||||||||||||
