ALGOBIT > 離散的な気まぐれ

2010/03/03

Google App Engine / Java & GWT 使ってみました

Filed under: 離散的な気まぐれ — タグ: , , , — Kohyama @ 16:40

手一杯で, エントリ書いてなかった.
Mitaka.rb&三鷹プログラマーズカフェ合同忘年会2009でのLTで発表だけしてやりかけだった, GAE/J & GWT のプログラム,
PGCafe / Cafe Logger & Cafe Logs
pgcafelogger screen shot

1月28日から稼動させてます.
しかし, 本当に使ってみました的な状態で, コードもすごく汚いしエラーもでまくる.
使ってくださってる方, ありがとうございます.

つらつら感想など.
Java で書くとして, Datastore も GWT を使わないなら, 「無料で使いはじめられるレンタルサーバに, Servlet/JSP によるWEBアプリケーションを公開できる. アプリケーションのアップロードや管理は, サーバ側のOS的なことは何も知らなくてよく, 専用の管理画面やプラグインで簡単にできる」と考えてよいと思う.
仕事で Servlet/JSP の開発経験があるけれど, 個人的にWEBアプリを公開するにはサーバがない, という人にはとても良い環境かと思う.
自分の場合は, 本質的には 「DataStore と GWT を使ってみた」というべきかな.
元々DB屋ではないので, ビッグテーブルでプログラム側に処理が寄るのは, 違和感ない.
ただ, DataStore にアクセスする API に精通するのはまだいいとして, どの API を選択するかで悩むこと自体や, DataStore の制限に精通したりするのは, 汎用的に使えていく知識かどうか微妙と思う.
もちろん, 似たようなサービスを利用する場合によく起こりえる問題を含んでいると思うので, 経験値は上がるけど.
GWT (Google Web Toolkit) はすばらしい. JavaScript を一切書かないで, Ajax できるなんてすばらしい. プログラマには, サーバにRPCコールで処理を要求する Java クライアントを書いているようにしか見えない. GAE経由で知るまで知らなかったなんて, 疎すぎる俺.
しかし, サーバ側と通信する必要の無い画面上の動的処理は普通に JavaScript で書けばいいと思うよ.
あと, スタイルも, Java のコードからある程度制御できるけど, サーバ側でデータの問い合わせ結果でスタイルを動的に変えたいところ意外は, 普通に css 使えばいいと思う.

2010/02/27

OLEDB で日付時刻型

Filed under: 離散的な気まぐれ — タグ: , , — Kohyama @ 13:43

覚え書き. .NET VB です.
テーブル A には文字列型のフィールド name と日付時刻型のフィールド ts があるとする.
path と str は(String 型で)与えられているとする
name フィールドに与えられた文字列 str を, ts に現在時刻を入れて A テーブルに新規レコードを作成.

1
2
3
4
5
6
7
8
9
10
Dim odcon As OleDbConnection
Dim odcmd As OleDbCommand
 
odcon = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & path)
odcon.Open()
odcmd = New OleDbCommand("INSERT INTO [A] ([name], [ts]) VALUES (@name, @ts)", odcon)
odcmd.Parameters.AddWithValue("@name", str)
odcmd.Parameters.AddWithValue("@ts", "time").Value = DateTime.Now.ToString("yyyy/MM/dd hh:mm:ss")
odcmd.ExecuteNonQuery()
odcon.Close()

2010/01/23

Unchecked cast

Filed under: 離散的な気まぐれ — タグ: , — Kohyama @ 23:50

Java です.

List<Hoge> lh;
...
lh = (List<Hoge>)anInstance.aMethod();
for (Hoge h: lh) {

anInstance.aMethod() は, 返り値の型は Object だが, ここでは, List<Hoge> を返すと分かっているとする.
コンパイル時に “lh = ” の行で

Type safety: Unchecked cast from Object to List<Hoge>

の warning が出る.

@SuppressWarnings("unchecked")

で warning を出さないことはできるが, なんとなく気にいらないので,

List<?> lh;
...
lh = (List<?>)<em>anInstance.aMethod()</em>;
for (Object o: lh) {
h = (Hoge)o;

とする.
これもスッキリしないけど.
なんらかの方法でスッキリ済みの人には, 何を今更と怒られるかもしれませんが.

2009/12/11

Mitaka.rb&三鷹プログラマーズカフェ合同忘年会2009

Filed under: 離散的な気まぐれ — タグ: , — Kohyama @ 02:13

Mitaka.rb&三鷹プログラマーズカフェ合同忘年会2009 行って来ました.
時間が足りないと感じるのはそれだけおもしろかったということで.
Plan9 の話もっと聞きたかったな.

発表に使ったスライドです.

2009/12/03

Google日本語入力 キー設定

Filed under: 離散的な気まぐれ — タグ: — Kohyama @ 23:49

という訳で, Google日本語入力 です.
個人的に常用する環境ではOSとIMEに関わらずIMEのOn/Off は Shift-Space になるべく設定しています.
Google日本語入力でもそのように設定できるでしょうか.
[プロパティ]→[一般]タブ/[キー設定]/[キー設定の選択]でカスタムを選択.
[キー設定]/[編集]→[インポート・エクスポート]/[インポート] で雛形にするキー設定を選択.
[+]から行追加だと, コマンドとして “IMEOn” や “IMEOff” が選べないので, [インポート・エクスポート]/[エクスポート] で適当なファイルに保存, テキストエディタで開き,
Precomposition Shift Space InsertAlternateSpace
という行を
Precomposition Shift Space IMEOff
に変更.
DirectInput Shift Space IMEOn
という行を追加.
フィールドは左から status, key, command. フィールド間は水平タブ, フィールド内の単語区切りはスペース.
でうまくいきそうなもんですが, うまくいきませんなぁ.
というか挙動に再現性がない。。。

2009/10/31

OpenID 覚書

Filed under: 離散的な気まぐれ — タグ: — Kohyama @ 00:45

OpenID でログインできるサイト(RP(Relying Party)といいます)で「○○でログイン」のボタンがなくても,
 ・Yahoo アカウントでログインする場合は「yahoo.co.jp」を
 ・Google アカウントでログインする場合は「 http://www.google.com/accounts/o8/id」(最後にスラッシュいらない)を
 ・mixi アカウントでログインする場合は「mixi.jp」を
入力してログインすると, それぞれのサイトのログインを通ってログインできます.
それぞれのサイトのアカウントのOpenID版(長い)を入力する必要はありません.
この場合の Yahoo, Google, mixi のようにそれぞれのサイトのIDをOpenID として外部に提供するサイトを OP (OpenID Provider) といいます.
「○○でログイン」ボタンのあるOpenID RP は上記のアクションを行うボタンをつけてるということのようです.

はてなは hatena.ne.jp で行くはずですが, うまくいきません.
はてなが提供する OpenID 「http://www.hatena.ne.jp/自分のはてなID/」(最後のスラッシュは必要)は成功します.

(よそのRPだと上記なんだけど レンタルサーバ上で試験 では, yahoo.co.jp と http://www.hatena.ne.jp/自分のはてなID/ しかうまくいかない…
検索によると mixi に関しては, サイト証明を手動インストールする必要があるとかないとか…
)

2009/10/29

特定のネットワーク接続の有効/無効をコマンドプロンプトから切り替える on Windows

Filed under: 離散的な気まぐれ — タグ: , , , — Kohyama @ 02:35

また覚書です.
Windows で, 特定のネットワーク接続の有効/無効切り替えはエクスプローラで「ネットワーク接続」を開いて, 該当する接続を右クリックしてコンテキストメニューから「有効」や「無効」を選びます.
ある接続を無効にして別の接続を有効にするような切り替えを頻繁に行う場合, これは非常に手数です.
ということで, バッチファイル一発で切り替えられるように, コマンドプロンプトから, 特定のネットワーク接続を有効化もしくは無効化する方法を調べました.
下記です.

マイクロソフトの「DevCon コマンド ライン ユーティリティ」が配布されているサイト (現時点ではhttp://support.microsoft.com/kb/311272/ja) を見つけます.
上記サイトから自己解凍アーカイブ devcon.exe をダウンロード, 実行し, 適当なフォルダとして展開配置します.
配置したフォルダの「i386」か「ia64」のいずれかフォルダを自分のマシンのアーキテクチャによって選び, そのフォルダの下の devcon.exe を用います.
DDKをインストールしている場合は, 既に devcon.exe が配置されているかもしれません.
パスを通してコマンド名だけ用いてもよいし, フルパスで指定してもよいです.
    devcon hwids =net
で net クラスのデバイスのハードウェアIDが一覧されるので, 有効/無効にしたいデバイスのハードウェアID(の最初の行)を記録します.
    devcon enable 記録したハードウェアID
で対象のネットワーク接続を有効化
    devcon disable 記録したハードウェアID
で対象のネットワーク接続を無効化
します.

2009/10/28

srcElement はないのか

Filed under: 離散的な気まぐれ — タグ: , — Kohyama @ 03:12

ウェブ閲覧は主に Chrome を, 場合によって Internet Explorer (以下 IE) を使ってます.
JavaScript は IE で動くように書いてました.
まわりを見回すと Firefox をお使いの方が結構多いようなので, Firefox (現行バージョン 3.5.3) で JavaScript を使う自分の個人ページを確認.
動かないところがあります.
DOMの仕様が違うんだね.

ということで, Firefox 対応の覚書.

IE Firefox
1 document.all オブジェクトが存在する document.all オブジェクトは存在しない
2 イベントオブジェクト event
イベント発生元エレメントは event.srcElement
イベントオブジェクト event
イベント発生元エレメントは event.target
3 エレメント element の内部の文字列は element.innerText エレメント element の内部の文字列は element.textContent
4 イベントハンドラに指定する関数に引数として event を明示的に渡さなくても
(たとえば onclick=”func()” と書いても)
関数からは外部オブジェクトとして event を参照できる.
イベントハンドラに指定する関数に引数として event を明示的に渡さないと
(たとえば onclick=”func(event)” と書かないと)
関数からは event オブジェクトを参照できない.

2, 3 のコードの場合分けは 1 を使って

if (document.all)
    event.srcElement.innerText = text;
else
    event.target.textContent = text;

のように書く.
4 については, Firefox 側にあわせていつでも明示的に渡すようにする.
Chrome や Opera はどちらでも動くようになってるらしいです.
Safari はどうかしら…

2009/10/25

自動点滅LED

Filed under: 離散的な気まぐれ — タグ: — Kohyama @ 05:03

点滅するランタンがうちにありまして, 目がチカチカするので, 点灯するようにできないか, と妻の言う.
よく見てみると, LEDと電池とスイッチ以外, 回路的なものが何もない.
抵抗器すら接続されていない.
「点滅 LED」で検索してみると, 外形はただのLEDに見えるけど, 集積回路を内臓していて, 電池をつなぐだけで点滅する「自動点滅LED」もしくは「自己点滅LED」というものらしい.

へぇ~, いろいろ知らないことあるなぁ.
動画は, ランタンから取り出した自動点滅LEDを充電池二個につないだところ.
ランタンの方は手持ちのLEDと抵抗器を半田付けして, 点灯にしました.

2009/10/17

青背

Filed under: 離散的な気まぐれ — タグ: — Kohyama @ 03:02

いろいろインストールしてたら出た on WindowsXP in dynabook SS
blueback

« Newer PostsOlder Posts »

Copyright © 2010 Yoshinori Kohyama All Rights Reserved.