messaliberty

hulor と開発チームの最新情報

中国のネット規制に対する話題が盛り上がってる

中国のネット規制に関する重大ニュースが2つも続きました。

まず昨年12月中旬に出たニュース。
中央日報 – 「ネット上のサイト、個人の所有認めず」/中国

ブログなど個人が運営するサイトは、以前のインターネットポータルやビジネス向けのサイトでのみ可能だということだ。すでに開設されている個人のサイトは段階的に閉鎖される。

メチャクチャですね。
インターネットがこれだけの普段使いなメディアになった時代にすごいですね。
時代錯誤も甚だしい。まあ中国からすればだからこその規制なんでしょうけど・・・。
他国のサーバーにデータを置けば簡単にすり抜けてれしまうので、
恐らくサーバーやドメインを取得する他国のサイトにもアクセスできなくなるんだろう。

そして今日。
asahi.com(朝日新聞社):グーグル中国版、自主規制解除か 「天安門事件」

中国のインターネット検閲に反対して現地法人の閉鎖を宣言した米ネット検索最大手のグーグルの中国版サイト上で、これまで規制の対象だった1989年の「天安門事件」や、チベット仏教最高指導者の「ダライ・ラマ14世」などの検索結果が表示される状態が続いている。

このニュースが流れた後、すごい反響があちらこちらで上がっています。
Yahooはどうするのかーとか株価がどうとかGoogleニュースもどんどん更新されてます。
中国政府からしたら寝耳に水ですね。

ポイントとしては
「Googleは中国ではそれ程シェアを握っていなかった」ということがあるかと思います。
百度がいるため検索No,1を奪えず、それは今後も変わりそうになかった模様。
それだったらいっそのこと中国を切って、勇敢な企業として他国からの賞賛を得ることにしたんじゃないかとはTechCranch。
Googleにとっての中国: 人権うんぬんよりも世界でのビジネスが第一

そんな意地悪なことも書いておきつつも、やっぱりすごい決断をしたと思います。

上記に取り上げた、中国政府が個人のサイト所有を禁止したことも影響しているのではないかと思います。
ブログやネットショップがダメってことはAdsenseもAdwordsも期待できないですもんね。
広告ビジネスモデルの会社からしたら「そんな国でやっとれるかい!」ってなもんでしょう。
もしも本当にGoogleが中国から撤退し、個人のサイト所有が完全に規制されたら、
10年~15年程前の日本であったような「ポータルからたどっていって登録サイトへたどり着く」という
時代錯誤な方向へ進むと思われます。言論の自由vs共産主義ですね。
インターネットの歴史上の出来事としても残るようなビッグニュースだと思います。

数日後にはYes/Noが出ているんだろうな。
中国に強い興味を持つ人間としてはこれからの動向がとても気になります。

Share and Enjoy:
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • email
  • MySpace
  • Reddit
  • Tumblr
  • Yahoo! Buzz
  • StumbleUpon
  • Technorati
  • Twitter

svn の repository を git の repository に変換する方法

svn の repository を git の repository に変換するには、git-svn を使用します。
git-svn は、svn の repository を git コマンドで直接さわれる様にしてくれます。

Ubuntu の場合、git と git-svn のインストールは以下のコマンドで

% sudo aptitude install git-core git-svn

以下、変換前の svn repository を svn-repo、変換後の git repository を git-repo と表記します。

流れとしては、以下の感じ
1. svn-repo のログのユーザー名を、git 形式に変換するための authors.txt を作成
2. ローカルにカラの git-repo を作成
3. svn-repo を git svn clone コマンドで取り出す ※ 取り出したものを git-svn-repo と表記
4. git-svn-repo の origin に git-repo を割り当てる
5. git-svn-repo の trunk を git-repo の master branch として移行
6. git-svn-repo に trunk 以外にも branch があれば git-repo へ移行
7. git-svn-repo に TAG があれば、git-repo へ移行
8. 必要なら git-repo を remote の gitosis などへ移行
9. git-svn-repo はもういらないので削除
10. おしまい

注意点は、
- 明示的に svn の trunk を、git の master に変換しないといけない
– 普通に移行すると、svn の trunk は、git-repo の trunk というただの branch になる
– svn の最後に行われた commit のある trunk/branch が git の master になってしまう
- svn-repo を、まずは、ローカルの git-repo へ移行する
– 直接 gitosis などのサーバー上の git-repo に移行すると失敗したときに大変

1. svn-repo のログのユーザー名を、git 形式に変換するための authors.txt を作成
% cat authors.txt

userA = user1 
userB = user1 
userC = user2 
userX = user3 
userZ = user4 

svn-repo のログにある userA を、移行後の git-repo 上の user1 に変換する感じ。
このファイルは後で使う。

2. ローカルにカラの git-repo を作成

% mkdir git-repo.git
% cd git-repo.git
% git --bare init
Initialized empty Git repository in /home/ice/git-repo.git/
% cd ..

ここに、今、svn-repo にある trank/branches/tags を移行する

3. svn-repo を git svn clone コマンドで取り出す ※ 取り出したものを git-svn-repo と表記

% git svn clone -A authors.txt -s /path/to/svn-repo git-svn-repo.git
% cd git-svn-repo.git/
% git branch
* master
% git branch -r
  branch-1
  tags/tag-1
  tags/tag-2
  trunk
% git branch local-trunk refs/remotes/trunk
% git branch
  local-trunk
* master

/path/to/svn-repo は svn の repository へのパス
ローカルなら /home/ice/svn/svn-repo の様な感じ
サーバーなら svn+ssh://my-server/var/svn/repos/svn-repo の様な感じ

この svn-repo には、trunk と branch-1 という branch が1つ、tag-1 と tag-2 という名前の tag が2つある

4. git-svn-repo の origin に git-repo を割り当てる

% git remote add origin /home/ice/git-repo.git

5. git-svn-repo の trunk を git-repo の master branch として移行
まず、local-trunk という名前の branch を作成、svn の trunk を指す様に。

% git branch local-trunk refs/remotes/trunk
% git branch
  local-trunk
* master

git-svn-repo の local-trunk を、git-repo の master として移行

% git push origin local-trunk:master

6. git-svn-repo に trunk 以外にも branch があれば git-repo へ移行

% git branch local-branch-1 branch-1
% git push origin local-branch-1:branch-1

master も branch-1 も扱いは同じ branch なので、先ほどとほぼ一緒

7. git-svn-repo に TAG があれば、git-repo へ移行

% git tag tag-1 refs/remotes/tags/tag-1
% git tag tag-2 refs/remotes/tags/tag-2
% git tag
tag-1
tag-2
% git push --tags

8. 必要なら git-repo を remote の gitosis などへ移行
9. git-svn-repo はもういらないので削除
10. おしまい

Share and Enjoy:
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • email
  • MySpace
  • Reddit
  • Tumblr
  • Yahoo! Buzz
  • StumbleUpon
  • Technorati
  • Twitter

マウスレス環境に近づけるための5つの方法(Windows)

私はキーボードショートカットを使うのが好きです。普段メインでノートPCを使っているため、マウスを使わないで済む方が何かとありがたいのです。「Ctrl+P」で印刷、「Ctrl+C」でコピー、「Ctrl+V」でペーストなどは使っている方は多いですよね。「Alt+Tab」でアプリ間の移動、「Ctrl+Tab」でタブ間の移動、「Windows ボタン+D」でデスクトップの表示、なども知ってる方も多いかも知れません。

今日は、自分が使っているけど実はあまり知られていなさそうな、マウスレス環境を構築するための方法を5つほど紹介したいと思います。

1, 右上の検索バーへ移動する
2, アドレスバーへ移動する
3, 右クリックをマウスレス出来るようにする
4, スクロールをスムーズにする
5, キーボードでリンクの移動が出来るようにする

1, 右上の検索バーへ移動する方法

2

画面をご覧ください。ブラウザ右上の検索ボックスで検索されている方は多いのではないでしょうか?「Ctrl+E」でここの検索ボックスへ移動することが出来ます。ちなみにこの検索ボックスにいる時に「Ctrl+↓」で対象サイトを選べるのもあまり知られていないショートカットかも。Firefoxだけでなく、 I.E, でも使えました。私の場合Firefoxではこの窓自体消してしまったのでI.Eをキャプチャしました。

2, アドレスバーへ移動する方法
2
アドレスバーに移動して、コピーしていたURLを貼り付けたい。これもよくあることかと思いますが、そんな時にはブラウザ上で「Ctrl+L」。アドレスバーに移動できます。Firefoxだけでなく、 I.E, GChromeでも使えます。

3,「右クリックメニューを表示したい!」

3
右クリックメニュー、正式名称はコンテキストメニューと言います。使うこと多いですよねー。これ、「Shitf+F10」で表示します。写真の表示方法を変更したり、フォルダを作成したり、色んなことがマウスレスでできて便利です。

4,Spaceキーでゆっくりスクロール出来るようにする。

LDR(ライブドアリーダー)の様なゆっくりしたスクロールをFirefoxでも出来るようにします。firefoxのGreasemonkeyスクリプトを入れます。

http://d.hatena.ne.jp/nagaton/20060831/1156993415

矢印の↓は一行ごとにスクロールができないのですが、これを入れることによりスペースキーでゆっくりページスクロールが出来ます。
うまいこと説明できませんが便利ですよ。一度試してみてください。Shiftキーを足すと上スクロールです。   

5, リンクをキーボードでクリックできるするようにする
firefoxの拡張「マウスレスブラウジング」を入れます。

http://journal.mycom.co.jp/articles/2009/04/13/mouselessbrowsing/index.html

他にも同様の拡張があるみたいなのでどれでもいいですが、これを使うとキーボードだけでブラウジングが可能になります。

気になったものがあれば使ってみてください。ところで今回紹介したアイデアの一部もそうですが、
私がfirefoxを使っていたのはその拡張機能の豊富さがあったからでした。なのですが先週、Google Chromeが拡張機能を公開。

http://journal.mycom.co.jp/news/2009/12/09/014/?rt=na

既にほぼfirefoxのマストな拡張はカバーしていて、しかも何だか開発が簡単らしくてすごい勢いで増えていくことが予想されます。
Firefox vs Chromeブラウザ戦争これからどうなっていくか楽しみです。

Share and Enjoy:
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • email
  • MySpace
  • Reddit
  • Tumblr
  • Yahoo! Buzz
  • StumbleUpon
  • Technorati
  • Twitter

WordPress のテーマで日付表記をローカライズする

cal2

Ken's stuck in time calendar

messaliberty の日本語版と英語版は同じ WordPress テーマを使っています。1つのファイルで両方に対応している、という意味です。このやり方を実現するためには、完全に内部で切り分けて各言語ごとにローカライズする必要があります。英語と日本語の大きな違いは日付のフォーマットです。2009年12月13日は英語では Dec 13th 2009 にする必要があります。

最初 Chapp はテーマファイルの中にハードコードしていました。

<?php the_time('F jS, Y'); ?>

このままでは日本語版で日付がおかしくなります。だからといって ‘F jS, Y’ の部分を取り除くと、デフォルトの挙動で時間が表示されてしまいます。この問題は、次のような書き方で解決できます。

<?php the_date(); ?>

これで両方の言語で正しい表記となりまいた。めでたしめでたし・・・。と思いきや、WordPress がアーカイブページを生成するとき、date() が予期せぬ挙動をしてしまいます。特定の日付を一度しか表示しないのです。つまり、同じ日に2回投稿すると、一方にだけ日付が表示されます。配列を使ったあまりスマートではない解決策もありますが、以下の方法が良さそうです。

<?php the_time(get_option('date_format')); ?>

上記処理では、設定 > 一般 > 日付フォーマットの設定値を呼び出して使っています。英語版なら値が F jS, Y になっていて、日本語版なら Y年n月j日 になっています。こうやってみると分かりやすい解決策ですが、この問題には少し手こずりました。

同じテーマファイルを複数の言語用に利用する場合は、設定画面の日付フォーマット項目を利用して設定をするようにしてください。(WordPress MU の場合は少し異なります。)

Share and Enjoy:
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • email
  • MySpace
  • Reddit
  • Tumblr
  • Yahoo! Buzz
  • StumbleUpon
  • Technorati
  • Twitter

WordPress ショッピングカードプラグイン Welcart のお客様情報ページに AjaxZip2 を設定する

1. AjaxZip 2.0 公式サイト より「一括アーカイブ」の ZIP ファイルをダウンロード、解凍する。

2. 解凍してできた [ajaxzip2] ディレクトリ内の

  • jquery.js
  • [sample] ディレクトリ
  • [work] ディレクトリ

を削除する

3. [ajaxzip2] ディレクトリを WordPress ディレクトリ直下にアップロードする。

AjaxZip2

AjaxZip2

4. 郵便番号フォームを表示するページの html ヘッダーに以下の文を追加する

<script src="ajaxzip2/prototype.js"></script>
<script src="ajaxzip2/ajaxzip2.js" charset="UTF-8"></script>

5. Welcart の郵便番号フォーム出力部分のソースを書き換える
/wp-content/plugins/usc-e-shop/templates/cart/customer_info.php の 87 行目

<input name="customer[zipcode]" id="zipcode" type="text" value="' . $usces_entries['customer']['zipcode'] . '" />
  ↓
<input name="customer[zipcode]" id="zipcode" type="text" value="' . $usces_entries['customer']['zipcode'] . '" onKeyUp="AjaxZip2.zip2addr(this,\'customer[pref]\',\'customer[address1]\')" />

これは以下のような構成のサンプルなので

  • 都道府県名 -> プルダウン
  • 市区町村 -> テキストフィールド

変更の必要がある場合は AjaxZip 2.0 公式サイトのサンプルHTMLソースを参考に書き換えてください。

Share and Enjoy:
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • email
  • MySpace
  • Reddit
  • Tumblr
  • Yahoo! Buzz
  • StumbleUpon
  • Technorati
  • Twitter
Get Adobe Flash playerPlugin by wpburn.com wordpress themes