Blog Home  Home Feed your aggregator (RSS 2.0)  
light-hearted.net - March, 2008
人は計画を立て、神はそれを笑う
 
 Sunday, March 30, 2008

Webアプリケーションを作るんだったら、やっぱりASP.NET派な私ですが。。。

web.pyなるものがあるそうです。最初のパブリックリリースは2年以上前です。
Pythonで書かれたWebアプリケーションの為のフレームワークです。

URLにクラスを割り当てて処理させるという機構を提供してくれます。
もちろんそれだけでは、古き悪しきWebアプリケーションになってしまいますので、
テンプレートの機能も提供されているようなので、そこそこいいものが作れるのではないかと。
ちょこちょこ触ってみようかと思います。

web.py
http://webpy.org

Sunday, March 30, 2008 2:35:08 AM (東京 (標準時), UTC+09:00)  #    Comments [0]   Python  | 
 Monday, March 24, 2008

MoonGift にて紹介されていたグラフィカルなプログラミングができるツールです。
Python で簡単に書くことができます。

size(400, 400)
speed(3)

def draw():
    for i in range(15):
        p = 200
        r = random()*p
        op = random(0.3, 0.8)
        o = oval(random()*p, random()*p, r, r)
        o.fill = color(random(), random(), random(), op)

 

例えば上記のコードで以下のイメージが作れます。
しばらくはこいつで遊べそうです。

random_circle-00001

random_circle-00002

random_circle-00003

あと、QuickTime Movie としても出力できます。

Monday, March 24, 2008 10:42:37 PM (東京 (標準時), UTC+09:00)  #    Comments [0]   Python  | 

まずは「これイイです!」でしょうか。
Mac ユーザには買いですね。安いし。

ユニティ
ゲストOS上のデスクトップをメモリ上に展開して(リモートデスクトップみたいな感じかな?)、ウインドウをクリッピングして表示してるみたいな印象です。

アプリケーション メニュー
インストール直後のアプリケーションがアプリケーション メニューに反映されないことがあるみたいです。アプリケーションの一覧は、ゲストOSの起動時(or ログイン時)に更新しているのかな?
それと、アプリケーション メニューはカスタマイズしたいよね。できるのかなぁ?

レジュームからの復帰
Mac だと基本的にシャットダウンしません(よね?)。
レジューム(って言うのかな?)からの復帰も問題無さげです。

 

 

MacBook Pro だともっとサクサク動くんだろうなぁ。。。

Monday, March 24, 2008 10:11:29 PM (東京 (標準時), UTC+09:00)  #    Comments [2]    | 

今すぐ必要になるわけではないですが、読んでおきたい本

ハイパフォーマンスWebサイト — 高速サイトを実現する14のルール
http://www.oreilly.co.jp/books/9784873113616/

picture_large978-4-87311-361-6

Monday, March 24, 2008 9:56:20 PM (東京 (標準時), UTC+09:00)  #    Comments [0]   積読  | 
 Wednesday, March 19, 2008

今は仕事でAIRを利用しています。
その比較というわけではありませんが、WPFも勉強中です。

とりあえず、跳ねるボールを書いてみました。
ボヨ~ンっていう感じを出すのに苦労しましたw

細かい点はまだまだの状態ですが、なかなか面白いです。
個人的にはWPF(XAMLによる定義)の方が好みかなぁ

AutoReverseって便利ですねぇ

<Window x:Class="Ball"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Ball" Height="450" Width="450">

    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="400" />
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="100" />
            <ColumnDefinition Width="*" />
        </Grid.ColumnDefinitions>

        <Canvas Name="gradation" Grid.Column="1">
            <Ellipse Height="100" Width="100" Name="ellipse">
                <Ellipse.Fill>
                    <LinearGradientBrush StartPoint="0,1.5">
                        <GradientStop x:Name="gradientStop1" Color="White" Offset="1.2"/>
                        <GradientStop x:Name="gradientStop2" Color="Black" Offset="0"/>
                    </LinearGradientBrush>
                </Ellipse.Fill>
            </Ellipse>
        </Canvas>
        <Button Name="animatedButton" Height="50" HorizontalAlignment="Center" Grid.Column="0">
            Click !
            <Button.Triggers>
                <EventTrigger RoutedEvent="Button.Click">
                    <BeginStoryboard>
                        <Storyboard>
                            <!-- 落ちる -->
                            <DoubleAnimation
                                    Storyboard.TargetName="ellipse"
                                    Storyboard.TargetProperty="(Canvas.Top)"
                                    From="0" To="300" Duration="0:0:1" AccelerationRatio="0.9"/>

                            <!-- つぶれる/元に戻る -->
                            <DoubleAnimation
                                    Storyboard.TargetName="ellipse"
                                    Storyboard.TargetProperty="(Canvas.Top)"
                                    From="300" To="350" Duration="0:0:.05" BeginTime="0:0:1" AutoReverse="True"/>
                            <DoubleAnimation
                                    Storyboard.TargetName="ellipse"
                                    Storyboard.TargetProperty="Height"
                                    From="100" To="50" Duration="0:0:.05" BeginTime="0:0:1" AutoReverse="True"/>

                            <!-- はねかえる/落ちる -->
                            <DoubleAnimation
                                    Storyboard.TargetName="ellipse"
                                    Storyboard.TargetProperty="(Canvas.Top)"
                                    From="300" To="100" Duration="0:0:.7" BeginTime="0:0:1.1" DecelerationRatio="0.9" AutoReverse="True"/>

                            <!-- つぶれる/元に戻る -->
                            <DoubleAnimation
                                    Storyboard.TargetName="ellipse"
                                    Storyboard.TargetProperty="(Canvas.Top)"
                                    From="300" To="330" Duration="0:0:.05" BeginTime="0:0:2.5" AutoReverse="True"/>
                            <DoubleAnimation
                                    Storyboard.TargetName="ellipse"
                                    Storyboard.TargetProperty="Height"
                                    From="100" To="70" Duration="0:0:.05" BeginTime="0:0:2.5" AutoReverse="True"/>

                            <!-- はねかえる/落ちる -->
                            <DoubleAnimation
                                    Storyboard.TargetName="ellipse"
                                    Storyboard.TargetProperty="(Canvas.Top)"
                                    From="300" To="230" Duration="0:0:.5" BeginTime="0:0:2.6" DecelerationRatio="0.8" AutoReverse="True"/>
                            
                            <!-- つぶれる/元に戻る -->
                            <DoubleAnimation
                                    Storyboard.TargetName="ellipse"
                                    Storyboard.TargetProperty="(Canvas.Top)"
                                    From="300" To="320" Duration="0:0:.1" BeginTime="0:0:3.6" AutoReverse="True"/>
                            <DoubleAnimation
                                    Storyboard.TargetName="ellipse"
                                    Storyboard.TargetProperty="Height"
                                    From="100" To="80" Duration="0:0:.1" BeginTime="0:0:3.6" AutoReverse="True"/>

                            <!-- つぶれる/元に戻る -->
                            <DoubleAnimation
                                    Storyboard.TargetName="ellipse"
                                    Storyboard.TargetProperty="(Canvas.Top)"
                                    From="300" To="310" Duration="0:0:.1" BeginTime="0:0:3.8" AutoReverse="True"/>
                            <DoubleAnimation
                                    Storyboard.TargetName="ellipse"
                                    Storyboard.TargetProperty="Height"
                                    From="100" To="90" Duration="0:0:.1" BeginTime="0:0:3.8" AutoReverse="True"/>

                            <!-- つぶれる/元に戻る -->
                            <DoubleAnimation
                                    Storyboard.TargetName="ellipse"
                                    Storyboard.TargetProperty="(Canvas.Top)"
                                    From="300" To="305" Duration="0:0:.1" BeginTime="0:0:4" AutoReverse="True"/>
                            <DoubleAnimation
                                    Storyboard.TargetName="ellipse"
                                    Storyboard.TargetProperty="Height"
                                    From="100" To="95" Duration="0:0:.1" BeginTime="0:0:4" AutoReverse="True"/>

                            <!-- 慣性の法則 -->
                            <DoubleAnimation
                                    Storyboard.TargetName="ellipse"
                                    Storyboard.TargetProperty="(Canvas.Left)"
                                    From="0" To="150" Duration="0:0:4.5" DecelerationRatio=".5" />
                        </Storyboard>
                    </BeginStoryboard>
                </EventTrigger>
            </Button.Triggers>
        </Button>
    </Grid>
</Window>
Wednesday, March 19, 2008 11:43:03 PM (東京 (標準時), UTC+09:00)  #    Comments [0]   WPF  | 
ひとつ前のエントリですが、VMware Fusionを使っているスクリーンショットです。

私事ですが、仕事ではWindowsやLinuxがほとんどです。
が、プライベートではMacを使っています。
CSSやJavaScriptなんかをいぢっていることが多いのですが、
そんなときIEではどんな動きをするんだろう?といった動作確認で、
VMwareなどの仮想化製品を使っています。

ちなみに私の仮想化歴は比較的長く、VMwareの2.0から使っています。
#多分2.0です。箱(パッケージ)が出て来たので。。。
#VMware製品とは縁があり、ラインナップされている製品は全て使った経験ありです。

Macを使うようになっていくつかの仮想化製品を使ってみましたが、
快適なものがなく、Windows PCを1台用意したりしていました。
#Windowsでも仮想化製品を使っています。もちろんVMwareです。

そして昨年VMwareがMacの世界にも進出して来てくれました。
それがVMware Fusionです。値段もWindows版に比べてもリーズナブルです。

β版は評価していたのですが、
製品版につていは忙しくてなかなか評価できていませんでした。
が、ちょっと時間に余裕が出来たので、評価版をインストールしてみました。

まだ評価版を使い始めたばかりの感想は、「ユニティ最高!」です。
ゲストOSのアプリケーションを、ネイティブ アプリケーションの
ウィンドウと同様に操作できるのは非常に便利です。
ユニティに似たコンセプトの製品はいくつかありますが、
制約等が多くて、これと言ったものがないのが実情です。

ちょっときになるのが、グラフィックです。
描画が遅く感じることが時々ありますが、
他にもいろいろ起動しているので、その辺にも原因があるかも。
#まだ、ろくに調べていないので。。。

それと、ゲストOSをインストールするときに便利な機能が追加されています。
仮想ディスクのサイズやプロダクトキーを事前に入力しておくと自動インストールしてくれます。
これは多くのゲストOSを構築する私にとってはヒジョーに便利な機能です!

ちなみに私のMac環境は以下の通り。先代のMacBookです。

spec

Wednesday, March 19, 2008 3:13:49 AM (東京 (標準時), UTC+09:00)  #    Comments [0]   Mac | Virtualization  | 
 Monday, March 17, 2008

This_is_MacOSX

Monday, March 17, 2008 10:13:12 PM (東京 (標準時), UTC+09:00)  #    Comments [1]   Mac  | 

ふと思ったので調べてみる。というかタイプしてみる。やっぱり vi か。Gmailと同じ。
ま、統一されるってのはイイことですが、どの辺のユーザをターゲットにしてるんでしょうかね?

キーボード ショートカットはありますか。
http://www.google.com/support/reader/bin/answer.py?hl=jp&answer=69973
Monday, March 17, 2008 9:54:31 AM (東京 (標準時), UTC+09:00)  #    Comments [0]   Google  | 
 Saturday, March 08, 2008

時間ができたら確認してみよう。ということでメモ。

8年くらい前に、似たようなシステムを作って、
サービスしてましたが、当時のサーバでは負荷が高すぎて
同時に処理できる数に制約が発生してしまい、
大変だった思い出があります。

Google Static Maps API
http://code.google.com/apis/maps/documentation/staticmaps/

Saturday, March 08, 2008 6:04:39 AM (東京 (標準時), UTC+09:00)  #    Comments [0]   Google  | 

「MacBook 上の Vista はもう要らないなぁ」と思ったので
パーティションをまとめようと BootCampを起動すると、
下のメッセージが表示されました。

 BootCamp

「ん?そういえば Apple からメールが来てたような」
「あー2007年末で切れるって書いてある。。。さて、困ったなぁ」

「とりあえず日付を変えてみるか。」
あっさり起動。パーティションの統合もできました。
一安心。

Leopardの購入考えるかなぁ
それとも新しいMacBook(Pro)か

Saturday, March 08, 2008 5:33:31 AM (東京 (標準時), UTC+09:00)  #    Comments [1]   Mac  | 
 Friday, March 07, 2008

IPAから公開されています。

ザーっと読んだ感じだと、「ウェブサイトにはどんなリスクがあってどうやって対策を取るのか」という観点で書かれています。「多くの人に理解してもらおう」という努力が感じられ、好感が持てます。
#昔のIPAが公開したサンプルはそれはひどいものでしたからw

開発者の方には読んで頂きたい内容です。

「安全なウェブサイトの作り方 改訂第3版」を公開
http://www.ipa.go.jp/security/vuln/websecurity.html

Friday, March 07, 2008 11:23:22 AM (東京 (標準時), UTC+09:00)  #    Comments [0]    | 
 Wednesday, March 05, 2008

ちょっとはまったのでメモです。お気になさるな。

java.args=-Xmx384m -Dsun.io.useCanonCaches=false -Duser.language=en

Wednesday, March 05, 2008 2:59:35 AM (東京 (標準時), UTC+09:00)  #    Comments [0]   AIR  | 
 Monday, March 03, 2008

記事の内容ではありませんよ。

なぜ、ajaxやcometというそっち系の名前がつくのか?
その業界の人たちが裏で操っているのか?w

NETFxな世界の方々は依然ジョーク ネタがあったので覚えているかも。

結城先生の記事です。
第2回 Comet---プッシュ型のWebアプリケーションを作る
http://itpro.nikkeibp.co.jp/article/COLUMN/20080220/294242/?P=1&ST=develop

Monday, March 03, 2008 11:04:18 AM (東京 (標準時), UTC+09:00)  #    Comments [0]    | 
Copyright © 2009 yama3. All rights reserved.
DasBlog 'Portal' theme by Johnny Hughes.
Pick a theme: