2007年9月22日 (土)

[Comp] VMLとかDOMとかJavaScript

VMLの<v:rect>もcreateElementできた。

var elem = document.createElement("v:rect");
elem.style.width = 30;
elem.style.height = 20;
elem.style.top = 20;
elem.style.left = 10;
elem.style.position = "absolute";
xxx.apendChild(elem);

みたいな感じ。

| | コメント (0) | トラックバック (0)

2007年9月20日 (木)

[Comp] VMLとかAJAX

ちょっと実現したいなあと漠然と考えていたことがあった。 手段は何も思いつかなかったのだが、 もしかしたら、VMLとかAJAXとかを使って頑張れば、 なんかできるかもと思い始めた。 今まで何も見えなかったのが、うすらぼんやりと影が見えてきた感じだ。 その影が目の錯覚なのかどうか、 その影にたどりつくための道が茨の道なのかどうか探るために、 少しだけ、VMLとかAJAXに時間を割いてみようと思い始めた。

直接関係は無いんだけど、この思いつきは、 昨日のカンファレンスに刺激された部分が少なからずある。 そう考えると、昨日のカンファレンスは、私にとって価値があったということだ。

| | コメント (0) | トラックバック (0)

2007年9月19日 (水)

[Comp] REMIX07 参加

元々カンファレンスの存在自体知らなかったし、 Silverlightの何たるかも知らなかったのだが、 昨日、カンファレンスの存在を教えてもらい、 棚ぼた的にチケットを回してもらったので、 Ajaxの話とかWeb開発の最新情報を目当てに REMIX07 に参加。

参加することを決めてから、改めてプログラムを確認して 初めてRubyのセッションがあることを知った。 マイクロソフト主催のカンファレンスに堂々とRubyとmatzが登場する日が来るとは。

  • こんな事がWebでできるようになったのかと思わせるような目新しさは無かった。

  • 今まで、FlashやAjaxなどを組み合わせて実現していたことが Visual Studio(とその周辺ツール)だけで実現できるというのが目玉っぽい。

  • そうは言ってもSilverlightには、まだ不安定な部分とか、実際の開発では、苦労する部分もあるという生々しい話も聴けて面白かった。

  • JavaScriptの地位が向上(?)しているような気がした。

  • Silverlightでは、JavaScript以外に動的言語としてIronPython、IronRubyなども使えるようになるよという話があった。

  • まつもとさんの話の中で、「Rubyの最近の動向と、特徴」の話題はあったけど「注意すべき点など」は?

  • プロパティを設定するときにコントロールの上でプロパティメニューを選択すると、選択した位置にプロパティ設定画面がポップアップする機能は欲しいと思った。

  • artonさんとしんじぃさんと会社の後輩に偶然会った。

| | コメント (0) | トラックバック (0)

2007年8月 8日 (水)

[Comp] HTML編集

試しにHTMLの編集に某ソフトを使用した。

出力結果のHTMLが変なのと、 某ソフトによる編集時の見た目と 実際にIEで表示したときの見た目が食い違うのに むかついた。 結局、普通のテキストエディタで、すっきりとしたHTMLに書き直してしまった。

某ソフトを使い慣れていないせいかも知れない。

| | コメント (0) | トラックバック (0)

2007年1月 6日 (土)

[Comp] ck 2.0.25

バージョンアップ。 いつか画面分割できるようにならないかなあ。 マルチスクリーンバッファの機能があるので重宝している。 一時期使っていたscreenもcygwinでは使わなくなってしまった。 唯一の不満と言えば、screenと違って画面分割できないこと。

バッファの切り替えやバッファの新規作成は ~/.Xdefaults に

Ck*accelKey_newShell: altL,ctrlL,T
Ck*accelKey_nextShell: altL,ctrlL,N
Ck*accelKey_prevShell: altL,ctrlL,P

と書いてキーを割り当てている。

Alt+Ctrl+T でバッファ増やして、Alt+Ctrl+N や Alt+Ctrl+Pでバッファを切り替えて使っている。 結構便利。

| | コメント (0) | トラックバック (0)

2006年8月31日 (木)

[Comp] YAHT (Haskell)

Chapter 3 まで、読んだ。 プログラムにIOがからむと途端に難しくなるな。 さらにそこに再帰が出てきた日にゃ...。

あと、do の中で、変数を使おうと思ったら、 let式にしないといけなかったんだっけ?

do 
    x = 5

はエラーで、

do
    let x = 5

としないといけない?

この後、ちゃんと丁寧な解説があるみたいだから、そこまで、じっくり読めば、 すんなり、Haskellのコードを読んだり書いたりできるようになるだろうか。

Exercise 3.10の答を見て、 product や sum という関数の存在を知った。 自分で似たようなものを作っていた。

myprod = foldr (*) 1 
mysum = foldr (+) 0

ghci で :load の他に、:reload コマンドがあることを知った。

| | コメント (0) | トラックバック (0)

2006年8月30日 (水)

[Comp] YAHT P34

Yet Another Haskell Tutorial は長いので、YAHTと省略します。

インデントが重要な意味を持つHaskellでは、 エディタでタブ幅は空白8個分に設定しておくようにと注意書きが。 それ意外の長さの設定はできないのかな。

| | コメント (0) | トラックバック (0)

2006年8月29日 (火)

[Comp] Yet Another Haskell Tutorial

3.4まで読んだ。 解説で使用しているメインの処理系は、GHCみたいだ。 (注釈でHugsも登場する。) 一応、ふつけるとTwo Dozens を読んでいるので、 今のところは、読み飛ばしても何とか自分なりに理解できる。

| | コメント (0) | トラックバック (0)

2006年8月28日 (月)

[Comp] Two Dozens Short Lessons in Haskell

途中、ところどころ、読み飛ばしたけれど、一通り読んだ。

| | コメント (0) | トラックバック (0)

[Comp] Two Dozens Short Lessons in Haskell

P. 112 の take の定義の

n > 0 = [x] + take (n - 1) xs

は、多分、

n > 0 = [x] ++ take (n - 1) xs

が正しい。

| | コメント (0) | トラックバック (0)

[Comp] Haskell の iterate

iterate f x

は、x に対して、f を繰り返し適用したときの結果を配列で返す。ただし、配列の最初は、fを0回繰り返した値になります。

だから、

iterate (\x -> x + 2) 0

は、0を含めた

[0, 2, 4, 8, ...]

を返します。

つい1回目からfを適用して

[2,4,8, ...]

と勘違いしないように気をつけましょう。

| | コメント (0) | トラックバック (0)

2006年8月25日 (金)

[Comp] Two Dozens Short Lessons in Haskell

16章まで読んだ。17章は興味を持てなかったので、さらっと読み飛ばす。

| | コメント (0) | トラックバック (0)

2006年8月24日 (木)

[Comp] Two Dozens Short Lessons in Haskell

13章まで読んだ。 iterateなど、これまでの知識を生かして作成したフィボナッチ数列を生成するプログラム。

fibs :: Int -> [Integer]
fibs n = take n $ [y | (x, y) <- iterate f (0, 1)]
              where
                  f (n, m) = (m, n + m)  

なんかほとんど数学みたい。

| | コメント (0) | トラックバック (0)

2006年8月23日 (水)

[Comp] Two Dozens Short Lessons in Haskell

折り返し点の12章まで読んだ。 ふつけるよりも丁寧で教科書っぽい。 10章から12章は、なんか数学っぽいので、かなり抵抗を感じる人もいるかも。

高階関数の型とかは、まだまだ、混乱してしまうな。

| | コメント (0) | トラックバック (0)

2006年8月22日 (火)

[Comp] Haskell Two Dozens P.33

私にはトリッキーなコードに見えてしまうなあ。 Haskell 使いの人にとっては、これって普通なんだろうか。

removeBPC = foldr1 (.) [remove c | c <- ",. "]

| | コメント (0) | トラックバック (0)

2006年8月21日 (月)

[Comp] Haskell Getting set up

によれば、GHCをソースからコンパイルしようとするのは very bad idea らしいです。 確かに GHCをインストールするのに別のHaskell Compilerが必要だもんな。 (なので、私はソースからインストールをあきらめました。)

| | コメント (0) | トラックバック (0)

2006年8月19日 (土)

[Comp] SICPでHaskell

Exercise 1.3 の 改良版

import List
func :: (Num a, Ord a) => a -> a -> a -> a
func a b c =  x * x + y * y 
    where 
        x = head . reverse $ sort [a, b, c]
        y = head . tail . reverse $ sort [a, b, c]

| | コメント (0) | トラックバック (0)

[Comp] SICPでHaskell

Exercise 1.4 の a-plus-abs-b をHaskellで。

a_plus_abs_b :: Int -> Int -> Int
a_plus_abs_b a b = (if (b > 0) then (+) else (-)) a b

| | コメント (0) | トラックバック (0)

[Comp] SICPでHaskell(1)

SICPの Exercise 1.3 を Haskellでやってみる。 sortを使うのは、反則?

import List
func :: Int -> Int -> Int -> Int
func a b c =  (x * x) + (y * y)
    where 
        x = head . reverse $ sort [a, b, c]
        y = head . tail . reverse $ sort [a, b, c]

| | コメント (0) | トラックバック (0)

[Comp] Gauche と Emacs

LispImplForSICPを参考にして、 .emacs.elに設定。

(setq scheme-program-name "gosh")
(require 'cmuscheme)
(defun scheme-other-window ()
    "Run scheme on other window"
      (interactive)
        (switch-to-buffer-other-window
             (get-buffer-create "*scheme*"))
          (run-scheme scheme-program-name))
(defun gauche-info ()
    (interactive)
      (switch-to-buffer-other-frame
           (get-buffer-create "*info*"))
        (info
             "/usr/local/info/gauche-refj.info.gz"))
(define-key global-map
              "\C-cS" 'scheme-other-window)
(define-key global-map
              "\C-cI" 'gauche-info)

Haskellとは直接関係ないのですが、 SICPも読もうかなと思っているので。

| | コメント (0) | トラックバック (0)

[Comp] Hugs

Two Dozen Short Lessons in Haskellでは、 Hugsを使っているようなので、インストール。

tar zxvf hugs98-plus-May2006.tar.gz
cd hugs98-plus-May2006
make
make install

| | コメント (0) | トラックバック (0)

2006年8月18日 (金)

[Comp] Two Dozen Short Lessons in Haskell

まだ、13ページ読んだだけですが、多分、ふつけるよりやさしいです。 英語を苦にしなければ、こちらから読むのもいいかも。

ちょっと構成が面白いです。 PDFのファイルが2つに分かれてます。 一方がHaskellの解説と穴埋め式の問題になっていて、 もう一方が、解答になっています。 書いて覚えるHaskellドリルという感じ。

| | コメント (0) | トラックバック (0)

[Comp] ふつける

一応、一通り読み終えた。 モナドと型システムは、まだ、よくわかってない。

| | コメント (0) | トラックバック (0)

2006年8月17日 (木)

[Comp] やさしい Haskell入門

やっぱり、あまり、やさしくない気がする。 ちらっと見た感じでは、英語だけど、

の方がやさしそう。少なくとも、とっつきやすそうである。

| | コメント (0) | トラックバック (0)

2006年8月15日 (火)

[Comp] ふつけるの後

一応、11章まで読んだので、ふつけるの後はどうしようかと考えている。 意外とここまでは、ふつける(Haskell)を楽しんでいる自分がいるので、 このまま放置するのが、ちょっとばかし惜しくなってきている。

ちょっと横道にそれて、ふつけるオススメの

思い切って投資して

上2つを読んでから、もう一度考えてみるか。 SICPを読みながら、SICPの問題をHaskellとSchemeでやってみるというのも一つの手かも。

| | コメント (0) | トラックバック (0)

[Comp] ふつける 11章

モナドは、まだイメージがつかめない。

| | コメント (0) | トラックバック (0)

2006年8月14日 (月)

[Comp] ふつける

さらっと10章を読み終わりました。 次はいよいよモナドです。

| | コメント (0) | トラックバック (0)

[Comp] ふつける 9 章 (9.6練習問題)

出題の意図を理解し損ねたかも。 これだと、Ordクラスのcompareを使ったことにならないのかな。

import List
data Line = Line {
  number :: Int,
  string :: String
} deriving (Show, Ord)
instance Eq Line where
    (Line num1 str1) == (Line num2 str2) = (num1 == num2)
ls :: [Line]
ls = [(Line 3 "three"), (Line 1 "one"), (Line 2 "two")]
sortLines :: [Line] -> [Line]
sortLines = sortBy compare 
main = print $ sortLines ls

なんか9章は難しくて理解があやふやになってるなあ。 さくさくプログラムを書けないし。

| | コメント (0) | トラックバック (0)

2006年8月13日 (日)

[Comp] SBCL

Thread サポートの SBCLを使うにはKernelのヴァージョンが古いと エラーが。 ということでソースからインストールしようとしたら、Lispの処理系が必要らしい。 そこで、apt-get で Vine の CLISP をインストール。

ところが、Vine の CLISP で SBCLをコンパイルすると途中でエラーに。 そこで最新のCLISPをソースからコンパイルしてインストールした後、 SBCLをインストールした。

sbclと入力すると動いているみたいなので、これでよしとする。

| | コメント (0) | トラックバック (0)

[Comp] Lispの処理系

Emacs-Lispを除いて、Lispの処理系を一つも、インストールしていない事に気づく。 そこで、処理系として何があるかと調査。 候補としては、

  • CLISP

  • SBCL

  • CMUCL

  • ACL

あたり。 CLISPは、Vineにあるので、apt-getで手軽にインストールできる。 SBCLとCMUCLとACLは、Practical Common Lispで取り挙げられていた。 ACLは、Trial版をどこからダウンロードすればいいのかわからないので、パス。 CMUCLは、日本語がどこまでサポートされているのかはっきりしないので、パス。 SBCLは、CLISPより速いみたいだし、何より Practical CommonLispで 取り挙げられているので、SBCLが有力。

| | コメント (0) | トラックバック (0)

[Comp] ふつける 第8章

脊髄反射の速度で、ポイントフリースタイルへ書き換えるレベルには、ほど遠い。 どっちかっていうと、リファクタリングの気分。

| | コメント (0) | トラックバック (0)

2006年8月12日 (土)

[Comp] ふつける(7.9 練習問題)

if式を使うようじゃまだまだですかね。

main = do cs <- getContents
          putStr $ unlines $ concatMap fold (lines cs)
fold :: String -> [String]
fold str = let (s, rest) = splitAt 60 str
           in if null rest then [s] else s : fold rest

if 式を使っていない解答例の方が読みやすいですね。

| | コメント (0) | トラックバック (0)

2006年8月10日 (木)

[Comp] ふつける

4章まで読み終えた。 関数合成と部分適用を使わないsort。

import List
main = do cs <- getContents
          putStr $ unlines $ sort $ lines cs 

同じくuniq。sortよりちょっと複雑。

import List
main = do cs <- getContents
          putStr $ unlines $ uniq $ lines cs 
uniq :: [String] -> [String]
uniq xs = map head $ group xs

| | コメント (0) | トラックバック (0)

2006年8月 9日 (水)

[Comp] ふつける

パターンマッチってクラスのポリモーフィズムとオブジェクトのポリモーフィズムを足したみたいで面白い。

3.6練習問題

main = do cs <- getContents
          putStr $ swapstra cs
swapstra :: String -> String
swapstra cs = map swapa cs
swapa :: Char -> Char
swapa 'a' = 'A'
swapa 'A' = 'a'
swapa c = c

一応自力でやってみました。 一瞬、mapを使うべきか、concatMapを使うべきか悩んでしまった。

| | コメント (0) | トラックバック (0)

[Comp] ふつける

HaskellはPython同様、インデントに意味がある。 タブ幅は、8で計算するみたいですが、これは変更できるんだろうか。 もっとも、Vim 使いの私は、普段 set expandtab を設定しているので、さほど、影響はない。

生まれて初めてのHaskellプログラム。

main = do cs <- getContents
          print $ length cs

| | コメント (0) | トラックバック (0)

2006年7月16日 (日)

[Comp] Emacs 22

インストールしてみたものの、日本語の量が少ないと、誤認識するし、 cmailもエラーになって使えないし、結局やめにした。

| | コメント (0) | トラックバック (0)

[Comp] Visual Basic 2005 Express Edition

COMサーバーは、作れないのかな。

| | コメント (0) | トラックバック (0)

2005年9月17日 (土)

[Comp] OSC2005

午後から参加の予定。

| | コメント (0) | トラックバック (0)

2005年8月14日 (日)

[Book] [Comp] 微妙に気になる本

| | コメント (0) | トラックバック (0)

2005年7月 5日 (火)

[Comp][Java] Seasarのすなあそび

ここのところ、イベントには参加していなかったので、たまには刺激を受けてみようと思い、申し込んだ。 本編は参加無料だし。 相変わらずJavaを触ってないので、やじ馬根性です。

S2.NETには、少し興味あります。 S2Containerの「コンポーネントの設定ファイルへの登録を不要にする」というのも気になります。 設定ファイルのあれやこれやが面倒で、そこがトラブルの元になるようなイメージがあります。 そのトラブルが軽減されるような仕組みであればいいなと期待してます。

今のところ、Javaを触る機会は無いのですけど。

| | コメント (0) | トラックバック (0)

2005年7月 1日 (金)

ここのタイトル

ココログのタイトルどうやったら変わるの???

| | コメント (1) | トラックバック (0)