<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>IT+</title>
    <link rel="alternate" type="text/html" href="http://www.masahiko.info/it/" />
    <link rel="self" type="application/atom+xml" href="http://www.masahiko.info/it/atom.xml" />
   <id>tag:www.masahiko.info,2008:/it//11</id>
    <link rel="service.post" type="application/atom+xml" href="http://www.masahiko.info/blog/mt-atom.cgi/weblog/blog_id=11" title="IT+" />
    <updated>2008-06-16T16:28:56Z</updated>
    <subtitle>デベロッパー、ITプロ向けの技術情報Webマガジン。アイティプラス（IT Plus）。
</subtitle>
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type  3.21-ja</generator>
 
<entry>
    <title>メソッドのシグネチャ（signature）とメソッドの構文（syntax）の違い</title>
    <link rel="alternate" type="text/html" href="http://www.masahiko.info/it/archives/000959.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.masahiko.info/blog/mt-atom.cgi/weblog/blog_id=11/entry_id=959" title="メソッドのシグネチャ（signature）とメソッドの構文（syntax）の違い" />
    <id>tag:www.masahiko.info,2008:/it//11.959</id>
    
    <published>2008-06-16T16:01:04Z</published>
    <updated>2008-06-16T16:28:56Z</updated>
    
    <summary>メソッドの「シグネチャ」（signature）という用語は、メソッドの定義を示す...</summary>
    <author>
        <name>一色政彦</name>
        <uri>http://www.masahiko.info/</uri>
    </author>
            <category term=".NET Development" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.masahiko.info/it/">
        <![CDATA[<img alt="signature syntax" src="http://www.masahiko.info/it/archives/images/signaturesyntax.jpg" width="200" height="100" align="right" />メソッドの「シグネチャ」（signature）という用語は、メソッドの定義を示す際によく使われる用語ですが、厳密な意味を考えると、この用語を使用する際には注意を要します。シグネチャは、プログラミング言語設計の用語で、言語ごとに明確な意味が定義されているからです。その意味を正しく把握したうえで「シグネチャ」という用語を使う必要があるのです。

一方の「構文」（syntax）という用語は、より汎用的な意味で使われます。単に「ソース コード上にどのように文字が配列されているか」という表記方法を表しているだけなので、プログラミング言語ごとに意味合いが異なるわけではありません。

従って、無難にメソッドの定義について言及したい場合は、「メソッド構文」という用語を使った方がよいと思います。

以下ではメソッドの「シグネチャ」についてもう少し詳しく解説しましょう。
]]>
        <![CDATA[まずはシグネチャの一般的な意味について、次にC#言語やVisual Basic言語（以下、C#／VB言語）における意味について説明します。

<strong>●メソッドのシグネチャの一般的な意味</strong>

シグネチャとは日本語にすると「署名」などの意味ですが、一般的なプログラミング言語（特にオブジェクト指向言語）におけるシグネチャも正にそういう意味で、唯一無二であることを示すためのもの（＝メソッドの署名）です。1つのメソッドは基本的に1つのシグネチャを持っています。このようにシグネチャを持つことで、それぞれのメソッドがコンパイラなどで明確に区別できるわけです。

このシグネチャには、一般的には、「メソッド名」「パラメータ数と順序、パラメータの型」「戻り値の型」が含まれると考えられています。なお当然ながら、JavaやC#などで文の終わりを示す「;」はシグネチャには含めません。

しかしここで注意が必要です。実際には、現在の大半のプログラミング言語（Java言語やC#／VB言語、C++言語など）では「戻り値の型（return type）」をシグネチャに含めないからです。

<strong>●C#／VB言語におけるメソッドのシグネチャの意味</strong>

特にC#／VB言語の場合、「戻り値の型」に関するシグネチャの事情は少し複雑です。C#／VB 言語は CLR（Common Language Runtime）の CTS（Common Type System）および CLS（Common Language Specification）というの共通言語仕様の上に設計されています。つまり「C#／VB 言語＝CTS＆CLS」ではありません。実は、CTS＆CLSはさまざまな言語をサポートするために、より広範な機能を持っており、なんとシグネチャに「戻り値の型」を含めています。CTS＆CLSが含めているのにC#／VB言語は含めていないわけですが、これはC#／VB言語の設計者が意図的に含めなかったわけです（恐らくその方が言語的に美しいと考えたからです）。

では、C#／VB言語で、「戻り値の型」がシグネチャに含まれていないことを証明しましょう。


次のコードは「戻り値の型」のみが異なる2つのSampleメソッドをC#／VB言語で記述したものです。これらコンパイルするとコンパイルするとエラーになってしまいます。

<blockquote><b>【C#】</b>

int Sample(int arg)
{
&nbsp; return arg;
}

string Sample(int arg)
{
&nbsp; return arg.ToString;
}

// エラー内容：'Sample' と呼ばれるメンバを同じパラメータの型で既に定義しています。</blockquote><blockquote><b>【VB】</b>

Function Sample(ByVal arg As Integer) As Integer
&nbsp; Return arg
End Function

Function Sample(ByVal arg As Integer) As String
&nbsp; Return arg.ToString
End Function

' エラー内容：「Public Function Sample(arg As Integer) As Integer」 と 「Public Function Sample(arg As Integer) As String」 では、戻り値の型のみが異なるため、お互いをオーバーロードすることはできません。</blockquote>

両方のエラー内容を見ると分かるように、「戻り値の型」のみが異なるメソッドが複数存在するために、エラーとなっています。エラーになるのは、これらのメソッドが同じシグネチャ（署名）を持っていると、コンパイラに見なされたからです。つまり上記2つのメソッドはまったく同じ、以下のシグネチャを持っています。
<blockquote><b>【C#】</b>
Sample(int arg)</blockquote><blockquote><b>【VB】</b>
Sample(ByVal arg As Integer)</blockquote>

つまりC#／VB言語の「メソッドのシグネチャ」という表現を使った場合は、上記のようにしか書けないのです。

次の表記のように「戻り値の型」を含めてメソッドの定義を書き表したい場合は、「メソッドの構文」という表現が妥当です。
<blockquote><b>【C#】</b>
int Sample(int arg)</blockquote><blockquote><b>【VB】</b>
Function Sample(ByVal arg As Integer) As Integer</blockquote>

ちなみに、シグネチャに「パラメータ数と順序、パラメータの型」が含まれているおかげで、「メソッド名」が同じで「パラメータ数と順序、パラメータの型」が異なる複数のオーバーロード メソッドが作成可能です。

【参考資料】
<a href="http://en.wikipedia.org/wiki/Method_signature" target="_blank">Wikipedia：Method signature</a>
<a href="http://forums.msdn.microsoft.com/en-us/clr/thread/6454eb8e-1496-4393-9abd-279ea5f4a491/" target="_blank">MSDN Forum：Return type as part of a method's signature</a>
]]>
    </content>
</entry>
<entry>
    <title>ハッカソンとは（Hackathonとは）</title>
    <link rel="alternate" type="text/html" href="http://www.masahiko.info/it/archives/000958.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.masahiko.info/blog/mt-atom.cgi/weblog/blog_id=11/entry_id=958" title="ハッカソンとは（Hackathonとは）" />
    <id>tag:www.masahiko.info,2008:/it//11.958</id>
    
    <published>2008-06-14T09:20:45Z</published>
    <updated>2008-06-14T09:47:22Z</updated>
    
    <summary>ハッカソン（Hackathon：Hack-a-thon）とは、とある開発テーマの...</summary>
    <author>
        <name>一色政彦</name>
        <uri>http://www.masahiko.info/</uri>
    </author>
            <category term="ITビジネス用語集" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.masahiko.info/it/">
        <![CDATA[<img alt="itbizdic.jpg" src="http://www.masahiko.info/it/archives/images/itbizdic.jpg" width="200" height="100" align="right" />ハッカソン（Hackathon：Hack-a-thon）とは、とある開発テーマの技術に興味のあるプログラマーたちが、会議室やソファーがある場所などにノートPC持参で集まり、みんなで一緒にソフトウェアをハックしまくって楽しみ、最後に開発したアプリケーションやサービスを参加者全員の前でプレゼンするという、いわばギークのためのお祭りイベントです。ハッカソンの期間はだいたい1日中が普通で、長ければ合宿などで数日から1週間もある場合があります。

ハッカソンという用語は、「Hack」と「Marathon」を合わせた造語で、米国で1999年あたりから使われ出し、まず OpenBSD が開いたイベントで使われ、次に Sun の JavaOne conference イベントで使われたそうです。その後、2000年に PHP の開発イベントで、2001年に FreeBSD、2002年に Apache と、徐々にさまざまなイベントで使われるようになりました。ちなみに、ハッカソンと同様のイベントの用語として、「CodeFest」（コードフェスト）や「Sprint」（スプリント）などがあります。ちなみに Google のカンファレンスでは「Code Lab」（コードラボ）と呼ばれています。

ハッカソンの意義は、単にハックしている時間にあるのではなく、多くの人々が一緒に、自分らがしたいことをしたいようにハックする「特別な時間」にあります。通常、参加者は興味テーマごとにいくつかのグループ（5人程度）に分かれて、各グループ内でアイデアを出し合いながら画期的なアプリケーションを作成したり、資料となる開発手順ドキュメントなどを見ながら黙々とサンプル アプリケーションを作ったりします。各グループ内で「ああだ」「こうだ」とやり合うことで、テーマ技術に対するおもしろい発見や気づきがもらえたり、これまで抱えていた疑問が解消したりと、1人でハックするだけの行為にはないメリットがあります。こうやってみんなで考えたものが、革新的なサービスやアプリケーションを開発するためのの新たなプロジェクトの誕生につながったりすることも考えられます。つまり「3人寄れば文殊の知恵」（Two heads are better than one.）というわけです。

日本でもここ最近ハッカソンが開かれて盛り上がる例が増えてきました。そのレポート記事へのリンクを以下に紹介します。]]>
        <![CDATA[●<a href="http://itpro.nikkeibp.co.jp/article/NEWS/20080612/307870/" target="_blank">ITpro：写真で見る，“噂”の「Googleハッカソン」</a>
　Google Developer Day 2008 Japan の 1 セッションとして行われた Android ハッカソンの様子。

●<a href="http://www.masahiko.info/it/archives/000957.html" target="_blank">IT+：Google App Engine コード ラボ （Hackathon）レポート</a>
　Google Developer Day 2008 Japan の 1 セッションとして行われた Google App Engine ハッカソンの様子。

●<a href="http://www.movabletype.jp/blog/report_mt_hack-a-thon_080126.html" target="_blank">MovableType.jp：Movable Type Hack-a-thon を開催しました</a>
　Movable Type で行われたハッカソンの様子。

●<a href="http://jp.youtube.com/watch?v=z0az6k80f9A&feature=PlayList&p=FBE7B48070FF6FC1&index=7" target="_blank">YouTube：Working at Google 東京 - 賀澤 秀人: ソフトウェア エンジニア</a>
　Google の 人材募集で、仕事のおもしろさの 1 つとして、ハッカソンという独自のプログラミング合宿が紹介されている。]]>
    </content>
</entry>
<entry>
    <title>Google App Engine コード ラボ （Hackathon）レポート</title>
    <link rel="alternate" type="text/html" href="http://www.masahiko.info/it/archives/000957.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.masahiko.info/blog/mt-atom.cgi/weblog/blog_id=11/entry_id=957" title="Google App Engine コード ラボ （Hackathon）レポート" />
    <id>tag:www.masahiko.info,2008:/it//11.957</id>
    
    <published>2008-06-10T12:59:58Z</published>
    <updated>2008-06-10T14:37:40Z</updated>
    
    <summary>本日の Google Developer Day 2008 Japan の午後は...</summary>
    <author>
        <name>一色政彦</name>
        <uri>http://www.masahiko.info/</uri>
    </author>
            <category term="Google Development" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.masahiko.info/it/">
        <![CDATA[<img alt="Google Developer Day 2008" src="http://www.masahiko.info/it/archives/images/googledevday2008.gif" align="right" height="100" width="200">本日の Google Developer Day 2008 Japan の午後は、Google App Engine コード ラボ （Hackathon）に参加しました。20～30名ぐらいの参加者がいました。

まず最初の30～60分が、課題の Google App Engine アプリケーションである「Wiki」のコード内容の説明でした。

　・<a href="http://code.google.com/p/google-app-engine-codelab/" target="_blank">セッションで使った資料（A progressive example of developing a Wiki with Google App Engine）</a>

その後、「残りの3時間で、この Wiki を拡張するか、独自の Google App Engine アプリケーションを構築せよ」とのことで、それぞれ個人で黙々と、もしくは数名で協力したりしながら、ときには Google 社員のアドバイスを受け、それぞれが思いのままにアプリケーションを開発しました。

そして、5時あたりから開発したアプリケーションのプレゼンを開始しました。プレゼンは希望者だけだったので8名ぐらいが発表していたと思います。次の写真はその風景です。

<img alt="googledevday05.jpg" src="http://www.masahiko.info/it/archives/images/googledevday05.jpg" width="490" height="315" />

ちなみに僕は、独自アプリケーションの開発を選択しました。今回作成したのは、GData API（＝ Google のサービスからデータを取得、設定するためのAPI）を Google App Engine アプリケーション内で使うというもの。具体的には、Google カレンダ（Google Calendar）のイベント情報を Web ページにテキストで列挙し、またテキストでイベントを一括設定するというものです。しかし残念ながら 3 時間という時間制限のなかで、不慣れな Python 言語と GData API の活用とあって、一括設定まではすすみませんでした。しかしできたところまでをみんなの前でプレゼンさせてもらいました。質問もあり、興味を持ってもらえた人もいるようで良かったです。

今回作成したアプリケーションについてもう少し詳しく説明しましょう。]]>
        <![CDATA[今回のアプリケーションでは、GData API を操作するために、既存のライブラリ「gdata-python-client（Google Data APIs Python Client Library）」を使いました。

　・<a href="http://code.google.com/p/gdata-python-client/" target="_blank">gdata-python-client（Google Data APIs Python Client Library）</a>

実際に GData API を使って Google カレンダからデータを取得するには、セキュリティの問題があります。例えばもし、このアプリケーションが悪意のあるアプリケーションであれば、好き勝手に Google カレンダの情報を取得、改ざんできることになってしまいます。このため、GData はいくつかの認証手段が用意されています。今回は AuthSub という認証を使いました（※たぶん Google App Engine では、いまのところ AuthSub しか使えないと思います）。Python 言語による AuthSub については、次のサイトで説明されています。

　・<a href="http://code.google.com/apis/calendar/developers_guide_python.html" target="_blank">API Developer's Guide: Python</a>

しかし今回は gdata-python-client ライブラリを使っています。このライブラリによる実装方法は次のサイト（日本語）で説明されています（帰り際、この記事の翻訳をした人と直接お話をしました。あらためて「どうもありがとうございます」）。

　・<a href="http://mars.shehas.net/~tmatsuo/misc/gdata-ja.html" target="_blank">Google App Engine 上で認証が必要な Google Data Feeds を取得する方法</a>

ちなみに Google App Engine 技術の日本語情報は次のサイトに載るようです。

　・<a href="http://groups.google.co.jp/group/google-app-engine-japan" target="_blank">Google グループ：Google-App-Engine-Japan</a>

では、実際に AuthSub で認証が働くとどうなるのでしょうか？ これは実際に見てもらった方が早いので、今回作成したサンプル アプリケーションの動作を追いながら確認してみましょう。

次の画面は、わたしが作ったアプリケーションのトップ ページです。［Show Google Calendar with Auth］というリンクをクリックします。

<img alt="gaelab01.jpg" src="http://www.masahiko.info/it/archives/images/gaelab01.jpg" width="490" height="232" />

これにより Google サイトによる認証が走ります。次の画面のように、「http://localhost」のサイトが、Google サービスの「http://www.google.com/calendar/feeds/」にアクセスしようとしているが、許可するかどうか、を利用者に問い合わせます。ここで［アクセスを許可］ボタンがクリックされると、初めて GData API によるデータ取得が成功します。

<img alt="gaelab02.jpg" src="http://www.masahiko.info/it/archives/images/gaelab02.jpg" width="490" height="298" />

実際に［アクセスを許可］ボタンがクリックすると、次の画面のように Google カレンダに登録されているイベント情報を列挙します。未来から過去に向かってソートしてみました（※このキャプチャ画像は、途中を切っているので下の方の表示が変です）。

<img alt="gaelab03.jpg" src="http://www.masahiko.info/it/archives/images/gaelab03.jpg" width="490" height="350" />

下部のテキスト入力欄に「2008-06-10 イベント」のような形式で複数行入力して［Add Events］ボタンをクリックすれば一括でカレンダを設定できます。が、そこまで実装する前に時間切れになってしまいました。

-----

# ちなみにほぼすべて英語で、通訳なしでした。英語もっとできるようにならないとダメだね。。。
# 1つだけ英語で質問してみました。「<a href="http://googleappengine.blogspot.com/2008/05/app-engine-launcher-for-mac-os-x.html" target="_blank">Google App Engine Launcher （Mac OS X 用のみ）</a>は、Windows 向けに提供する予定はないの？」って聞いてみたけど、「あれは Google 社員が「20％時間」を使って作っており、Google 社員はほとんど Mac を使っている。ほら周りのみんなも Mac が多いじゃん」って。確かに。Windows 使いの Google 社員の「20％時間」に期待するしかないでしょうか。でもあの程度のアプリケーションなら .NET で簡単に作れると思いますけど。]]>
    </content>
</entry>
<entry>
    <title>Google Developer Day 2008 Japan の風景</title>
    <link rel="alternate" type="text/html" href="http://www.masahiko.info/it/archives/000956.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.masahiko.info/blog/mt-atom.cgi/weblog/blog_id=11/entry_id=956" title="Google Developer Day 2008 Japan の風景" />
    <id>tag:www.masahiko.info,2008:/it//11.956</id>
    
    <published>2008-06-10T12:12:34Z</published>
    <updated>2008-06-10T12:26:54Z</updated>
    
    <summary>本日開催されたGoogle Developer Day 2008 Japan で...</summary>
    <author>
        <name>一色政彦</name>
        <uri>http://www.masahiko.info/</uri>
    </author>
            <category term="Google Development" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.masahiko.info/it/">
        <![CDATA[<img alt="Google Developer Day 2008" src="http://www.masahiko.info/it/archives/images/googledevday2008.gif" align="right" height="100" width="200">本日開催されたGoogle Developer Day 2008 Japan で撮影したいくかの写真を掲載します（画質が悪いですが……）。

<img alt="googledevday00.jpg" src="http://www.masahiko.info/it/archives/images/googledevday00.jpg" width="490" height="238" />

朝一の5Fに置かれていた丸くてカラフルなイスです。みんな基調講演に行っているので人っ子一人いません。

<img alt="googledevday01.jpg" src="http://www.masahiko.info/it/archives/images/googledevday01.jpg" width="490" height="311" />

その脇にあるショーケース。Googleをモチーフとしたいろんなオブジェが飾られています。

<img alt="googledevday02.jpg" src="http://www.masahiko.info/it/archives/images/googledevday02.jpg" width="490" height="368" />

基調講演が始まる直前の風景。中央にカラフルな立方体が積み上げられていてGoogleらしい。

<img alt="googledevday03.jpg" src="http://www.masahiko.info/it/archives/images/googledevday03.jpg" width="490" height="267" />

基調講演中の外でもこのような映像が流れておりのんびりと受けられます。

<img alt="googledevday04.jpg" src="http://www.masahiko.info/it/archives/images/googledevday04.jpg" width="490" height="468" />]]>
        
    </content>
</entry>
<entry>
    <title>Google App Engineの次期機能</title>
    <link rel="alternate" type="text/html" href="http://www.masahiko.info/it/archives/000955.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.masahiko.info/blog/mt-atom.cgi/weblog/blog_id=11/entry_id=955" title="Google App Engineの次期機能" />
    <id>tag:www.masahiko.info,2008:/it//11.955</id>
    
    <published>2008-06-10T08:02:31Z</published>
    <updated>2008-06-14T07:08:05Z</updated>
    
    <summary>Google Developer Day 2008 で 12 時からあった「Go...</summary>
    <author>
        <name>一色政彦</name>
        <uri>http://www.masahiko.info/</uri>
    </author>
            <category term="Google Development" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.masahiko.info/it/">
        <![CDATA[<img alt="Google Developer Day 2008" src="http://www.masahiko.info/it/archives/images/googledevday2008.gif" align="right" height="100" width="200">Google Developer Day 2008 で 12 時からあった「Google App Engine 概要」のセッションで、次に搭載を考えている機能がいくつか示されたので紹介します（※ネットでの情報収集により細かく修正しました）。

　・日本の電話キャリア（docomo、AU）に国際SMSが送信されない件で、両企業とやり取りをしており、近々に対応できる見通し
　・ほかの言語への対応（現時点で詳細は明らかにできない）
　・追加容量の購入（……いまってまだ買えないんだっけ？！）
　・大容量データのアップロード、ダウンロードのサポート（例えばビデオなどのデータらしい）
　・オフライン処理（Gearsみたいな機能ということではなく、決めた時間にバッチ処理を走らせたりする機能みたい＝「定刻にメールを送りたいという機能は実装できないなぁ」と考えていたのでこれはいいね）

まだプレリリース版であることを強調していました。でもできるだけ早く完成版を提供できるように努力するらしいです。

また、Web 開発を始めるときにはマシンや環境などいろいろな準備が必要で、そのハードルの高さが Web アプリを開発して展開しようとするときの妨げになっている。Google App Engine なら無料でスタートして気軽に Web 開発に踏み出せると言ってました。]]>
        
    </content>
</entry>
<entry>
    <title>Google Developer Day 2008 基調講演レポート</title>
    <link rel="alternate" type="text/html" href="http://www.masahiko.info/it/archives/000954.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.masahiko.info/blog/mt-atom.cgi/weblog/blog_id=11/entry_id=954" title="Google Developer Day 2008 基調講演レポート" />
    <id>tag:www.masahiko.info,2008:/it//11.954</id>
    
    <published>2008-06-10T03:05:12Z</published>
    <updated>2008-06-10T14:16:55Z</updated>
    
    <summary>基調講演では『次世代Webに向けて ― クライアント、コネクティビティ、クラウド...</summary>
    <author>
        <name>一色政彦</name>
        <uri>http://www.masahiko.info/</uri>
    </author>
            <category term="Google Development" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.masahiko.info/it/">
        <![CDATA[<img alt="Google Developer Day 2008" src="http://www.masahiko.info/it/archives/images/googledevday2008.gif" align="right" height="100" width="200">基調講演では『次世代Webに向けて ― クライアント、コネクティビティ、クラウド ― 』（メイン司会：及川氏）というタイトルでGoogleのビジョンやテクノロジの紹介がありました。特に目新しい発表はなかったです（まぁ、最近、Google I/Oがあったばかりなので、仕方ないとは思いますが……）。

<img alt="googledevday03.jpg" src="http://www.masahiko.info/it/archives/images/googledevday03.jpg" width="490" height="267" />

収穫としては、「Google App Engine ＝ Google のクラウドを活用するためのプラットフォーム」という言葉があり、Google App Engineの立ち位置がより明確になりました。

以下にその基調講演の内容を要約します。]]>
        メインフレーム→パーソナルコンピュータ→インターネット（現在）という流れがあり、インターネットをGoogleは「クラウド」と呼んでいます。しかし、グローバルにリーチしているWebアプリケーションはごくわずかで、さまざまな課題があります。そこでGoogleは以下の3つの“C”の問題を解決していきたいと考えています。

　1. Client（クライアント）をよりパワフルに
　2. Connectivity（コネクティビティ）をユビキタスに
　3. Cloud（クラウド）をよりアクセスしやすく

すべてオープンにすることでこれらの問題解決を図りたい。具体的には、オープン プラットフォームを採用することで、アプリがリッチになり、多くのユーザーを獲得し、利用頻度が増大し、広告収入が得られる、というエコシステムを構築していきたいと考えています。それを実現するためのテクノロジが以下です。

　1. Gears：クライアント（ブラウザ）をよりパワフルに
　2. Android：コネクティビティをユビキタスに
　3. Google App Engine：クラウドをよりアクセスしやすく

これらに以下の試みも加えようとしています。

　4. 容易な開発
　→ Googleのサービスを活用する。例：GDataやAJAX APIs/Controls

　5. ソーシャル ウェブ
　→ 既存製品のソーシャル化。例：iGooogle、Google Maps
　→ ソーシャルAPI。例：OpenSocial、Social Graph、Friend Conncect

上記以外で新しいもしくは改善されたテクノロジについては以下があります。

●Web デザイナーや一般ユーザー向けのテクノロジ
　・Google Maps API for Flash
　・Google Earth API
　・RESTful対応（Chart API、Google Static Maps API、AJAX APIs）

●開発者向けのテクノロジ：
　・Google Web Toolkit

最後に4つ目の“C”としてCommunity（コミュニティ）の活性化が挙げられていました。
    </content>
</entry>
<entry>
    <title>Tech&amp;#183;Ed 2008 のセッション タイトル</title>
    <link rel="alternate" type="text/html" href="http://www.masahiko.info/it/archives/000953.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.masahiko.info/blog/mt-atom.cgi/weblog/blog_id=11/entry_id=953" title="Tech&amp;#183;Ed 2008 のセッション タイトル" />
    <id>tag:www.masahiko.info,2008:/it//11.953</id>
    
    <published>2008-06-09T09:05:50Z</published>
    <updated>2008-06-09T09:31:31Z</updated>
    
    <summary>Microsoft の（すでに提供している）最新技術を扱う開発者向けのカンファレ...</summary>
    <author>
        <name>一色政彦</name>
        <uri>http://www.masahiko.info/</uri>
    </author>
            <category term=".NET Development" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.masahiko.info/it/">
        <![CDATA[<img alt="teched2008.jpg" src="http://www.masahiko.info/it/archives/images/teched2008.jpg" width="200" height="100" align="right" />Microsoft の（すでに提供している）最新技術を扱う開発者向けのカンファレンス「Microsoft Tech&#183;Ed 2008 Yokohama」が、2008年8月26日（火）～29日（金）の4日間、パシフィコ横浜で開催予定です。そのセッション内容が公開されているようなので紹介します。

・<a href="http://www.event-marketing.jp/events/te08/session/technical_session.aspx" target="_blank">Tech&#183;Ed 2008 のテクニカル セッションのタイトル</a>

セッションはジャンルごとに、次の6つの「トラック」（Track）に分けられています。

【トラック群】

Track 1 : 次世代プラットフォーム
Track 2 : 開発プラットフォームとユーザー エクスペリエンス
Track 3 : Office system とユニファイド コミュニケーション
Track 4 : 運用管理、セキュリティ、仮想化
Track 5 : アプリケーション プラットフォーム
Track 6 : モバイル & エンべデッド開発

このうち「Track 2 : 開発プラットフォームとユーザー エクスペリエンス」のセッション タイトルは以下のような感じ。]]>
        こうやって全体を見てみると、.NET Framework 3.5 関連の技術（WCF、WF、WPF、Expression、ASP.NET AJAXなど）とその拡張技術（Visual Studio 2008 SP1、.NET Framework 3.5 SP1、ADO.NET Data Services、ASP.NET MVC Framework、Entity Frameworkなど）が中心で、それにRIA技術（Silverlight 2、軽量言語など）と、あとはアーキテクト＆マネージャ関連（開発プロセス、Team System、ALM、Software Factories、クラウドなど）と実用技術（サーバーサイド開発、データベース開発、マイグレーション）があるという感じですね。

【セッション群（一部のみ）】

●Visual Studio 2008 Service Pack 1 概要
●.NET to .NET マイグレーション ～ .NET Framework 1.x から最新環境への移行のために ～
●進化する Visual Studio Team System! コードネーム &quot;Rosario&quot;
●LINQ &amp; Entity Framework ～ プレミアム デモンストレーション ～
●WCF / WF を活用した実践的アプリケーションの開発
●ADO.NET Data Services 的な生活 (プロジェクト &quot;Astoria&quot;)
●Visual Studio によるデータベース開発 (仮)
●Windows フォーム開発者に捧ぐ WPF への移行 ～ ビジネス アプリケーションにもユーザー エクスペリエンスを! ～
●Visual Studio と Expression で「開発」する エンタープライズ WPF アプリケーション
●.NET Framework によるサーバーサイド開発 (仮)
●アプリケーション ライフサイクル ～ その全貌と狙い
●.NET 開発における開発プロセス (仮)
●Visual Studio Team System によるコード品質の向上 ～ テスト、パフォーマンス、メトリックス ～
●ソフトウェア開発におけるユーザー エクスペリエンス戦略 ～ ユーザー エクスペリエンスは製品の一部ではない、製品がユーザー エクスペリエンスの一部なのだ ～
●RIA で差別化するための Silverlight 2 開発
●Silverlight 2 から Web サービスや多様なデータ ストアを利用する - Working with Data and Web Services in Silverlight 2
●.NET Framework 3.5 SP1 における ASP.NET AJAX 新機能とパフォーマンスの最適化
●ASP.NET MVC Framework 概説 ～ .NET Web アプリケーション開発のパラレル ワールド!? ～
●.NET における軽量言語
●クラウド コンピューティングに対応する次世代アーキテクチャ設計法
●Software Factories ～ GAT および GAX (仮)
●WCF / WF を使用した拡張

    </content>
</entry>
<entry>
    <title>コード ラボを楽しもう！（Google Developer Day 2008）</title>
    <link rel="alternate" type="text/html" href="http://www.masahiko.info/it/archives/000952.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.masahiko.info/blog/mt-atom.cgi/weblog/blog_id=11/entry_id=952" title="コード ラボを楽しもう！（Google Developer Day 2008）" />
    <id>tag:www.masahiko.info,2008:/it//11.952</id>
    
    <published>2008-06-04T15:37:37Z</published>
    <updated>2008-06-08T07:36:15Z</updated>
    
    <summary>Google Developer Day 2008 Japan では、「コード ...</summary>
    <author>
        <name>一色政彦</name>
        <uri>http://www.masahiko.info/</uri>
    </author>
            <category term="Google Development" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.masahiko.info/it/">
        <![CDATA[<img alt="Google Developer Day 2008" src="http://www.masahiko.info/it/archives/images/googledevday2008.gif" align="right" height="100" width="200">Google Developer Day 2008 Japan では、「コード ラボ」セッションが開催されます。コード ラボ（Code Labo）とは、テーマとする技術に関心を持つセッション参加者がいくつかのグループ（5人程度）に分かれ、グループ内でアイデアを出し合いながら画期的なアプリケーションを作成したり、資料となる開発手順ドキュメントを見ながら黙々とサンプル アプリケーションを作ったりする自由形式のセッションで、最後に開発したアプリケーションをセッション参加者全員の前でプレゼンします。グループ内で「ああだ」「こうだ」とやり合うことで、テーマ技術に対するおもしろい発見や気づきがもらえたり、これまで抱えていた疑問が解消したりと、通常のセッションにはないメリットがあります。

このような形式のセッション（イベント）は、一般的には「ハッカソン」（Hackathon：Hack-a-thon：「Hack」と「Marathon」を合わせた造語）と呼ばれています。ちなみに僕は米国 Microsoft 開催の <a href="http://www.masahiko.info/it/archives/000948.html" target="_blank">PDC</a> もしくは <a href="http://www.microsoft.com/events/teched2008/developer/default.mspx" target="_blank">TechEd</a> か何かのカンファレンスで行われたハッカソンに一度参加したことがありますが（「コードを持って帰っていい」ということで USB メモリがプレゼントされました）、日本で開催される<a href="http://www.microsoft.com/japan/teched/2008/default.mspx" target="_blank">Tech・Ed</a>などのカンファレンスではいままで一度もハッカソンは開かれていないと思います（ぜひやってみてほしいとは思いますが……）。

脱線しましたが、今回のGoogle Developer Day 2008 Japan では、次の3つのテクノロジをテーマとしたコード ラボが開かれます（※詳しくは「<a href="http://code.google.com/intl/ja/events/developerday/2008/agenda.html" target="_blank">Google Developer Day 2008 セッション プログラム</a>」を参照してください）。
]]>
        <![CDATA[　・OpenSocial
　・Google App Engine
　・Google Android

それぞれ30名ほどが参加します（恐らく30名は5名6グループぐらいに分けられると思います）。なお、残念ながらすでに募集は締め切られています。

ちなみに僕は Google App Engine のコード ラボに参加予定です。その紹介を以下に引用します。

<blockquote><b>●コード ラボ セッション : ‘Google App Engine’</b>

Gregor Hohpe （グレゴー ホーペ） ソフトウェア エンジニア / エンジニアリング アンバサダー
鵜飼 文敏 （うかい ふみとし） ソフトウェア エンジニア

Google App Engine を使えば、大規模システムを Google のシステム上に配置することができます。
500MB までのストレージ、十分なネットワーク帯域、月間500万ページビューに耐えるCPU。これらのシステムを無料で使用できる Google App Engine を実際に体験してみましょう。本ラボでは、参加者の方が App Engine 用のアプリケーション構築を体験することができます。ご自身の Laptop PC をお持ちになること、事前に必要なソフトウェアのインストールを済まされておくこと、Python プログラミングの知識があること、当日作るアプリケーションのアイデアがあること、などが参加の条件となります。</blockquote>


コード ラボは、参加者が開発作業を行うので、当然ながら、ある程度プログラミングできなければなりません（Google App Engine なら Python 言語は使いこなせないとつらいでしょう）。また、ある程度何を作るかなどのアイデアを持っていないと、その場で考えなければならなくなり大変です。まぁ、（たぶん用意されている）開発手順書どおりに作るだけでももちろんいいんですが、それではちょっと味気ないですよね。何か考えておこうと思います。

今回はノート PC 持参なので、Google App Engine 開発環境を事前に構築しておく必要がありますが、その代わり、コード ラボの時間内で開発作業がスムーズに進むようにあらかじめ基本部分は構築しておき、コード ラボでは拡張部分を開発していくという手法も取れるみたいです。]]>
    </content>
</entry>
<entry>
    <title>PDC2008のセッション タイトル（日本語版）</title>
    <link rel="alternate" type="text/html" href="http://www.masahiko.info/it/archives/000948.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.masahiko.info/blog/mt-atom.cgi/weblog/blog_id=11/entry_id=948" title="PDC2008のセッション タイトル（日本語版）" />
    <id>tag:www.masahiko.info,2008:/it//11.948</id>
    
    <published>2008-05-29T14:43:41Z</published>
    <updated>2008-05-29T15:28:04Z</updated>
    
    <summary>Microsoftの次世代技術を扱う開発者向けのカンファレンス「PDC（Prof...</summary>
    <author>
        <name>一色政彦</name>
        <uri>http://www.masahiko.info/</uri>
    </author>
            <category term=".NET Development" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.masahiko.info/it/">
        <![CDATA[<img alt="PDC（Professional Developers Conference） 2008" src="http://www.masahiko.info/it/archives/images/pdc2008.jpg" width="200" height="100" align="right" />Microsoftの次世代技術を扱う開発者向けのカンファレンス「PDC（Professional Developers Conference） 2008」が、2008年10月26日（日）～30日（木）の5日間、米国ロサンゼルス コンベンション センターで開催予定です。そのセッション概要が公開されているようなので、それについて日本語への翻訳という形で紹介します。

・<a href="http://www.microsoftpdc.com/Agenda/Sessions.aspx" target="_blank">PDC 2008 公式サイトのセッション概要</a>

以下は、2008年5月29日時点で、簡単に訳した抄訳です。とりあえずタイトルだけです。
こうやって全体を見てみると、クラウド、ビルディング ブロック サービス、Windows Live プラットフォーム、Silverlightなどなど、次世代 Web 技術が中心みたいですね。

【セッション群】]]>
        ●クラウド サービス 開発者の1日
●ビルディング ブロック サービス 概要
●ワークフロー サービス 詳細
●クラウド向けサービスの設計
●ビルディング ブロック サービスのアーキテクチャ
●CRM／Dynamics： ビジネス アプリケーションの開発
●詳解： Internet Explorer 8 の新レンダリング エンジン
●詳解： Silverlight グラフィックス パイプライン
●初めてのクラウド サービスの開発と展開
●Data Services を活用したアプリケーションの開発
●Server Core 向け .NET および ASP.NET での開発
●Live プラットフォーム： Mesh アプリケーションの構築
●Live プラットフォーム： Mesh サービス アーキテクチャ詳解
●Live プラットフォーム： 新しい開発者サービスとAPI群
●論理キューイング： Sync Services による非常時接続クライアントの開発
●Office ビジネス アプリケーション： 強化された展開機能
●クラウドの中でスケール可能かつ利用可能なストレージ
●Silverlight： ビジネス アプリケーションの構築
●Silverlight： モバイル端末向けの開発
●SQL Server 2008： 大規模 Web アプリケーションおよびサービスの開発
●Team Foundation Server： Microsoft における利用方法
●徹底解剖： COM 相互運用（COM Interop）の詳細
●徹底解剖： SQL Server Data Services（SSDS）の構築
●徹底解剖： クラウドの中のストレージのアーキテクチャ
●ユニファイド コミュニケーション： 将来像
●Visual Studio Team System： ソフトウェアの診断とサービスの品質
●Windows 7： グラフィックス詳細
●Windows 7： 電力効率とバッテリー寿命の最適化
●Windows 7： タッチ コンピューティング
●Windows 7： ネイティブ コードで Web サービス
●Windows Mobile： 場所、場所、場所
●Windows Mobile： 端末向け Web 開発の最適化
●WPF： 拡張可能なビットマップ効果、ピクセル シェーダ、そして WPF グラフィックスの未来
    </content>
</entry>
<entry>
    <title>Google App Engineの入場規制が解除され一般公開！</title>
    <link rel="alternate" type="text/html" href="http://www.masahiko.info/it/archives/000947.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.masahiko.info/blog/mt-atom.cgi/weblog/blog_id=11/entry_id=947" title="Google App Engineの入場規制が解除され一般公開！" />
    <id>tag:www.masahiko.info,2008:/it//11.947</id>
    
    <published>2008-05-29T05:41:50Z</published>
    <updated>2008-06-01T05:12:38Z</updated>
    
    <summary>昨日の記事で「まだ分からない」と書いたGoogle App Engineの We...</summary>
    <author>
        <name>一色政彦</name>
        <uri>http://www.masahiko.info/</uri>
    </author>
            <category term="Google Development" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.masahiko.info/it/">
        <![CDATA[<img alt="Google App Engine" src="http://www.masahiko.info/it/archives/images/googleappengine.gif" align="right" border="0" height="140" width="160"><a href="http://www.masahiko.info/it/archives/000945.html">昨日の記事</a>で「まだ分からない」と書いた<a href="http://www.masahiko.info/it/archives/000931.html">Google App Engine</a>の Web アプリケーション ホスティング サービスへの入場規制ですが、ついに解除され、一般に公開されたようです。

料金体系は昨日示したものと変わらないようです。とりあえず使ってみたい場合も「ストレージの使用量が500Mbytesまで」で「月500万ページ ビュー（分のCPUと帯域幅）を超えるまで」は無料で使えるようです。

実際に「<a href="http://appengine.google.com/" target="_blank">Google App Engineのホスティング ページ</a>」にログインしてみた結果、次のようにちゃんと使用できる状態でログインできました！

<img alt="googleappenginelogin01.gif" src="http://www.masahiko.info/it/archives/images/googleappenginelogin01.gif" width="411" height="254" />

ただし、「<a href="http://code.google.com/appengine/kb/sms.html#issues" target="_blank">Google App Engine FAQ : Carriers currently experiencing issues</a>」によると、次のように書かれており、docomoとAUが国際SMSを受け取れないので使えないらしいです。<blockquote>We are currently experiencing issues sending SMS messages to the following carriers:

    * Japan - DoCoMo
    * Japan - KDDI
</blockquote>]]>
        
    </content>
</entry>
<entry>
    <title>Google Gearsが“Gears”に名称変更</title>
    <link rel="alternate" type="text/html" href="http://www.masahiko.info/it/archives/000946.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.masahiko.info/blog/mt-atom.cgi/weblog/blog_id=11/entry_id=946" title="Google Gearsが“Gears”に名称変更" />
    <id>tag:www.masahiko.info,2008:/it//11.946</id>
    
    <published>2008-05-29T05:01:56Z</published>
    <updated>2008-05-29T05:16:44Z</updated>
    
    <summary>米国サンフランシスコで開発者向けイベント「Google I/O」が開催中（200...</summary>
    <author>
        <name>一色政彦</name>
        <uri>http://www.masahiko.info/</uri>
    </author>
            <category term="Google Development" />
            <category term="Google Gears入門" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.masahiko.info/it/">
        <![CDATA[<img alt="Google Gears" src="http://www.masahiko.info/it/archives/images/googlegearslogo.gif" align="right" height="100" width="200">米国サンフランシスコで開発者向けイベント「<a href="http://code.google.com/events/io/index.html" target="_blank">Google I/O</a>」が開催中（2008/5/28-29）で、Google Earthに関するものなど、いくつかの新機能などのニュースが発表されています。その中で、<a href="http://www.masahiko.info/it/archives/000941.html">Google Gears</a>についての発表もあったようです。

1つが、「Google Gears」という名称を単に「Gears」と呼ぶようにした、という話。この意図は、「Gearsがオープンなプロジェクトで、Googleだけのものではない」ということを明確にしたいということのようです。

もう1つが、「GearsのデータベースAPIが強化されたよ」という話。GearsはクライアントにSQLiteデータベース エンジンをインストールしますが、その拡張機能である「ft2」をサポートして高速全文検索が可能になったということです。

【参考にしたサイト】

・<a href="http://journal.mycom.co.jp/news/2008/05/29/014/index.html" target="_blank">マイコミ：「Google Gears」から「Gears」へ、オフラインDB機能をさらに強化</a>
・<a href="http://jp.techcrunch.com/archives/20080528myspace-shows-facebook-how-its-done-google-gears-to-power-messaging/" target="_blank">TechCrunch Japanese：MySpaceがGoogle Gearsでメッセージ処理、Facebookにお手本示す</a>
]]>
        
    </content>
</entry>
<entry>
    <title>もうすぐGoogle I/Oが開催</title>
    <link rel="alternate" type="text/html" href="http://www.masahiko.info/it/archives/000945.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.masahiko.info/blog/mt-atom.cgi/weblog/blog_id=11/entry_id=945" title="もうすぐGoogle I/Oが開催" />
    <id>tag:www.masahiko.info,2008:/it//11.945</id>
    
    <published>2008-05-28T09:21:24Z</published>
    <updated>2008-05-29T06:02:47Z</updated>
    
    <summary>あと6時間ほどで、米国サンフランシスコで開発者向けイベント「Google I/O...</summary>
    <author>
        <name>一色政彦</name>
        <uri>http://www.masahiko.info/</uri>
    </author>
            <category term="Google Development" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.masahiko.info/it/">
        <![CDATA[<img alt="Google I/O" src="http://www.masahiko.info/it/archives/images/googleiologo.gif" width="200" height="100" align="right" />あと6時間ほどで、米国サンフランシスコで開発者向けイベント「<a href="http://code.google.com/events/io/index.html" target="_blank">Google I/O</a>」が開催されます。開催は2008年6月28日～29日の2日間で、8:00 am開場、9:30 amスタートみたいです。全世界から3000人が集まるようで、Googleとしては史上最大の開発イベントになるのではないでしょうか。

そのGoogle I/Oで紹介されるであろう内容が、早くも記事として上がってきました。

　・<a href="http://jp.techcrunch.com/archives/200805273000-developers-to-converge-on-google-io-tomorrow-heres-what-to-expect/" target="_blank">TechCrunch：明日Google I/Oに開発者3000人が集結。中身はこれだ</a>

これによると、僕が関心があるGoogle App Engineについても新発表がいくつか行われそうです。

例えば……]]>
        <![CDATA[Google App Engineの利用時の（ディスク容量や帯域幅などの）リーソース制限の緩和があるみたいです。例えば現在、月間500万以上のPV（ページビュー）があると、利用が停止されるらしいのですが、これが以下のような料金体系になるみたいです（※前掲の記事からの引用）。<blockquote>初期無料利用分：ストレージ500MB（）、約500万PV相当のCPUおよび帯域幅
$0.10～$0.12／CPUコア時間
$0.15～$0.18／GBストレージ／月
$0.11～$0.13／GB下り帯域幅
$0.09～$0.11／GB上り帯域幅</blockquote>この料金体系は、 <a href="http://www.amazon.com/S3-AWS-home-page-Money/b?ie=UTF8&node=16427261" target="_blank">Amazon Simple Storage Service (Amazon S3)</a>にならっているものらしく、Google App EngineはAmazon S3とガチンコ対決となるような感じですね。まぁ無料で使える部分があるのはすごくいいですけどね。

またGoogle App Engineに画像処理APIとメモリキャッシュ機能（memcache）が追加されるそうです。画像処理APIでは、画像の切り抜きやサイズ変更などの機能が提供されます。メモリキャッシュ機能（memcache）は、言葉どおりの機能と思いますが、例えばよく使うデータをキャッシュとして保持したりできるんでしょうかね。

あとGoogle App Engineは、現在、入場規制があって、僕も待ち行列の中にはいっていますが、現時点でおよそ16万人前後も待っているみたいです。そのうち、7万5000人はすでに入場許可されているそうで、うらやましい限りです。この入場規制も大幅に緩やかになるとうれしいのですが、それについてはどうなるかまだ分からないみたいです。（→「<a href="http://www.masahiko.info/it/archives/000947.html">Google App Engineの入場規制が解除され一般公開！</a>」）

あっ。ちなみにイベント名の「I/O」というのに深い意味はないとGoogleの方から聞きました。一般的なI/Oの意味である「input/output」にはもちろん掛けてはあるみたいですけど。]]>
    </content>
</entry>
<entry>
    <title>パラメータと引数の違い</title>
    <link rel="alternate" type="text/html" href="http://www.masahiko.info/it/archives/000944.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.masahiko.info/blog/mt-atom.cgi/weblog/blog_id=11/entry_id=944" title="パラメータと引数の違い" />
    <id>tag:www.masahiko.info,2008:/it//11.944</id>
    
    <published>2008-05-28T09:15:39Z</published>
    <updated>2008-06-02T13:16:31Z</updated>
    
    <summary>パラメータ（parameter）と引数（argument）はよく同じものとして使...</summary>
    <author>
        <name>一色政彦</name>
        <uri>http://www.masahiko.info/</uri>
    </author>
            <category term=".NET Development" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.masahiko.info/it/">
        <![CDATA[<img alt="パラメータ＆引数" src="http://www.masahiko.info/it/archives/images/paramandarglogo.jpg" width="200" height="100" align="right" />パラメータ（parameter）と引数（argument）はよく同じものとして使われますが、実際には違いがあります（わたしも混同していました……）。まぁパラメータと引数（ひきすう）は混同して使っても、意思疎通にそれほど影響出ていないので問題ないと思いますが、でもきちんと使い分けできた方がスマートかもと思いました。


その違いは簡単に言えば、次のようになるみたいです。

　・メソッド（や関数）に定義されているのは「パラメータ」（もしくは「パラメータ変数」）。
　・メソッド（や関数）に定義されたすべてのパラメータ群は「パラメータ リスト」と呼びます。
　・メソッド（や関数）のパラメータに渡された値<font color="red">*1</font>は「引数」（「パラメータ値」との言い換えも可能）。
　・メソッド（や関数）のパラメータ群に渡されたすべての値群は「引数リスト」と呼びます。

パラメータは変数名という名前がありますが、引数は変数値もしくは定数やリテラルなので名前がありません。
<blockquote><font color="red">*1＜高度＞</font> 厳密には「値」（Value）というよりも「式」（Expression）。式はオペランドと演算子を組み合わせたもの。例えば「a + 2」という式では、変数値「a」や定数「2」がオペランド、「+」が演算子です。具体例は後述の <font color="red">*2</font> で書いています。</blockquote>
<div align="center">■</div>

コード例で示すと以下のような感じです。]]>
        <![CDATA[<strong>【パラメータのコード例】</strong>
次のメソッド定義のaとbはそれぞれ「パラメータ」です。
aとbをまとめて「パラメータ リスト」と呼びます。

　<strong>void SomeMethod(int a, char b);</strong>

<strong>【引数のコード例】</strong>
次のメソッド呼び出しの 3 と 'c' <font color="red">*2</font> はそれぞれ「引数」です。
3と'c'をまとめて「引数リスト」と呼びます。

　<strong>SomeMethod(3, 'c');</strong>

<blockquote><font color="red">*2＜高度＞</font> 3と'c'は式（Expression）の1つです。<br />
例えば「<strong>SomeMethod(a+2);</strong>」という記述では、「a + 2」という式が引数です。</blockquote>


言葉で表すと以下のような言い方が可能です。

<strong>【パラメータの言語表現例】</strong>

　<strong>メソッドの各パラメータに引数を指定する</strong>

<strong>【引数の言語表現例】</strong>

　<strong>メソッドの第1引数を使って処理する</strong>

<div align="center">■</div>

もう少し具体的な文章を使いながら説明しましょう。

パラメータと引数の違いは「パラメータに引数を渡す」という言葉に集約されていると思います。

例えば、次の「○」は正しい文章で、「×」は不正確です。

<strong>【パラメータの言語表現例】</strong>

<strong>○　メソッドの第1★パラメータ★「a」に★引数★「5」を渡す
×　メソッドの第1★引数★「a」に★パラメータ★「5」を渡す</strong>

<strong>○　メソッドの第1★パラメータ★に「5」を渡す
×　メソッドの第1★引数★に「5」を渡す</strong>

<strong>○　メソッドの第1★パラメータ★は int 型の★引数★を受け取る
×　メソッドの第1★引数★は int 型の★パラメータ★を受け取る</strong>

<strong>○　コマンドライン★パラメータ★に★引数★「5」を渡す
×　コマンドライン★引数★に★パラメータ★「5」を渡す</strong>

<strong>【引数の言語表現例】</strong>

<strong>×　メソッドの第1★パラメータ★として「5」を渡す
○　メソッドの第1★引数★として「5」を渡す</strong>

<strong>×　メソッドの第1★パラメータ★「a」のsomeメソッドを呼び出す
○　メソッドの第1★引数★「a」のsomeメソッドを呼び出す</strong>

<strong>×　コマンドライン★パラメータ★を処理する
○　コマンドライン★引数★を処理する</strong>

<div align="center">■</div>

オブジェクト指向でいえば、パラメータは型やクラスのようなもので名前はありますが実体がありません。一方、引数はオブジェクト（インスタンス）のようなもので名前はありませんが実体があると思います。

<div align="center">■</div>

さらに、こんな法則を発見しました。以下のように「に」を「として」に置換すれば、ほとんどの「パラメータ」は「引数」に置き換え可能なようです。

<strong>○　第1★パラメータに★「5」を指定する
×　第1★引数に★「5」を指定する</strong>

<strong>　↓　（「に」を「として」に置換）</strong>

<strong>×　第1★パラメータとして★「5」を指定する
○　第1★引数として★「5」を指定する</strong>

実はこのうように「として」とした場合、以下のように「パラメータに」という用語が省略されていると考えられます。

<strong>×　第1パラメータとして（第1★引数に★）「5」を指定する
○　第1引数として（第1★パラメータに★）「5」を指定する</strong>

<div align="center">■</div>

「パラメータ」と「引数」って日常の日本語ではないから、それが「てにをは」をうまく使いこなせなくてしいる気がします。

例えば、日常的な日本語の野球の例で考えてみると、

<strong>　「メソッド」を「野球チーム」とすれば
　「パラメータ」は「監督のポジション」、
　「引数」が「監督の人」、</strong>

となると思います。これを、いままでの書き方と同じように書いて表すと次のようになります。

<strong>【パラメータの言語表現例】</strong>

<strong>○　野球チームの★監督のポジション★「a」に★監督の人★「郷ひろみ」を指名する
×　野球チームの★監督の人★「a」に★監督のポジション★「郷ひろみ」を指名する</strong>

<strong>○　野球チームの★監督のポジション★に「郷ひろみ」を指名する
×　野球チームの★監督の人★に「郷ひろみ」を指名する</strong>


<strong>【引数の言語表現例】</strong>

<strong>×　野球チームの★監督のポジション★として「郷ひろみ」を指名する
○　野球チームの★監督の人★として「郷ひろみ」を指名する</strong>

<strong>×　野球チームの★監督のポジション★「a」の笑いを引き出す
○　野球チームの★監督の人★「a」の笑いを引き出す</strong>

<strong>×　野球チームの★監督のポジション★で「郷ひろみ」を指名する
△　野球チームの★監督の人★で「郷ひろみ」を指名する</strong>

こう考えると、一番最後の△の文で使われている「で」という格助詞はいまいちな気がします。できれば「として」が好ましいと思います。次のようになります。

<strong>△　メソッドの第1★引数★で「5」を渡す
（△　野球チームの★監督の人★で「郷ひろみ」を指名する）</strong>

　　↓　むしろ次のような日本語の方が美しい。

<strong>○　メソッドの第1★引数★として「5」を渡す
（○　野球チームの★監督の人★として「郷ひろみ」を指名する）</strong>

<div align="center">■</div>

なお、パラメータは「仮引数」（formal parameter）、引数は「実引数」（actual argument）とも呼ばれます。「仮引数」と「実引数」を合わせた<b>日本語での総称</b>が「引数」という考え方があり（<a href="http://ja.wikipedia.org/wiki/%E5%BC%95%E6%95%B0" target="_blank">ウィキペディア：引数</a>）、この考え方の場合、「引数」という単語でこのどちらかを示していると考えられます。ちなみに経験的に、日本の開発者は仮引数と実引数のどちらも一緒くたに「引数」と呼んでいる人がほとんどです。

しかし、この記事では、仮引数＝「パラメータ」と実引数＝「引数」という考え方に基づいて説明しています。

<strong>【仮引数と実引数の言語表現例】</strong>

<strong>○　int 型の仮引数 a
△　int 型の実引数 a</strong>

<strong>○　仮引数 a に対応する実引数 5
×　実引数 a に対応する仮引数 5</strong>

以上の「仮引数」と「実引数」の表現を「パラメータ」と「引数」という表現に置き換えると以下のようになります。

<strong>【パラメータと引数の言語表現例】</strong>

<strong>○　int 型のパラメータ a
△　int 型の引数 a</strong>

<strong>○　パラメータ a に対応する引数 5
×　引数 a に対応するパラメータ 5</strong>

上記の「int 型の実引数 a」や「int 型の引数 a」は必ずしも不正確とは限らないかもしれません。例えば「int 型である引数aのSomeメソッドを呼び出して」というような表現は間違えではありません。

このようにパラメータと引数は、コンテキストにより、正しくも、不正確にもなるので、一概に「これはOK」「これはNG」とはいえないところがあります。

<div align="center">■</div>

以上の情報は、次のリンク先の情報をシンプルにまとめたものです。

・<a href="http://msdn.microsoft.com/ja-jp/library/9kewt1b3(VS.80).aspx" target="_blank">MSDN：Visual Basic 言語の概念「パラメータと引数の違い」</a>

・<a href="http://msdn.microsoft.com/ja-jp/library/2ch70h3t(VS.80).aspx" target="_blank">MSDN：Visual Basic 言語の概念「プロシージャのパラメータと引数」</a>

・<a href="http://en.wikipedia.org/wiki/Parameter_(computer_science)" target="_blank">Parameter (computer science) - Wikipedia, the free encyclopedia</a>
]]>
    </content>
</entry>
<entry>
    <title>オフラインでGoogleドキュメントを利用するには？</title>
    <link rel="alternate" type="text/html" href="http://www.masahiko.info/it/archives/000943.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.masahiko.info/blog/mt-atom.cgi/weblog/blog_id=11/entry_id=943" title="オフラインでGoogleドキュメントを利用するには？" />
    <id>tag:www.masahiko.info,2008:/it//11.943</id>
    
    <published>2008-05-25T16:04:33Z</published>
    <updated>2008-05-25T16:40:05Z</updated>
    
    <summary>Googleがオンラインで提供するオフィス アプリである「Google Docs...</summary>
    <author>
        <name>一色政彦</name>
        <uri>http://www.masahiko.info/</uri>
    </author>
            <category term="Google Development" />
            <category term="Google Gears入門" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.masahiko.info/it/">
        <![CDATA[<img alt="Google ドキュメント" src="http://www.masahiko.info/it/archives/images/googledocslogo.gif" width="200" height="100" align="right" />Googleがオンラインで提供するオフィス アプリである<a href="http://documents.google.com/?hl=ja" target="_blank">「Google Docs」（日本語では「Googleドキュメント」）</a>が、最近ついに<a href="http://gears.google.com/" target="_blank">Google Gears</a>というオフライン機能に対応しました。これにより、インターネットに接続していないときでも、文書作成や表計算などが行えるようになっています。

現在、Googleドキュメントでは「文書」「スプレッドシート」「プレゼンテーション」が提供されています。これはMicrosoft Officeでいうところの「Word」「Excel」「PowerPoint」に相当するものです。このうち、「文書」は完全にオフライン機能に対応し、オフラインで編集することが可能です。「スプレッドシート」と「プレゼンテーション」は表示のみで編集できません。

そこで以下では、Googleドキュメントの「文書」をオフラインで利用する方法を紹介します。]]>
        <![CDATA[前提条件として、まずはGoogle Gearsがインストールされている必要があります。Google Gearsのインストールについては「<a href="http://www.masahiko.info/it/archives/000942.html">Google Gearsのインストール方法</a>」を参照してください。

◆オンライン状態

まずは<a href="http://documents.google.com/?hl=ja" target="_blank">「Googleドキュメント」</a>を開き、右上にある［設定］をクリックして、［言語］を「English (US)」に変更し、［保存］ボタンをクリックします。このように設定言語を英語にするのは、執筆時点でGoogle Gearsのオフライン機能が日本語版のGoogleドキュメントには表示されないからです。

<img alt="docsoffline00.gif" src="http://www.masahiko.info/it/archives/images/docsoffline00.gif" width="405" height="224" />

英語に切り替わると、次の画面のように［Offline］というメニューが表示されるので、クリックします。

<img alt="docsoffline01.gif" src="http://www.masahiko.info/it/archives/images/docsoffline01.gif" width="408" height="131" />

これにより、次の画面の「Googleドキュメントにオフライン機能をインストールするか？」を問うダイアログが出ます。［Enable offline access］（オフライン機能を有効にする）ボタンをクリックします。

<img alt="docsoffline02.gif" src="http://www.masahiko.info/it/archives/images/docsoffline02.gif" width="450" height="267" />

すると次の画面が表示されるので、［I trust this site. Allow it to use Google Gears.］チェックボックスにチェックを入れて、［Allow］ボタンをクリックします。

<img alt="docsoffline03.gif" src="http://www.masahiko.info/it/archives/images/docsoffline03.gif" width="368" height="318" />

すると次の画面が表示されます。これは「デスクトップにショートカットを作るか？」を聞いているので［Yes］ボタンをクリックします。

<img alt="docsoffline04.gif" src="http://www.masahiko.info/it/archives/images/docsoffline04.gif" width="368" height="254" />

これで、次の画面のようにインストールが実行されます。

<img alt="docsoffline05.gif" src="http://www.masahiko.info/it/archives/images/docsoffline05.gif" width="365" height="135" />

インストールが完了すると、次のような表示になります。

<img alt="docsoffline06.gif" src="http://www.masahiko.info/it/archives/images/docsoffline06.gif" width="360" height="85" />

インストールが完了したら、日本語版のGoogleドキュメントに戻します。そうすると、日本語版でもオフライン機能が利用できます。これには再び上部にある［Settings］メニューをクリックして［Language］を「日本語」にして［Save］ボタンをクリックします。

<img alt="docsoffline07.gif" src="http://www.masahiko.info/it/archives/images/docsoffline07.gif" width="469" height="236" />
<img alt="docsoffline08.gif" src="http://www.masahiko.info/it/archives/images/docsoffline08.gif" width="303" height="52" />

すると、上部のメニューは次の画面のようになります。

<img alt="docsoffline09.gif" src="http://www.masahiko.info/it/archives/images/docsoffline09.gif" width="341" height="95" />

上の画面を見ると分かるように、緑色のアイコンをクリックするとメニューが表示されます。そこに［設定］とあるのでこれをクリックしてみましょう。すると、次のようなダイアログが表示されます。

<img alt="docsofflinesettings.gif" src="http://www.masahiko.info/it/archives/images/docsofflinesettings.gif" width="484" height="365" />

上のダイアログは確認のためだけに開いたので、何もせずに［OK］ボタンをクリックして閉じます。

◆オフライン状態に変更

いったん、ブラウザを閉じ、インターネットの接続を外します。

そして、デスクトップに追加されている次のショートカットをダブルクリックしてみましょう。

<img alt="docsofflineicon.gif" src="http://www.masahiko.info/it/archives/images/docsofflineicon.gif" width="87" height="71" />

すると、ブラウザが立ち上がり、Googleドキュメントのページが開かれます。ですが、先ほどの緑のアイコンが、次の画面のような灰色のアイコンに変わっています。これがオフラインの状態です。

<img alt="docsoffline10.gif" src="http://www.masahiko.info/it/archives/images/docsoffline10.gif" width="341" height="51" />

オフラインの状態では、「文書」などの新規作成は行えません。そのため、次の画面のようにいくつかのメニューがグレーアウトして使えなくなっています。

<img alt="docsoffline11.gif" src="http://www.masahiko.info/it/archives/images/docsoffline11.gif" width="490" height="88" />

それでは既存の「文書」ファイルをクリックして開いてみましょう。

<img alt="docsoffline12.gif" src="http://www.masahiko.info/it/archives/images/docsoffline12.gif" width="407" height="111" />

すると、通常どおり開かれますが、次の画面のように「オフライン モードで動作している」ことを通知するメッセージが「文書」の入力欄の上に表示されます。

<img alt="docsoffline13.gif" src="http://www.masahiko.info/it/archives/images/docsoffline13.gif" width="418" height="411" />

この状態で「文書」の内容を編集できます。編集し終わったら、［保存］ボタンや［保存して閉じる］ボタンをクリックします。

すると、先ほど編集した「文書」ファイルは、Googleドキュメントのページで「オフラインで編集された箇所」と表示されます。

<img alt="docsoffline14.gif" src="http://www.masahiko.info/it/archives/images/docsoffline14.gif" width="355" height="38" />

◆オンライン状態に変更

それでは再びパソコンがインターネットに接続された状態にします。すると、先ほどのオフラインで編集したファイルが、自動的にオンラインに同期して保存されます。これはすぐには行われず、ある程度時間がかかります。いますぐ同期したい場合は、先ほどの「オフラインで編集された箇所」を右クリックして、表示されるコンテキスト メニューから［今すぐ同期 (オフライン アクセス用)］をクリックしてください。

<img alt="docsoffline15.gif" src="http://www.masahiko.info/it/archives/images/docsoffline15.gif" width="463" height="71" />

以上です。]]>
    </content>
</entry>
<entry>
    <title>Google Gearsのインストール方法</title>
    <link rel="alternate" type="text/html" href="http://www.masahiko.info/it/archives/000942.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.masahiko.info/blog/mt-atom.cgi/weblog/blog_id=11/entry_id=942" title="Google Gearsのインストール方法" />
    <id>tag:www.masahiko.info,2008:/it//11.942</id>
    
    <published>2008-05-25T06:26:29Z</published>
    <updated>2008-05-25T06:45:16Z</updated>
    
    <summary>Google Gears対応のWebアプリを利用するには、まず利用者がパソコンに...</summary>
    <author>
        <name>一色政彦</name>
        <uri>http://www.masahiko.info/</uri>
    </author>
            <category term="Google Development" />
            <category term="Google Gears入門" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.masahiko.info/it/">
        <![CDATA[<img alt="Google Gears" src="http://www.masahiko.info/it/archives/images/googlegearslogo.gif" width="200" height="100" align="right" /><a href="http://gears.google.com/" target="_blank">Google Gears</a>対応のWebアプリを利用するには、まず利用者がパソコンにインストールしておく必要があります。ここではその手順を紹介します（といっても簡単です）。

まずは次のサイトを訪れてください。

・<a href="http://gears.google.com/" target="_blank">Google Gears 公式サイト（現時点では英語のみ）</a>

すると、次の画面のように右側に［Install Google Gears］というボタンがあるので、クリックします。このボタンの下の記載を見れば分かるように、Windows XPかVista上のFirefoxかIE（Internet Explorer）が必要です。なお、Windows以外にもMacやLinuxにもインストール可能ですが、本稿ではWindowsを前提とします。

<img alt="gearsinstall01.gif" src="http://www.masahiko.info/it/archives/images/gearsinstall01.gif" width="341" height="257" />
]]>
        <![CDATA[クリックすると、次のような［利用に関する許諾書］が表示されるので、（内容を許諾する場合には）［Agree and Download］（同意とダウンロード）ボタンをクリックします。

<img alt="gearsinstall02.gif" src="http://www.masahiko.info/it/archives/images/gearsinstall02.gif" width="288" height="321" />

これにより、Google Gearsのダウンロードが開始されます。

<img alt="gearsinstall03.gif" src="http://www.masahiko.info/it/archives/images/gearsinstall03.gif" width="456" height="162" />

Google Gearsのダウンロードが完了すると、次のようなダイアログが表示されますので、［Restart Browser Now］（いますぐブラウザを再起動）ボタンをクリックします。

<img alt="gearsinstall04.gif" src="http://www.masahiko.info/it/archives/images/gearsinstall04.gif" width="456" height="162" />

ブラウザが再起動され、Google Gears 公式サイトに次のように表示されます。

<img alt="gearsinstall05.gif" src="http://www.masahiko.info/it/archives/images/gearsinstall05.gif" width="336" height="277" />

以上でGoogle Gearsのインストールは完了です。]]>
    </content>
</entry>

</feed> 

