2010年5月10日月曜日

KeyUp,Changeイベント

JavaScriptで文字列の制限をいれるような画面を作れないかということで、ネットさまよって以下のサンプルゲット。
動的にKeyUp,Changeのイベントを拾って画面に結果を表示する動きになっています。

  1. <script language="JavaScript">  
  2. <!--  
  3. var max=15; //制限文字数  
  4. function Limit(event){  
  5.  frmtxtareadocument.getElementById("twittertextarea");  
  6.  frmDispMsgdocument.getElementById("twitterdispmsg");  
  7.  txtOrgTextfrmtxtarea.value; //テキストエリアの文字  
  8.  txtLengthtxtOrgText.replace(/\n|\r\n/g,"");//改行を除く  
  9.  txtCntLengthtxtLength.length; //改行を含めない文字数  
  10.  intZansuu = (max - txtLength.length);  
  11.  Etype=event.type; //イベントのタイプを取得  
  12.   
  13.  if(Etype== "keyup"){//イベントのタイプが"Keyup"なら  
  14.   if(intZansuu<0){  
  15.     frmDispMsg.innerHTML=  
  16.     "<span style='font-weight: bold;color:red ;'>"+ intZansuu +"</span>文字";  
  17.    }else{  
  18.    frmDispMsg.innerHTML= //文字数のカウントを表示  
  19.     "<span style='font-weight: bold;color:blue ;'>"+ intZansuu +"</span>文字";  
  20.    }  
  21.   }   
  22.  if(Etype=="change") {  
  23.    //イベントのタイプが"onChange"で制限文字数を超えたらalert  
  24.    if(intZansuu <0 ){  
  25.     alert((txtCntLength-max)+"文字オーバーです.\n15文字以内にしてください");  
  26.     frmtxtarea.value=txtOrgText.substring(0,max);  
  27.     frmDispMsg.innerHTML=  
  28.     "<span style='font-weight: bold;color:blue ;'>"+max+"</span>文字";  
  29.    }  
  30.   }  
  31. }   
  32. // -->  
  33. </script>  
  34.   
  35.    <form><textarea cols="30" rows="2" id="twittertextarea" onchange="Limit(event)" onkeyup="Limit(event)"></textarea>  
  36.   
  37. <span id="twitterdispmsg">文字数カウント</span>  
  38.   
  39. </form>  

2010年5月9日日曜日

jsp サーブレット間の通信、session attributeについて

GAEでsessionのattributeを利用するときの注意。

ローカルではエラーがなく動きましたが、デプロイするとエラーがでることが出る。
エラーの内容は、
java.lang.RuntimeException: java.io.NotSerializableException: クラス名
なエラーです。


原因はSessionに対してsetAttributeしたときに、対象のクラスがシリアル化されていない場合にローカルではなんとなく動くようですが、デプロイ後は上記のエラーが発生する模様です。


シリアル化されているかどうかのポイントは
・ implements Serializable をクラスに対してつけているか
・private static final long serialVersionUID = 1L;を宣言しているかどうか
・全てのメンバーに対してgetter,setterがあること。
だそうです・・・

以下、対応したソースです。




  1. package xxxxx;  
  2. import java.io.Serializable;  
  3. //①implements Serializableが必要  
  4. public class WordScore implements Serializable {  
  5.     //②serialVersionUIDが必要  
  6.     private static final long serialVersionUID = 1L;   
  7.       
  8.     private String word="";  
  9.     private String score = "";  
  10.   
  11.     private static Random rnd;  
  12.   
  13.     //③Setter、Getterの宣言  
  14.     public WordScore() {  
  15.     }  
  16.     public WordScore(String word,String score) {  
  17.         this.word = word;  
  18.         this.score = score;  
  19.     }  
  20.     public Integer getScoreInt(){  
  21.         return Integer.parseInt(score);  
  22.     }  
  23.     public String getScore() {  
  24.         return score;  
  25.     }  
  26.     public void setScore(String score) {  
  27.         this.score = score;  
  28.     }  
  29.     public String getWord() {  
  30.         return word;  
  31.     }  
  32.     public void setWord(String word) {  
  33.         this.word = word;  
  34.     }  
  35. }  


あと、シリアル化失敗した状態で、GAEデプロイしてしまった後、なぜかバージョンあげるまで正常に動かない状態がありました。
デプロイ時のバージョンあげれば解決しました。
変なシリアル化された情報がサーバー上にのこっていたのかなと推測・・・

2010年4月18日日曜日

Twitter投稿成功、完成物のモックアップ作成してみる予定

■できたこと
Twitterへの投稿
認証周り確認

 →OnlineではOAuth使うのがセオリーのようです。
キーフレーズを静的にためて再利用
 →ローカルにXMLを保存、Yahooの利用回数を節約
完成物のモックアップ作成中(PPTで完成、GAEに乗っけてみる)



■ToDo
リファクタリング(画面制御部分のクラス化)非同期処理
ログの精査
キーフレーズ細分化した時の削除



■思うこと
Twitter4Jを利用してみる予定
YahooApiをきれいに利用する方法はどうなんだろ・・・Libとかあればいいんだけど
EclipseでのHtmlEditerもっといいものないのかな?AndroidSDKみたいな感じで・・・・

2010年4月16日金曜日

引き続きWPF+C#+Twittwer+YahooApiで遊んでいます

■できたこと
Yahooからのキーフレーズの入手
リファクタリング(WebAPI部分、制御部分のクラス化)
ランダムを利用しての単語の選択(重み付き)




■ToDo
リファクタリング(画面制御部分のクラス化)
Twitterへの投稿
非同期処理
認証周り
複数ユーザー対応
ログの精査
キーフレーズを静的にためて再利用
キーフレーズ細分化した時の削除

2010年4月12日月曜日

C#書いてみた

C#でTwitterのAPIにアクセスできるか試してみる。
書き直すのに苦労しましたがなんとか・・・
VBよりC#のほうがしっくりくることが多い気がします。




つまったところ
LinqのDescendantsが配列?でかえってくるのでFirst()つけないとうまく取れないのにはまったり・・・

2010年4月11日日曜日

YahooのAPI

YahooのAPI面白そうなものがある。

TwitterでTimeline取得してYahooで解析したら自分がある程度面識のある言葉の一覧できあがるのでは・・・
一度テストアプリつくってみたいな。

Step
①TimeLine取得
送信のみでもOK
TimeLineのほうが新しい発見多いかも
②Yahooで解析
  http://developer.yahoo.co.jp/webapi/jlp/keyphrase/v1/extract.html
③表示(WPF使いたいな)

2010年3月31日水曜日

XperiaとDesireまとめ

Xperia
・Docomo
・AndroidOS1.6
・4月1日発売
Dersire
・SoftBank
・AndroidOS2.1
・4月下旬

■ランニングコスト
Xperiaの方が選択肢が多彩、ただ、ホワイトプランで比べても
Desireの方が1000円高い程度

■OS
AndroidのOSの1.6ではマルチタッチ対応していない、OSはバージョンアップされるかもしれないが、ハードはバージョンアップ無理なきがします・・・Desireは当然最初からマルチタッチ対応している。

2010年3月22日月曜日

WPF+Twitterで3カラムのViewerつくってみたい

今日はここまで
時間かけすぎた・・・本読めてない・・・orz


Todo)
textからのhtmlへのリンク
favリンク
普通の投稿
RT、rtの投稿
認証周りのベストがなかか
さまざまな作業するときにログインを使いまわす

メモ)
TwitterAPIの仕様書
http://watcher.moe-nifty.com/memo/2007/04/twitter_api.html

ちょっと寄り道

DOTNET+WPFつかって見栄えのいいTwitterClient作れないかと思って模索中

TwitterからタイムラインもってくるところまではOKぽい

これからのTODO
リッチな見た目に
投稿可能に
ScreenNameのグループ化投稿を公開
複数のタイムラインの表示
画像の読み取り

2010年3月16日火曜日

仮想OSでの実行環境OnEclipse

LetsNoteN9にNotePCを新調、

PCのスペックあがったので、Eclipseは期待通りに動くようになりました。
特にActivityを編集する画面の動きがスムーズになったのと、ビルド時のAndroidOSの起動速度が上がった気がします。
あと、画面の幅が1280になったのがなけるぐらいうれしいです。視点が定まらずさまよってる気も時々しますが^^

ただ、ビルドしてアプリに画面を見るときに、毎回AndroidOSがBootから始まるのは何とかならんのかな・・・2,3分だと思うのですが、DotNetとかWindowsアプリケーションの開発しか経験のない自分はちょっとつらいです。
理想は起動済みのOSに対して、ビルドしたファイルを送り込んで、仮想OSの中で実行する・・・なんて形だと思います。
手法があればいいのですが・・・・

2010年3月9日火曜日

VM重い、Androido2.1が使えない

1時間ほどごにょごにょ・・・・


・VMが重い・・・実行して画面がでてくるまで2分以上かかる(汗
→計画的にコーディングすることで回避。
→NotePC新調後どうか
→安くて大きいNOTEPCを一台準備するのもありかな・・・
・Androido2.1Level7だとうまく動かない
プロジェクトの作成がうまくいかない
→Android2.0Level5で遊ぶ方向で
・今日の成果

環境インストール

①JAVA:jdk-6u18-windows-i586.exeをDLしてインストール

②Eclipse:eclipse-java-ganymede-SR2-win32をDLしてインストール
JEEとJAVAがある模様で、JEEだと動かないっす・・・JAVAの環境込でインストールしようとするのでJAVAのパスがNGなためと推測・・・
  よくわからんです。

③AndroidSDK:android-sdk_r04-windows.zipをDLしてインストール
SetUp実行すると最新のモジュールをDLしつづけること2時間・・・
気になるのは最後になんかみつからなかったちくなメッセージがでたこと
あとは放置でインストール完了です。

④Exlipseにプラグインを追加
ヘルプ→更新の確認→利用可能なソフトウェアに
「https://dl-ssl.google.com/android/eclipse/」を追加してインストール
まつこと20分

今日はここまで 

きっかけ

この本購入したのでそれをもとにAndroidSDK+Eclipseのインストール開始~



基礎から学ぶ Android SDK
吉井 博史
シーアンドアール研究所 ( 2010-01-25 )
ISBN: 9784863540453