‘プログラミング’のエントリ
iOS Developer Programに登録。日本人は必ず一度はじかれるとの噂通り一度はじかれたり,開発させる気ないんじゃないの的な複雑な環境構築を乗り越え,ようやくiPod touch実機にテストアプリを入れることができた。あとは作るだけ。
なんだけど一つ問題が。Apple Storeにアプリを公開すると本名が出るのか。まあ本名公開して困ることはしてないけど,やっぱり抵抗がある。ま,これから勉強開始するところだし完成してから考えるか。
というかDocomoからWindows Phoneが出る前に完成させないとそっちに興味が移ってしまう。
プログラミング iOS
コメント・共有する
携帯を契約せずにiPhone開発する方法を聞き込みしたところ,iPod touchでwifi使えばほぼiPhoneだという情報を入手。その線でいくか。
プログラミング iOS
コメント・共有する
今月に入ってからウェザタイランキング上位に変動が。JISもQwertyでも上位が入れ替わっていますね。
でタイピングスレでもネタ的な扱いになっているけど,現2位の方の扱いはどうするのが正しいのか。一応私が不正記録認定をした記録は裏ランキングに載せることにしているんだけど,この記録の微妙さで3年間迷っている。一旦裏ランキングに載せておいて,コンタクトがあるまでそのままとかそういう対応をしますかね。裏ランキングの判断規準をもう少し整理してからかな。
プログラミング Weather Typing
コメント・共有する
Weather Typing for Android Ver1.1をAndroid Marketで公開。まだ更新されてないっぽいけどそのうち更新・アップデート通知が行われるはず。修正点は以下の通り。
- 打ち込むワードにカタカナや全角英数字が混じっていたのを修正
- 「,」を「、」で打てるようにする
- 30ワード未満の場合ランキングに問題数を表示するようにする
- プレイヤー名を8文字まで許可する
- UIの改善
個々の修正の詳細は昨日の日記を参照。ワード数の選択については,今日一日いろいろテストしていたけどどうしても過去との互換性でどうにもならなくて諦めた。その代わり,例えばワード10問設定にしてランキングに登録すると「Android 10ワード」のようにワード数が表示される。一応10ワード内で何位,みたいには見ることが可能。
プログラミング Android, Weather Typing
コメント・共有する
Android版ウェザタイ1.1。たまっていた修正項目を一通り実装した。明日1日テストして問題なければAndroid Marketに流そう。修正項目は以下の通り。
- ワード数の選択を廃止。代わりにbeginnerモード(5問固定)とexpertモード(30問固定)を選択できるようにする。beginnerでランキング登録した場合はbeginnerと表示されるので,beginnerランキングでもやり混みが可能。
- 例外は全てcatchしてログを吐いていたのだが,不明な例外はcatchせずに潔く落とすようにする。ハンドルされていない例外はAndroid Marketから参照できることが分かったので,独自のログをはくよりこっちの方が調査しやすい。
- アップロードダイアログのボタンがIMEウィンドウで隠れて微妙に使いづらいのを改善。
- ワードのひらがな行に,カタカナと全角英数字が混じっていたのを修正。Android Marketのコメントから。
- プレイヤー名が6文字しか入らないのを8文字まで許可。tomoemonさんのtwitterから。
- 分かりにくい文言を改善。tomoemonさん,typezukiさんのtwitterからヒントをもらった。
- 画面周りの変更。移植中のSilverlight版から逆輸入。
プレイヤー名について補足。文字数を増やした代わりに,スピード1000以上またはトータルポイント10万以上になると結果表示画面で文字列が切れる。レベル10以上の人は気を付けて下さい。
プログラミング Android, Weather Typing
コメント・共有する
Windows PhoneとWindows 8(Metro)開発の練習にWeather Typing Silverlightをちょこちょこ実装。どうせ作り直しなら入力方式プラグインとかランキングでリプレイアップロードとかやりたいよね,的なことを考え出すとなかなか進まない。
Android版ウェザタイ,そろそろ修正したい項目がたまってきた。追加機能なくてもバージョンアップした方がいいのかな。
プログラミング Weather Typing
コメント・共有する
Denasu新年会。ぱじ氏にタイピング本を見せてみたが,反応薄。もはや脱出ゲームの人なのか。
とりえずインタビューのところだけは確認してもらったのだが,ロビーに関して「ぱじ氏が絶対必要と言ってきて」というのが「そうだっけ?」と反論。家に帰ってチャットのログを見てみた。以下2002/3/17のチャット抜粋。
モルタルコ の発言 : ウェザタイ大会を開くらしいですよ
パジャ の発言 : 参加しれ
モルタルコ の発言 : 掲示板によると20人ぐらいでやるとか
やらないとか
モルタルコ の発言 : 本当は我々が主催しないといけ
ないんだけどね
モルタルコ の発言 : ネットワーク対戦は初心者には敷居が
たかいらしいね
モルタルコ の発言 : ロビー欲しいね
パジャ の発言 : 欲しすぎ
パジャ の発言 : 全然告知しないである日いきなり
「ロビーできました」ってのがイカス
ウェザタイ大会ってのは当時むなしいさんがオンライン開催していた「WT大会」で,ロビーがあれば楽だったのに,という話。これを見るとどっちに責任があるのかは・・・?
プログラミング, コンピュータ Weather Typing
コメント・共有する
タイピング本をだいたい読み終わった。第I部にウェザタイの初速に関しての分析があって,なるほどこのソフトはそういう性格のソフトなんだというのが今更分かったり,いろいろな発見があった。
あとは配列系も興味深い。ウェザタイとしては一通りの有名どころの配列をサポートして以来満足していて,新配列系は重視してなかった。でも,もし新しい配列が一定のユーザ数を獲得して要望が挙がってきたらウェザタイのポリシー的には正式対応するのかなあ,とか。サポートするかどうかの基準がすごく難しいし,いろんなバージョンがあってサポートしきれないとか考えないといけない点はいろいろあるよね。
この本と直接は関係ないけど,もはや連絡先はメールアドレスじゃなくてtwitterアカウントなんだなあ,ってのを実感。私もtwitterアカウントは持ってるけど,元々ぱじ氏と連絡とるためだったので最近放置している。今までDenasuサイトで告知してはいなかったけど,そろそろ公式アカウントとして有効に活用しますかね。とりあえず@Mortarcoです。使い方よく分からないし,日記とどう使い分けるのかが微妙だけど。
プログラミング, コンピュータ Weather Typing
コメント・共有する
Android版Weather TypingのランキングをAndroidで見ると名前の最後が文字化けすることがある問題を修正。Android JavaのURLEncoderがバグっていた。以前1つ対策したのだが,もう1つバグがあった模様。
URLEncoder.encode(s, "ISO-2022-JP")
のようにUnicodeからJISコードに変換した場合,以下の2点がバグっている。
- 全角半角が混在した場合,全角半角の切り替えポイントで「%1B%28%42」が入らない
- 最後に「%1B%28%42」が入るべき箇所が「%1B」になってしまう
なんていい加減な。それともJISがそういう規格なのかなあ。クライアント側を直しても既にアップロードしている人はバージョンアップしないといけなくなってしまうので,サーバ側で対策。しかもAndroidのバグがいきなり直った場合でもうまく動作しないといけない。結局以下のPerlコードで対策した。
if(($value =~ /%1B%24%42/) && !($value =~ /%1B%28%42/))
{
$value =~ s/%1B([^%])/$1/g;
$value =~ s/%1B%24%42((%[A-Fa-f0-9][A-Fa-f0-9])+)
/%1B%24%42$1%1B%28%42/g;
}
JISの開始コードがあって終了コードが1つもない場合,「%1B」が単独で存在したら消しておき,全角部分をJIS開始コードとJIS終了コードで囲むという処理。一応テストはしたけどあらゆるパターンで大丈夫なのか自信がない。
プログラミング Android, Weather Typing
コメント・共有する
MSDN納品。とりあえずMSDNからダウンロードできるところまでした。というか前回もそうだったけどすごく分かりづらいので,オープンライセンスを取得してMSDNダウンロードできるまでのメモ。
- MSDNをオープンライセンスで買うと,購入ありがとうメールが届くので書いてあるURLにアクセス。メールアドレスを入力するようなことが書いてあるが,URLにメールアドレスが埋め込まれているので自動的に登録完了。
- 上で登録したのはオープンライセンスの管理者。MSDNからダウンロードするには,管理者になりきって自分のMSDNアカウントを発行する必要がある。MSDN Volume Licensing Service Centerから[ライセンス]-[契約の一覧]でライセンスを選択し,「MSDNサブスクリプションの管理」を選ぶ。
- ユーザ一覧から「ユーザの追加」を選び,ユーザを作成。購入した情報に基づいてライセンスを割り当てる。ここで,IEを使っていると「特典を 1 つ以上選択してください」というエラーが出てどうにも先に進めないので別ブラウザを使う。特典を入力するとメディア送付先とか出てくるので入力。
- ユーザ作成が完了すると「お客様の MSDN サブスクリプション特典アクセス番号がご利用いただけるようになりました。」メールが届く。このメールに従って,自分で登録したユーザ情報を自分で入力。
2年前はMSDNアカウントをどこから作るのかよく分からなくて悩んだが,今回はIEを使ってはいけないというところで悩んでしまった。MSのサイトだからわざわざ素のIEを使ったのに・・・。
プログラミング
コメント・共有する
前Purentroを作ったとき,.NETのリモートデバッグをやろうとしてあきらめたのだが,今回別件で必要になったので調べてみた。きっしーとかWebで得た情報によると,リモート側で,ローカルと同じフォルダ構成,ローカルと同じユーザ名のユーザを作成し,プロジェクトのデバッグプロパティで「ユーザ名@ホストIPアドレス」を指定すれば通常のリモートデバッグと同じ方法でいけるっぽい。なんかネイティブデバッグに比べてめんどくないですか。
ついでにWindows Installerのデバッグ。XP時代にやってたときはmsiexecをリモートデバッグしてブレークポイントはったりしてたような気がするけど,今は権限昇格とかいろいろあって何が何だかよく分からないなあ,と思っていた。でM氏に聞いた情報によるとMsiBreak変数にカスタムアクション名を入れておくとそこでダイアログが表示されてプロセスIDが出るので勝手にデバッグしてくれ,ってことらしい。一見親切に見えるけど,やってみるとめちゃくちゃめんどい。
プログラミング
コメント・共有する
C#のXMLドキュメントコメント。MSが公式に出しているSandcastleを使ってみた。リフレクションをフルに使ってMSDNみたいな形式でドキュメントを出してくれる。標準の型とか親クラスはMSDNへのリンクまで貼ってくれるというやりすぎなツール。
GUIのフロントエンドSandcastle Help File Builderってのもあるらしいけど,常に最新版を使うならやっぱCUIよね,ってことで使い方。ちなみにOSはWindows 7 x64,Visual Studioは2010 SP1。SandcastleはJune 2010(Version 2.6.1062.1)。
- インストール
-
- Sandcastleの最新版をダウンロード,インストール
- 環境変数にDXROOTが登録されるが,間違っているので最後の「」を削除しておく。
- ドキュメント生成
-
- Visual Studioのプロジェクトの設定で「XML documentation file」を有効にする。その際ファイル名は「プロジェクト名.xml」じゃなく「comments.xml」にする。
- XML Documentation Comments形式で正しくマークアップされたプロジェクトをビルド。
- comments.xmlとビルドしたファイルと「C:Program Files (x86)SandcastleExamplesSandcastlebuild_Sandcastle.bat」を同じフォルダにコピーする。
- ビルドしたファイルがexeの場合,build_Sandcastle.batを書き換える(※1)。
- プライベートメソッド等非公開メンバも出力するには,build_Sandcastle.batを書き換える(※2)。
- 上記フォルダで以下を実行。形式は引数によっていろいろ選べる。
build_Sandcastle.bat
vs2005 ビルドしたファイル名(拡張子なし) html
※1
修正前:MRefBuilder %2.dll /out:reflection.org
修正後:MRefBuilder %2.exe /out:reflection.org
※2
修正前:MRefBuilder %2.dll /out:reflection.org
修正後:MRefBuilder %2.dll /out:reflection.org /internal+
プログラミング WPF
コメント・共有する
最近は会社でWPFを使っている。C++の頃と比べるとめちゃくちゃ楽。イメージ的には,WPFではXAML10行くらいですむものをC++でやったら100行かかる,みたいなことを100個作るみたいな。
特に会社でWPFをやって初めて気付いたのがエラー処理の楽さ。C++(Win32 API/MFC)の頃は,UIを駆使するプログラムを書くと何かやる度にエラー処理を何十個も書いていたのだが,WPFだとほとんどバインディングですんでしまってエラー処理がほとんどなくなる。まあ例外に変わっただけと言えないこともないんだけど,それでも入り口にtry-catch書いておけばすむわけで。家プログラミングだとそこまでエラー処理入れないので気付かなかった。
もう一つ。今回は全関数について関数仕様書を書かないといけないかも,みたいな話があって,XML Documentを試してみた。けど結構すごい。関数コメントに書いたものを抽出して勝手にドキュメントができるのは今や当たり前だけど,.NETのはコメントと関数が合ってないとビルド時に警告が出るようになっている。ということは,警告が出なくなるまで修正してやれば,関数コメントは完璧になるわけで。この手のことをやるといつも問題になる,コメントと関数がだんだんかけ離れていくというのがなくなる。Java Docとか最近見てないけどこんな風になってきてるのかなあ。
ただデフォルトでXSLTとスタイルシートがない(と思う)のが残念。Purentroを題材にそれっぽく見えるのを作ってみようかな。
プログラミング WPF
コメント・共有する
Windows 8はとりあえずおいておいてデザインの勉強。WPF/Silverlightを本格的にやるにあたって,デザインの基礎くらいは勉強しないとね,ってことで。教科書的なものを読んでるけど奥深い。
プログラミング, コンピュータ
コメント・共有する
夏休みにSilverlightで遊んでみた。Windows Phone向けウェザタイに向けて,って感じ。
なんだけど,やろうとすることがことごとくSilverlightではサポートされてなくて思った以上に苦労する。WPFなら楽なんだろうけど,Windows Phoneで動くようにするとなるとSilverlightだよね,ってことで。
まずXAMLからのリソース使用。WPFと同じようにresxに文字列を定義してXAMLからStaticResourceで表示しようとしたが,Silverlightではサポートされていない。そのためProperties.Resourcesをラップしたプロパティを作成してBindingで文字列を表示することに。でもそれだとExpression Blendでデザイン時に表示されないのでXAMLでインスタンス化。MSDN Magazineのこの辺を参考にした。
次に困ったのが背景のスクロール。画像のタイル表示はSilverlightではサポートされていないので画像をキャンバスに貼り付けて複数配置。次にThicknessAnimationがSilverlightではサポートされていないのでDoubleAnimationで中継。ここまでやってみたけどかなり重い。
とりえずAndroid版のタイトル画面をほぼそのまま再現してみた。タイトル画面。Silverlightだからもっと凝った画面にできるけどまだいいか。このままでも画面サイズを変更したいという要望はクリアできて,横長にすればある程度長い文字列も打てる,のかな。ちなみにMacでも実行可能だし,moonlightを使えばLinuxでも実行可能。
プログラミング Silverlight
コメント・共有する
忙しいので特に何もしてなかったけど,そろそろ夏休みおよび謎休みという噂なので何かしようかな。WPFを本格的に使うことになりそうだしきっしー(誰)に伝授というのもあるし,Windows Phone 7の話もあるし,Silverlightで何かしましょう。
プログラミング
コメント・共有する
VectorのWorld Testerレビュー掲載は29日なのだが,何故かその前に窓の杜で紹介されている。Weather Typingのときも微妙に同じ時期に掲載されていたので,Vectorと連携しているのかなあ。
で,多分公開が午前10時頃なんだけど,その瞬間からトップページのアクセス数が飛躍的に伸びていて,今日だけで見ると人喰い掲示板関連のアクセスに匹敵する。World Testerのダウンロード数もいつもの200倍くらい。これでVectorのレビューも掲載されると少しは盛り上がってくるのかなあ。
窓の杜の記事。
時間を停止した際もマウスで加えた力は累積する仕組みになっているため、大きな力を加えたい場合は時間を停止した上で何度も同じ方向へ力を加えてみよう。
え? と思ってやってみたら確かにそうなっている。バグっぽいけどそういうことにしておきます。
プログラミング World Tester
コメント・共有する
Denasuへのアクセスが普段の4倍くらいに増えている。掲示板もすぐCore吐くし。
ウェザタイアンドロイドも一段落,WorldTesterも動きがあったし,次何しよう。決まるまでまた脳科学に戻りますかね。
プログラミング
コメント・共有する
少しでもAndroid版の宣伝になれば,とVectorのWeather Typingの紹介文を編集。したついでにずっとほっておいたWeather TypingとWorld Testerを最新版に差し替えたりスクリーンショットを公開したりしてみた。で今日更新されたのだが,VectorからWorld Testerの新着ソフトレビューの公開依頼が来た。新着でもないしこっちを宣伝したいわけではなかったのだが,ぼた餅的な感じで楽しみにしていましょう。6/29とのこと。
プログラミング World Tester
コメント・共有する
掲示板に発言したが,Android版ランキングの一部が文字化けしている。とりいそぎサーバ側で対応。あまりテストできていないので今週末にもう少しテストする予定。次のAndroid版ではクライアント側で対策するかも。
原因は,Javaの「URLEncoder.encode(s, “ISO-2022-JP”);」が,日本語とASCII文字列が混じっていた場合,JISの終了コードを途中の切り替わり部分で生成せず,最後にしか生成しないため。この文字列を送られたPerlのサーバが途中のASCII部分をJISにみなしてしまい,文字化けする。どうもJavaのバグのような気がする。
プログラミング Android, Weather Typing
コメント・共有する
Android版ウェザタイは少しずつダウンロード数が増えている。シャドールームさんで紹介してもらいましたが,宣伝しないとAndroidのアプリケーションは数が多すぎて埋もれてしまいますね。
ちらほらランキングに登録して下さっている方もいてありがたい。30問に設定しないと得点がのびないのは気付いてもらえているんだろうか。設定には書いてあるけど,やっぱりQ and Aか何かを公開した方がいいかなあ。
Android Marketのひみつ
- Android Marketは「公開」ボタンを押すと即Marketで公開される。ということはGoogleの中の人によるチェックは全くないということですね。
- Marketに登録するとダウンロード数とアクティブインストール数が見えるようになる。が,更新される時間も頻度も不明。1日1回くらい? そしてダウンロード数よりアクティブインストール数の方が多いのは何故?
- Androidの作者登録をすると,OS入れ替え可能な開発者用のAndroid実機が買えるようになる。どこから買うのか不思議だったけどこういう仕組みか。
プログラミング Android, Weather Typing
コメント・共有する
AndroidウェザタイはIMEを使用するので,少なくとも有名どころのIMEでテストする必要がある。ということで周りの人に頼んでNEC端末のATOK,SHARP端末のiWnn,XperiaのPOBox,フリーのOpenWnn,simejiを試した。結果はどのIMEでもOKぽい。記号とか入るともしかしたら打てなくなる機種があるかも・・・という感じではあるけど。
それとは別に,e-Token氏のXperiaはarcではないAndroid2.1だったのだが,矩形描画が塗りつぶされない。エミュレータで2.1にしてみても再現する。結局Style.FILL_AND_STROKEでは塗りつぶされなくてStyle.FILLにしたら塗りつぶされた。2.1以前ではサポートされてないってことなんだろうか。
プログラミング Android, Weather Typing
コメント・共有する
テストプレイ+バグ修正メモ
- アプリケーションをバックグラウンドにしたときにスレッドを停止させるようにする。電池消耗の回避。
- Androidでは30問は長いのでデフォルトを10にして設定可能にする。ぱじ氏の指摘
- 入力方法を設定できるようにする。けーさく氏の指摘。
- IME前提にしてるので基本的にミス入力を判定できない。何か方法はないかな。
- 自分のAndroid入力スキルではスピード60くらい。プロ?の人は5倍くらい入力できたとしても300くらいか。ミス入力もほぼないので実質100種類くらいしか得点のバリエーションがないことになる。何か考えないと。
- Bluetoothはプレイはできるけどランキング参加不可のような形にする予定。ハードウェアキーボードは判定不可能なので今のところ入力禁止にしてるけどここもランキング参加不可にできないか。
- IMEの方式はFix。基本IMEを使うが,1問打ち切るごとに入力中の文字列を消すことで学習履歴が汚れるのを回避するようにした。
Androidマーケットに登録しようとして意外なところでつまる。VisaかMasterカードが必要なのか。.comドメインはなんとかなったけどこれは無理そう。急いでクレジットカード作らねば。
プログラミング Android, Weather Typing
コメント・共有する