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
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.
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:
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.
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
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
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
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.
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.
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
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.
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
I was in Japan late May to early June. I was able to visit
air show during the trip. The aerobatic flight of Blue Impulse
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.
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 Offh radio command - Added gSpread formationh and gTighten
formationh radio commands - Fixed: The user can fly after the
previously-flown airplane. This function was accidentally
disabled in the previous version.
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.
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.
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.
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.
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
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.
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.
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.
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
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
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
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
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.
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
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
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.
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.
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.
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.
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
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:
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.
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
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
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.