Hatena::ブログ(Diary)

Curlとは? このページをアンテナに追加 RSSフィード

Curl公式HP   Curl実行環境   Curlアプリデモ   Curl統合開発環境

2008-10-08 カンタンWebサービス連携

[]カンタンWebサービス連携 13:11 カンタンWebサービス連携 - Curlとは? を含むブックマーク カンタンWebサービス連携 - Curlとは? のブックマークコメント


以前のエントリで紹介した、WSDLから、接続用のアプレットを自動生成するアプリを、

アップグレードしました。


その名も「Webサービススケルトンメーカー!」ってあんまりいい名前じゃないっスね。


まあ、機能としては名前のまんま、Webサービスと連携するためのスケルトンプロジェクトを

WSDLから自動的に生成してくれるというものです。

マッシュアップって良くわからないな」、「Webサービスとの接続って大変だな」という方には

うってつけのアプリだと思っています。


使い方はチョー簡単。


  1. Curl Apps Galleryサイトから、アプリをダウンロード
  2. ZIPファイルを解凍し、その中のstart.curl を実行
  3. とりあえず、「Webサービススケルトンプロジェクトの作成」ボタンをクリック!
  4. フォルダ内に、スケルトンプロジェクト[フォルダ名:sample]が作成されるのでその中の start.curl を実行!
  5. Webサービスから返却された情報が表示される!(サンプルでは国情報を取得するサービスに接続しています)
  6. あとは スケルトンプロジェクトの start.curl をいじるもよし、好きなサービスのWSDLを指定して新しくスケルトンを作るもよし!

ね、簡単でしょ?

ぜひ触ってみてくださいね!


ちなみに、このアプリは、Curl Apps Gallery の記念すべき100個めの登録みたいです。

なんかくれんかね(笑)

2008-09-03 マッシュアップアワード4参加

[]マッシュアップアワード4参加 19:08 マッシュアップアワード4参加 - Curlとは? を含むブックマーク マッシュアップアワード4参加 - Curlとは? のブックマークコメント


下記アプリでマッシュアップアワード4に応募してみた。

ランタイムインストールと特権設定という作業が必要なので、

まずは、審査委員に触ってもらえるかどうかが問題だ・・・。


■顔マスクアプリ

http://developers.curlap.com/curl/samples/reverse-dictionary/kao-mask/start.curl


アプリの中では、XPath表現を利用したXMLハンドリングをしています。

下記デベロッパーサイトで簡単に解説したので、興味がある人は、どぞ。


Curl Developer Center内「XPathを利用したXMLハンドリング」

http://developers.curlap.com/re-reference/25-data/145-xpathxml.html


ちなみに、今回のアプリに特権が必要な理由は、利用するWEBサービス側にアクセスする権限が無いため。

Curlは、サーバー側のアクセス権限設定ファイルの有無、内容によって、

そのサーバーにアクセスしてよいかどうかをランタイムが判断するのですが、

Hanko APIには、crossdomain.xml がなく、

顔ラボの場合は kaolabo.com と sub.kaolabo.com のみ有効。


Yahoo なども外部からのアクセスを禁じているので、仕方が無いとは思うのですが、

アワード期間中だけでいいので、オープンにしたりしてくれると、イイなぁ・・・。

Curl独自のcurl-access.txt をおいてもらうのはさすがに難しいし、なぁ・・・。

2008-08-27 Curlビギナー卒業生に送る言葉

[]Curlビギナー卒業生に送る言葉 17:08 Curlビギナー卒業生に送る言葉 - Curlとは? を含むブックマーク Curlビギナー卒業生に送る言葉 - Curlとは? のブックマークコメント


nobrooklyn さんのとこでCurlのエントリをみつけたので、

またも勝手にコメント。

送る言葉というタイトルが偉そうですが、在校生の送辞のようなもんだと思ってください。


Curlビギナー卒業生

http://d.hatena.ne.jp/nobrooklyn/20080303/1204554174


■どこにカッコを付けて、どこにカッコを付けないのかがイマイチわからない

確かに。

他の言語とCurlの違いでわかりづらいかもしれませんね。

別エントリでまとめて見ます。


■見た目がなんかカッコ悪い

確かに。

バージョン6.0から、HTMLでいうところのCSSのような機能がついて、

すこし見栄えをよくすることが出来ますが、Flash などと比べるとまだまだですね。

アニメーションなどもオーサリングツールがあるわけではないので、

Curlで実装しようとすると、プログラミングとなってしまい、

複雑なものについては現実的ではありませんね。



インストールが簡単に and アプリケーションの配布が不要

ここでは、「ランタイム(実行環境)」と「アプリケーション」とを区別する必要があると思います。


「アプリの更新のたびにインストールが発生する」というのは、

手間を考えると望ましいものではないので、ランタイムであろうが、アプリであろうが、

インストールも更新も、自動的にされるのがありがたいのですが、

セキュリティや管理ということを考えると、何でも暗黙的に自動化されているのは、怖いものです。

ここは考え方の違いによって、メリットとデメリットがあるところですね。


◆ランタイムのインストール

まず、リッチクライアントのプラットフォームである以上すべてにいえることですが、

ランタイム(実行環境は)は、必ず何らかの方法で最初にインストールしなければいけません。

しかし、多くのプラットフォームは、ランタイムの更新を半自動化していますので、

一度インストールしてしまえば、その後の更新の手間はあまりかからないようになっています。


◆アプリケーションの配布

アプリケーションに関しては、インストール式と、WEB配置式に分かれるようですね。

Adobe製品でも、FlashやFlexはWEB配置型ですが、AIRアプリケーションになると

各クライアントマシンにユーザーがインストールする仕組みになっています。


Curlは、WEB配置式ですので、アプリごとにユーザーがインストールする必要はありませんが、

標準のAPIを利用して、オフライン用のレプリケーションをクライアントに配置できます。

Curlの場合は、オンライン時はWEB上に配置されているものを、

オフライン時はクライアントマシンのレプリケーションを、自動的に判別して実行します。


インストール式のよい点は、オフラインでもアプリケーションが動かせるところです。

個人ユーザーの場合は、オフラインアプリは、各マシンごとに管理したい、

というニーズがあるのだと思いますが、

企業アプリを対象として、なるべくシステム管理者とユーザーの

管理コストを下げようというCurlとは、少し考え方が違うのかもしれません。

2008-08-15 Curlの言語的特長

[]Curlの言語的特長 20:14 Curlの言語的特長 - Curlとは? を含むブックマーク Curlの言語的特長 - Curlとは? のブックマークコメント


kwatchさんのはてなブログにて、Curlの言語的特長が挙げられています。

「Java は近代の言語、Ruby は現代の言語、Curl は未来の言語」

http://d.hatena.ne.jp/kwatch/20080805/1217950756



いくつか私のコメントをば。


■数値に単位をつけられる

これって他の言語だと結構面倒なんですね。

Curlだと当たり前に使ってしまうので、メリットに気がつきませんでした。

あと、{SI-value 値} でその数値だけ取れたりもします。

10kg → 10 とか。


■初期値で型を決定

逆に、Curlに慣れたあとで、他の言語をさわると、

この初期値での型宣言に戸惑うときがあります。

any型を使って、あとでasaマクロで明示的にキャストするのが

プロトタイピングのときとかはラクなので・・・。

リーダビリティの低さが問題かも。


■戻り値の宣言に名前をつけられる

これは私もいいな、と思ってます。

プロシージャなどで戻り値を複数宣言できてラクなんですが、

これがあるおかげで、あとで読み返したとき変数の意味がわかりやすい。


・プロシージャ宣言

{define-proc {trigonometric

a:double, b:double, c:double

}:(sin:double, cos:double, tan:double)


・変数への代入

let (sin:double, cos:double, tan:double) = {trigonometric a, b, c}



正直、モノがいいからって、流行るわけではないよ、ってコメントを

これまで何万回も聞かされてきていますが、

いろんな言語を触ったことがある方ほど、「発見」の多い言語ではあるかもしれませんね。


興味があれば、下記ページから無償版のCurlIDEを触ってみるのもよいかと。

■CurlIDEダウンロードページ

http://www.curlap.com/download/ide/


Javaとか、Rubyとか、初期値での型宣言以外で、Curlにはない言語的特徴って何ですかね。

知っている人が居たら教えてつかぁさい。

>自分でしらべろって?

2008-07-25

[]XPath 覚書 その1 13:29 XPath 覚書 その1 - Curlとは? を含むブックマーク XPath 覚書 その1 - Curlとは? のブックマークコメント


任意の名前空間下にあるノードを取得したい場合、

対象の名前空間の接頭辞をつけないといけない


■例1 名前空間のないノード[item]を取得

 XPath = //item


■例2A 名前空間がhttp://hoge.com の ノード[item]を取得する

 XPath = //*[name() = 'item']


■例2B

 extend-namespace-context を利用して、hogeという接頭辞を設定

 ({extend-namespace-context hoge = "http://hoge.com"})

 XPath = //hoge:item


CurlのWSDKで、XMLをハンドリングする際に結構使うと思います。

XDMElement から children で取得するなら問題ないんですけどね。