ビルゲイツの面接試験−ジャンケン編を考える

Life is beautiful‐ビルゲイツの面接試験−ジャンケン編 あなた(=Aさん)とBさんにジャンケンを連続で1000回してもらいます。あなたもBさんも、パーで勝つたびに500円、チョキで勝つたびに200円の賞金を主催者からもらえます。グーで勝ったり、ア…

ITアーキテクト Vol.10(雑誌)

ITアーキテクト Vol.10という雑誌の最新号を読んでいたら、新刊書籍情報というコーナーで『かんたんIDEではじめるCurl』が紹介されていました。読者プレゼントにもなっていて、5名様に当たるそうです。*1 ちなみにこのブログでは『かんたんIDEではじめるCur…

Dialogの閉じる制御

ViewはWindowCloseイベントをconsumeすればウィンドウを閉じさせないようにできるけれど、Dialogは同じことができないんだよなぁ。モーダルウィンドウはDialogでしか実現できないから、つまりモーダルダイアログの×ボタンは制御はできないとゆうことで、困っ…

キャッシュと同期

curlのホームページにキャッシュと同期に関するドキュメントがアップされました。 カール‐技術資料 上記リンク先の中ほどに、「パッケージキャッシュのメリットを引き出す方法」というタイトルで当該文書へのリンクがあります。具体的には、curlのキャッシュ…

編集不可のTextFieldを作る

TextFieldを編集不可(あるいは読み取り専用)にして使いたいんですがどうすればいいですか?enabled?=falseだと文字列のコピーができなくなるので好ましくないです。 ありきたりな要求だと思うのですが、残念ながら現行のバージョン(5.0)では簡単に(例え…

マシンサイクルの計測

昨日の日記(id:giuseppe:20070310)では、処理時間の計測とゆうことでStopWatchというAPIを紹介しました。 let sw:StopWatch = {StopWatch} {sw.start} ||処理 {output {sw.elapsed}} もうひとつ、curlにはプログラムのパフォーマンスを測定するためのAPIと…

処理時間の計測

今日は、curlに関する日記をよく書かれている開発日記さんを引用して 開発日記 - 処理の高速化 curlだと let v_start:DateTime = {DateTime} 処理 {output ({DateTime} - v_start) & ":秒かかりました"} というふうに処理時間を計って原因を特定していきます…

ユーザグループ新掲示板

今更ですが、Curl Users Groupに新しい掲示板が設置されたようです。 Curl Users Group BBS http://www.curl-users-group.org/bbs/bbs.cgi これまでのwikiベースの掲示板はいまいち使い勝手が悪かったようで、たまに改善要望の書き込みなどがあったみたいで…

サンプルをその場で編集、その場で実行

curlのIDEには豊富な解説や多数のサンプルコードが載ったヘルプドキュメントが付属しています。無償版でも体験版でも、製品版と同等のヘルプドキュメントが付属しており、インストールしてすぐに利用することができます。(IDEのインストール方法はこちらid:…

Mac対応β版

バージョン6.0からのMac対応に向けて、β版RTEの提供が開始されたようです。 http://www.curlap.com/download/mac/index.html Curlは次期バージョンでMac対応版のラインタイムを実装するため、ただいまBeta版をご提供しています。 このBeta版はバージョン5.0…

マクロは強力なsyntax拡張機能

他の多くのプログラミング言語と同様、curlでもコードをモジュール化して再利用するためにクラスやプロシージャを使うことができます。curlにはもうひとつ、マクロと呼ばれるコードの再利用手段があります。例えば、イベントハンドラを記述するときに使う on…

IDEで使えるショートカットキー

知っているのと知っていないのとで結構生産性に差が出るショートカットキー。 普段僕がよく使うものを紹介してみます。 キーシーケンス 説明 Tab カーソル行のインデントを揃える。Ctrl+A(テキスト全選択)→Tabなどとするとファイル全体のインデントを整列で…

デザイニング・インターフェース ―パターンによる実践的インタラクションデザイン

これまであまりソフトウェアのUIデザインやユーザビリティというものについて大きな関心がありませんでしたが先日以下の本を衝動買い。デザイニング・インターフェース ―パターンによる実践的インタラクションデザイン作者: Jenifer Tidwell,ソシオメディア…

かんたんIDEではじめるCurl

curlの入門用書籍が発売されるそうです。かんたんIDEではじめるCurl作者: 株式会社カール出版社/メーカー: 翔泳社発売日: 2007/02/14メディア: 大型本購入: 1人 クリック: 13回この商品を含むブログ (6件) を見る これでcurlに触れた後はIDEのヘルプを読み倒…

アクセラレータキー

アクセラレータキーというのは、マウスを使わずにアプリケーションの機能を呼び出すためのいわゆるショートカットキーです。例えば、Ctrl-S(保存)やCtrl-Z(元に戻す)などのことです。curlでアクセラレータキーを実装するには、MenuBarに組み込むMenuActi…

オブジェクト指向入門 第2版 原則・コンセプト

予約注文してた本がついに届いてしまった。オブジェクト指向入門 第2版 原則・コンセプト (IT Architect’Archive クラシックモダン・コンピューティング)作者: バートランド・メイヤー,酒匂寛出版社/メーカー: 翔泳社発売日: 2007/01/10メディア: 単行本(ソ…

フレームワークを作るその前に

前回の日記(id:giuseppe:20070105)でごろうさんからもらったコメント やばい! 完全に、バカ専用フレームワーク を作ってる気がする・・・。 でも、作れって言われるんだものー。でもでも、業務アプリという前提で考えた場合に、「飛躍的に自由なプレゼン…

銀のフレームワーク

遅ればせながら、 まさたか日記 - Easyが売り、の問題 フレームワーク「ごとき」ではゾンビを救えないけど、バカ対策フレームワークがじわじわとプログラマーをゾンビ化することはあるように思います。フォード式のベルトコンベア生産が工場内規律を崩壊させ…

Curlソフトウェア開発という難題に立ち向かう

IBM developerWorksの記事です。 Ajax と REST、第 2 回 http://www-06.ibm.com/jp/developerworks/web/library/wa-ajaxarch2.shtml Ajaxなアプリケーションの開発に取り組もうとする組織に対して警告や助言をしています。 それらの多くは、curlについてもそ…

Curlとアーキテクチャ(2)〜レイヤアーキテクチャ〜

今回は、レイヤアーキテクチャの観点からシンクライアント(Webアプリケーション)とリッチクライアントの位置付けを確認してみます。 レイヤアーキテクチャとして現在もっともベーシックなのは、おそらく3階層としての説明でしょう。すなわち、(用語は様…

Curlとアーキテクチャ(1)〜リッチクライアント〜

curlアプリケーションの設計方法などといったテーマについてなかなか書けずにいます。その理由が、自分にとって単に難し過ぎるからなのか、それともただ億劫なだけなのか、はっきり自覚のないまましばらくモヤモヤしていました。しかし最近徐々に、別の大き…

Curl Application Award 2006

curlのアプリケーションを一般個人から募集するコンテストが開催されています。 無償版の開発環境「Curl/Personal」で開発したアプリケーションが対象で、最高賞金は50万円ということです。 Curl Application Award 2006 http://www.curlap.com/award2006/in…

Curlシンタックスで設定ファイル

アプリケーションに設定ファイルを用意して、ソースコードを変更せずにアプリケーションの動作を変更できるようにしたい場合があります。例えば以下のようにXMLで設定ファイルを用意する方法が考えられます。 <config> <mode>maintenance</mode> <log_level>debug</log_level> </config> アプリケーションは起動時…

Curlプログラミングの落とし穴

curlでいざアプリケーションを開発するとなった際に戸惑う人は少なくありません。新しく覚える言語で馴染みがなかったり、書籍やネット上の情報が少ないといった原因が考えられますが、もうひとつ大きな別の原因があります。 それは、UIがHTMLであるシンクラ…

Curlプログラミングの始め方

今回はcurlプログラミングの始め方です。 バージョン5.0から提供されている無償版の開発環境Curl/Personal IDEのWindows版のインストールと、インストール後の設定について紹介します。 (1)IDEのインストール以下のサイトからCurl/Personal IDEをダウンロ…

type-switch

実行時の値のデータ型によって処理を分岐する場合にはisaプリミティブが使用できます。 {if x isa Foo then ||xがFoo型だった場合の処理 elseif x isa Bar then ||xがBar型だった場合の処理 }データ型によって分岐した後の処理はキャストを伴うことが多いで…

オーバーロードはできません?(5)〜残余引数〜

残余引数を使うと、プロシージャやメソッドにおいて任意の数の引数を受け取ることができるようになります。 例えば、以下のように引数に任意の数のdouble値を受け取ってその合計を返すプロシージャを定義できます。 {define-proc {sum ...:double}:double le…

if-non-null

以下はnullチェックを行うコードの例です。 let str:#String = {get-possibly-null-string} {if str != null then {use-non-null-string {non-null str}} } このコードはif-non-nullマクロを使えば以下のように書けます。 non-nullマクロを使った非null型へ…

オーバーロードはできません?(4)〜any型+type-switch〜

今回はany型とtype-switchマクロを使用して、引数の型に応じて異なる処理を行わせる方法を紹介します。 any型とは、任意のデータ型を保持する変数に指定するデータ型です。any型として指定された変数*1には、クラス型だけでなくプリミティブ型、プロシージャ…

オーバーロードはできません?(3)〜暗黙の型変換〜

popup-messageとゆうプロシージャがあります。手軽にポップアップを表示できるため、デバッグなどに活用したりとご存知の方も多いことでしょう。今更説明の必要もないプロシージャだと思われますが、敢えてその使い方を見ていこうと思います。 以下のような…