さとやn Blog

試合はRuby,勝負はC#!

2009年11月

ライブドアのブログに引っ越しました

ライブドアのブログの方が遙かに高機能なのでそっちに引っ越すことにしました。

http://blog.livedoor.jp/satoyansoft/

引き続きよろしくお願いします。

新釈 走れメロス 他四篇 (祥伝社文庫 も 10-1)

何気なく松戸の本屋さんで購入しました。

久しぶりに本で笑いました。

これはかなり面白いです。。。

オリジナルは「走れメロス」しか知りませんが、全然いけます。

読んでいる途中で、「これあの本書いた人の作風に似てるなぁ」とか思ってたら、やっぱり「太陽の塔」の作家さんだったのですね。

読んでる時はタイトルも著者名も忘れてましたが、,,。

これはおすすめです。

タイトル

新釈 走れメロス 他四篇 (祥伝社文庫 も 10-1)

著者/監督/Artist

森見 登美彦

価格, 出版

¥ 562 祥伝社

評価

★★★★★

 

2009-11-16

 

submitボタンの活性・非活性のタイミング

仕事で、面白い実装をしているのを発見してしまいちょっと話題になりました。

データをエクセルまたはCSVでダウンロードするためのボタンがあります。よくある対処なのですが、2重クリックを防ぐために、onclickイベント内で disabled=true にしてボタンを非活性状態にしてから、formをサブミットしています。

で、問題なのが、このボタンのdisabledをfalseに戻すタイミングです。現状の作りでは、ダウンロードボタンより上にある、とあるDIV要素内にmouseOverしたらボタンのdisabledを解除するような作りになっていました。

企業向けでIE6という縛りがあるので、逆にそれを利用すれば、次のような対応でいけるかと思います。

    1 <input onclick="download()" type="submit" value="download" />
    2 <script>
    3     function download(){
    4         var btn = this;
    5         btn.disabled = true;
    6         window.onfocus = function(){
    7             btn.disabled = false;
    8             window.onfocus = null;
    9         };
   10     }
   11 </script>
   12 

 

ダウンロードボタンがクリックされたタイミングでボタンを非活性にするのは同じなのですが、同じタイミングで windowのfocusイベントを割り当てて、windowにfocusが戻った時点で、再度ボタンを非活性を解除して、さらにwindowの focusイベントも解除しています。

少なくともIE6ではファイルダウンロードのダイアログがモーダルで表示されるため、少なくともユー ザーが 「開く、保存、キャンセル」のいずれかの操作をしなければ、元のウィンドウにフォーカスが戻ることはありません。 で、普通に考えればユーザーが上記のいずれかの操作を行ったあとであれば、ボタンが再度押せるようになっていても問題はないでしょう。

Firefoxだとモーダルではないのですが、まあ、問題はないような気がします。

Chromeはダウンロードダイアログがないので使えないですね。。。

iMacにUbuntuを入れてみました

iMacにVMWareでUbuntuなるものをインストールしてみました。

http://www.ubuntulinux.jp/News/ubuntu904-desktop-ja-remix

ここから日本語版をダウンロード。

インストールは20分くらいで終わってしまいました。

で、これで何をやるのかは全く予定がありません。。。

 

インストール中の画面

 

ログイン画面

 

iMac

iMacにVMWareでUbuntuなるものをインストールしてみました。
http://www.ubuntulinux.jp/News/ubuntu904-desktop-ja-remix
ここから日本語版をダウンロード。
インストールは20分くらいで終わってしまいました。
で、これで何をやるのかは全く予定がありません。。。

インストール中の画面


ログイン画面
 

JavaScript

ちょっと仕事で、面白い実装をしているのを発見してしまいちょっと話題になりました。

データをエクセルまたはCSVでダウンロードするためのボタンがあります。よくある対処なのですが、2重クリックを防ぐために、onclickイベント内で disabled=true にしてボタンを非活性状態にしてから、formをサブミットしています。
で、問題なのが、このボタンのdisabledをfalseに戻すタイミングです。現状の作りでは、ダウンロードボタンより上にある、とあるDIV要素内にmouseOverしたらボタンのdisabledを解除するような作りになっていました。
企業向けでIE6という縛りがあるので、逆にそれを利用すれば、次のような対応でいけるかと思います。





簡単に言うと、ダウンロードボタンがクリックされたタイミングでボタンを非活性にするのは同じなのですが、同じタイミングで windowsのfocusイベントを割り当てて、windowにfocusが戻った時点で、サイドボタンを非活性を解除して、さらにwindowのfocusイベントも解除しています。
少なくともIE6ではファイルダウンロードのダイアログがモーダルで表示されるため、少なくともユーザーが 「開く、保存、キャンセル」のいずれかの操作をしなければ、元のウィンドウにフォーカスが戻ることはありません。 で、普通に考えればユーザーが上記のいずれかの操作を行ったあとであれば、ボタンが再度押せるようになっていても問題はないでしょう。
Firefoxだとモーダルではないのですが、まあ、問題はないような気がします。
Chromeはダウンロードダイアログがないので使えないですね。。。

Google GO

今日は早く帰れたのでちょっとtutorialをやってみました。
で、ちょっと意外だったのが、メソッドや変数の命名規約がMSのそれと似ていること。いえ、規約といったのは間違いで、コンパイラがそれを解釈するようです。
外部に見せる物は 大文字で始まる。
外部に見せない物は小文字で始まる。
というルールです。
.NET Frameworkでばりばり開発している人にはごく普通のことですが、おそらく多くの非MS系で開発している人にとってはちょっと意外な気がしないでもないです。
大文字小文字に意味を持たせるのはRubyぽくもあります。

Because File starts with a capital letter, the type is available outside the package, that is, by users of the package. In Go the rule about visibility of information is simple: if a name (of a top-level type, function, method, constant or variable, or of a structure field or method) is capitalized, users of the package may see it. Otherwise, the name and hence the thing being named is visible only inside the package in which it is declared. This is more than a convention; the rule is enforced by the compiler. In Go, the term for publicly visible names is ''exported''.

Google

先日発表されたGoogleの新しいプログラミング言語GOなるものを自宅の未だ新しいiMacにインストールしてみました。
環境はSnowLeopard10.6.2。
手順はGOのサイトに書いてあるとおりにやるだけでした。
http://golang.org/doc/install.html

最初に環境変数を.bash_profile等に追記。

export GOROOT=$HOME/go   #私は$HOME/develop/goにしました
export GOARCH=amd64
export GOOS=darwin #Macなのでdarwin...

で、source ~/.bash_profile で設定を読みます。
 
sudo easy_install mercurial
 
で、何かリポジトリにフェッチするプログラムをインストール? 
 
hg clone -r release https://go.googlecode.com/hg/ $GOROOT
 
で、リポジトリからコードをチェックアウト。
 
The Go tool chain is written in C.  To build it, you need
to have GCC, the standard C libraries, the parser generator Bison,
make and the text editor ed installed. On OS X, they can be
installed as part of
Xcode. On Linux,
書いてあるとおり、OSXでXcodeインストール済みなので、特に何も入れる必要なし。
$ cd $GOROOT/src
$ ./all.bash
を実行。
--- cd ../test
N known bugs; 0 unexpected bugs
 
最後にこの表示が出れば正常にインストールされたようです。
私の場合は、コンパイル中にネットワーク接続許可を求めるダイアログが表示されたのですが、
すぐに「許可する」をクリックしないと、
何か勝手に閉じてしまい、最後にエラーになってしまいました。
2回目に成功しました。
で、早速サンプルのHelloWorldを自分で書いてみました。
package main

import "fmt"

func main() {
fmt.Printf("hello, world\n")
}
 
$ 6g hello.go
$ 6l hello.6
$ ./6.out
hello, world
 
となりました。

で、これで何が作れるんだろう????
年末年始の休みにちょっとやってみようかな、とか思ってたりして。。。 

新釈 走れメロス 他四篇 (祥伝社文庫 も 10-1)

何気なく松戸の本屋さんで購入しました。
久しぶりに本で笑いました。
これはかなり面白いです。。。
オリジナルは「走れメロス」しか知りませんが、全然いけます。
読んでいる途中で、「これあの本書いた人の作風に似てるなぁ」とか思ってたら、やっぱり「太陽の塔」の作家さんだったのですね。
読んでる時はタイトルも著者名も忘れてましたが、,,。
これはおすすめです。

タイトル
新釈 走れメロス 他四篇 (祥伝社文庫 も 10-1)
著者/監督/Artist
森見 登美彦
価格, 出版
¥ 562 祥伝社
評価
★★★★★
2009-11-16



snow leopard 10.6.2

CPUの暴走は発生しなくなったようですが、どうもM2TVを終了すると毎回ではないのですが、爆弾が出て再起動を余儀なくされます。
う〜ん、M2TVのアップデートを願うしかないのかな、,,。

それとQuickTimeを起動しているとM2TVが見れないことも判明しました。
サザエさんの実写版ドラマ予約しておいたのに、,,,。残念。。
livedoor プロフィール
QRコード
QRコード
  • ライブドアブログ