Archive : 2008-10

が以下のページで公開されています。ビデオはストリーミング形式ではなく、ダウンロード形式で、スライドはpptx形式となっています。ビデオは無駄に高画質なので、かなり重いのがちょっと難点ではありますが。

Greg’s Cool [Insert Clever Name] of the Day: PDC2008 Quick Video Link List

OCT
31

Silverlight2 for mobileについて情報探索中…。明日までにはあげられるかな?

さて、その途中で苦笑してしまったものがあったので紹介。Silverlight2について扱った記事のコメント欄でのやり取り。

die Silverlight, die
By sleepy Posted Thursday 30th October 2008 11:26 GMT

Please please let Silverlight and mobile Flash die. Please let us just use open standards for the mobile web. We’ve only just fought clear of Microsoft’s embrace extend smother hijacking of Web 1.0 on the desktop.

For now it looks like being Apple and Google pursuing open standards versus Microsoft and Adobe rebuilding the bad old days in the mobile space.

@sleepy
By Mr. Wurst Posted Thursday 30th October 2008 12:48 GMT

Apple pursuing open standards? Good joke! No ODF support, NFS mounts on mac are a hell to setup, iChat can’t be more closed.. I don’t see any interest in open standards anywhere..

Comments on “Silverlight for mobile: what’s in, what’s out” • The Register

どこの国でも同じなんだなぁというか何というか。テンプレ通りの展開。

OCT
29

Microsoft PDC Day 2 Keynote

Published:2008-10-29 11:19:09 UTC

昨日の夜中に、Microsoft PDCの基調講演のストリーミング配信が行われていたので、かじりついてみていました。現在は以下のリンクから観れます。

Day 2 Keynote: Ray Ozzie, Steven Sinofsky, Scott Guthrie, and David Treadwell

英語はあまり理解できなかったのですが、観た感想としては、今までMicrosoftが.Net Framworkの発表以来着実に積み上げてきたテクノロジーが、ようやく自分のような素人プログラマーにも大きなインパクトを持って影響を与えてくる世の中になってきたのかな、と感じました。Windows 7のタッチスクリーンには期待大、です。

OCT
28

Monoいじってみた。

Published:2008-10-28 15:03:52 UTC

image8先日2.0がリリースされ、気炎を吐いているMono。ひとつ遊んでみようかということで、VMware上のUbuntuに、MonoDevelop共々インストールしてみました。MonoDevelopだけではC#コンパイラがインストールされないので、synapticパッケージ・マネージャから別にインストールする必要はありましたが、それ以外は特に問題になるところもなく、インストール完了。まずはHello Worldを実行したうえで、WP-XMLRPCのパースエラーのデモンストレーション用コード – SharpLab.のVisualStudioソリューションを引っ張ってきてコンパイルしてみました。

 

image

元のプロジェクトがCompactFramework向けにコンパイルしたアセンブリを含んでいたためかそのままでは上手く動きませんでしたが、Visual Studioで.Net Framework 2.0向けにプロジェクトを作り直してコンパイルしたものを再度持ってきたところ、完全に動作してくれました。


image

聞いてはいましたが、やはりWindows FormがそのままLinuxデスクトップ上で動くのは感動ものです。ボタン二つだけでは良く分からないでしょうが、それでもVista上と一寸違わぬFormが表示されるのには、ただ驚くばかりです。ちなみに、Release Notes Mono 2.0 – Monoには、Paint.NetなどをMono上で動かしたときのSSが掲載されていますので、見てみると面白いかも知れません。


imageところで、MonoのFileOpenDialogの画面なのですが、まるでWindowsのものそのもの。GNOMEってこんなのじゃなかったような…?これもわざわざ似せて作ったんですかね?

OCT
26

C++はじめました。他も色々。

Published:2008-10-26 18:00:08 UTC

最近いろいろと勉強する分野を広げています。

C/C++

まぁ、そろそろ年貢の納め時かなぁということで、勉強してみようかと思いまして。C#に慣れてしまった自分のようなゆとりにはきついです…。だらだらやってます。

TCP/IP

大学で輪講をしながら勉強中。使っているのは詳解TCP/IP〈Vol.1〉なのですが、これが非常に分厚くて、だいぶ大変。まぁネットワークの勉強も、そのうち役立つ日が来るでしょう…。多分。

WindowsMobile開発

今度WM搭載スマートフォンを買おうと思っている関係で、.Net Compact Frameworkでのプログラミングについて調べたり、試しに小さなライブラリを書いてみたりしています。本当だったら今頃はEMobileから出ているHTC Touch Diamondを手に入れて、バリバリ弄っているはずだったのですが、大学生協で申し込んだクレジットカードがまだ届かない関係で、延び延びになっています。もうすぐSoftBankやDocomoが秋冬モデルの発表を行うので、そこで出るかもしれないTouch Diamond/Proを待って、そのライフサイクルコストを比較した上で買っても良いかなぁ、と思わないでもない状態です。しかしこのTouch Diamond、史上初の国内キャリア3社から発売される端末であるため潜在顧客も多く、ターゲットプラットフォームとしては結構良い端末なんじゃないかと思います。

Silverlight2

PDCのセッション資料が公開されたら本気出す。

なんでかっていうと、やっぱりこれもWindowsMobile関係です。今年のPDCでは、10/28に「Microsoft Silverlight 2 for Mobile: Developing for Mobile Devices」というセッションが予定されており(ソース)、そのストリーミングがセッション後に公開されるらしいからです。既にWM上ではSilverlight2ベースのものが動いているらしい?のですが、Silverlight for Mobileについては、これまでほとんど情報がありませんでした(特に日本語情報。流行りのiPhone開発より面白いと思うんですけどね…。)。CLR,DLRを積んでいて、強力なプレゼンテーション能力を持ち、カメラやGPSにもアクセスできるというSilverlight2 for Mobile。.Net CFアプリではどうしてもプレゼンテーション能力が貧弱だと言わざるを得ませんでしたが、それが改善されたことで、可能になるシナリオは非常に多いと思います。時間を作って追っていきたいと考えています。

英語

英語もやらないと…。最近iKnowさぼっているからなぁ…。iKnow! API KICK OFF! Developer Challenge – iKnow!に数週間気づかなかった自分は死んだほうがいいと思います。だれか一緒にiKnowやりましょうよー。

おろそかになっていること

  • Linux関係
    Ubuntu絶賛放置中だったり。bashとかviとか使いこなせるようになれたら、カッコいいなと思うのですが、なかなか弄る時間がありません。大学の授業でxyzzyを使わされたりしているのですが、キーボードショートカットが訳のわからない単なる使いにくいエディタにしか思えない自分はゆとりですごめんなさい。
  • C#3.0の勉強
    実は自分の頭の中はC#2.0のままで進化してなかったりします。「ラムダ式って何~?」「拡張メソッドって何?インテリセンスが埋まってウザいんだけど?」という状態です。勉強しないと…。こんな状態でSilverlight2弄りたいというのはちゃんちゃらおかしいわ!と怒られそうですし。

 

image

OCT
26

image

WordPressの開発版、2.7-almost-beta-9300をXAMPP上に入れてみました。メニューの配置が変わったりと、UIに結構手が入れられたのが2.7一番のポイントですが、それで物凄く使いやすくなったかというと、別にそうでもないというのが自分の受けた印象。まぁ、長く使っていくうちにじわじわと道具としての良さが分かってくるのかもしれないですが。

さて、WP2.7の重要な新機能の一つである、Comment APIをちょっと調べてみました。
2.7からはコメントをXMLRPCを通じて編集出来るようになりました。この機能をWPではComment APIとして呼ぶのですが、具体的には以下に引用した通りのメソッドが実装されています。

http://trac.wordpress.org/ticket/7446

Latest patch:

http://trac.wordpress.org/attachment/ticket/7446/7446.9.diff

The following methods are implemented:

wp.getComment(blog_id, username, password, comment_id)

wp.getComments(blog_id, username, password, {status, post_id, number, offset}

wp.deleteComment(blog_id, username, password, comment_id)

wp.editComment(blog_id, username, password, comment_id, {status,
date_created_gmt, content, author, author_url, author_email, })

wp.newComment(blog_id, username, password, post, {content, author,
author_email, author_url})
// author info is optional if authorization is successful.
Unregistered commenting is allowed if a plugin sets the
xmlrpc_allow_anonymous_comments filter to true. Default is to not
allow unregistered comments. User must auth.

wp.getCommentStatusList(blog_id, username, password)

[wp-xmlrpc] Comments API

で、これらの中で注意が必要なのが、wp.newCommentメソッド。引用文中に

author info is optional if authorization is successful.

というコメントが入っていますが、認証に通っている場合、実はauthorやauthor_emailに指定した値は無視され、使用されません。WPのユーザーアカウント情報の対応する値が使用されることに注意しましょう。以上のことは、xmlrpc.phpの1275行目で確認できます。

		if ( $logged_in ) {
			$user = wp_get_current_user();
			$comment['comment_author'] = $wpdb->escape( $user->display_name );
			$comment['comment_author_email'] = $wpdb->escape( $user->user_email );
			$comment['comment_author_url'] = $wpdb->escape( $user->user_url );
			$comment['user_ID'] = $user->ID;
		} else {

では認証を通さなければ、一般ビジターとして好きなメルアドやURLを指定してコメントをつけられるかというと、そうでもなくて、今度は

Unregistered commenting is allowed if a plugin sets the xmlrpc_allow_anonymous_comments filter to true.

という問題に引っかかります。ままならないものですね…。

あと気になった点といえば、同一内容のコメントを連投しようとした場合、Response Code 500で撥ねられるという点。XMLRPC経由なのだから、XMLRPC Faultでエラーを通知するべきだと思うのですが…。

image 折角なので昨日のWordPressにXML-RPC経由でサイズの大きなファイルを送信する際にパースエラーが発生した場合の対処法 – SharpLab.というエントリの現象を確認するためのデモンストレーション用コードを公開しておきます。

WordPressXmlrpcErrorDemonstration.zip

実行に先立っては、WordPressのログイン情報等を適宜書き加える必要があります。

namespace WordPressXmlrpcErrorDemonstration {
	public partial class Form1 : Form {

		private const string _hostName = "";//テスト用WordPressのXMLRPCエンドポイントURLを指定のこと
		private const string _userAgent = "WordPressXmlrpcErrorDemonstration";
		private const string USERNAME = "";//テスト用WordPressのユーザー名を指定のこと
		private const string PASSWORD = "";//テスト用WordPressのパスワードを指定のこと

また、XMLRPC応答は35行目のresponseという変数に収められます。

XmlRpcMethodResponse response = client.CallMethod("wp.uploadFile", addXMLDeclaration,
    new XmlRpcInt(0),
    new XmlRpcString(USERNAME),
    new XmlRpcString(PASSWORD),
    new XmlRpcStruct(new XmlRpcStructMember[]{
        new XmlRpcStructMember("name",new XmlRpcString(file.Name)),
        new XmlRpcStructMember("type",new XmlRpcString("")),
        new XmlRpcStructMember("bits",new XmlRpcBase64(bytes)),
        new XmlRpcStructMember("overwrite",new XmlRpcBoolean(false))
    }));

ところでこのプロジェクトではCompact Framework向けにビルドしたライブラリを特に弄ることなく参照しているのですが、問題ないのですかね?とりあえず普通に動いているようなのですが…。.Net Compact Frameworkと.Net Frameworkの関係がいまいち分からない。

最近Compact Framework用XML-RPCクライアントライブラリを書いているのですが、WordPress XML-RPC APIのwp.uploadFileメソッドを使ってファイルを送信しようとした場合、パースエラーが発生する現象に悩まされました。ファイルが小さい場合は問題がないのですが、ファイルのサイズが大きくなるとパースエラーを返すという現象です。

調べてみたところ、WordPressのXML-RPC関係の処理を担っているIncutio XML-RPC Library for PHPがどうやら問題の原因のようで、class-IXR.php(wp-includes以下にあります)で定義されているIXR_Messageクラスのparseメソッドのところでエラーが返されているようです。

function parse() {
    // first remove the XML declaration
    $this->message = preg_replace('/<?xml(.*)??'.'>/', '', $this->message);
    if (trim($this->message) == '') {
        return false;
    }
//以下省略

どうもエラーが起きる場合は157行目を境に$this->messageの内容が空になっているようで、それが原因で159行目でreturn falseされてしまっているようです。なぜファイルが大きい場合だけそのようなことになるのかはちょっとよく分からないのですが(不適切な正規表現なのでしょうか?)、とりあえずPOSTするXMLからXML宣言を削除し、methodCall要素以下だけのXMLフラグメントとして送信するようにしたところ上手くいくようになりました。参考まで。

追記:

WP-XMLRPCのパースエラーのデモンストレーション用コード – SharpLab.を書きました。

OCT
18

Fennec

Published:2008-10-18 17:14:09 UTC

image

Mozillaが開発中のモバイルプラットフォーム向けブラウザのFennec、デスクトップ向けのエミュレータが公開されたので早速試してみた。

まぁ、実機で試してみないことには何とも言えないだろうな…、という印象。デスクトップ向けFirefox同様、Extentionによる機能強化が可能になる予定なので、期待して待ちたい。

OCT
8

Expression Blend SP1 Preview

Published:2008-10-08 20:35:11 UTC
WPF

Expression StudioをDream Sparkプログラムを利用してインストールした後で、Expression Blend2 SP1 Previewをインストールしてみた。

image

さて、何をしたものか…。