ysflight.com - From Author

Old Articles => [2014] [2013] [2012] [2011] [2010] [2009] [2008] [2007] [2006] [2005] [2004]

YS FLIGHT SIMULATOR Ver. 20150425 (for Windows, Mac, and Linux)

Polygon Crest 20150329


Thank you for visiting YSFLIGHT.COM during year 2015.  Please click here for the posts from year 2016.




End of the Medical Nightmare

Finally!  My medical nightmare is over.

I thought I passed my medical exam.  But, about two weeks later, I received a letter from FAA stating that FAA hadn't received necessary information and could not approve my medical certificate.  The letter was also saying, it was not a denial, but would be denied unless FAA receives all necessary information within 60 days of the letter date.

(Read more)


Back to the Sky!!!

Since I flew late August, I haven't flown as a Pilot-In-Command for two months.  I flew with an instructor once.  That was it.

My previous 3rd-class medical certificate expired end of October, and I had to renew it.  Because I had kidney stones in the past, I needed to submit to my aviation medical examiner (AME) a letter from my urologist saying I am safe to fly and an X-ray report.

I had an X-ray taken early August, and my urologist told I didn't have a stone.  That was going to be easy.  I had a clean X-ray, all I needed to get was a letter from my urologist.  That's what I thought, and never expected that was the beginning of a 3-months quest to get a new medical certificate.

(Read more)


YSFLIGHT for MacOSX 10.11

OK.  I initially thought the changes in the new Mac OSX wouldn't affect YSFLIGHT.  But, it did actually.  I tentatively uploaded the package that at least worked in OSX 10.11 on my 2008 MacBook Pro.  You can download from the following link:

[YSFLIGHT for OSX 10.11]

I thought that YSFLIGHT should be ok because the OpenGL settings are reset when switching modes in the program.  Actually I was building GLSL program only once immediately after opening the window :-P


Small change of NSOpenGLView behavior in Mac OSX El Capitan

In summary, the behavior of NSOpenGLView at the creation has changed a little bit.  In OSX Yosemite and earlier, if you programatically create a sub-class of NSOpenGLView, you could call OpenGL functions right away.  An OpenGL context was ready to go as soon as you create an instance of your NSOpenGLView-derived class.

However, in El Capitan, it looks like the OpenGL context is create asynchronously.  OpenGL context of NSOpenGLView apparently is not ready until the framework calls prepareOpenGL method.  If you are setting up some OpenGL parameters right after creating the view, those settings may be ignored.

That was a surprise.  One of my students notified me that the OpenGL framework that I wrote and have been using in my C++ programming course stopped working when he (she?) upgraded the operating system to OSX El Capitan.

I am still using my Mac mini with Yosemite.  Honestly I wanted to use it with Mavericks, but this Mac mini came with Yosemite, and I could not downgrade.

(Read more


I am writing a research paper for the first time in a few years.  I came up with a solution to one of the problems that have been haunting me since I was a Ph. D student.  I have tested this technique with various models, and the results were very good.  I think it will be a good contribution.  Since there is no deadline for a conference presentation in this season, I will submit it to a journal.

The fall semester has started.  I am writing a paper, teaching a C++ programming course twice a week, coding for totally unrelated project (unrelated to my research interest), working for two projects, and eating and sleeping.  If I purchase Dragon Quest 7 for iOS now, the work load will probably be life threatening.  So, I postpone DQ7 for the time being.

By the way, I am also working on replacing the DNM data structure in YSFLIGHT code.  The visible change will be, minor, but I can define a constraint edge between parts like where a wing is connected to the fuselage, and specify non-smooth shading along the constraint edge.  Then, the border between the wing and the fuselage won't be blurred while the rendering is smooth within the part.  This change is a part of the effort to prepare data structure for rendering as independent of rendering APIs as possible.  This change will make it easier for me to adapt new rendering APIs if necessary.  One of the problems of the current rendering API is it has too much influence on the data structure.  It almost dictates the entire data structure.  It is wrong, but it is reality.

Microsoft finally disabled the masterpiece Microsoft Flight Simulator 2004 in Windows 2010.  Sooner or later Microsoft will stop Flight Simulator X activation server citing the end of support cycle.  That will be the end of Microsoft Flight Simulator.  So sad.  MSFS 2004 helped me getting my instrument rating and commercial.  Although the feeling in the cockpit won't be real, it was very good for practicing procedures.  I seriously think that one of the current biggest problems is code rotting.  Software venders throw away a product too casually.  Will they eventually start throwing away humans?  I personally believe that if someone doesn't respect his/her tools and products and eveything surrounding, he/she won't respect people, either.  YSFLIGHT is different.  I am determined to keep it flyable as long as I can.

So, I am as busy as regular fall semesters.  The problem is I didn't get any promotion or salary-increase as regular fall semesters.  I don't have to be promoted, but the problem is I am not getting any pay increase more than the inflation ratio.  I recently came to think that it is important to understand programming.  But, if you love programming, you may not get promoted.  I think I am stuck at this position because I write programs by myself.  Those who go higher have someone else write programs for them.

I end up writing programs by myself because that's what I love to do.  However, if I do so, I don't have time to go and find research funding.  At least I am not fired, but my salary stays the same.  I thought this while I was writing a code for line-interpolating and polygon-painting on a bitmap .  I wrote the same code looooooong time ago.  I guess these techniques are becoming a lost technology.  You rarely need to write your own polygon-painting function any more.  I could have excavated my decade-old C code and modified a little bit for this use, but I wrote fresh because I thought that's easy enough to implement in a short time.  And, I did it in a short time.

In fact, I am just a research associate, and not a tenure-track professor.  Nobody listen to me seriously when I propose a research project.  I noticed it too late.  Did it make a difference if I had noticed it five years ago?  First of all, I have never trained to write a research proposal nor to get research funding.  Only genius can do something without training.  I am confident that I am a hard worker with determination.  But, I am also confident that I am NOT a genius.  I was invited to some projects that do not come with research funding.  But I had to prioritize projects with budget.  I ended up fading out of those projects.  I feel sorry for those who let me join the project, but what can I do?

Actually, I cannot get too negative here.  I know some students who are taking my programming course is monitoring this web site.  Don't worry.  I don't think you will become like me.  Certainly you won't try to write polygon-painting function from scratch by yourself.  You are safe.  But, understanding programming benefits everyone, and the best way to understand programming is to write more programms.  That's I can guarantee for sure.

Nonetheless, the best thing I liked about my current position was freedom of time.  I could get a paid time off on a nice-weather day, drive one hour, and hop on a Cessna 172.  But, I haven't flown for more than a month.

I need to renew my airman's medical certificate.  But, to do so, I need to get a letter from my urologist stating that I am safe to fly, because I have a history of kidney stones.  I was declared stone free last August, and I met with him again this August for check up.  He said I didn't have a stone this time again.  Yes!  My regular exercise, drinking water more than I wanted, avoiding spinach and nuts (which I used to love), and taking potassium-citrate supplement paid off!  I thought so.  So, I told what I heard to my Aviation Medical Examiner's nurse and sent X-ray reports.  She came back and said I do have stones, and I ended up arguing back and forth.

What turned out was that FAA's medical certificate standard is out of date.  X-ray and CT resolution is much higher than before, and can now detect stones that used to be too small to detect.  My urologist positively confirmed that my stones are way too small to cause any pain even if it passes through the urethra.  So, my urologist meant that I am free of stones that may cause pain.  However, outdated FAA's standard requires a pilot either (a) to have no stone at all, or (b) stones are small and located at the position that it won't migrate and cause pain.  Again, my urologist is positive that my stones are too small to be of any harm.  In fact, when I said it to the AME's nurse, she laughed at me on the phone and just made me more miserable.

Sound ridiculous to you?  It is!  Aircraft Owners and Pilot Association (AOPA) is pushing hard a legislation that allows a pilot to fly a small airplane for non-commercial purposes without having a medical certificate.  It is on the table, but the dysfuntional congress and senate cannot push it through.  It doesn't seem to materialize at least in several months.

I am not starving.  I am able to pay bills.  I have no debts.  But, if I cannot fly, freedom of time is nothing.  With my current salary, I cannot even buy a house.

But, my urologist confirmed that my stones are less than 0.5mm and located in the lower part of my kidney, means unlikely to spontaneously migrate and cause incapacitating pain.  It is supposed to match the criteria that FAA is looking for.  So, I have a good prospect of getting my medical renewed.

I was always thinking it might be my last flight whenever I take off.  I am not talking about an accident.  There are too many reasons that I won't be able to continue flying.  Absurd medical requirement is one of them.  Money could also be one reason.  Being able to fly an airplane have been just feeling too good to be true.  I always was wondering if it lasts forever.  I always thanked the airplane and people who were keeping the airplane airworthy and who are running the air-traffic system.  I am sure this feeling will be re-inforced when I get my medical renewed.

Well, I cannot relax until I really get my medical renewed.

By the way, I joined a more seriousl bowling league.  It is not because I haven't been able to fly for over a month.  It has been something I wanted.  It is so fun!  It is a league of 5-men teams.  So, 10 bowlers share two lanes every week.  Everyone spins the ball like a pro and grinds off the oil on the lane so quickly.  The lane condition was so much nicer than Forward Lanes at the beginning.  For the last five weeks, the conditions of the left and right lanes were so equal.  I didn't have to stand four board different for the two lanes.  But after 7 frames, my ball started hooking too much.  I cannot throw a fast ball.  I cannot compensate for the dry condition by changing the speed.  But, after three weeks of struggle, I found that the oil is galore in the middle of the lane because nobody throws a straight ball.  All I need to do is throw my ball more to the left.  Then my ball goes almost straight until the very last moment of impact.  My average in the first three weeks was like 170ish, but I had 195ish in the last two weeks.  I hope I can continue this trend.  Also this league is a sanctioned league.  For the first time, I have a USBC official score!  (Here is my official score)

Maybe I should give up my research career and start a professional bowling career.  I learned it is called "mid-life crisis" in English.  No, I won't.  My average is way way way too low to be a professional anyway.  I am in the lowest-average group in this league  :-P

2015/09/05-07 Cleveland Air Show

Quest for the Poster-Perfect Picture of the Thunderbirds' Delta Formation

I have visited Cleveland Air Show at Cleveland Burke Lakefront Airport during the Labor-Day weekend.  This year, the weather was perfect for all three days.  I typically drive there only one or two of three days of the air show, but this time the sky was too clear to miss.  I made three round trips from Pittsburgh to Cleveland.

The Thunderbirds were not in the air-show ramp.  Sometimes the military jet team takes off from Cleveland Hopkins International airport, about 10nm south west, instead of taking off from the air-show site.  Was it just Thunderbirds always take off from Hopkins?  I checked my past pictures, and realized that Thunderbirds take off from Hopkins and Blue Angels take off from the air-show site.

But, there is a rare photo opporunity when Thunderbirds fly a remote show.  I have seen Thunderbirds, Blue Angels, and Blue Impulse, all of which fly six airplanes, many times in the past.  However, I don't have a good picture of a delta formation with clear blue sky as background, all pilots' helmets visible, airplanes nicely lit, perfectly focused, and no motion blur.  The reason is simple.  In a regular show, the delta formation never fly close to the spectator area.  They start Delta Roll from very far away from the spectator area, and they are too far away when it comes to a nice angle from the show center.  No matter how long focal lenth you use, you cannot beat fluctuation of the air.  The picture becomes blurrly or obscured by the haze.  They start Delta Loop from somewhat high altitude (300 to 500ft?) and start pulling up before reaching the show center.  I can only see the belly of the airplanes.  When it comes down, well there is a chance, somewhat, but heat haze is a problem.  The best chance is when they fly a low show or a flat show.  But, low and flat shows are for when the weather condition does not permit high-altitude maneuvers, then it is unlikely to have a clear blue sky.  As a result, I have never been able to take a perfect picture of the delta formation that I want to make a poster out of.

However, when Thunderbirds starts a remote show, they fly in from behind of the spectator area in the delta formation, and two solos breaks left and right about directly above the show center.  So, if I aim the formation from the west of the show center, I have a very good chance of taking a good picture of the formation from the close proximity (means little adverse effect from the heat haze) perfectly lit by the sun behind myself.  All I need is a clear blue sky, which was forecasted for all three days.  I set my goal of this Cleveland air show as taking a perfect poster-quality photo of the Thunderbirds Delta formation.

(Read more....)


Greene County, Marshall County, and Finleyville Airports - General Aviation Airports around Pittsburgh

I have recently visited Greene County and Marshall County airports.

Greene County Airport

Marshall County Airport

Finleyville Airport

Aborted Niagara-Falls flight

My mother visited Pittsburgh from Japan mid May.  I planned a sight-seeing flight over Niagara falls from Beaver County.

I have flown to Niagara Falls only once before.  That time, I flew to Niagara-Falls airport, and my friend flew over the falls and the return flight.  So, I have never flown over the falls before.  I scheduled a dry-run.

I took my wife and her boss for the dry-run.  The weather was absolutely perfect.  Unrestricted visibility with smooth air.  Nonetheless, I took off on an IFR flight plan.  I like to fly on IFR flight plan whenever I fly a cross-country.

(Read more)



Dayton Air Show 2015

I have visited Dayton Air Show on 6/20 and 6/21.  We drove from Pittsburgh to Columbus OH.  Had a lunch break in Belle's Bread at Kenny Center Mall, and headed to the hotel in Springfield.

The weather was the worst.  A strong high pressure was centered over Florida, around which clock-wise air flow was delivering hot humid air mass from the Gulf of Mexico all the way to Indiana, Ohio, and Pennsylvania.  On top of it, a tropical storm system was just passing through western Ohio, exactly where Dayton airport is located, on the day 1 of the air show.

The local TV station was nonetheless predicting the weather to clear up into the afternoon.  The aviation weather forecast called Terminal Aerodrome Forecast at 7:21AM was also predicting scattered cloud at 1200ft above ground, and overcast layer 12000ft above ground from noon.

(Read more)


Japan Tour 2015

I was in Japan late May to early June.  I was able to visit Miho air show during the trip.  The aerobatic flight of Blue Impulse was fantastic!

After coming back to Pittsburgh, I was working on Dragon Quest 6 for iOS.  Also we visited Dayton air show.  Sorry for no update for a month.  I started on 6/11 and finally finished it including the hidden dungeon.

Photos from Miho Air Show 2015


YS FLIGHT SIMULATOR 20150425 Ready for Download!

Actually, the files were available a few days ago, but I was too busy to post the announcement.

As always, I thank all users who sent me bug reports and comments for the test version.  I really appreciate your help!

The major update (other than bug fixes) are as follows:

- Realistic propeller simulation in some airplanes
- F-22 can perform post-stall maneuvers
- Phong Shading in OpenGL 2.0 version
- Can specify smoke color per generator
- Added gLand, Refuel, and Take Offh radio command
- Added gSpread formationh and gTighten formationh radio commands
- Fixed: The user can fly after the previously-flown airplane.  This function was accidentally disabled in the previous version.

Polygon Crest 20150329 Ready for Download!

Actually, this update was already available for a while.  I've just forgot announcing it. 


While flying this morning, the camera mount for the instrument-looking camera broke and fell on my lap while I was flying today.  I first thought it was just a weak suction.  But, it turned out that the rubber part of the suction cup cracked and was torn off.  I had been using this mount for long time.  Maybe it was about time.

I made this suction mount by drilling a hole on a automobile windshield mount for Garmin GPS units, and tying a tripod head on a L-bracket with cable ties.  I have tried a few suction mounts and concluded that the Garmin-original suction mount is the best.  The cheap alternatives sticks on flat and clean surfaces, but the car and airplane windows are curved.  Also it is not clean.  The cheap alternatives I have tested could stay on my apartment window if I wipe the window with alchole but did not stick on car windshield and windshield of Cessna 172.

(Read more)

Sticky surface of Garmin-original suction mount (Left) and a cheap fake copy (Right).
The Garmin-original product's surface is obviously smooth, glossy, and shiny.

On VOR21 approach at Wheeling (KHLG)


YSFLIGHT Pre-Release Test 50% in progress

Sorry for taking longer than I was hoping.  YSFLIGHT Pre-Release test is like 50% completed.  But, it's moving forward.  50% more to go!

General Aviation Airports around Pittsburgh - McVille (6P7)

I took off Beaver County airport, flew over North Park Lake, where a group of Japanese living in Pittsburgh have been planting cherry trees, then visited an airport called McVille (6P7).  This McVille airport has a 2800ft-long runway, which I am not allowed to land due to my rental agreement.  I shot a low approach instead.

Unlocking Sierra Wireless 754S (aka AT&T Mobile Hotspot Elevate 4G)

I was using AT&T Sierra Wireless 754S, also known as Mobile Hotspot Elevate 4G, until I purchased my iPhone 5S last July.  The unit has been disconnected since then.  But, it came to my mind that the device may be useful if I unlock it.  I can lend it to a short time visitor, for example.  We often have a visiting scholar from Japan.  A network connection is always an issue.  I can lend this device to a visiting scholar, and he/she can buy a pre-paid SIM card.

The process of unlocking was, however, not straight forward because of multiple reasons.  First AT&T database apparently forgot about my device, and then the unlocking instruction I received from AT&T was full of errors.  But, I was able to unlock it successfully.  If you are in the same situation, this information might help.

(Read more)

AT&T Elevate 4G connected to T-Mobile network


General Aviation Airports around Pittsburgh - Monroeville (4G0), Greensburg (5G8)

For my personal project - visiting all small public general-aviation airports around Pittsburgh - I have flown to Monroeville (4G0) and Greensburg Jeannette Regional (5G8).  Both airports have a runway shorter than 3,000ft, and I am not allowed to land due to the rental agreement.  I just did low approach without landing.

Monroeville (4G0)

Greensburg Jeannette Regional (5G8)


Updated Joystick-Reading Library and Calibration Tool

I have updated Joystick-Reading Library and Calibration Tool for Mac OSX.  I receive comments and questions once every a few months, so I suppose this piece of code is of someone's help.

Changes are: (1) Compiled with XCode 6.  Apparently the code compiled with XCode 3 doesn't run on OSX Yossemite.  I couldn't confirm.  (2) The library won't mistake Microsoft Keyboard as a joystick.  (3) the build environment uses CMake.

You can download the library and the calibration tool from this link.


Eternally-Sleeping Monitor Problem is gone for unknown reason

Now my Mac mini's monitor automatically wakes up when I press a key or move the mouse. But, why?  I have applied OSX update only once when I first put my Mac mini online.  I don't think I saw any more updates since then.  I first experienced the problem after the first update if I remember correctly.  I have no idea why the problem is gone now.  It is good that I don't have the problem any more, but it is also a bit creepy.


Mac mini has arrived!

My Mac mini has arrived earlier than originally scheduled.  I was suspecting that the original schedule that Apple gave me was very conservative.  I was expecting an early arrival.

My 2008 MacBook Pro served me very well.  It will spend its rest of the life as a Power Point presentation machine.

So I wanted to set up my new Mac mini to jump start, but ....

(Read more...)


Microsoft has (finally!) released a Windows Update for Windows Update KB3033889

My office mate has also experienced an issue that Windows 8.1+Japanese IME+KB3033889 combination kills Windows Explorer.  Probably KB3033889 temporarily disabled thousands of PCs running Japanese Windows 8.1.  Microsoft has finally released a Windows Update for Windows Update KB3033889.  https://support.microsoft.com/en-us/kb/3048778  The explanation implies that the problem was only for Japanese environment.  My ThinkPad was giving me this problem for almost about a week.  I was worried Microsoft has no intention of fixing it, but it looks to be functional again.


Writing YSFLIGHT Packaging script in Python, at least I am trying.

It's taking infinity.  I need to go through pre-release tests and make it an official stable version.  To do so, I was in the middle of re-writing packaging scripts, which used to be batch files and shell scripts, in Python.

I don't like Python much.  I feel more secure when I am writing in C++ because compiler helps me catching errors, while Python interpreter does not.  I almost tried to re-write packaging scripts in C++, but I decided to take this opportunity to learn more about Python.  Although I don't like it, it is way better than shell scripts and batch files after all.

Now Python-version of YSFLIGHT Packaging Script is good for Windows and Linux.  I need to make small modification for MacOSX.  I booted my 2008 MacBookPro into MacOSX Mavericks, and started VirtualBox so that I can use my favorite text editor.  Then Windows 8.1 in the VirtualBox started updating, which took 20 minutes.  Then MacOSX had an update, so I started it, which took another 20 minutes.  I then thought I finally could do something useful.  I started VirtualBox, and Windows 8.1 took another 20 minutes to complete the update.  I gave up and went to bed last night.

I can't wait to receive my new Mac mini.


Windows Update did it again!

The complexity of software is magnitude different from several years ago.  It is impossible to get rid of all errors before shipping to the users.  It is understandable.  That said, giving up reducing errors before releasing a product is not a right attitude.  Especially, Microsoft, with army of (supposedly) excellent programmers should exert all the efforts to perfect the product.  However, Windows gets worse and worse with new releases.  I don't know if they have any intention to fix a bug that "freeform" of Word and Excel does not snap to the grid.  Microsoft is losing users not because they failed to catch the trend of smart phones and tablets, but because the product quality is rotting, I think.

Maybe because they are ok with releasing dysfunctional products, now the quality of Windows Update, which is supposed to fix the errors, is also so bad that some of them actually inject new errors.  I have never been affected such an 'malicious' Windows Update until recently, but looks like I was hit by one this time.

I reluctantly installed and have been using Windows 8.1 on my ThinkPad, and if you have applied March 2015 Windows Update, your Windows Explorer (not Internet Explorer) may freeze, crash, or becomes extremely slow.

http://freesoft.tvbok.com/cat97/2015-2016/2015_03_windows_update.html  (Japanese page. This page reports that the problem is due to the combination of KB3033889 and IME=a mechanism for typing non-English letters.  So, if you are using only English in your Windows, you probably are safe.)

Microsoft hasn't so far fixed or acknowledged the problem.  My ThinkPad stopped responding several times in the past a few days.  Looks like this time I stepped on the Windows Update landmine.

It seems that uninstalling KB3033889 fixes this problem, but here's my weak solution.  By signing out and signing in again, Explorer process is once terminated and restarted, and the Windows becomes responsive again.  I seem to need to sign off and on many times until Microsoft releases a Windows Update of Windows Update.

Long Road for Buying a Mac mini

Although I am working as pretty much a programmer and am also running my hobby programming projects, I am not spending too much money for buying a computer hardware.  At least I am trying to minimize the cost for buying hard ware.  If I have some money to spare, I would rather rent a Cessna and fly.

I bought my 2008 MacBook Pro five years ago second hand.  I have been using it as a main development machine, sort of.  I was mostly using it with bootcamp Windows 7 until recently.  But, a few weeks ago, I changed my mind and started using primarily with Mac OSX.  After some struggles, I set it up so that I could open and edit my source files with my favorite text editor running on VirtualBox from Mac OSX terminal.  It became somewhat usable.

But, it was already way too slower than today's standard.  What's ironic was Mac OSX 10.9 runs extremely slow on 2008 MacBook Pro.  Although it is Apple computer, Windows 7 was much more comfortable.  Either way, its maximum memory was 6GB (it can be increased to 8GB, but it adds some difficulties in case of full OS re-installation, and there were reports that the system gets even slower when the RAM usage hits 6GB border).  Running one 32-bit Windows guest virtual machine was maximum.  Running two VMs was unthinkable on this computer.

My original plan was to use it for 5 years, and 5 years was about to pass.  I decided to upgrade to a new computer.

I am ending up with working from home overtime (for which I'm not paid) in the fall semester for preparing lectures, grading quizzes, and making assignments.  I wish the department pays some fraction of it.  But, that doesn't happen anyway.  I was thinking which model to pick.  Since I want to keep my programs cross platform, I need a Mac.  If possible, a quad-core model.  I would never utilize all four cores?  I do when I am compiling my programs.  If it were in 2012, I would pick a quad-core Mac mini.  But, Apple dropped the quad-core Mac mini, ignoring outcry from many developers.  Since it is a replacement for 15-inch MacBook Pro, how about buying the newest 15-inch MacBook Pro?  It costs almost 80% of the total money I spent for renting a Cessna 172 last year.  It is ridiculously expensive that a poor university employee cannot afford.  I had a horror experience a while ago, my ThinkPad X230T stopped booting with logic-board error, which was cleared after I displaced some internal wires.  It would be nice to have a back-up laptop to be ready for the next ThinkPad failure.  I leaned toward 13-inch MacBook Pro seriously.  But, I have recently upgraded my ThinkPad with a SSD.  Also it got a new battery.  Investing for another laptop does not seem to be correct from economy point of view.  Non-Retina iMac would give me a quad-core CPU, but it will be a $2,000 course, and the single-core performance will be 10% less than the high-end Mac mini.  I would rather go for a 13-inch MacBook Pro than a non-retina iMac.  But, if I go for 13-inch MacBook Pro, it has a dual-core CPU anyway.  If I give up a qud-core CPU, I have little reason not to go for Mac mini, which is much more affordable.  It is for replacing a 2008 MacBook Pro which I was using pretty much as a stationary computer.  I made a decision.  Mac mini with 16GB RAM and 3.0GHz Core-i7 upgrade.

On Thursday, I left home and headed for a nearby Apple store to place an order.  I could place an order online from home, but after having my credit-card number stolen twice in the last 24 months, I am avoiding to transmit a credit-card number as much as possible.  I knew that the first incident was from the Target data breach.  But, the second one is from the unknown attack.  That made me very cautious.  Having a credit-card swiped feels a little more secure than transmitting a number over the internet, which may be just a false feeling.  But, if the payment system of Apple store is compromised, it would hit a big national news, and I will know where my number is stolen.

Also before going to the Apple store, I stopped at a car wash.  Here in Pittsburgh, the city scatters enormous amount of salt to melt the snow in winter.  Cars gets dirty with the water splash mixed with the salt.  I need to wash the salt away before the car body starts rusting.  But, it doesn't make sense to wash a car before the winter is over, because the car gets dirty again while returning from the car-wash.  The weather finally became warmer and there is no snow in the 10-day forecast.  It was a good time to wash my car.

Everything was normal.  I had no idea what was waiting for me when I left my home.

It was supposed to be just 30 minutes trip, and was not supposed to be a big quest.  But, I had the first ordeal at the gas station where the car-washing machine is located.  When I arrived at the station, a white car cut in front of me and slid into the line before me.  The car was driven by a totally unqualified driver, an elderly man, whose driver's license must be revoked before he kills someone else.  He apparently didn't even look at me when he cut in front of me.  That was a bad sign of what was going to unfold.

He first could not come close to the payment machine.  He was waiting for an employee to come and put his money into the machine.  After one or two minutes of unnecessary wait, an employee noticed that a white car was waiting and came out to put his money into the machine and select the car-wash type.  Then, all he, the driver, needed to do was driving into position, set to the neutral gear, keep hands off of the wheel, and release the brake.  The machine was going to tow his car by the left front tire through the car-washing machine.  That's it.

The elderly man, however, did not apparently understand what the neutral gear was.  The employee was shouting "Neutral!  Neutral!" to the man, who didn't understand at all.  I don't think who doesn't understand the neutral gear should be allowed to be behind the wheel.  The tow-bar was trying to pull the car into the machine, but the car refused because the old man kept the gear in the (probably) drive position and the brakes on.  I could see the brake lamp for sure.  The tow-bar finally forced underneath the left front wheel.  The front-left side of the car was lifted, and then dropped as the bar passed the tire.

Again, this driver should be removed from the road before someone is victimized.

However, the damage has been done, although it was small.  After totally unnecessary wait, it was my turn.  I pulled up my car into position.  Put the gear neutral, and left the wheel and brake free.  My car was supposed to be towed through the machine.  Strangely, my wheel wanted to turn to the left.  The move looked slower than usual, and eventually stopped in the middle.  The employee came and told me to turn the wheel a little bit to the right.  The tow-bar probably was bent when it was forced through underneath the previous car's tire.  I kept the wheel a little to the right, and the car started moving again.  Something was not right.  My car was slightly banked to the right.  I really had a bad feeling.  My car was slowly going through the car-washing machine.

Then it stopped.  I had used the same car-washing machine many times, and I knew where I was supposed to be at the end of the washing process.  My car stopped about the half car-length short of where it should be.  ****ing old man!  I cursed the previous driver!  Then the vinyl shutter in front of me closed, and the next car was closing in from the behind.  If the tow-bar was still below my car, the rear wheel would hit it if I move my car forward.  Should I drive into the vinyl shutter and force it out?  Should I wait until my car moves again?  I had to make a decision.  If I drive into the vinyl shutter, some damage was going to be inevitable, but if the next car collide into the rear of my vehicle, it will be a bigger disaster, no matter how slow the collision is.  Then, the shutter opened again.  The tow bar wouldn't be more bad than a speed bump.  I made up my mind, changed the gear to the drive position, and drove out of the car-washing machine.  I felt no bump, and was able to escape from the machine.  It was totally uncomfortable though.  Because the car stopped too early in the washing process, the rear side of the car was not rinsed and dried because the rinsing water and the wind from the drier didn't reach.

That particular elderly driver must be removed from the road as soon as possible.  I am not saying everyone older than certain age should give up the license.  I, as a pilot, need to fly with an instructor and demonstrate my proficiency once every two years to fly an airplane as a pilot-in-command.  Why not mandating the same thing to every driver?  If someone cannot show the proficiency, he/she should not drive.  Period.  Not just elderly drivers.  I'm happy to demonstrate my driving proficiency to a driving instructor once every two years or so.  Some people are maintaining driving proficiency, but some are not.  Those who are no longer proficient shouldn't be behind the wheel.  The current system should be changed.  It is not fair.

My next stop was the Apple store, which was supposed to be another short drive, which took longer due to an accident delay.  It took five or ten extra minutes to get there.  One good thing was I was able to find a parking spot right in front of the store.  I talked to an employee and explained that I wanted to buy a Mac mini with 16GB RAM, 3.0GHz Core i7, with Apple care, and wanted to apply academy discount.  He opened up a web browser on a store-demo machine, entered what I asked, and said I could complete the order by typing in my credit card information there.  Wait.  I came there because I didn't want to type in the number.  What if a key-logger was hiding in that machine?  It turned out if I wanted to customize the configuration, I needed to order online.  I reluctantly entered my credit card number and completed the order.  Whole point of coming to the store was lost, and I am now hoping the store was keeping the store-demo machine clean of malicious software.

It was not my luckiest day.

Nonetheless, my new Mac mini is on the way.  I'm supposed to receive it on 22nd.  I have purchased some accessories already and preparing to jump start the new machine.


Playing with Terrain Data

I have been playing with NASA SRTM data for the past a few days.

What I want to do is to generate YSFLIGHT FLD file from the terrain data.  The current data structure already supports hierarchical map structure, so I can make it so that the terrain far away from the view point is drawn and reduces the frame rate.  However, I need to make it denser where the terrain is complex and coarser where it is relatively flat, which requires somewhat smart processing.  It is not too big a deal if I use meshing technique that I am doing research on.  But, then I will need to support mesh-based terrain data structure in the YSFLIGHT side.  It is not trivial.



Flying over the Winter Wonderland

It is one of the biggest privileges of a pilot to be able to see four seasons changing from the air.

We were enjoying warm winter in December, and now we are trapped in frigid air temperature for the last a few weeks in Pittsburgh.  The weather is also pretty bad.  No matter how calm wind, a Cessna 172 cannot fly into cloud because of the icing danger.  My instrument rating doesn't help.  I was grounded for a while.

But, finally the weather gave a break last Monday.  I took half-day off and went flying.

(Read more)



Updated YSFLIGHT Test Version

Sorry for slow update.  I'm still working on it.  I want to start pre-release test and make it an official and stable release, but things are piling up on me now.

General Aviation Airports around Pittsburgh

I am renting and flying a Cessna 172 twice a month basis.  In most time, I don't have any particular purpose.  I fly because it is so much a fun, and I need to keep flying not to forget how to fly.  But, I thought it may be even more fun if I have some kind of theme.  So, I decided to visit as many small general-aviation airports around Pittsburgh as possible.  The rental agreement does not allow me to land on a grass strip and a runway shorter than 3,000ft.  But, I need to practice emergency landings.  I am allowed to do low-approach over such grass strip or short runways.  So, I fly a low-approach over the airports where I am not allowed to land, and touch & go at the airport where I am allowed to land.  I have bunch of videos from those visits, and upload them when I have time to cut out from my forward-looking camera.

(Links to the YouTube videos)

2013/06/15 Columbiana County Airport (02G)

2013/06/15 Jefferson County Airpark (2G2)

2014/06/01 Rock Airport (9G1)

2014/04/06 Salem Airpark (38D)


Workaround for a bug in OpenGL 2.1 driver of Linux Guest on VirtualBox 4.3.20

I have been writing programs that works for Windows, MacOSX, and Linux, for my hobby and for my work.  But, it is nearly impossible to test all programs on all platforms every day.  In reality, I program on a primary platform, and occasionally test on other platforms.  When I renew my MacBook Pro, I am planning to primarily use MacOSX when I am away from my desk and Windows when I am at my desk.  But, it hasn't happened yet.

Today, I re-installed VirtualBox on my new SSD in my X230T.  And tested some of my programs on Linux running inside VirtualBox.  I thought it should be done quickly, but took longer than expected.  The OpenGL driver complained that my GLSL program does not have definition of void main() when I was trying to link my GLSL programs.  (Definition for "void main()" not found.)

I was not getting from the GLSL compiler.  But, the linker was complaining.  It didn't make sense.  I notice that I could get the program length by glGetShaderiv with GL_SHADER_SOURCE_LENGTH, which returned 47 bytes, which was way shorter than my shader program.  Next I used glGetShaderSource to check what was actually sent to the OpenGL driver.  Turned out only the first line of my program was sent.

In conclusion, it was a bug of the OpenGL driver of Linux guest (Ubuntu 12.04LTS) running on VirtualBox (4.3.20).  OpenGL is supposed to allow:

const char *shaderProgram[]=
    "uniform vec4 color;\n",
    "void main()\n",
    " gl_FragColor=color;\n",

(Simplified from my actual code)

In this way, I am storing a GLSL program as multiple C strings organized by an array of char pointers.  If I do it, the OpenGL driver of Linux guest in VirtualBox only recognizes the first line.  This bug did not exist in the earlier version of VirtualBox.  So, someone must have injected a new bug recently.

With no other options, I had to deal with it on the program side.  The solution was making a whole program as one single C string.  For example:

const char shaderProgram[]=
    "uniform vec4 color;\n"
    "void main()\n"
    " gl_FragColor=color;\n"

    const char *shaderProgramPtr=shaderProgram;
(Simplified from my actual code)

With this modification, OpenGL driver of Linux correctly understood my GLSL programs and was able to run my programs. 


Already one month has passed since the start of the year.  Time flies!  Eastern U.S. was hit hard by a snow storm.  Pittsburgh was affected, but not too badly.

I have received a 15-years of service award last Thursday.  CMU apparently counts all the years while I am in the CMU payroll system.  I started receiving stipend in fall 1999.  So, it's about 15 years since then.  15 years....  New professors used to be older than me.  Now, I am older than new professors  :-P

OK, in the next a few paragraphs describe how I fixed the seemingly logic-board failure of my ThinkPad X230T after installing an mSATA SSD.  But, if you are willing to try my method, please do so on your own risks.  If you end up completely breaking your system, I won't be held responsible.

My boss bought a mSATA SSD for my sub-laptopThinkPad X230T.  It is supposed to be my sub-laptop, and my 2008 MacBook Pro is supposed to be my main PC.  However, in reality, X230T feels like twice as fast as my MacBook Pro.  My X230T got even more powerful with the new SSD, supposed to be.  I opened X230T and installed the SSD.  It worked flawlessly.  But, when I installed, I had to cram antenna wires for wireless LAN on top of the SSD, which left with a feeling that the palm-rest lid was not fully shut.  I opened the lid again, and re-positioned the wires, and shut the lid.

Then I tested the PC before tightening the screws.  X230T started up normally, keyboard and trackpad, which I had to remove during the installation, both worked with no problem.  Then I tightened the screws, and pushed the power button, when I heard Beeeep, Beep-Beep-Beep, Beep-Beep-Beep, Beeeep.  Google search told that this beep pattern was an indication of either logic-board failure or DIMM failure.  I wished with my best that the problem was in the DIMM.  I could buy a replacement DIMM units cheap.  But, if it was the logic-board, I would have to pay for enormous out-of-warranty repair fee, which is often more expensive than buying a new one.

I removed one DIMM module.  The beep pattern was the same.  I exchanged the DIMM module.  The beep pattern stayed the same.  The monitor was just black and nothing appeared.  Oh no!  Not now!  I cannot afford the loss of my working efficiency for the next 10-20 days plus the repair cost.  I was depressed and regretted that I installed the SSD.

But, wait.  I had tested that the PC worked normally before tightening the screws.  Then, isn't it the screws?  Maybe I cracked the logic board while tightening the screws, but anyway, why not testing with all screws off?  I did it, and the PC booted normally.  What's the !@#$?  I tightened some of the screws, and the system still started.  When I tightened the screws near the SSD, the system didn't start, and I heard the haunting beeps.  The prime suspect was the antenna wires pushing against the mSATA SSD unit.  Probably the mSATA SSD unit was pushed too hard, and made contact with somewhere on the logic board that should not touch. Or, something ended up becoming loose from the stress coming from the SSD unit.

I opened the lid again.  This time, I placed two of the wires underneath the side of the track pad, and the rest on top of the SSD.  I re-assembled it.  Tightened one screw at a time, and tested that the system starts normally after each screw.  It worked!  It is now working as if nothing happened.

So apparently the wires were pushing the SSD beyond the limit.  What was going wrong exactly due to the stress is still unknown.  But, after re-positioning the wires, the haunting beeps are gone, and in fact I am typing this text on the same X230T.

That was a very scary 30 minutes.  This year is the fifth year of my 2008 MacBook Pro, which I bought a shop-demo machine second hand in 2010.  I planned to use it for five years.  It is about time to renew it.  (Then my 2008 MacBook Pro will become my presentation laptop.)  My primary choice was quad-core Mac mini, until Apple withdrew the model.  Quad-core Mac mini no longer exists.  I was deciding between 13 inch MacBook Pro and Mac mini.  But, since my X230T may break any time.  I think I go for MacBook Pro.  I can repair the laptop.  But, loss of working efficiency while waiting for the machine to come back is daunting.  My office was freezing cold today.  It was comfortable to work from the cafe in the next building.  I need a sufficiently performing laptop to do so.

For the last 20 days, I have been playing Dragon Quest 5 for iOS.  I finally defeated the last boss (at the deepest of the hidden dungeon that you can go in after the first ending) in 14 turns and was awarded the last item to collect.  I liked the story.  I can understand that many people says Dragon Quest 5 is the favorite among the series.  For me, I think DQ8 is my favorite.  DQ5 or DQ4 comes the second.

Dragon Quest 5 was not the only thing I was doing.  I finally figured how to draw point sprites with GLSL in MacOSX.  I could do it in Windows, Linux, and iOS emulator, but for some reason, GLSL compiler of OSX was giving me an error saying gl_PointCoord is not defined.  Point sprite is an important function for drawing particles.  But, only because I could not use gl_PointCoord in MacOSX, I had to draw all the particles as textured triangles.

It was a big overhead.  First of all, the data overhead is huge.  I need to send three vertices per particle, as opposed to just one vertex if I could use the point sprite.  If I pre-transfer all vertex coordinates, I am limited to the monotonic-color particles.

But, I stepped back and thought again.  It is too strange if gl_PointCoord is not really available in MacOSX.  I googled for the solution, and the answer was that I had to add #version 120 at the beginning of the GLSL program.  If I do it for the iOS emulator, I get an error, so I need to insert this line only for OSX.  OpenGL in Windows and Linux don't seem to care.  It is very strange from the common sense.  GLSL compiler by default should use the newest specification possible.  But, the common sense doesn't seem to apply for OSX after all.

So, now I can draw all the particles with point sprites in all the platforms that I am developing for.  But, if I add this now, the next official stable release of YSFLIGHT will be delayed further.  Maybe I'll postpone for the next time.

[Posts from year 2014]

Old Articles => [2014] [2013] [2012] [2011] [2010] [2009] [2008] [2007] [2006] [2005] [2004]

Comments are welcome.  Send E-Mail to: 


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