Mirah
Java + Ruby
JVM
2013年7月3日水曜日
2013年6月22日土曜日
C言語で入出力がとばされる
C言語で入出力がとばされる事態が起きたので対処方法を記す。
scanf(),getchar()を使わない。
入力したときの改行が残ってしまうことがある。
なので、fgets(char*,int,FILE*)を使うべきだ。
そして、入力バッファが残る可能性があるので、のちのちに気づきにくいバグを産むかもしれない。
よって、fgets()のあとにはfflush(FILE*)を入れてやればよい。
ラベル:
C
2013年6月13日木曜日
2013年6月1日土曜日
Scalaをeclipseでやる上で
Scala IDEをEclipse 4.2 Junoに導入しようと思ったが相性が悪そうだったので3.7 Indigoにした。
相性の問題とか、ほかのプラグインと干渉するみたいなことがどこかに書いてあったので別々に分けるのもいい手なのかもしれない。
まあ、ソースがないので信頼性皆無の手である。
以下から日本語のEclipseを前提で説明する。
ヘルプ->新規ソフトウェアをインストールを選ぶ
作業対象に以下のURLを入力
http://download.scala-ide.org/nightly-scala-ide-3.0.x-210x/site.xml
そしたら、Scala IDEの選択肢が出てくるのでインストール。
ガンガンすすめる。
たぶん悩むことはないと思う。
再起動してから、エラーっぽいのがでるからScalaの設定をいじる。
適当にチェックを入れておけばいいと思う。
わからなければエラーよめ。
アンインストールの方法は、
ヘルプ->Eclipseについてを選ぶ。インストール詳細をクリック。
インストールした一覧がでてくるので、Eclipse for Scala IDEだったかをアンインストール。
以上
相性の問題とか、ほかのプラグインと干渉するみたいなことがどこかに書いてあったので別々に分けるのもいい手なのかもしれない。
まあ、ソースがないので信頼性皆無の手である。
以下から日本語のEclipseを前提で説明する。
ヘルプ->新規ソフトウェアをインストールを選ぶ
作業対象に以下のURLを入力
http://download.scala-ide.org/nightly-scala-ide-3.0.x-210x/site.xml
そしたら、Scala IDEの選択肢が出てくるのでインストール。
ガンガンすすめる。
たぶん悩むことはないと思う。
再起動してから、エラーっぽいのがでるからScalaの設定をいじる。
適当にチェックを入れておけばいいと思う。
わからなければエラーよめ。
アンインストールの方法は、
ヘルプ->Eclipseについてを選ぶ。インストール詳細をクリック。
インストールした一覧がでてくるので、Eclipse for Scala IDEだったかをアンインストール。
以上
2013年5月3日金曜日
ServletでBase64を扱う際に
BASIC認証がやりたくて調べていたのですが、サンプルコードにBase64をデコードするメソッドが大抵書いてあるのですが、そのメソッドがGAEではつかえない。。。
それ以外の部分は動きそうだったのでその部分だけ自分で書くかネットのを流用しよう。
と思った。
maru sourceさまの
http://blog.h13i32maru.jp/entry/20110116/1295187291
を使わせてもらった
ただ、デコードの部分にバグがありbyte配列に後ろに0が入っているのでnew String(byte[]);としたときに変な文字列が後ろにつくことになる。
方法としては、後ろの0がある配列を取り除く繰り返し文を書くか、0 byteの文字列を取り除くコードを書くか(幸いJAVAのStringとても便利だ!)
あとは、新しく自分で作るだがめんだくさい
今回はファイル操作などせずに単純に文字列をデコードしたいだけなので0 byteの文字列を取り除くことにする
もし、仮にmp3などをデコード、エンコードしたい場合は一度バイナリファイルを見てみるといいだろう
自分でつくるか他に探し出すという結果しか出てこないだろう、
もしくは一番後ろの文字列
あとは有効そうなのはもともとの文字列の長さを他に持たせておきそのサイズだけ取り出すとかかなあ
それ以外の部分は動きそうだったのでその部分だけ自分で書くかネットのを流用しよう。
と思った。
maru sourceさまの
http://blog.h13i32maru.jp/entry/20110116/1295187291
を使わせてもらった
ただ、デコードの部分にバグがありbyte配列に後ろに0が入っているのでnew String(byte[]);としたときに変な文字列が後ろにつくことになる。
方法としては、後ろの0がある配列を取り除く繰り返し文を書くか、0 byteの文字列を取り除くコードを書くか(幸いJAVAのStringとても便利だ!)
あとは、新しく自分で作るだがめんだくさい
今回はファイル操作などせずに単純に文字列をデコードしたいだけなので0 byteの文字列を取り除くことにする
もし、仮にmp3などをデコード、エンコードしたい場合は一度バイナリファイルを見てみるといいだろう
自分でつくるか他に探し出すという結果しか出てこないだろう、
String result = decodeToString("エンコードされた文字列");
byte[] zerobyte={0};
result = result.replace(new String(zerobyte),"");
もしくは一番後ろの文字列
String str = encode("abcde".getBytes());
byte[] result=decode(str);
int length=result.length-1;
while(true){
if(result[length]!=0){
break;
}
else{
length--;
}
}
str=new String(result).substring(0,length+1);
あとは有効そうなのはもともとの文字列の長さを他に持たせておきそのサイズだけ取り出すとかかなあ
2013年4月27日土曜日
Androidでネットワークアプリケーションを作るさいに
まず、ネットワークの通信を行う際には別のスレッドで通信しないといけない。
Exceptionがでる。。。
つぎにAndroiManifestにインターネットのパーミッションを許可しないといけない
Exceptionがでる。。。
つぎにAndroiManifestにインターネットのパーミッションを許可しないといけない
登録:
投稿 (Atom)