2010年5月16日日曜日

[日記][勉強] 色々勉強会に出てるのだが

このところ色々勉強会に出ているんですが、雰囲気の違いがあって面白い。

・日本JRubyユーザ会:Macユーザ率高し。iPhone率90%。高そうなジャケットとか小奇麗なシャツを着てる人が多い。

・すくすくスクラム:女性率高し。スーツの人も結構いる。SIerとかが多いのかな?iPhone率高い。

・わんくま:.net系技術は凄い人達ばっかりでどのセッションも面白い。なんか大学のサークルみたいな感じがした。Windowsマシン率高し、iPhone率低し。

・Android勉強会:iPhone率低し。当たり前か。割と普通な人たちが多い。

それにしても出てる勉強家いを並べると、全部バラバラだな。お前は何がしたいんだ、と。
でもね、俺の中ではくっついてるわけですよ全部。
「Androidで遊べるARな感じのサービスを作りたい。サーバ側の基盤はタダで用意したいのでGAE/Jを使いたい。でもJavaで書くのめんどくさいし新しい言語を覚えたい。Ruby on Railsが面白いのでこれがGAE/Jで動けばいいな。お、JRubyってのがあるじゃん!これでいける!社内で使うツールは.netがダントツに楽だしもうちょっと知りたいな。」
っていうストーリー。
まあ仕事で開発やってないからこんな事できるわけで。

でも、詳しい人達に囲まれるのは、プレッシャーだけど非常に面白い。
コミッターと会話とか普通できないぜ。。。「情熱プログラマー」で言う「一番ヘタクソでいろ」を地で行ってるわ俺。

どれも今後も出ようと思います。

2010年4月27日火曜日

[日記]具体的とはどういう事か

このところ、ボーナス査定とか情報処理技術者試験の論文とかで、「俺って具体的文章を書くのが苦手だなぁ」と思うことが重なりまして。
俺に限らず「具体的に書いて」と言われる人は多いんではないでしょうか。

でもさ、「具体的」って、具体的にどういう事よ?
説明できねーぞ?33にもなって。
と言うことでまとめて見ることにしわわけです。

Google先生に聞いてみたらやっぱり同じことに悩んだ人はいるみたいで。

「具体的」とはなんぞや?
http://coaching.way-nifty.com/timeandtide/2005/09/post_3119.html
----引用ここから----
具体:物事が、直接に知覚され認識されうる形や内容を備えていること。
 具:ある目的を果たすために利用する手段。道具。「政争の—にする」
 体:物事の本質をなすもの。「名は—を表す」
----引用ここまで----

なるほど。辞書も自分で引いてみよう。

具体的 yahoo!辞書
http://dic.yahoo.co.jp/dsearch?enc=UTF-8&p=%E5%85%B7%E4%BD%93%E7%9A%84&stype=0&dtype=0
----引用ここから----
[形動]はっきりとした実体を備えているさま。個々の事物に即しているさま。「—な方法」「—に指示する」⇔抽象的。
----引用ここまで----

なるほどなー。
つまり、「具体的に言う」と言うことは、「実際のモノやコトを使って話をする」と言うことなんですね。


ところで、「具体的」の反対語は「抽象的」。
じゃあ「抽象的」についても具体的に調べてみよう。

抽象的 yahoo!辞書
http://dic.yahoo.co.jp/dsearch?enc=UTF-8&p=%E6%8A%BD%E8%B1%A1%E7%9A%84&stype=0&dtype=0
----引用ここから----
[形動]
1 いくつかの事物に共通なものを抜き出して、それを一般化して考えるさま。「本質を—にとらえる」
2 頭の中だけで考えていて、具体性に欠けるさま。「—で、わかりにくい文章」⇔具象的/具体的。
----引用ここまで----

なるほど。

話を抽象化してなんとなく理解出来るようにする場合も、具体化してはっきりわかるようにする場合も、日本語だとどちらも「例えば」で出来るような気がします。
例:iPhoneとAndroidの違いを説明する場合を考える。
抽象化しておばちゃんに分かるようにする
→お子さんが持ってる任天堂DSとPSPの違いみたいなもんですよ。(全然違うけど・・・)
具体化して技術者に分かるようにする
→iPhoneは開発言語はObjectiveCですが、AndroidはJavaベースで開発出来ます。実際には通常のJVMではなくDalvikという独自のVMを搭載しており、小型の端末に最適化されています。iPhoneはシングルタスクですが、Androidは最初からマルチタスクです。ただ、これは今後変わっていくでしょう。(もう変わったか?)。iPhoneは当初からマルチタッチ機能を搭載していましたが、Androidはver2.1になってから搭載されました。とかいろいろ

こんな感じですかね。

具体化した方がいいか抽象化した方がいいかは、伝える対象が誰かによりそうですね。
で、具体的な話をしたあとで「まあつまり○○ってことだよね」と相手に確認する場合は、抽象化しているように思います。


以上、具体的と抽象的について具体的に考えてみました(?)。

2010年4月6日火曜日

[android][java]twitter4Jで取得したタイムラインをSQLiteのテーブルに突っ込む

ってことで。

twitter4Jは素晴らしいっすね。
ものすごく簡単に、twitterにアクセスして色々できちゃいます。

詳しい使い方は
http://www.nilab.info/zurazure2/001120.html
http://www.adamrocker.com/blog/255/hello-android-chapter7-the-connected-world.html
あたりを見てもらうとして。

取得したタイムラインをデータベースに一時的に入れて色々弄りたいじゃないですか。
ってことでやってみました。
すごい簡単。
以下コード。汚いですけど勘弁してください。



/**
*
* @author bangucs
* twitterに接続してDBに入れるとこまでやります
*/
class DatabaseHelper extends SQLiteOpenHelper {

    public DatabaseHelper(Context context) {
        super(context, null, null, 1);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        db.beginTransaction();
        try {
            SQLiteStatement stmt;
            //作成するテーブルを指定
            db.execSQL("create table twits (user_name text not null, twit text not null);");
            //実行するSQLステートメント。prepared Statementに近いかな?
            stmt = db.compileStatement("insert into twits values (?, ?);");
            //Twitterに接続します
            TwitterFactory tf = new TwitterFactory();
            Twitter twitter = tf.getInstance("bangucs","********");
            //タイムライン取得
            List lst = twitter.getUserTimeline();

            //取得したタイムラインをSQLiteDBにつっこみます
            for (int i=0;i
                stmt.bindString(1, lst.get(i).getUser().getName());
                stmt.bindString(2, lst.get(i).getText());
                stmt.executeInsert();
            }
            db.setTransactionSuccessful();
        } catch (TwitterException e) {
            e.printStackTrace();
        } finally {
            db.endTransaction();
        }
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    // TODO Auto-generated method stub

    }
}

んー簡単ですね。
さて今日はけいおん!!だ!

2010年3月12日金曜日

[日記]ハルヒ見てきた

やっとこさ見てきました。
いやー短かった。体感的には一時間半くらい。濃かった。濃いのに間も大事にされてる感じが良かった。
ストーリーとか演出は特に言うことないですね。実写まがいの映像美にボケーッとしてしまいました。雪の表現が綺麗だったなあ。

しかし俺、なんで男子校なんか行ったんだろ。。

2010年2月4日木曜日

[ruby][勉強]Ruby on Rails環境を作る

NetBeansで始めるRuby on Rails
http://enterprisezine.jp/article/detail/739
って記事を読み込んで、さっそく家でやってみてます。
実は会社でもやってみたんですが、うまくいかない。にんともかんとも。
会社では全部今日時点の最新(Ruby 1.9.1、NetBeans6.8)でやってみたんですが・・・。何度やっても「webサーバに接続できません。」っていうエラーが出て動かない。。。
なんなんでしょう。
6.8は出たばっかりで枯れてないんでしょうか。

失意のままに会社を出て、家でやってやる、と思って再チャレンジ。
って、家にはすでにruby 1.8.6 と NetBeans6.7.1 を入れてることにさっき気づき、上記記事の中でやってないのだけやってみることに。

1.コマンドプロンプトで「gem install rails」を実行。すんなりうまくいきました。
2.sqlite3をダウンロードして解凍し、C:\ruby\bin\(pathは通してある)の直下に、解凍したフォルダにあるsqlite3.datをコピーします。
3.コマンドプロンプトで「gem install sqlite3-ruby --version=1.2.3」を実行します。これもすんなり。ちなみに、今日時点の最新は1.2.5らしいのですが・・・上記記事にもあるように、windows版バイナリが容易されてないと嫌なので、ちょっと古いこれをそのまま使ってます・・・。どうなんだろ。まあ結果オーライっつーことで。。。
4.ここまでくれば、インストールがらみは終わりなので、NetBeansを開き、Railsプロジェクトを作ります。やりかたは前述の記事の通りで。
で、ここでエラー。なにやら「gem update --system」をやれ、との指示が。こわごわやってみると・・・
C:\Users\xxx>gem update --system
Updating RubyGems
Updating rubygems-update
Successfully installed rubygems-update-1.3.5
:0:Warning: Gem::SourceIndex#search support for String patterns is deprecated
Updating RubyGems to 1.3.5
Installing RubyGems 1.3.5
RubyGems 1.3.5 installed

・ソ=== 1.3.5 / 2009-07-21

Bug fixes:

* Fix use of prerelease gems.
* Gem.bin_path no longer escapes path with spaces. Bug #25935 and #26458.

Deprecation Notices:

* Bulk index update is no longer supported (the code currently remains, but not
the tests)
* Gem::manage_gems was removed in 1.3.3.
* Time::today was removed in 1.3.3.


------------------------------------------------------------------------------

RubyGems installed the following executables:
C:/Ruby/bin/gem

RubyGems system software updated
'" update --system' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

C:\Users\xxx>

とのこと。
最後の3行が怪しいですが・・・もう一度プロジェクトを作ってみると、エラーもなく上手くいきました。
で、実行してみると、すんなり行きました。

なんだかなあ。
まあ、まだまだわかってないことが多いので、そのうち分かるでしょ、という感じで適当に行きます。

2010年1月25日月曜日

[勉強]マーケティングの用語

最近やってる仕事でマーケティングの考え方が必要なものがあって、資料やら読んでてわかんない言葉がありまくり。
でこの頃知ったものをまとめてみました。
自分用備忘録。

CVR
簡単に言うと、そのページに来てくれた人の内、買ってくれた人の割合、ってやつですな。
http://www.okuramkt.com/dic/effect/cvr.html

LTV
人りのお客様がサービスに対して一生の内に落としてくれる利益。携帯サイトとかの場合は一生の間に、と言うところを「1回の入退会の間に」、と言う考え方をするみたい。
http://www.blwisdom.com/word/key/100067.html

ユニークアクセス
まあこれはなんとなくは知ってましたが。実際にアクセスしてきた人の数ですな。
http://oshiete1.goo.ne.jp/qa3334194.html

あー難しい。

2010年1月22日金曜日

[勉強]Struts2を動かしてみた


さてさて。
を元に、というかまたこれもそのままやってただけなんですが。
Struts2のサンプルアプリを動かしてみました。
有名なTomcatプラグインがなぜか何度やってもEclipseに認識されず、途方に暮れたので、やったことなかったけどEclipseEEを入れてみました。
これでもTomcatを動かせるんですわこれが。
これには少々設定がいります。
file→new→other で「Server」をクリックします。



次で、「apache」を選び、自分のマシンにインストールしたバージョン選びます。



Tomcatをインストールしたフォルダを選んで完了すると、こんな感じで設定が出来上がります。





これでTomcatプラグインを入れなくてもeclipseからtomcatが動かせちゃいます。
こっちの方がなんか好きかも。


JSPやらstruts.xmlやらHello.javaなんかはcodezinさんの記事のまま作ります。
今回使ったのは、現時点での最新版、struts-2.1.8.1-all.zipです。

フォルダ構成はこんな感じにしました。



ところが・・・動きません。どうもアプリケーションをディスパッチ出来てない様子。
他にも色々エラーが。。。struts1のときは大抵struts-config.xmlが原因だったんだけどなー、と思いつつ、まあ確かに記述間違いがあったんですが(記述間違いしてこそ覚えるんですけどね)、間違いを正しても動かない。。

調べると、


に書いてあった
・commons-fileupload-1.2.1.jar を入れる
・WEB-INF.xmlの設定を追加
をそのままやったら、あっさり動きました。

それにしてもActionがPOJOだと言うことが衝撃です。。。。
えらくシンプルになったStruts2、かなりステキ。

[勉強]JMSサンプルをActiveMQで動かしてみた



参考にしたのは以下です。というかそのままやっただけ。
まずはActiveMQをダウンロードします。


今日時点の最新版は5.3.0みたいですね。
http://activemq.apache.org/activemq-530-release.html
30MBくらいしかありません。展開するとこんな感じ。



bin/activemq.batをコマンドプロンプトから動かすと、あっさりサーバが動きました。



作ったクラスは、上のtechscoreのページのSenderクラスとRecieverクラス、そのままです。


ビルドパスに、必要なライブラリを入れて置くのを忘れずに。


動かしてみます。当然Sener→Recieverの順です。

動いた〜〜!










2010年1月20日水曜日

[日記][hack]20100119 手帳を買った

今更手帳かよ、って話ですが。

俺手帳持ってるたんですが、その昔社会人になったばっかの時に、母ちゃんの知り合いということで無理やり某保険に入らされた時の担当のいけ好かないおばちゃんからお祝いでもらったやつで、正直気に行ってませんでした。リング式になっててカスタマイズが容易なのは良いんですが、書きにくくて。ボロボロ取れるし。


で、
http://kurakakeya.cocolog-nifty.com/blog/2008/07/19_78c1.html
とかを参考にしつつ、色々漁って、結局たどり着いたのが ダイゴー E8015 ってやつでした。
コレは良い。

何が良いって・・・。
・スケジュール部分が月しかなくて、それ以外全部ノート。ホントはノートだけでも良いくらいなんだけど、スケジュールを公私混同して管理したい、でもウィークリーは別にいらいない、という俺のニーズにベストマッチ。
・書きやすい。リング式じゃなくて、パタッと完全に180度開くことが出来ます。
・安いけどあんまり安っぽくない。それなりに見えます。
・しおりが二つ。ノート部分を主に使うことが予想できるので、これは便利。
とまあこのあたりが気に入ったわけです。
難点としては、スケジュールが1年分しかないことくらいでしょうか。まあでもこれは別途3年日記を書いているからそれでよしとしましょう。

これに、こないだ買ったtascheっていう万年筆でしばらく過ごしてみようと思います。
万年筆の方は、まだ買ったばっかりであんまりなじんでないのか、色ムラが出ます。書き心地も固いし。
まあそのうち慣れるでしょう。


たまに新しい道具を購入すると良いもんですね。。

2010年1月6日水曜日

新年ですね

あけおめ。
ああ、もう2010年。。。。
小学生のころには、2000年ごろには宇宙に行けると思ってたのに、意外と世の中変わらない。
まあ予想もできなかった部分は変わってるけど。
今後の10年も予想もできない変化があるんだろうなぁ。

以下俺計画。
■中長期的計画
・仙台に引っ越したい。仙台を生活の拠点にしたい。なのでそろそろ行動に移そうと思う。
・技術力を向上したい。Andoroidアプリを作って売りたい。ASP.NET MVCも本格的に覚えたい。
・マネジメントの知識を向上してCIOになれるスキルを身に付けたい。
・家買いたい。
・農業を楽しくカッコいい儲かる産業にしたい、と思っている。そのためにITが何ができるか、俺が何が出来るのか、考えたい。仙台に行きたいと思う理由の一つはこれ。もう一つは俺と嫁の実家に近いから。

■中長期的計画を踏まえた今年の目標
・情報処理試験のプロジェクトマネージャ合格。
・Androidアプリ、今考えてるやつを作って公開する。単なるMTRですが声で作るやつ、みたいなのを作るつもり。Javaで作れるらしいので早速やる。
・会社の開発効率を向上する施策を打つ。今年終わったら「明らかによくなったよね」と言わせる。定量的目標は会社の詳細な目標で考える。
・今年は100冊程度は読破したい。これまで読んでなかったジャンルも手を出す。
・漠然としてるけど、人脈を広げたいなぁ。

今年は「誰もやらねーなら俺がやるわ」という感じでいく。ガシガシ仕事に手を出す。どんどん失敗する。

さてまた1年がんばります。