1月
27

第1回からだいぶ間が開いてしまいましたが、Helmaで作るWebアプリケーションの記事、第2回目です。

今回はWebアプリケーションの初めの一歩、テキストベースのWebページを表示する方法と、アプリケーションコードに登場する「this」の正体、Helma独特の「HopObject」について触れていきます。

続きを読む »

1月
08

JavaベースのWebアプリケーション実行環境Tomcatをターゲットとしたアプリケーションを開発していたときのこと。一部のロジックをmainメソッドから実行できるように変更した。そして、いざ実行してみるとこれまで読み込めていたプロパティファイルが読めなくなってしまった!

なぜこんなことになってしまったのか?原因はよくある単純ミスだったけど、よくよく調べてみると衝撃的な事実を知ることに・・・。

続きを読む »

12月
02

C言語を勉強してきた中で私の致命的な思い違いシリーズの第三弾です。

今回は、練習で「標準入力からテキストを読み込んで行数をカウントする」という簡単なプログラムを作成した時のことです。標準入力で受けた内容を1バイトづつ読み込み、読み込んだ値が改行コードの場合はカウントアップして行数をカウントする内容のプログラムです。このプログラムの中で遭遇した初歩的なミスの話です。

続きを読む »

11月
19

前回に続き、C言語を勉強してきた中で私の致命的な思い違いについて書きたいと思います。

今回は、暗黙の型変換と符号拡張についてです。

次のコードの出力結果はどうなるでしょうか?

#include<stdio.h>

int main(){
	
	char c = -1;
	
	printf(" c %d,%x,%d\n",sizeof(c),c,c);

	return 0;
}
続きを読む »

10月
30

通常の業務とは別にC言語を少しずつ勉強しています。C言語の鬼門と言われるポインタの動きもある程度理解し、構造体、線形リストやハッシュなどを使った簡単なプログラムを書けるようになりました。しかし、C言語としてかなり初歩的なことにも関わらず、今まであんまり意識せずにいたために致命的な思い違いをしたままだった事が幾つかあります。今回はその中でもかなり初歩的で、C言語を勉強した人の多くは同じような疑問を抱いたのではないかと思うことについて書きます。

皆さんは知ってましたか?C言語では必ずしも 100+100=200にならないって。

続きを読む »

9月
18

以前C言語で、業務とはまったく関係のないお遊びプログラムを作っている時に、不可解な現象に悩まされました。 とある関数の内部で、呼び出し元の情報を書き換えて、関数を抜け出す時に本来の戻り先とは別の戻り先に制御を移すという、ちょっと変な処理を行うものです。 この時は何か目的があってプログラミングをしていたわけではなく、あまり深く考えもせずに作っていたので、最初はプログラムがバグってるのかな?と思っていました。 しかし、何をやってもコンパイル時に最適化オプションを付けた時だけ発生するので、気になり調査しました。

続きを読む »

9月
04

以前、檜山研(シンメトリック社内の勉強会)の「JavaScript」チームでRhinoを使っていると紹介しました。その後、Rhinoをどんだけ使い倒したのかというと、そうでもなく・・・。Canvasやイベントハンドラなどブラウザ上で動作するJavaScriptへとテーマが移っていき、FireBugを使ってばかりでした。

ところが、最近になってまたRhinoと再会しました。デスクトップJavaScript処理系としてではなくて、サーバーサイドJavaScriptエンジンとしてのRhinoです。JVM上で動くWebフレームワークHelmaにRhinoが搭載されていた、という事情です。

続きを読む »

4月
24

Javaで記述されたJavaScriptの実装「Rhino」。シンメトリック社内の勉強会(檜山研)の1つ「JavaScript」チームでは、JavaScriptの学習にRhino(GUIで操作できるRhino JavaScript Debugger)を使っています。

講師の檜山さんが、Rhinoについての解説のなかで「RhinoはJavaScriptの処理系だけども、全てJavaで記述されているからJavaのクラスを使うこともできる」とコメントしていました。 RhinoでJavaのクラスを使った短いコードを試してみたりもし、そのときは正直「へ~」と感心する程度の認識だったのですが・・・。その後、しばらくしてRhinoでJavaクラスを使うことが実に手軽で便利と思うことがありました。今回はその使い方について説明します。

続きを読む »

12月
25

前回前々回でOutOfMemoryErrorの典型的な発生パターンを3つ紹介した。

(A)サイズオーバー型
巨大な領域確保によって一気にヒープの最大サイズをオーバー
(B)メモリリーク型
開放されないオブジェクトが溜まり続けることで使用中メモリが徐々に増加し、メモリが枯渇
(C)マルチスレッド型
長時間処理により”死んだ”スレッドがメモリを食い尽くす

じゃあOutOfMemoryErrorが発生したときに、どのパターンのエラーに該当するのか?これを見抜くための手がかりを最後の話題にしたい。

続きを読む »

12月
16

前回に引き続き、OutOfMemoryErrorの話題。前回は、OutOfMemoryErrorを3パターンに分けた。

(A)サイズオーバー型
巨大な領域確保によって一気にヒープの最大サイズをオーバー
(B)メモリリーク型
開放されないオブジェクトが溜まり続けることで使用中メモリが徐々に増加し、メモリが枯渇
(C)マルチスレッド型
長時間処理により”死んだ”スレッドがメモリを食い尽くす

今回は(C)マルチスレッド型に関連するOutOfMemoryErrorを紹介する。

続きを読む »

次のページ »

投稿者

開発者向けサイト

NTTドコモ
作ろうiモードコンテンツ
KDDI au
EZfactory
SoftBank
MOBILE CREATION
イー・モバイル
技術情報
WILLCOM
コンテンツサービス