2009年11月13日金曜日

Androidはじめました

わけあってAndroidはじめました。
とりあえず導入手順
  1. Android SDKをhttp://developer.android.com/intl/ja/index.htmlからダウンロード(最新は2.0ですが、1.1,1.5,1.6も落とせます。全部落とすと時間がかかります)
  2. 落としたファイル群を置くディレクトリ名にスペースや日本語が入らないように。
  3. SDK本体なんかをインストールしようとした時にhttpsで怒られちゃう人は、C:\Documents and Setting\hoge\.androidディレクトリ(windowsの場合)以下に、androidtool.cfgというファイルを作って、sdkman.force.http=true という一行を書いてください。
  4. eclipseでの開発の例が多いですが、netbeans派の人はプラグインがhttp://kenai.com/downloads/nbandroid/updates.xmlで使えます(eclipse版でも試しましたがあまり大差ないと思います)。
  5. プロジェクトを置くディレクトリ名にスペース(多分日本語も)があるとコンパイルできないので注意(Documents and Settings以下なんかは駄目)。
  6. それなりに早いマシン(windows XP)でもエミュレータは重いです。
  7. Javaで書けるので相当楽

2009年11月1日日曜日

色使いに定評のあるNetBeans

業務にてRubyを書くことになりました。
いいエディタ、というかIDEはないかな??と探していたところ行き着いた先はなんとNetBeans!
半年ぶりに触っていますがなかなかいい感じです。
6.7.1の色鮮やかさにほれます。













田舎の夕焼けみたいなかんじです。
ついでに手持ちのバージョンのものもアップしてみます。

























6.xでここまで違うとは。
さすがですね。

2009年10月27日火曜日

Scala

今更ながら楽しいOB会をありがとうございました。
沢山話をできた人も居れば、あまり絡めなかった人も居ますが、またそのうち遊びに行きます。

OB会の中で何人かには話しましたが、最近Scalaという言語の勉強を(遊び程度ですが)やっています。
オブジェクト指向と関数型言語がうまく融合した、楽しげな言語です。
(とかいいつつ、僕は関数型言語の経験がないんですけどね)

まだまだマイナーな言語ですが、一部では注目されているようです。
メジャーなところだと、twitterはScalaで記述されているとか。

興味のある方は挑戦してみてください。

2009年10月3日土曜日

BREW SDKとVS2008について

久々にBREW SDKをインストールしています。
去年はVS2003Proで作ったBREWのテンプレートサンプルをVC++2005Expressを入れたPCでコンバートできたので、それでやってました。
今はVC++2008Expressしかとれないようなので、VS2008Proでもできるだろうと思ったら失敗(VS2005Proってできたっけ?)。
VC++2008ExpressだったらOKでした。
無料版でできて、製品版でできないとは...。
間違ってたらごめん。

2009年9月25日金曜日

SunSpot販売中止

残念ながらsunspotはもう手に入らないようです。
http://jp.sun.com/products/software/sunspot/
次期バージョンはいつ出るのでしょうか。
どんな機能追加がされるのでしょうか。

このサイトの存在意義は?

2009年9月5日土曜日

NetBeans IDE 6.7でC/C++ リモート開発

netbeans6.7でc/c++のリモート開発ができるそうです(要samba)。
http://www.netbeans.org/kb/docs/cnd/remotedev-tutorial_ja.html

6.5とかでも同じようなことができたけど、その時は、windows上にcの処理系(ヘッダファイルなど)がないと、エディタ上で文句言われるので、仕方なく使いもしないcygwinやmingwを入れておかなきゃだったけど、6.7からはwindows側にcの処理系まったく入れなくても、リモート上(うちではsolaris)のcの処理系を見に行ってくれて、windows上のnetbeansでc/c++がストレスなく書けます。

なぜかnetbeans上でのデバッグや実行は遅い(というかできない)ので、これはsshターミナル上でやるしかないのかな?

2009年9月4日金曜日

SunSPOT SDK

思い出したのですが、このBlogってもともとSunSPOTネタが中心だった気が。。。

久しぶりにSunSPOT Worldを覗いたら、Ver 5 Redがリリースされてますね。
研究室ではもう使われているんでしょうか。

詳細はこちら

2009年8月8日土曜日

2009年8月1日土曜日

デビューしました

ブリューじゃねぇ、javaだよ!

BREW





















セブンイレブンで発見して思わず買ってしまいました。
誰かに話したい!けどわかってくれる人が周りいない!ということでここに書きます。
セブン&アイのプライベートブランド商品でお値段はなんと123円!!(ちなみにプレミアムモルツは255円)
すっきりしていて飲みやすくフルーティです、よく言えば。

2009年7月9日木曜日

webページ作り

最近、なぜかwebページ作りをやっています。
世の中にはいろんなCMSがありますが、何かお勧めのオープンソースのCMSってありますか?
今は、modx(http://modxcms.com/)でがんばっています。
あまり知らなかったけど、この世界はなかなか進んでいますね。
ほとんどのCMSはPHPとMySQLとjavascriptでできていますが、サーブレットやJSPとかを使っているものはないのですかね(初期導入が面倒なのかな)。

2009年7月1日水曜日

Netbeans 6.7 + Eclipse 3.5

が、それぞれリリースされました。

詳細は下記
Netbeans
eclipse

今回、気になったのはeclipse3.5で搭載されたwordファイル比較機能です。
試してないのでどの位使えるのかわかりませんが、一応word2003まで対応(.doc)だそうです。また、eclipse3.3,3.4にもプラグインを追加できるとか。。。。これ、レポートチェックで・・・。

2009年6月17日水曜日

気になったニュース

これ

感想をどうそ。

2009年5月27日水曜日

Eclipse

暇なんで、たまには更新。

研修の外部講師の方とかSE仲間から最近聞いたネタを少し公開します。

・開発現場ではNetBeansよりもEclipseが良く使われているらしいです(その会社独自の拡張がしやすいためかな?)。ちょっと信憑性は疑問ですが、そーいわれて今Eclipseを使っています(個人的にはNetbeansが好きなんだけど)。
・Eclipseが重い(時々動きが鈍くなる)のはGCがかかるため。インストールディレクトリにあるXms,Xmxオプションの数値をいじってやると(幾らか)軽くなります。
・Xmsは初期ヒープサイズ、Xmxはヒープの最大サイズです(実はこれJavaVMのオプションです)。JavaVMがeclipseを起動する際に、初期ヒープサイズを確保。んでもって、足りないと判断したらXmxの範囲内でヒープサイズを拡大するようです。

以上、あんまり面白くないネタですが、参考までに。。。

2009年4月27日月曜日

負けじと

シリコンバレーからラブレターがとどきました。
詳しくはここ参照。





















ちなみにディスプレイに映ってるのはUQWiMAXのユーティリティソフトです。
自宅の環境では実測1Mbpsというところが涙を誘います。






















どういたしまして。
NetBeansとOpenOfficeが入ってますね。


バリバリ使い倒そうと思っていたのですが、なんと会社では私物PC、USBメモリの使用が全面的に禁止されていました。
katoくんにでもあげようかな。

2009年4月21日火曜日

SunRay

だけどSunRay入れました(写真はkatoの席)

2009年4月20日月曜日

お久しぶりです

色々あるけど、一応元気です。

たまには更新。

http://itpro.nikkeibp.co.jp/article/NEWS/20090420/328819/

これは一体何事??

2009年2月19日木曜日

NetBeansでUSBメモリをもらおう

これ
研究室のみんなで如何でしょう??

2009年2月17日火曜日

boost 1.38

いつの間にか出てますね.

詳細はここから.

あれ??

これは・・・(笑)

2009年2月16日月曜日

SunSPOTを使ってブロック崩しを作ってみた

SunSPOTを使ってブロック崩しを作ってみました!
加速度センサーを用いてSunSPOTの傾きを検出し,それにあわせてバーの位置を操作するといった具合になっています.(本当なら,SunSPOTを横にスライドさせてバーを動かしたかったのですが…)
ソースは後々解説しようと思います(スパゲッティーなので^^;).

2009年2月6日金曜日

SunSPOTメモ

Solariumが重いので,なるべくコマンドラインで処理したい今日この頃.
忘れないうちにSunSPOT用antコマンドをメモしときます.










jar-appアプリケーション構築
jar-deployアプリケーションの配置
deployjar-app & jar-deploy
run実行
deploy rundeploy & run
echo標準出力を覗き見(リモート対応)
host-compileホストアプリの構築
host-runホストアプリの実行


追記:なぜか,tableを使ったらレイアウトが崩れた...なんで?? > 管理人様

最近やってること(1)

最近やってる仕事を惜しげもなく公開!!
例によってSunSPOTで楽しいことをやってみようという企画です.
SunSPOTで位置推定に挑戦します.
全部で3つのプログラムでやる予定のプロジェクトの1個目のプログラム.

TargetNode

import com.sun.spot.io.j2me.radiogram.*;
import com.sun.spot.peripheral.*;
import com.sun.spot.peripheral.radio.*;
import com.sun.spot.sensorboard.*;
import com.sun.spot.sensorboard.peripheral.*;
import com.sun.spot.util.BootloaderListener;
import java.io.IOException;
import javax.microedition.io.Connector;
import javax.microedition.midlet.*;

/**
* 位置推定プロジェクトのTN(TargetNode)アプリ
* <p>
* スイッチ1を押されると一定間隔でブロードキャストする.
* ポート番号は121.
* スイッチ2でアプリケーションを終了.
* </p>
* @author taka@degas
* date: 2009/02/02
*/
public class TargetNode extends MIDlet {
private static final int INITIAL_CHANNEL_NUMBER = IProprietaryRadio.DEFAULT_CHANNEL;
private static final short PAN_ID = IRadioPolicyManager.DEFAULT_PAN_ID;
private static final String URL = "radiogram://broadcast:";
private static final String BROADCAST_PORT = "121";
private static final int PACKET_PER_SECOND = 4;
private static final int PACKET_INTERVAL = 1000 / PACKET_PER_SECOND;
private static final int RSSI_AVERAGE_NUM = 30;

private ISwitch sw1 = EDemoBoard.getInstance().getSwitches()[EDemoBoard.SW1];
private ISwitch sw2 = EDemoBoard.getInstance().getSwitches()[EDemoBoard.SW2];
private ITriColorLED leds[] = EDemoBoard.getInstance().getLEDs();
private ITriColorLED statusLED = leds[0];

private LEDColor red = LEDColor.RED;

private int channel = INITIAL_CHANNEL_NUMBER;
private int power = 32;
private boolean sw_flag;

private RadiogramConnection con = null;
private Radiogram r_gram = null;
private IRadioPolicyManager r_policy = null;
/**
* time時間プログラムを止める
* @param time プログラムを止める時間(ms).
*/
private void pause(long time){
try{
Thread.currentThread().sleep(time);
}catch(InterruptedException ex){}
}
/**
* ブロードキャストを行うループ.
*/
private void BCLoop(){
statusLED.setColor(red);
statusLED.setOn();
sw_flag = true;
try {
// 通信関係初期化
con = (RadiogramConnection) Connector.open(URL + BROADCAST_PORT);
con.setMaxBroadcastHops(1);
r_gram = (Radiogram) con.newDatagram(con.getMaximumLength());
long count = 0;
int cnt = 0;
// 無限ループ
while (sw_flag){
cnt++;
if(cnt == RSSI_AVERAGE_NUM){
cnt = 0;
count++;
if (count >= Long.MAX_VALUE) count = 0;
}
long nextTime = System.currentTimeMillis() + PACKET_INTERVAL;
r_gram.reset();
/*
r_gram.writeByte(42);
r_gram.writeInt(power);
r_gram.writeLong(count);
*/
r_gram.writeUTF(Long.toString(count));
con.send(r_gram);
System.out.println(count + "\n");
long delay = (nextTime - System.currentTimeMillis()) - 2;
if(delay > 0){
pause(delay);
}
}
} catch (IOException ex) {
// ignore
}finally {
if(con != null){
try {
con.close();
}catch(IOException ex) {}
}
}
System.out.println("Loop Out!!");
statusLED.setOff();
try {
con.close();
} catch (IOException ex) {
ex.printStackTrace();
}
System.out.println("BCLoop is closed!!\n");
}
/**
* スイッチのイベント登録を行う関数.
*/
private void setSW(){
new BootloaderListener().start();
// sw1にイベント登録
sw1.addISwitchListener(new ISwitchListener() {
// sw1が押された時の処理
public void switchPressed(ISwitch sw) {
new Thread(){
public void run(){
BCLoop();
}
}.start();
}
public void switchReleased(ISwitch sw) {
}
});
// sw2にイベント登録
sw2.addISwitchListener(new ISwitchListener() {
// sw2が押された時の処理
public void switchPressed(ISwitch sw) {
sw_flag = false;
}
public void switchReleased(ISwitch sw) {
}
});
}
/**
* アプリ開始時に呼ばれる.色々初期化.
*/
protected void startApp() throws MIDletStateChangeException {
r_policy = Spot.getInstance().getRadioPolicyManager();
r_policy.setChannelNumber(channel);
r_policy.setPanId(PAN_ID);
r_policy.setOutputPower(power - 32);
setSW();
}

protected void pauseApp() {
// This is not currently called by the Squawk VM
}

protected void destroyApp(boolean unconditional) throws MIDletStateChangeException {
statusLED.setOff();
}
}

2009年2月5日木曜日

モバイルWiMAX!

お久しぶりです.
ついに動き出しそうですね・・・

モバイルWiMAX、2月末に試験サービス開始

2009年1月21日水曜日