2011-09-24

Mercurialでのブランチ

まぁ、自分がMercurialユーザーだったらvim-jpの記事を読んで間違いに気づくはずだ。

まず、Mercurialでのブランチというのはどういうものが理解すべき。Mercurialでは、ブランチというのは、一種のtagとheadsの総称でしかない。gitだとローカルブランチとリモートブランチという概念があって、ブランチをpushするときには、特別な方法を取る必要があるけど、mercurialの場合は通常のpushに自分で作ったブランチが含まれてしまう (もちろんheadsが合わなければリジェクトされるし、明示的にブランチへのpushを使う必要もある)。

だから、多数での開発をしてる際に自分のコードを管理するためにブランチを作るのはよくない。Mercurialにおけるブランチは永続的なものなので、pushする場合にはそのブランチは大元のレポジトリへの影響を与えてしまう可能性がある。

でMercurial上で管理されたコードのパッチを書く場合はどうしたらいいかというとMercurial Queue (mq)を使うのが現状ではベスト。mq形式でパッチを作成しておけば、パッチを受け取った人は、qimportで自分のmqに取り込んで、qfinでコードを直接コミットすることが可能。しかもパッチの説明とか作成者情報とかもmq形式に含まれるんで、受け取る側はrebase以外に手間がかからない。mqの使い方は、実際Mozillaで使ってるやり方とかMercurialのドキュメントとかを参考にするといいです。

もちろん一生pushしないレポジトリだったら別にブランチを使うのもいいけど、一生pushしないってそれ寂しくない?

たぶん、vim-jpの人はgitの知識があるから、こういう情報を書いてしまったんじゃないかな?gitの場合で新規コードを書くときはローカルブランチを作って、それで管理するやり方をするからね。ローカルブランチだからpushする際に影響受けないし、削除も簡単だし。

だから、SCMは各々思想が違うから同じやり方が正しいということは一切ない

2011-09-22

iPhoneがauに?

日経の飛ばし記事にみえるけどね。問題は、ガラパゴスなネットワークの方にあるから、それをauがどうかするかにかかってる。

日本の3社+1社のネットワークは、一番グローバルなものがソフトバンクだけで、それ以外は周波数や通話・データ通信以外の規格 (メールシステム) がガラパゴスなことが問題なんだ。今のチップセットであれば、周波数の変更ってのは、まぁ大丈夫なんだけど (チップレベルでは複数の周波数サポートしてるはずだし) 。

そもそも歴史から行って、3Gネットワーク自体は、世界で言ってもドコモがほぼ最初に近いんだけど、そこでサポートされた規格は、3Gの正式バージョンを1.0とすると、0.9的なバージョンを採用して、同じ3G、同じ周波数なのにネットワークにつながらないという日本独自仕様になったりするのが、日本のキャリア。これは後に正式なバージョンのネットワークに置き換えられたんだけどさ。

auもそもそもCDMA2000という少数派の規格を採用してる(韓国ではメジャー)のだけど、そもそも過去に800MHzのネットワークで、上下周波数がauだけ逆というトンデモ仕様が使われてて、これも日本独自仕様だった。今は違うけどね。CDMA2000を採用したのも、2.5Gの規格の流れとか、総務省とのやりとりとかいろいろあったらしいけどさ。

イーモバイルは1.7GHz帯というこれもほとんど世界で採用されてない倒れそうな周波数で。。。これは総務省の問題か。

ソフトバンクは買収したボーダフォンがたまたますべてをグローバルなシステムに置き換えたあとだったから、たまたまグローバルな仕様になってるだけという感じ。ソフトバンク自体が設計やってると多分そうならなかったんじゃないかな。

そもそも、iPhone 5がauのネットワークで採用されるんだったら、すでにプッシュメール自体のシステムでMMSを採用 (MMSのゲートウェイでも作って対応)してると思うよ。au上のWindows PhoneやAndroidでCメールをサポートしようとしてる動きを見る限り、MMSを投入するとは一切思えないんで、Appleが折れるとは思えない。だから、この記者は妄想というかauユーザじゃないのかなぁ、マジで。

2011-09-21

Mozilla勉強会 @ 東京

東京で久々に勉強会をやります。前回は年明けくらいにやったから、約半年以上ぶりに東京でやります。内容は今週中には確定すると思います。

といっても、自分は行けないんだけどね。だって、MotoGP観に行ってるし

2011-09-17

DOM4を実装すると、ACID3がパスしなくなるらしい

ACID3が標準準拠テストだと思ってる人はまだいそうだけど、これは非常にいろいろな問題を持ってるテストで、これをパスしたからハッピーということではない。

で、最近一番面白いネタが、DOM4の現在の仕様だとこのテストはパスしなくなる。Jonasがwebappsのメーリングリストにこの話を投げてる。http://lists.w3.org/Archives/Public/public-webapps/2011JulSep/1329.html

The new DOM-Core specification changes some of the behavior for DocType nodes to make them act more like all other nodes in the DOM.
Specifically:
  1. They always have a ownerDocument
  2. They can move between, both using explicit calls to AdoptNode, and
    implicit adoption during for example insertBefore
  3. They can be cloned between documents using importNode
We've written a patch to implement these changes in Gecko (which resulted in a nice reduction in code). However, ACID3 tests for the old behavior which is making it a harder decision to check this patch in. As I understand it this isn't a Gecko specific interaction with ACID3, but all browsers will see the same loss in ACID3 score if they implement the new DOM-Core spec.

で、ACID3自体がダメダメだから、直す話が実際あって、http://wiki.whatwg.org/wiki/Acid3にいろいろ書かれてる。

2011-09-15

Visual Studio 11のARMターゲットを遊んでみた

Windows 8でarmがサポートされるんだけど、早速Visual Studio 11のC++で試してみたところ、

  • armターゲットのとき、当然_M_ARMが定義される
  • arm_neon.hが入ってるので当然NEONサポート
  • デフォルトでthumb2のコードを吐く。だから、ARMV6T2ってかARMV7以降のコードを吐く。Windows CE 7のコンパイラと違って、CPUターゲットのオプションが/?で出てこないから、ARMv6以前のCPUサポートはない可能性が
  • コンパイラがインラインアセンブラをサポートしてないのに、アセンブラが入ってない。たぶんarmasm.exeの入れ忘れ
  • どうもABIはEABIっぽい
  • DDKはそもそもarmのターゲット入ってなかった
  • いくつかのインポートライブラリが入ってない。wsock32.libとか。ということで全く使えん

そんなところ。gccとの生成コードの質を比べてみたいなぁ。時間があったらやろう

2011-09-11

Fennec for Android on VirtualBox

いろいろなものから現実逃避したくなって、ちょっと作ってみたやつ。VirtualBox上のGingerbreadで動くのは確認した。VirtualBoxで動いてるってことは、CPUはarmじゃないってことだけどさ。



libvpxがGoogleのクセにx86上でコンパイルできないとか、long doubleへの変換のgcc関数(__extendsfdf2)がandroid NDKに実装されてないから、実行時にエラーになるとかいろいろ問題あるけどね (そのクオリティでNDKをだしてしまうGoogleのAndroidチームのやっつけぶりは正直すごい)。

いろいろな問題が片付いたらバイナリをどこかに置くことにするけど。

2011-09-01

iOS用の...

Dougとか一部のモバイルメンバで作り始め、一旦止めてたんだけど、Ted (ビルドスクリプト系のモジュールオーナー) がrebaseして、動くようにしたらしいiOS用の例のヤツ、最近まじめにmozilla-centralにコードを入れ始めてるんだけど、IRCで今日ネタになってた。

17:17 (glandium) actually, ted is refreshing and landing his iOS patches. once something gets running, going further or not will be decided
17:21 (vicarious) Mozilla should try to release firefox for ios. If Apple rejects it then that's on them, they'll have to face public scrutiny on that count.
17:27 (glandium) gcp: not necessarily, a lot of people are running jailbroken iOSes, and providing an awesome Firefox could be an invitation for more people doing so
17:28 (vicarious) glandium: yes, that too...good point!

ノーコメントということで