ysflight.com - From Author

08/10/2005

Victory!

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 defendants.

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 anything."

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 unlikely though.

<- Should I pay attention to the pedestrian?  Or should I search for a partially hidden handicapped parking sign? (Click to enlarge)

06/18/2005

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 it?

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.

05/24/2005

A good news from Japan.  Airock Aerobatic team announced that they are going to resume flight!

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 industry.

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 luck!

05/09/2005

The paper submitted to the conference called International Meshing Roundtable (http://www.imr.sandia.gov) 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 idiot.)

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.

Without Gradation Quad Strip

With 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.)

05/05/2005

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 may count.

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 is.

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.

04/15/2005

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 feeding. 

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  :-)

"Oh-nama"

"Chu-nama" and "Masamune"

03/29/2005

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 innocent victim.

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.

03/24/2005

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 site.

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.

03/21/2005

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 :-)

03/08/2005

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 him.

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  :-P)

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 disappears.

<- with the new option on

<- with the new option off

Please come back to YSFLIGHT.COM for checking updates!

02/21/2005

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 evidence.

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.

02/07/2005

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 though :-P

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 soon.

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.

01/15/2005

1,000,000th Visitor!

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 individual.

I'll continue updating this web site.  Thank you very much for your support!  Please visit this web site again!

01/12/2005

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 tech-support page soon.

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.)

#include <stdio.h>

template <class T>
class A
{
    public:
    T test;
};

template <class T>
class B : public A <T>
{
public:
    void Set(const T &x);
    const T &Get(void);
};

template <class T>
void B <T>::Set(const T &x)
{
    test=x;
}

template <class T>
const T &B <T>::Get(void)
{
    return test;
}

int main(void)
{
    B <int> b;
    b.Set(12345);
    printf("%d\n",b.Get());
    return 0;
}

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 follows. 


#include <stdio.h>

template <class T>
class A
{
    public:
    T test;
};

template <class T>
class B : public A <T>
{
public:
    void Set(const T &x);
    const T &Get(void);
};

template <class T>
void B <T>::Set(const T &x)
{
    A <T>::test=x;
}

template <class T>
const T &B <T>::Get(void)
{
    return A <T>::test;
}

int main(void)
{
    B <int> b;
    b.Set(12345);
    printf("%d\n",b.Get());
    return 0;
}

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.

Comments are welcome.  Send E-Mail to: 

RETURN TO TOP PAGE

This page is link free, but please link to http://www.ysflight.com.  Please use one of following banners.