I usually park my car on the street behind the apartment building.
I've been using the same street for about three years. The
street is a one-way street, and I could park anywhere on the left side
of the street. However, a handicapped parking sign was suddenly
posted on the street in mid June. The sign was posted too high,
and too left, and two thirds of the sign was hidden by the tree
leaves. The road side was not painted yellow, and once I parked
without knowing the sign was there, I had no way to notice that the
spot was reserved for a handicapped person. Even if I looked
around, the sign was out of sight. Even if I had any reason to
look UP, the sign was angled so that it faces the other side from the
handicapped parking spot. The street will be in the shadow of
the apartment building in the afternoon, and on that particular day
when I parked the car, a thunderstorm was passing the area, and the
street was just like at night. In addition, pedestrians often
crosses the street, and I had to pay attention to pedestrians.
I was trapped by that hidden handicapped parking sign in late June.
I came back home in the evening, and parked my car there. And I
didn't use my car on Friday. On Saturday, I found two parking
violation tickets on the windshield of my car. In fact, the
first thing I did after finding the tickets were driving up to the
police station and told them that there's no such sign. A
policeman told me that the sign was there. I found the sign
mostly hidden by tree leaves when I came back from the police station.
The fine for parking at the handicapped parking is $200. And,
I got two tickets, one for Thursday and one for Friday. The
ticket I got on Friday included some error and the total amount I was
asked to pay was about $500, totally unacceptable. I pleaded not
guilty, and they told me to come to the court on August 10th.
I took a lot of photos, and prepared a presentation with Power
Point. Main points were:
- The sign was posted way too high, and way too left. It was
covered by tree leaves, and two thirds of the sign was hidden.
In addition, since I needed to pay attention to pedestrians, and I
couldn't notice the sign.
- The apartment building on the street casts a shadow onto the
street in the afternoon, and the street becomes dark. In
addition, a thunderstorm was passing the area when I parked the car,
and it was even darker.
- The roadside was not painted yellow, and the sign was not
visible from the handicapped parking spot.
- I parked my car and walked across the street and pressed my
remote to lock the car. But, even from that point, the sign
was nearly parallel to the line of sight, and virtually invisible.
- I plead not guilty because the sign was invisible.
I was told to come to the court at 9:30am today. At the
entrance, I was told to go to the third floor. However, I found
a sign on the first floor telling that I need to check-in at the
information window. So, I went to the information window, and
was told to go to the desk in front of the court room for checking-in.
I did, and I was told to go to the second floor. (What an ill
organized court!) So, I went to the second floor, checked-in,
and was told to wait in the court room.
It is a traffic court. Many people were waiting for their
turn to see the judge. There's no wall that separate the judge
and the waiting people, and I could hear some of the conversation.
Many of them were like ignoring a red light, or kind of obviously
guilty cases. For such cases, the judge didn't hear the plea
much, and I presumed they were found guilty.
I waited about an hour before my name was called. I had print
out of the Power Point presentation and the photos for supporting my
points. I told myself "You are the best presenter in the world"
as I always do before giving a presentation in a conference. The
police woman beside the judge read my citation. The judge asked
me "How do you plead?" I answered "I plead not guilty because
the sign was posted way too high, and too left, and hidden by tree
leaves." According to my wife waiting for me in the same court
room later told me that I was speaking the loudest and clearest voice
among all defendants in the room.
As soon as speaking the first words, the rest comes out automatic,
just like a conference presentation. Only difference is, instead
of using a projector and a laser pointer, I was showing hardcopy, and
pointing photos by my finger.
I said all I prepared to say, and the judge asked me one question
"You got a ticket on Thursday, and why did you park at the same place
on Friday?" I answered "I did not use my car on Friday. I
use my car only once or twice a week." It's exactly what
happened. I said honestly. The judge also added that I
prepared the presentation very well. In fact, other defendants
were just showing pictures, and no diagrams, no power point
presentation. Probably, I was best prepared among all
The judge told me not to park there again and asked me to go to the
casher. I expected to hear the ruling. But, since he told
me to go to the casher, I thought he found me guilty or partially
guilty. I felt a bit disappointed.
I walked out of the court and went to the casher. And, the
person on the window told me "The judge dismissed all the charges.
If we don't owe you anything, you can go. You don't have to pay
Victory! Justice served!
It's just a parking violation, but I was happy because I could make
statement in English (,which is not my native language), and could
persuade the judge. I've been in Pittsburgh for seven years
(it's my eighth year in Pittsburgh.) But, still my English is
far from native speaker's. The good aspect of this is that I
still can feel happy when I can do something well in English.
My bicycle accident case is still going. The attorney is
still negotiating with the evil insurance company. I'm hoping
that the justice is served for that case, too. It's now getting
Should I pay attention to the pedestrian? Or should I search for
a partially hidden handicapped parking sign? (Click to enlarge)
I have been to Boston for a week to attend a conference called ACM
Symposium of Solid and Physical Modeling. If you are interested,
you can download the paper I presented in the conference from
List of Publications. And, two pictures from my paper is
selected for the cover of the proceedings of the conference. I
knew that my pictures are selected, but I thought they were going to
use many pictures including mine. I never imagined that they use
only my pictures. But, it turned out, only two pictures from my
paper, no picture from other papers, was printed on the cover page.
It's my great honor! :-)
<- My precious.... (Click to enlarge)
It was my third time to visit Boston. Every time I visit
Boston, I go to a whale watching tour. So did this time.
Some pictures from the whale watching tour is shown below.
I once tried to use a polarizer filter for reducing the effect of
reflection from the ocean surface. But, for taking photo of a
whale, I don't have time to adjust the polarizer within a few seconds
while a whale is on the surface. Since I cannot expect where the
whale appears, I cannot pre-adjust the polarizer. So, I used
just a UV filter this time. But, UV filter is not too bad, is
The returning flight was supposed to be Boston -> Detroit ->
Pittsburgh. But, when the flight from Boston to Detroit was
delayed, and the airline gave a direct flight for substitute. As
a result, we returned to Pittsburgh earlier than originally planned.
So, we ended up with arriving Pittsburgh earlier because the flight
was delayed. It was a kind of rare experience.
A good news from Japan.
Airock Aerobatic team announced that they are going to resume
Airock aerobatic team is one of few aerobatic teams, (as far
as I know only one commercial aerobatic team) in Japan. The team
stopped flight demonstration after the tragic accident which killed
the chief pilot of the team 'Rock' Iwasaki on April 21st. I have
seen his flight many times when I was living in Japan. His death
was a very sad news for every fan of his aerobatic. And, I
wished his aerobatic team resumes flight for realizing his dream - to
make the aerobatic flights popular in Japan.
There were two very tragic airplane accidents in Japan in April.
On April 14th, MU-2 of Niigata Rescue Squad crashed into the mountain,
killing all four crew members. One of the crew members was 32
years old. One of my high school friend is now working for
Matsushima Rescue Squad, and I thought the 32 years old crew killed in
the accident might be a friend of his. Later I received an
E-Mail from him, and told that the killed crew was indeed his friend
and graduated from the Japanese air force pilot training program in
the same year.
I lost a friend who graduated from the same junior high and high
school in an F-4EJ accident. He had been dreaming of becoming a
fighter pilot, and I last met him in Misawa airshow in 1997. I
did not know he finally became a fighter pilot then. So, seeing
him in a flight suit was a total surprise to me. Within an year
from that occasion, he was lost in the accident. The crew killed
in MU-2 accident was not my friend. But, the accident certainly
reminded me of the F-4EJ accident.
And then came 'Rock' Iwasaki's accident. I have seen his
flight many times. When he came to Atsugi airshow, I was sitting
very close to his airplane watching all his pre-flight inspection,
image training, taxi-out, and of course, aerobatic flight. His
death was a tremendous shock to me.
There had been no commercial aerobatic teams. One reason why
Japanese aviation/space technology is so behind U.S. and Europe is
because sky is not so close to the people. Yes, all aviation
research and development were banned after the W.W. II. That
certainly gave some penalty to the Japanese aviation technology.
But, nearly 60 years has passed after the W.W. II. We cannot
blame the aviation ban forever for staying behind in aviation/space
technology. In U.S., I see a lot of civilian and commercial
aerobatic teams in the airshows. Kids, who are often scared of
watching modern fighter airplanes, are amazed by those bi-plane
aerobatics. Some of such kids choose to work for an
aviation/space industry, and they support American aviation/space
You may think bi-plane aerobatics are just for fun and do not give
significant impact on aviation technologies. You may be true.
But, I personally think something look insignificant (I mean,
bi-planes look obsolete when it is put beside F-18Es) moves the
history very often. The challenge made by 'Rock' Iwasaki may be
recognized by many people as a big contribution to Japanese aviation
in the later years.
After these tragic accidents, the news that Airock aerobatic team
resumes the flight was a very good news. I wish the team a good
The paper submitted to the conference called International Meshing
has been accepted. I'll go to San Diego this fall for
presentation. I have received three reviews, and two of them
gave scores of 5 and 6 out of 7 grades. Considering that 7 goes
to only award-class papers, 5 and 6 are pretty good scores.
However, the other reviewer (reviewer #2) gave 1. The content
of the review was offensive and irresponsible. The reviewer #2
states that the most negative aspect of the paper is that the proposed
method is too simple. If you have a slightest engineering sense,
you can easily see that a simple method is better than a complex
method if both are equally effective. The claim "this method is
bad because it is too simple" makes no sense. In addition, the
proposed method solves a problem that cannot be solved by existing
methods. Therefore, simple or complex is not an issue, and the
reviewer #2's comment is thus nothing but nonsense. Probably,
the reviewer #2 has been working on a similar research topic, and he
was uncomfortable with my paper being published before his. Or,
he might be one of my rivals and didn't want my paper to be published.
Nice try! But, he was unsuccessful in getting rid of my paper
from the conference. I would like to suggest him to spend time
for something productive rather than making such a cowardly attempt.
(Ah, there is also a possibility that the reviewer #2 was simply an
By the way, I flew Cessna 210 from Allegheny County Airport to
Cleveland Burke Lakefront Airport on Saturday. It was the most
complex airplane I've ever flown, and I couldn't fly it without much
help (much more help than when I was flying Cessna 152) from the
instructor. But, it was fun. I'll put some pictures in "My
Flight" section soon.
I've started writing code for the next version of YSFLIGHT planned
to be released this fall. I failed to add Air Racing (again) in
the last upgrade. The toughest part is making an interesting
course. I first need to modify Scenery Editor so that it is
capable of modeling racing courses.
Speaking of the scenery editor, I added a new primitive called
"Gradation Quad Strip," which can make the following visual effect.
Gradation Quad Strip
Gradation Quad Strip
This primitive is implemented by using OpenGL's GL_QUAD_STRIP.
This will make OpenGL version look better, without degrading the
performance of Non-OpenGL version (hopefully.) I also want to
get rid of white dots on the surface and replace them with some
primitive that does not require too much CPU and GPU power.
But, I noticed that the data structure of the map is far from
optimized for OpenGL. Actually, consecutive quadrilaterals with
the same color, like runway center line, can be drawn much quicker by
using GL_QUADS, rather than using separate GL_POLYGONS. I also
have added new types of map primitives so that I can take advantage of
OpenGL's functionalities more (while hopefully maintaining the
performance of Non-OpenGL version.)
The bicycle thing is still going on. I decided to wait while
my attorney is talking with the evil insurance company. But, I'm
thinking about how to fight in the court. Probably, I'm going to
ask two of my friends (both are Ph. D in Mechanical Engineering) for
supporting my accident analysis. They will not receive or lose
any money no matter what the result is. So, their endorsement
By the way, in these days I'm writing some code with MFC (Microsoft
Foundation Class library.) I'm not planning to make it a big
program, but I need to make a nice looking program for selling our
mesh generator. So, I ended up with using MFC.
Honestly speaking, MFC programming requires patience. MFC
does a lot of things that I don't want. They call it
'automation.' I don't want to automate things, if it was really
an automation. I used CDialogBar class for the first time, but I
saw all the buttons on CDialogBar disabled when it popped up.
The first thought came to me was, I need to enable them all before
adding handlers of those buttons. I wasted about half a day to
find that I need to add handlers first to enable them. (MFC
AUTOMATICALLY enables them if I add handlers!) Then, I
wasted another three hours to figure out how to add event handlers to
the buttons on CDialogBar. (I needed to open the dialog template
in Resource View, and double-click the background of the dialog
template to open Class Wizard. If I start Class Wizard from View
menu, ids of the buttons will not be shown.) Crappy design, it
When Visual C++ was version 4.2, I wrote a book about MFC
programming. However, after that I was using Win32API directly.
The reason is simple. It was easier to build my own application
core with Win32API than MFC. MFC is good for an obese
application. However, it is no good for research programs, which
I need to write hundreds of times to test new ideas.
The right way of writing a program is, first you need to write your
own core. Then, you build your application program on top of the
core. You need to design your core easy-to-replace because you
may want to improve your core later. Ideally, your core must be
able to be replaced just by replacing some files.
However, I cannot do it with MFC. I make an application
framework by using App Wizard. For my purpose, I need to use 3D
graphics, so I add OpenGL initialization, viewing control, etc., and
it becomes the core. The problem is event routing table. I
add some event handlers for controlling view by using Class Wizard,
which writes event routing information in the event routing tables in
MainFrm.cpp and ChildView.cpp.
Later, I add application specific functionalities to the core.
Again, Class Wizard adds event routing information in the same tables.
What if I later want to replace the core with an improved one? I
cannot replace the core just by replacing some files. I need to
manually cut & paste event routing information from the old one to the
new one. Imagine you have hundreds of event handlers to manually
cut & paste between the codes. It's going to be a nightmare.
In summary, I don't think MFC is a well-designed toolkit, and want
to stay away as much as possible. Well, if I make up my mind to
share the fate with Microsoft, I can get a little more into MFC
programming, but I don't think the Microsoft's domination lasts
forever. (At the same time, I don't like Linux much, either.
I just use it, but am not into it. In fact I disagree with the
idea of Free Software Foundation. If I'm forced to choose to
join FSF or Microsoft, I'll choose Microsoft. I may write about
it if I have chance some day.) Anyways, it's my job. I'm
going to make this MFC programming as a small project as possible and
will get back to my main research topic.
I'm taking care of some my friend's fish temporarily until he moves
in to his new house. Most of them are tropical fish, but three
of them are catfish. In fact, among all of them I'm making most
fun of catfish. They are usually sitting still at the bottom of
the fish tank, as if they were meditating or deeply thinking about
philosophy. Probably they are just thinking about the next
There are a big one, a medium one, and a small one. The
smallest one does not have its right eye. So, I named it (it's
my friend's though) Masamune, which is the name of a famous
single-eyed samurai lord who governed around Miyagi prefecture
(including the region of Matsushima air base.) A catfish is
called a 'namazu' in Japanese, and the word that stands for medium is
pronounced as 'chu.' So, I named the medium one 'chu-nama' (last
'zu' is omitted,) which sounds exactly like a Japanese word when we
order a medium size beer at a bar. The large one is named as
'Oh-nama' ('oh' means large, as you can guess).
The weather in Pittsburgh is getting warmer and warmer. It is
becoming the season that the ice cold beer tastes really nice
About the bike accident. I met with an attorney whom my
friend introduced to me, and he agreed to talk to the insurance
company (the violent organization with a disguise of an insurance
company, I should say) about this case. He looked so confident
in winning the case. Let's hope he can settle the case.
But, the evil collection agency again sent me a rude letter and
stated that I was responsible and I should pay them. What they
are saying is the same. They are thinking I was riding too close
to the vehicle and I was responsible. Actually, I don't believe
they are really thinking so though. They know I'm not
responsible and are distorting the fact to make money out of an
They also provided photos that the insurance-fraud-criminal woman
said the damage to her vehicle. Major damages are inside the
door, near the rear end of the door at the height of the wheel and at
the height of the shift lever. They are consistent with the
damage to my bike. Hey! The photos are showing I am right!
If the door had been just cracked open as the insurance fraud criminal
stated, how come the front wheel hit inside the door!
With the new photos, I'm convinced that the door must have been at
least 60 degrees open, and I must have been maintaining a safe
distance from the car. Unless otherwise, the front wheel and the
right shift lever cannot hit inside the door simultaneously.
Before seeing these photos, since the collision took place so sudden I
could not tell the exact angle of the door opening and exact distance
(to the left) from the vehicle I was riding, but the photos tells them
all. They can also easily see I am not responsible, and they are
distorting the fact. The worst kind of human beings, they are.
In these days, I see a lot of TV ads of the violent organization
with the disguise of insurance company. I suppose they bled
money from innocent victims and paid for the TV ad campaign.
I e-mailed to the attorney about the offensive letter from the evil
collection agency, and waiting for the advice on what to do next.
I took a day off yesterday and played bowling. There's a
bowling alley right behind the apartment building where I'm living,
and on Wednesday I can play as many games as I want for only $10
between noon to 3pm. Last time I played 15 games in a row, and I
was planning to play about 12 games yesterday, but some part of skin
on my hand, about a quarter inch diameter, peeled off after playing 7
games, and I stopped playing after 8 games.
I play bowling very often, at least once a week. I get about
148 to 150 on average. I've been practicing bowling long, but
the average didn't improve after reaching 150. But, I recently
purchased a new ball, and now I can throw a hook ball like a
professional bowler. Well, I may eventually become a better
bowler after a while.
I received an E-Mail this morning from the chair of the conference
called ACM Solid and Physical Modeling 2005. I'm going to
present a paper there. The e-mail was a reminder saying that I
needed to submit a copyright transfer form. Some conferences
require such a copyright transfer form, and some don't. ACM
Solid and Physical Modeling does require one. But, I was totally
forgetting about it, and I filled the form and faxed it this morning.
The E-Mail also said I needed to submit the final version of the
paper to the publication director. I wondered why because I had
already sent the final version to them. Hadn't they receive my
final version? And, I checked E-Mails I received before this
morning's one. Then I realized that the E-Mail I received six
days ago told that I needed to send the final version to the
publication director, and it had a URL to the PDF file of formatting
instruction for the final version. The problem was that the
formatting instruction described in that PDF was different from the
formatting instruction on the conference web site. I already
formatted my paper based on the instruction on the conference web
I was responsible for not reading that E-Mail for six days, but
giving a different formatting instruction six days before the deadline
seemed to me too a short notice. So, I sent to the publication
director the same final version that I had already sent with a memo
for explaining that I complied with the guideline posted on the
conference web site, and the paper may not compliant to the new
guideline. Later I received an E-Mail from the publication
director, and he said he is ok to wait for a few days. My paper
is saved :-)
My YSFLIGHT server is still up. Today I updated the program.
You'll see version conflict warning, but you can log on. So far
the server never have crashed. It's a good sign. I'm going
to start pre-release test soon, and hopefully I'll make an official
release in April. Again, I couldn't address all the requests,
but please give me time. Thank you very much for your patience.
My YSFLIGHT server has been working with no crash for two and half
days. It probably means that the previous server crash problem
was really just caused by a weapon shot by an airplane killed a target
after the airplane is cleaned up. Or, probably the problem has
gone with another problem when I fixed something. Anyways, I'll
run the server for another 6, 7 days.
By the way, it's nothing to do with YSFLIGHT, but because many of
my friends liked this joke, I post it here. It took place three
or four years ago when I was in the conference called "International
Meshing Roundtable" (in U.S.) On that day, it had parallel
sessions in the afternoon (means more than one sessions were going at
the same time,) and the session I wanted attend was supposed to be in
Ballrom 2B. So, I finished the lunch, and came to the floor that
Ballroom 2B was supposed to be. However, there was no sign in
front of the ballroom entrance. So, I picked a person nearby the
door, and asked:
Is this room 2B or not 2B?
Did you get it? :-) My friend beside me really liked
it. So, if you attend a conference next time, and if your
session is in Room 2B, you can try this one :-)
I met an attorney yesterday. He kindly called that collection
agency and assured that I'm not legally responsible, and the
collection agency has no legal right to harass or even contact me for
collecting money. The collection agency turned out to be an
organization that makes an contract with an insurance company and
receives portion of collected money. So, for an insurance
company, it's a sort of gamble. If the collection agency gets
money, the insurance company gets some. If the collection agency
doesn't get money, the insurance company gets nothing, but loses
nothing, either. Evil and cowardly organization, it is.
Good news is that there's very low possibility for me to take hits
from the collection agency now. But, the attorney also told me
that the only way for me to recover my loss is filing a small claim.
He also said that the magistrate is supposed to be neutral for both
sides. However, in reality, the magistrate may be biased in
favor of U.S. citizen, against an immigrant no matter legal or
illegal. For that problem, he suggested me to take an American
friend with me to the court.
In fact, if I totally win the case, the amount I'll get will be
about $1,000. The amount I might get is not big compared to the
energy I would spend for preparing for the claim. But, they did
such an injustice against me, and I do not feel unless I strike back.
Anyways, I'm going to meet another attorney for a free consultation
next week. I'm going to decide what to do after talking with
I have started YSFLIGHT test version since the last weekend.
I'm in general receiving positive feedbacks on the new additions.
I really appreciate your immediate feedbacks! I'm going to
correct bugs and release a new test version in several days. (I
felt stupid when some of you told me east and west are flipped on the
instrument panel, but internally YSFLIGHT stores heading angle in the
reverse way, and I often confuse by myself and make a mistake
I put one update here about 'peep holes' created by transparent
polygons. It takes enormous computational power to perfectly
eliminate such peep hole, but I can reduce the amount by drawing all
transparent polygons after drawing opaque polygons. But,
although it does not take enormous computational power, it takes a
little more computational power than drawing things in an arbitrary
order. So, I decided to add an option to control the order of
drawing transparent polygons. With the new option on, you can
see below that the peep hole created by A6M5's propeller blade
with the new option on
with the new option off
Please come back to YSFLIGHT.COM for checking updates!
I'm still thinking about the curvature thing. I know I should
buy a textbook of the theory of relativity and read it from chapter 1,
but so far I haven't had time to do so.
By the way, the bike accident I was involved in last year has still
not been resolved. The driver told lies to me and to her
insurance company. Now she is an insurance fraud criminal.
I cooperated with the insurance company, and I provided to the
insurance company with accurate description of the accident.
However, the insurance company chose to neglected my reports and
promote insurance fraud.
What happened was simple. The driver paid inadequate, if not
none, attention to the rear of the car before opening the driver's
side door when I was about to pass the side of the car, and I didn't
have time to react before colliding into the door. I surely
didn't have a stopwatch to measure how the time between the door
opening and the collision, but it seemed to me less than a second.
In contrary, the evil driver's story is as follows. The door
had been open for at least five seconds before the collision.
The door was just cracked open, and I collided into the door because I
was driving too close to the parked vehicle. So, that evil
driver says I did not take evasive action to avoid the door that had
been open for long time, and I was driving too close to the parked
vehicle. For what reason? How can the insurance company
believe this story! Do they think I was riding my bicycle with
my eyes closed? You can easily see which story is true.
Furthermore, the damage to my bicycle doesn't match the evil
driver's story at all. The bending of the fork indicates that
the door had to be open at least half the width of the bicycle.
And, right shift lever on the handle bar was shattered due to the
impact, indicating that the right shift lever had hit the door (I
guess window.) The door needed to be open roughly 45 to 60
degree, and I had to have considerable distance from the parked
vehicle to have the right shift lever hit the door. However, the
evil insurance company chose to close their eyes from this physical
And, early this month they shamelessly hired a collection agency
and sent a bill of $1,500 to me. Now it is clear that the
insurance company is such an evil organization that promotes insurance
fraud and makes profits from an accident victim.
Of course, I have no intention to pay. It seems that it is
inevitable to go to the small claims court to resolve this issue.
Now I'm seeking all possible helps from my friends. I need to
prepare well to get familiar with the process before filing a lawsuit.
The enemies are an evil driver and an evil organization that promotes
insurance fraud and lives on blood of accident victims.
But, can I receive a fair trial? Recent atmosphere in the
U.S. is against the immigrants. The evil driver is so shameless
and do not have a feeling of guilt for telling lies. Does anyone
investigate if the evil driver make up a false evidence, like hiring
someone to be a false witness?
For the meanwhile, I need to prepare for the battle.
It's been unusually warm in Pittsburgh for several days. It
had been incredibly cold before that. So, this warm weather can
be a backlash of the cold weather. It's not very scientific
I watched the movie "The Aviator" with my wife yesterday. TWA
and Hughes aircraft companies face bankruptcy in the movie, but I knew
both of them didn't bankrupt. So, I could enjoy the movie
without worrying about a bad ending. Also I saw several
aircrafts that I often see in the Discovery Wings Channel (now the
Military Channel.) It's a fun movie that I can recommend.
By the way, I've been working on a curvature estimation technique
for a polygonal surface in my research. Many researches have
been done for this topic, however, most of them work only for a
uniform, high quality, triangular or quadrilateral mesh, and do not
work for a general polygonal surface. For my purpose, I needed
curvature estimation for generating a nice triangular or quadrilateral
mesh. It's just like chicken and egg. I needed a nice
curvature estimation for generating a nice mesh, but I needed a nice
mesh to estimate curvature. To cut this chicken-egg chain, I
needed to develop a curvature estimation technique that works for a
general polygonal surface. Now, the technique that I developed
is giving me very nice results. I'll publish this technique
During I was working on the new curvature estimation technique, I
got some kind of image of the curvature of space discussed in the
general theory of relativity. If you have ever read an article
about the theory of relativity, you may have seen a rubber plate
analogy for explaining the curvature of space. I've been trying
to understand what it means. I was thinking that the curvature
of space is something like bent coordinate axes, however, in this bent
axes model the light either go straight or fall into a blackhole, and
never be bent like a curve. So, I knew I was wrong. But,
now I came up with a different model that allows a light to turn in a
gravitational field. But, a problem of my new model is that if
there were negative gravity, the light still turns toward the center
of gravity. So, my understanding may still be wrong. But,
there's no negative gravity in the real world, I suppose. So, I
may not have to worry about such thing. I think this time I can
visualize my new model by using computer graphics. I'm going to
write a program and will ask a physics student whether my
understanding is right or wrong.
YSFLIGHT.COM welcomed the 1,000,000th visitor today. It
doesn't mean one million people have visited this web site because the
same person can visit more than once. Nonetheless, certainly a
lot of people have visited this web site. Initially, this site
had started for supplying technical support for the book "3D Graphics
SDK Blue Impulse," which I published from
ASCII. The URL of the site
was http://tristar.sfc.keio.ac.jp/~ys11 then. This URL does not
exist any longer. According to my memo, I started the counter on
September 5th, 1998. I was already in Pittsburgh then, and I
could not continue using a server under the sfc.keio.ac.jp domain
because I quitted the doctoral program of Keio University and came to
Carnegie Mellon. So, I moved the contents to Member's Homepage
service of a Japanese Internet service provider called Nifty-Serve,
and started the access counter. In September 1998, I was
furiously studying for passing the Ph.D Qualifying Exam in the
Mechanical Engineering Department (I studied computer science in Keio
University. So, mechanical engineering was a totally new field
to me!), and writing programs and maintaining web site were my
projects for taking a break (or escaping from reality).
Now YSFLIGHT, which used to be one of the escaping-from-reality
projects, has become the main content of this web site, the URL has
changed to http://www.ysflight.com,
and Nifty-Serve has become @Nifty,
As far as I believe, people from at least 29 different countries
have visited this web site. Maintaining both Japanese and
English pages takes more than twice as long time as maintaining just
Japanese page. However, I think my effort paid (and is still
paying) off. It's so much a fun to see my program used in so
many different countries by so many people! I believe
ysflight.com is a big success for a web page maintained by just one
I'll continue updating this web site. Thank you very much for
your support! Please visit this web site again!
I have implemented movable Bomb-Bay Door in
YSFLIGHT. I'm still struggling to find time to implement
air-racing, but eventually I find time. The reason why I can
continue YSFLIGHT project is that I never sacrificed my real job in
favor of YSFLIGHT development, and I've been busy for couple of months
and couldn't take much time to add features in YSFLIGHT. Let's
see how much I can do till the next release. I'm going to post
some additional screenshots in the
By the way, I believe many of you are thinking
YSFLIGHT is the longest program I have ever written. However, in
reality I'm writing probably more than 10 times longer program for my
real job. And, yesterday I had to compile my code in Linux
environment. I thought it shouldn't take too much time, but I
ended up with receiving tons of error messages from the compiler.
Apparently, the newest version of g++ didn't like my way of writing
template classes. So, I have written a short test code to see if
my guess was right. (Test code is shown below.)
template <class T>
template <class T>
class B : public A <T>
void Set(const T &x);
const T &Get(void);
template <class T>
void B <T>::Set(const T &x)
template <class T>
const T &B <T>::Get(void)
B <int> b;
I could compile this code with an older version
g++ (3.2) with no error, and I don't see any ambiguity in it.
However, when I tried to compile this code with g++ version 3.4, I got
errors. To fix the problem, I had to modify the program as
template <class T>
template <class T>
class B : public A <T>
void Set(const T &x);
const T &Get(void);
template <class T>
void B <T>::Set(const T &x)
template <class T>
const T &B <T>::Get(void)
return A <T>::test;
B <int> b;
Blaming the compiler is the last thing that programmer should
do. But, this time I doubted if it was an intended change in the
new version of g++. It looked more like a bug in the compiler.
However, later it turned out that it actually IS an intended change (http://www.gnu.org/software/gcc/gcc-3.4/changes.html)
for disambiguating dependent names. I think it's a bad move.
Clearly, there is no ambiguity in the above test code, and the
compiler should be able to compile it. Such ambiguities that
this change intends to eliminate can be detected by the compiler, if
exists, and the compiler can give an error or a warning only when it
detects such an ambiguity. I'm pretty sure that the people who
are building C++ specification, and who are writing g++ are smart
people. But, this example shows that too many smart people often
come up with a bad conclusion. Anyways, this stupid change in
the compiler costed my precious couple of hours for adding redundant
type-specifiers in my code.