12/08/2009

Japanese Input Method

Recently, Google announced to created Japanese Input Method.
I'm japanese! therefore, immediately install on Mac OS X to use it.

I have been used IME, Kotoeri, Wnn and so on.
But I can not use these now, because that Google's Japanese Input Method is very good!

ACMR

ACMR is abbreviation of Average Cache Miss Ratio.
ACMR is used measuring the effectiveness of vertex on cache in GPU.
To be brief, ACMR is number of transformed vertex per polygon.
When drawing polygon, Vertex is transformed from memory to GPU.

If all polygon are triangle, Even If ACMR is the lowest, ACMR can get 3.
Sorting triangle along to via edge , it is like triangle strip, ACMR can get 2.

12/07/2009

New Song Bless

I heard very good news that L'arc en ciel announced a new Single "Bless" to be released January 27 2010.
This is used a theme song of Vancover Olympics in Japan.

More than one year after previous released single that is nexus4 and shine.

Bless is written by hyde.

Introduce of Bless bellow,




After that I want to listen another song, Bye Bye.
Bye Bye is a unpublished song.

11/09/2009

Learning Objective-C

I try creating 3DCG viewer on Mac OS X, therefore I learn Objective-c and Cocoa.

Cocoa is very unique framework.
I know Win32 API, Java, Gtk, X Window.
Using these gui frameworks need long long procedure.

But, Procedure of Cocoa is not.

In Addition, Interface builder that is developing tool of Cocoa is very useful.

I like Cocoa.

5/22/2009

Try google-code-prettify

I known google code perttify yesterday.

Immediately, I will try it!

Can Following codes be see?


int main(void)
{
printf("Hello google code perttify?\n");
return 0;
}

4/21/2009

Rubber Band with OpenGL

Do you know Rubber Band for 3DCG application?

Rubber Band is used, When user select some rendering objects, for example node, polygon, solid volume and so on.

Drawing range of rubber band is rendered as edge line of rectangle.

Always, a developer implements drawing rubber band with GDI and OpenGL.

Such a application as used GDI and OpenGL can not work rubber band on Windows Vista's Aero.

Because GDI is not rendered by GPU at enabled Aero, Logical computing a rendered frame by OpenGL and GDI can not run.


If you want to use GDI with OpenGL, see this page!

2/03/2009

Application Name

I'm still thinking for New Application Name.
The new application is Real Time Strategy Game based on Finite Element Method.

Now, Candidate name is Femexp from finite element method plus experience.

In a few day, I decide name.

1/28/2009

CPP File To HTML

Recently, I written converter program with ruby, It is enable to convert a source file of c plus plus to html format.

The converter program can change tab space to span tag of html, and color keywords.
Color of keywords is blue.

Next code is converter program.

#!/usr/bin/ruby

def convertKeyWords(arg)

if(arg =~ /(<)/ ) then

arg.gsub!($1, "<")

end

if(arg =~ /(>)/ ) then

arg.gsub!($1, ">")

end

if( arg =~ /(if)/ ) then

arg.gsub!($1, "<span style=\"color:blue;\"><b>" + $1 + "</b></span>")

end

if(arg =~ /(typedef)/ ) then

arg.gsub!($1, "<span style=\"color:blue;\"><b>" + $1 + "</b></span>")

end

if(arg =~ /(class)/ ) then

arg.gsub!($1, "<span style=\"color:blue;\"><b>" + $1 + "</b></span>")

end

if(arg =~ /(using namespace)/ ) then

arg.gsub!($1, "<span style=\"color:blue;\"><b>" + $1 + "</b></span>")

end

if(arg =~ /(while)/ ) then

arg.gsub!($1, "<span style=\"color:blue;\"><b>" + $1 + "</b></span>")

end

if(arg =~ /(for)/ ) then

arg.gsub!($1, "<span style=\"color:blue;\"><b>" + $1 + "</b></span>")

end

if(arg =~ /(void)/ ) then

arg.gsub!($1, "<span style=\"color:blue;\"><b>" + $1 + "</b></span>")

end

if(arg =~ /(int)/ ) then

arg.gsub!($1, "<span style=\"color:blue;\"><b>" + $1 + "</b></span>")

end

if(arg =~ /(double)/ ) then

arg.gsub!($1, "<span style=\"color:blue;\"><b>" + $1 + "</b></span>")

end

if(arg =~ /(char)/ ) then

arg.gsub!($1, "<span style=\"color:blue;\"><b>" + $1 + "</b></span>")

end

if(arg =~ /(#include)/ ) then

arg.gsub!($1, "<span style=\"color:blue;\"><b>" + $1 + "</b></span>")

end

if(arg =~ /(\/\/.*)/ ) then

arg.gsub!($1, "<span style=\"color:green;\"><b>" + $1 + "</b></span>")

end

arg

end

begin

if( ARGV[0] == nil ) then

puts " Usage: cpp2html.rb sourcefile"

puts " Sourcefile must be cplusplus source file."

exit(1);

end

puts "<HTML>\n<HEAD>\n<TITLE>\n" + ARGV[0]+ "\n</TITLE>\n</HEAD>\n"

unless FileTest::file?(ARGV[0]) then

puts "not file"

end

sourcefile = File.new(ARGV[0]);

comment_count = 0

indent_count = 0;

while line = sourcefile.gets()

if (/^=begin/ =~ line) then

comment_count = 1;

next

end

if (/^=end/ =~ line) then

comment_count = 0;

next

end

next if (comment_count == 1 )

line = line.chop

next if( line.empty? )



# count indent

# Following code is error! ToDo

indent_count -= 1 if ( /\}s*$/ =~ line )

# convert from tab to style

tmp = ""

for i in 0...indent_count

tmp += "<span style=\"margin-left:20px;\">"

end



# count indent

indent_count += 1 if ( /\s*\{/ =~ line )



# converting

# check key wards

line = convertKeyWords(line)

line.gsub!(/^\s+/, tmp)

line += "<br>\n"

puts line

end

puts "</HTML>"

end

1/25/2009

Default Argument

When I write define of function or method with C++, I always write next code.

namespace my{
enum Type{
NONE = 0x00,
SCALAR = 0x01,
VECTOR = 0x03,
};
void function(double* , Type type = NONE);
}


I want that user of my function understand the function more easily than next code.


namespace my{
enum Type{
NONE = 0x00,
SCALAR = 0x01,
VECTOR = 0x03,
};
void function(double* , Type type);
void function(double*);
}


Above code is the same as before function used default argument.

Using Default argument, Code line decreases.

1/10/2009

Message Box With Gtk

I want a simple function showing Message box in gtk like Windows'API.
Therefore I make next code.





/**
* This method's work is like Windows' MessageBox
* @date 2009-1-10
* @version 1.0
*/
bool ShowMessageBox(std::string title, std::string message)
{
GlobalParameter* gp = GlobalParameter::getInstance();
GtkDialogFlags flag=(GtkDialogFlags(GTK_DIALOG_MODAL|GTK_DIALOG_DESTROY_WITH_PARENT);
GtkWidget* dialog = gtk_dialog_new_with_buttons(title.c_str(),GTK_WINDOW(gp->getM_main_window()),flag,NULL);
GtkWidget* label = gtk_label_new(message.c_str());
gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox),label);
gtk_widget_show_all(dialog);
gint response = gtk_dialog_run(GTK_DIALOG(dialog));
return true;
}



1/09/2009

Where is Google Chrome of Linux

I wait for the news Google ship Google Chrome on Linux.
Now, I use FireFox3.0.5 on Ubuntu8.04.

Then Google Chrome on Linux is stable, I try to use the Browser.
Since Firefox is good application, I have no dissatisfaction in Firefox.

But, I like new goods and Google!
I would like to use Google Chrome, but I don't use WindowsXP or Windows Vista.

1/08/2009

Electrical Vehicle

I found a wonderful company.
This company make electrical vehicle, and sales it.
The electrical vehicle is named Tesla Roadstar.
Name of the company is "Tesla Motors".

Already Tesla Motors sold 100 Tesla Roadstares or more.
This fact is a wonderful thing!!


I hope that the company became success.

Nintendo DSi

Recently, I bought a Nintendo DSi that is handy game.
Generally Nintendo DSi is famous as No1 Game console.

Then I always attend my office with it, and I gaming.

I bought two game soft for it, One is Final Fantasy3, Another classic simulation game.

1/07/2009

My Site Renewal

I have published open source, strip experiment creating triangle strip data from 3dcg data.

It is placed at this site.
Recently, I make this site renewal.

Additionally, This site allow visitor to download free 3dcg data.

1/06/2009

Test Data

I created a test data for triangle strip.

Next image is capturing it.



As you see, It is composed by only triangle.