YS FLIGHT SIMULATOR Version 20181124
Not all programs in YSFLIGHT.COM are open source. But, you can download some of the source code from the following URL.
When you try to run a program downloaded from this web site, you may see a warning like "This program is not digitally signed." Code signature was invented for improving the computer security. However, it added a new (and evil) purpose now, which is to decimate individual developers like myself. A code signature used to be unreasonably expensive. But, now it is not just expensive. No matter how much money you pay, a code signature is not issued to an individual programmer. It is obviously an infringement of freedom of publishing a software. But, I can do nothing about it. My main job as a programmer is secure even if one day I cannot publish a software, but what a boring world would it be?
Photos from the air shows I visited 2019!
By the way, I'm so glad that the pilot safely ejected in the Snowbirds #5 crash in Atlanta yesterday! The aircraft is lost, but it fulfilled its ultimate mission that is to protect the life of the pilot. Job well done, Snowbirds #5 airplane! I don't know if the same airplane was assigned to #5 yesterday, but I anyway put Snowbirds #5 I took in Latrobe air show practice below.
Click here to read more.
If you are believing what software vendors are saying: you will pay less money with subscription-based software services, think again. Software vendors do it because you end up paying more. Probably much more.
In pay-once software packages, you have a choice in how often you get a major upgrade version. You had control in how much money per year you spend for specific software package. You don't have that control in the subscription-based software.
Now software vendors may be keeping the monthly payment low for the time being in order to lure people into the subscription services. But once you cannot leave their services, they will raise the price.
There would be good software developers who would provide a good stable software for a reasonable price. But, I foresee users end up subscribing out-of-control number of services and paying hundreds dollars per month only to get a software never working stably.
On top of it, since the users do not own executable packages, an excellent software masterpieces may not survive to the next generation. Nothing is good about the subscription-based software services.
Minimum thing I demand those subscription-based services is I want to be able to export whatever data I create with those programs into a common data format. That can be JSON or CSV or any file format that an external program can recognize. If it is easy enough to write a reader in C++ or Python, I can do the rest. Theat way I can transfer to a different software when I don't like the one I use. I don't want to be locked in to a specific software environment.
Maybe I am old minded. I know I am. I still believe that computers must basically work stand alone. Network should enhance the capability, but the computer must function when cut off from the network. Purchased software or downloaded software should be usable as long as I take good care of the platform and backup media. I strongly believe that it is the users' right. Other than the code written for salary, programmers must be allowed to freely release code written for fun or for hobby. I strongly believe that it is the programmers' right.
But, what about online application stores like PlayStore and AppStore? Google and Apple can arbitrarily kill an application from their stores. In fact those cases have happened and been on the news. From the user point of view, an application suddenly disappears and becomes unusable. From the programmer's point of view, it is a violation of the right to release a code.
PlayStore and AppStore don't have to delete an application. Apple and Google casually modify or delete APIs, making old application unusable. When I was young, the API specifications were not taken lightly. It was the platform developers/vendors' responsibility to maintain those published APIs. Some of them became technological debt, in which case old API functions may have become implemented on a compatibility layer and slow down, but still at least were functional. Now Apple is threatening to drop support for OpenGL. I am not saying the operating system should keep supporting poorly-written programs, programs using undocumented APIs, or with wrong usage of APIs. If an application strictly adheres to the published API specification, it should be supported in the future versions. I also understand that when CPU changes, or bitness changes (like 32-bit to 64-bit), or substantial hardware change, I understand some APIs gets difficult to maintain. But, otherwise APIs must not be casually changed or dropped. It's a mass murder of applications, I think.
As long as you have a web server, you can release your web app freely, but that is as long as you keep paying for your web server. Actually, in my experience many of Web apps disappear when I visit the same URL again.
So, maybe I choose to write only for Windows, then unless I code-sign my binary, the user is presented with a threatening security warning discouraging the user from running my executable. Ok. I am not saying code-sign is evil. I 100% agree that it is important to make clear the origin of the program. What's evil is the code-sign used to cost prohibitingly pricy, now even if I decide to spend $$$, certificate authorities united and stopped selling code-signing certificate to individual programmers. A private company, with absolutely no legal obligation, can arbitrarily decide whose program can be trusted.
Only option left is full open source. I personally believe that the programmer must have a right to choose in what format the program is released. It is not right to be forced to open all source code when someone wants to make a program available to public.
It is outrageous that private companies have right to decide whether a certain application can be made available to public or not. It is outrageous that a platform developers/vendors can arbitrarily disable applications in the name of version-up or security. It is outrageous that private companies have right to decide to whom those code-signing certificate is issued. I think it is ok to run a business for selling and managing those certificates, but they shouldn't be given an authority to decide who can make code open to public. It has been said that the regulation is way behind the technology. I don't think the current circumstance of software industry is healthy at all. The private companies have too much right regarding the fundamental users' and programmers' rights.
Of course I do understand those tech companies were unregulated in order to accelerate the development. Indeed by un-regulation those tech giants made millions of billions of trillions of dollars. Those money were re-invested for further development. That was then. But, is the technology growing that much now? Computers are getting just faster. Nothing else. I haven't seen anything that I felt really new. Even in this Artificial Intelligence bubble, the technology is not new. It is from the research traced back to late 1980s. Now computers got faster, it became practical, and people are finding new applications of machine learning (Or deep learning if you want to call. They are just the same thing.) Machine learning itself is not growing much. The current technologies are pretty mature. I think it is the time to think about the users' and programmers' right seriously.
One of my friends who was working for an auto company was saying that the auto maker is held responsible for a car once it is sold as long as it is working. Why a computer company is allowed to define product life cycle arbitrarily and stop supporting perfectly healthy hardware at will?
Those thought came to me while I was reading articles praising Apple Arcade (after losing my save data for Dragon Quest 5 and 7). Probably we will see masterpieces in Apple Arcade that should be in the computer-game hall of fame. Those titles will be eventually unplayable when the developer moves on to the next title. Miraculously I still keep a PlayStation1 working condition. I brought my Fujitsu FM-7 and FM TOWNS from my home, keeping them in working condition. Also I am keeping FM77AV and FM77AV40 I bought from Yahoo! auction in working condition. Therefore, if I want to run a historic old title released for those platforms, I still can. But, a title released as a subscription for a modern platform probably won't run after 30+ years. It is a loss for the users and loss for the developers who worked on the masterpiece.
There may be real damage from this culture already. I have been feeling the quality of the software in general, is falling like a rock. I very often feel like, is this a program written by a poor project scientist working for a college who is given the least priority in classroom assignment every semester? Commercial software give that feeling to me. Not free ones. Since a program can randomly be killed by the platform, programmers may not be motivated to write a long-lasting program. I have a feeling that programmers are not even motivated to write a stable program. They may be thinking they just release and update when someone complains. It is acceptable for some kind of applications for sure. But in other applications it is too late to release a fix after something catastrophic happened. I am suspecting this toxic calture in software development might have been a contributing factor for the Boeing 737 Max 8's MCAS software break down.
I realized my save data of Dragon Quest 5 and 7 which were supposed to be kept in iCloud are both gone. iCloud is a useless untrustworthy b******t. Luckily my Level 90+ Chrono Trigger data were still there, but it can be gone any time I suppose, and there is no way for me to take a back up of the data stored in iCloud to my local storage.
Seriously, what if it were my medical history? If it were a product of years of work? If it were hundreds of business contacts? iCloud is untrustworthy. Actually since I cannot take my data out of application's sandbox for taking a local backup, I have never trusted iCloud and am not keeping important information there anyway. I never trust a system or an application that does not let me take local backups. iCloud is only good for toys.
On the other hand, online file storage like Dropbox and OneDrive can be trusted. It won't prevent data from being stolen, so I don't put any sensitive information. But other than that I keep files in those online file storages. I take daily back ups of my Dropbox and OneDrive folders from my maintenance script every day. In case my Dropbox or OneDrive folder is gone, I can restore files from my archive.
I hope you won't learn how important it is to take control of your back up hard way!
I came back from Japan this Monday for the 4th time this year. The main purpose of this trip was to attend commemorating ceremony for my father in law who passed away this February. I have stayed in Tokyo for two nights, then my wife's home in Fukuoka for three days, then visited my parents in Hirosaki, and came back.
This trip was disrupted by weather from the beginning to the end. The day before my departure, 8/7, airline flights were totally messed up due to a storm system covered east coast New York and New Jersey area. But, Pittsburgh was peaceful. I was not expecting the storm to do anything to my itinerary. My original plan was to take an airplane from Pittsburgh to Chicago O'Hare, then O'Hare to Narita. At around 10pm, just 10 hours before my scheduled flight, United Airlines automated text told me that my flight from Pittsburgh to Chicago had been cancelled. The link included in the text told that no seat available the next day and the day after next. Only possible option was Cleveland -> Chicago, Chicago -> Narita. Cleveland Hopkins was 2-hour drive from my place. To get to Cleveland Hopkins 2-hours before the departure at 7am, I needed to leave my place no later than 3am. But, if there was no other option for the following two days, I would lose my purpose of this trip unless I took this option.
I once made up my mind to drive to Cleveland, and clicked "Accept" button on the web browser to take the Cleveland -> Chicago flight. But, before checking in, I wondered if my return flight was also re-directed to Cleveland. If I was to land at Pittsburgh, how can I pick up my car parked at Cleveland? I checked how my itinerary had become, and saw this (even before I looked at the return flight):
.... It was not just airplanes, but also United Airlines' computer system was in a big mess. If I take Cleveland to Chicago flight in the first leg, how can I get on the airplane leaving Pittsburgh for the second leg? I called United Airlines, but the automated voice told that expected wait time was 2 hours. I lost hope.
But, my wife, already in Japan, called United Airlines Japanese branch, which she could talk to a person right away. They fixed my itinerary. My first leg, CLE->ORD segment, was removed, and I had PIT->EWR (UAL 2818), then EWR->NRT (UAL 79). I didn't have to leave 3am and drive 2 hours. I regretted that I dumped half-a-glass of wine to be ready to drive by 3am.
Since my first leg was a domestic flight it was recommended to come to the airport 1 hour before the departure. But I always come to the airport at least 2 hours before the departure. Pittsburgh International airport was in a massive flood of people clogging up check-in counters and security checkpoint. Turned out numerous Newark-bound flights diverted to Pittsburgh the last night. Those who had to spend a night at Pittsburgh scrambled to the airport to get on an airplane to the final destination. The airport was like a Zombie movie. I was just one of the zombies. Had I arrived at the airport only 1 hour before the departure, I would have had no chance of getting on my Newark-bound airplane.
Here's what might have happened. About 10pm previous night, one of the Newark-bound flights that diverted to Pittsburgh had decided to give up re-trying Newark the same night and scheduled for the next morning. Those who were flying to Newark as the final destination had to take the same flight. But, passengers flying to Pittsburgh via Newark didn't have to take the same airplane obviously. There is no reason to fly from Pittsburgh to Newark then back to Pittsburgh. Or, if the final destination was close enough to Pittsburgh those passengers could have used a ground transportation. Maybe some passengers had a more direct flight from Pittsburgh to their final destination. As a result, the morning flight created some available seats. The United Airlines re-assigned me to fly to Narita via Newark using one of the newly-available seats. I probably clicked the "Accept" button about the same time, and the itinerary was messed up.
UAL 2818 bound for Newark was supposed to leave 7:30am, but it didn't. The captain announced that he wanted to take as many stranded passengers as possible, and it would take another 15 minutes or so. Check-in counter was also clogged by zombies. Stranded passengers were allowed to come straight to the gate with the boarding pass of the previous flight unless they needed to check in luggage, but they needed to re-check in at the gate, which was also taking long time. UAL 2818 left 50 minutes late. I was supposed to have 2-hour connection time at Newark, but it became 1 hour 10 minutes.
That's how I thought. But Newark airport was still recovering from the massive cancellation from the previous day. Ground crews were apparently stretched thin. UAL 79 bound for Narita was also delayed because they were still loading in-flight meals. My original flight from Chicago to Narita was supposed to be operated by All Nippon Airways. The cabin is cleaner and the service quality is much higher than United Airlines. I feel more like a human in Japanese airlines (JAL and ANA). If you think air-travel is an important part of your travel, try All Nippon Airways or Japan Airlines. But, UAL 79 was operated by United. Only one good thing about this flight was I was going to arrive at Narita 30 minutes earlier than the original plan, which was going to give me slightly longer time in Tokyo the first day. This 30 minutes might be critical to avoid rush-hour train in Tokyo. That 30 minutes surplus were gone into deficit as UAL 79 was waiting for the meals. Nothing went right in my outbound flights.
I got curious about where my flight UAL 2818 from Pittsburgh to Newark originally took off. It was Airbus 319 bound for Newark. I searched for UAL 2818 and found that this number seemed to be used for unscheduled flights. That Airbus 319 was originally flying to Newark as a different flight number. The flight should have flown from west coast or far south. If the original flight was close to Newark the flight should just have returned to the departure airport rather than diverting to a third airport. I was able to access United Airlines web site from the in-flight WiFi without paying. I searched for the flight status that matches the profile but I could not find what kind of airplane was used. I had to wait until I land at Narita to get a better idea.
Looked like the cancellation and diversion at Newark started around 2pm. I saw cancellations all the way to the mid night. The weather system should have gone by then, but many flights were cancelled because the airplane that was supposed to be used could not land at Newark earlier. UAL 2818 should have been one of the airplanes that could not land Newark. I excluded code share and subsidiary airlines and only looked at flights operated by United Airlines arriving at Newark. I saw four flights diverted to PIT.
Only one of them was using Airbus 319. Among the four flights only UA 2034 was later cancelled. Probably because it was cancelled, it had to be given a different flight number. Otherwise air-traffic controllers was going to see two UA 2034 on the next morning, one from PIT to EWR and the other from BNA to EWR. Most likely the airplane I took was from Nashville. Now I am curious why UAL 577 could continue as UAL 577 the next morning. I remembered that the flight from the next gate of mine was United 755, a Boeing 737, also stranded the night before, but apparently it was United 577, a Boeing 757. You can see how bad my memory is. When I get older and get Alzheimer, nobody may notice.
I wanted to have some fun time in Tokyo. I spent first two nights in Tokyo. Now a days, I use a hotel near Akihabara station. I was coming to Akihabara at least once a month when I was doing my undergrad and masters degrees. As I was coming from Narita airport, the straight-forward way of getting there was to get off Narita Express train at Tokyo, then take Yamanote line for two stops. Taking Yamanote line for two stops from Tokyo to Akihabara with luggage is easy as long as you don't do it during the rush hour. It is suicidal during rush hour. I barely avoided rush hour this time. Narita airport is so bad. It should be turned over to Japanese Air Self Defense Force to be used for defending the nation's capital. You can hop on a limousine bus from the other airport at Haneda airport to Akihabara. So easy. I am hoping I can use Haneda next time.
Akihabara is now known as a capital of Japanese sub-culture, but it was originally called an electric town. There used to be all sorts of electronic-parts shops. Some are still surviving. I was a pure programmer and had little knowledge of hardware. Those who were buying electronic parts in Akihabara appeared to me true genius then. Now I developed some understanding in digital circuits. I went around some electronic parts shops and bought some capacitors, resistors, optic isolators, and connectors. Except some special connectors, I could buy from Digikey in the U.S. But, browsing and buying those parts at Akihabara was something I wanted to do when I had more hair. I deliberately held off ordering some supplies of resistors and capacitors before coming to Akihabara, and got them there.
I have also purchased some books. I believe eBooks are good if they drop their greedy filthy DRM. There is no value in DRM-contaminated eBooks. If you buy a book contaminated with DRM, how can you know that your eBook store survive 10 years from now to unlock your eBook? Basically any electronic resource that comes with DRM has little to no value. It won't survive to the next generation. It is obvious to me that DRM is evil and needs to be banned by law. Of course politicians are all bribed by those who are making money with DRM, and they don't do anything for this digital unsustainability problem. Well, speaking of next generation, I feel so sad about online-only games. In my view, computer games should run stand-alone. The network play must an added value to the game. Someone who is studying computer-gaming history 100 years from now will find a black hole around year 2020. I believe computer programs is an industrial product but at the same time a work of art. This work-or-art aspect is highly ignored now a days. Programmers are not even trying to write a program that lasts long. That makes me very concerned about the current trend in programming.
Travel to my wife's hometown was smooth. This one and the flight from Aomori to Haneda on the final day, only two flights among eight flights I took during this trip, took off on time.
But a typhoon that plowed across Japan gave me a trouble for flying from my wife's hometown to mine. This time of year is the time for family reunion in Japan. We get together and remember those who passed away. Traditional Japanese believe that the souls of ancestors come home around this time of year. Families get together and commemorate those who are no longer with us. Just like Thanksgiving holidays in the U.S., people rush to travel and make massive congestions. I predicted that the peak of the travel would be August 15. I booked my flight from Fukuoka to Aomori (near my home town) for August 14 to avoid the peak time.
However, the typhoon #10, aka Krosa, struck exactly on August 15. I barely avoided it. But what happened was those who were planning to travel on August 15 changed their scheduled flights to August 14. I thought I avoided the peak travel day, but the typhoon made August 14 the peak. What's stupid was because I bought an airline ticket as an appendix to my international flight I somehow could not check in online. When I got through a loooong line for checking in, and surprisingly short line at the security checkpoint, my airplane was already boarding. Close shave! But the airplane didn't leave right away and left 30 minutes or so late. This time I flew All Nippon Airways, but there is no ANA flight from Tokyo to Aomori. I had to change to Japan Airlines, which requires to get out of the secured area of Haneda Terminal 2, go to check-in counter to tell my luggage needs to be transfered from the ANA flight (I at least didn't have to carry myself), and then pass the security check point at Terminal 1. I was supposed to have 2 hours to do it. Now I had 1.5 hours.
I had to go through a long line again at the Japan Airlines counter thanks to the typhoon, but the flight from Haneda to Aomori was also delayed by 20 minutes. Somehow almost all flights I took got delayed. I was easily able to make it to the gate in time.
Later I realized I could have flown ANA all the way via Osaka. Next time I can try it. Actually I don't have a strong preference between ANA and JAL. Maybe next time I'll fly Japan Airlines.
My hometown, Hirosaki, is far north from Tokyo. Well, far north in the Japanese scale. Just 1-hour flight from Tokyo in Boeing 737, the one that doesn't nose-dive to crash. It was supposed to be cooler in Hirosaki than Tokyo. But it was hot and humid like 100F and 90% humidity. Since there was no air conditioner in the room I was sleeping, I couldn't sleep. So, I should say the room I was not sleeping rather. To recover from jet lag, you need to have a good sleep. But, I didn't have it. I ended up living in the Pittsburgh time til the last day in Japan. I woke up at 4am on the last day. The crazy weather haunted me throughout this travel. The good part was I didn't have to re-adjust for Pittsburgh time when I came back.
This time I didn't visit any air shows. I didn't carry my photo gear. I came with two small bags and a back pack. After dumping souvenirs I had more than enough space for packing stuffs I bought there. When packing your bag for a travel, you need to be careful not to compress too much. When you compress too much, electrons and protons will be blasted off of your bag leaving a core of neutrons. If further pressure is applied, the density inside your bag will become too high and creates a singularity point as predicted by the theory of relativity. But this time I didn't have to compress my bag that much to store everything needed to be taken back to Pittsburgh.
The last day, I flew from Aomori to Haneda, took a limousine bus from Haneda to Narita, met up with my wife, then flew from Narita to Chicago, Chicago to Pittsburgh. If it were not for the limousine bus 1.5 hours, I could have done something fun. Narita is that bad. It should be turned over to Japan Air Self Defense Force tomorrow.
At Narita airport, the airplane I was supposed to take was at the gate, but the left engine nacelle was open and was doing some maintenance. It got delayed by 35 minutes due to the maintenance. I had 3 hours at Chicago, but it shrunk to 2.5 hours.
This time of year, end of the vacation season, Chicago O'Hare was also like a zombie movie. What's bad about Chicago is there is no separate security check point for international transit. If your final destination was Chicago, you are fine. But, if you need to change to a domestic flight, you need to get out of the international terminal, and then go through the general security checkpoint.
Here's what could happen. You buy something at Tokyo airport duty free. You ended up having three carry-ons. If you fly into like Washington D.C., you can go through a separate checkpoint for international to domestic transit. TSA agents know about the duty-free shopping. You can pass. At Chicago, they don't care. You will be forced to throw away one of the three carry-ons. This time I didn't see an agent who was enforcing two carry-on policy at Chicago, but in the past I saw an agent blocking until the passenger gives up one of the carry-ons. Good luck.
I don't buy duty free. It's not my problem anyway. But, it is worth remember if you travel international, and use Chicago to come in to the U.S. We usually use Chicago only for leaving the U.S., and come back through Washington D.C. This time I couldn't find a ticket to come back through D.C.
We made it to the gate in time. But the gate display was showing Charlotte NC, not Pittsburgh PA. The gate agent told that the computer system that controlled the monitors froze and they could not update. We were at the right gate.
This concluded my four round trips to Japan. Since I used All Nippon Airways (Star Alliance) all four times my mileage membership was upgraded to bronze, which does not give too much benefit. But, in the last leg to Pittsburgh, my boarding zone was zone 2, immediately after business-class passengers. I was at least able to go in before other economy-class passengers and secured overhead bin for myself and my wife. This might be an only privilege I could get from the bronze-level membership. (And the overhead bin didn't fill up anyway in this flight.) If you need to gate-check your bag, every laptop, camera, or anything breakable in the bag will break. Baggage handlers are demolition experts. They kick, punch, lariat, throw, drop, crush, burn, freeze, and do all sorts of destruction. It is very important to secure a space in the overhead bin. Airlines should really charge for the carry-ons. Since they are charging for checked luggage, we are ending up paying and getting things destroyed. I don't mind paying extra for protecting my camera and laptop.
I have been unhappily using ThinkPad X1 Yoga 3rd gen. One of the most frustrating things was that the physical button on the touch pad is too often ignored. I had to blaze the physical button until it is recognized.
I finally found why it was happening. ThinkPad has a feature called Palm Reject, or Palm Check. If you type with your palms on the palm rest, the touch pad may mistake your palm as a finger and interpret as mouse movement or mouse click. To reject such fake touch, you can decrease the sensitivity. It should only be applied to the touch sensing. However, an idiot programmer decided to apply the same sensitivity to the physical buttons.
When I press a physical button, I mean it. There should be no room for fake click. Applying Palm Check to the physical-button is absolutely absurd. It is deplorable that someone who writes this extremely stupid code is earning salary as a programmer.
Anyway, I finally found a solution. Go to Settings -> Touch Pad. On the right is "Additional Settings." Click on that, and then click "Advanced Settings". You will see "Synaptic Control Center". In my X1 Yoga, the "Palm Check Threshold" was set to almost maximum. I reduced to nearly minimum, and my X1 Yoga no longer ignores my physical-button clicks.
What's stupid about ThinkPad X1 Yoga 3 is that even after I manually lowered the Palm Check Threshold, the setting is changed back to high from time to time. I had to change the setting to low whenever my X1 Yoga 3 starts ignoring my physical clicks. I am suspecting it happens when I install updates from Lenovo. I'll pay attention next time if I don't forget.
Succeeded in sending infra-red keyboard signal to FM77AV with Arduino!
I have flown night approach and landing practice from Beaver County Airport. (I flew on 7/9)
Since a cross-country flight to Niagara Falls turned into just a local IFR training, I am seriously considering to join Beaver Valley Flying Club. To join, I have requested FAA to send me a copy of my pilot record.
Another decade has passed since the 10th anniversary. I started YSFLIGHT as my escape-from-reality project while I was studying for my Ph.D qualifying exam. Although it may not be as popular as it once was because 3D games are not special now, slowly I am still working on it.
While I was using Fujitsu FM TOWNS, I wrote several 3D games and had download count of 1,000 or so. That was when I was an undergrad. Back in 1990s, a free game scoring 1,000 downloads was a big deal. Now if I look at just download count YSFLIGHT has scored 1 million+ downloads overall. It doesn't mean more than 1 million players flew YSFLIGHT because same person may download multiple times especially when a new version comes out. Nonetheless, more than 1 million downloads was a beyond my imagination.
Also I have always been impressed by the quality and details of the maps and the aircrafts created by the users in the past two decades. I thank all the users who contributed to the user community. I feel bad to those who asked questions about how to create models for YSFLIGHT, but I cannot spare my time to answer those questions.
I want to do something special to cerebrate 20 years. I may finish some features that I started and haven't completed. But, there are reasons why those feature additions are stalling. Usually those features typically turn out to be difficult to implement, break backward compatibility, or not difficult but require many lines of code. Or, maybe I would add a 20-year paint scheme airplane at least.
I am very concerned about the current trend of software development that computer programs are treated just like consumables. Computer programs are not consumables. Software is NOT a service. I will never forgive whoever started saying Software As Service. Software is a product, at the same time is a piece of art. A masterpiece must be kept for the future, it must not disappear when the service terminates. It must not be thrown away like a tissue paper. To write a stable program, code must be re-used, and must be exposed to various different input so the program is trained. Once the program is mature, it will require less updates. Less update should not be taken as the program is abandoned. It should mean the program is reaching its goal. So many fantastic things have been introduced to the computing world. So many bad ideas have also been introduced.
YSFLIGHT may not be a masterpiece. But, I want to make it like a program that anyone can come back anytime. Someone may leave YSFLIGHT today. But after several years one day the person may find it still available and maybe fly one round of traffic pattern. I am determined to keep YSFLIGHT alive.
It turned out that Intel P82C51A seems to be able to run at 38400bps. I confirmed by modifying my RS232C card for Fujitsu Micro 7.
The Fujitsu-original RS232C card for FM-7 supports only up to 19200bps. The Fujitsu-original card uses Intel 8251A, which was manufactured around 1982. The maximum performance of 1982 Intel 8251A may really be 19200bps.
There are some 8251-compatible chips. OKI 82C51A officially supports up to 38400bps. I have a bunch of Intel P82C51A, which was manufactured in 1990, 8 years after the original Intel 8251A. The new Intel chip may be able to go up to 38400bps. I just did experiments.
Successfully Made YM2203C sound card for Fujitsu Micro 7!
It works! (Read more)
By the way, I gave up idea of vacuum sealing at 9,000ft, and bought a $80 vacuum sealer. I thought I should be able to save this $80 if I could vacuum seal at 9,000ft, but it didn't work. (By the way 1 hour of airplane rental costs $150. Do you think I was just looking for a reason to fly? Yes, I was. :-P)
I was supposed to fly to Niagara Falls with a visiting scholar who is coming back to Japan soon, and my wife's friend and her son this weekend. Low cloud was forcasted over Beaver County airport. But, now I am confident to shoot a GPS VNAV approach with 500ft ceiling with G1000. I at first felt G1000 was difficult, but once I got used to it, it became unbelievably easy to shoot instrument approaches. Recently so many student pilots signs up at Moore Aviation, and most of the steam gauge Cessna 172s are difficult to reserve. Very often N567ND, the only one G1000 Cessna 172 at Moore Aviation, is the only one airplane I could take. I realized that I haven't flown steam gauge Cessnas quite a while.
Weather over Niagara Falls was forcasted to be clear with light wind. No problem landing there.
The airports which I could divert in case of emergency were Youngstown, Erie, Dunkirk, and Buffalo. Dunkirk and Buffalo were reporting sky clear. No problem. Erie International was reporting overast 200. I wouldn't even attempt to shoot an approach there, but the ceiling was supposed to be up by the time of departure, and if I couldn't make Erie, Dunkirk was close enough. Other airports were reporting 800+ ceiling and all were clearing up. I was more than confident in shooting a GPS approach.
I have successfully built RS232C serial-connection card, but I am still not very experienced in hardware. I was worried that I could fry my aging FM-7 motherboard when I plug my re-manufactured YM2203C sound card. Of course I'll do basic tests like no short between power pins, but who knows what's going to happen. I decided to get a spare FM-7 for my coming hardware projects.
I was able to win a good looking FM-7 for about $50 from Yahoo! auction via buyee.jp. The owner looks to have been taking real good care of this computer. GRAPH key stickers are neatly put on the side of the keys. No yellow color degradation. Not even dusts in the grooves. I was fully expecting this unit to function with no problem when I switched it on.
Actually I flew for this mission last December.
If you are visiting the top page of YSFLIGHT.COM, you should know that I am preserving historic Fujitsu 8-bit retro computers in working condition. I kept some floppy disks and cassette tapes that I used back in 1980s. Also since it got very easy to bit on Yahoo! auction I often bid and win those floppy disks and cassette tapes.
If I just want to play them, we see some re-created version for Windows, or it is not difficult to find a disk image or a tape image online that works with an emulator. But, I noticed that the one I can download is often corrupted. If not corrupted, the emulator is not emulating the copy protection, but the copy-protection code has been cracked on those images. I personally think those copy-protection techniques are also a part of computing history, and if possible I want to preserve those historic titles including the original copy-protection. Ideally I want to find a museum or a library that can permanently store and preserve those historic hardware and software. In Japan, Game Preservation Organization is actively protecting those Japanese software legacy. But, it is better if those software titles are stored in distributed locations. If some are preserved in the U.S., that would be very nice.
Watching Cherry Trees from the Sky.
Japanese community in Pittsburgh has been working with Pittsburgh Park Services and planting cherry trees in North Park. 2019 is the 10th anniversary of the planting. I'm not directly involved, but I have flown over the park for aerial photography from time to time. It is one of the best privilege of pilots to see four seasons changing from the air. (Read more)
Fujitsu Retro PC:
Starting YM2203C expansion card reverse-engineering and re-manufacturing project.
Delphis for FM-7 joystick-support patch.
Emergency for FM-7 joystick-support patch.
Actually I couldn't believe it worked. Couldn't believe it took only four days from start to the first success. It took another four days to add parameters and writing readme. If you are an owner of Fujitsu Retro 8-bit PC FM-7, it may be of your interest. (Read more)
FM77AV Keyboard emulator is also updated. Not really an update, but I found a cases that the program fails to transmit most of the letters when I compile it in no-console mode. I've just re-compiled binary in the console mode. You'll see an additional console window, but you can ignore it.
I've already saved two rocking flowers with BONDIC. I have tried various different types of adhesives but this one is universal.
Some topics came to my attention.
One of the TWO? Sounded to me the MCAS system has such an important part of the auto-pilot. Even Boeing dropped its long tradition of Yoke Jerk functionality and gave priority to the MCAS over the human pilot. And, it was taking only two inputs? The first aircraft that had an operational digital fly-by-wire computer control was F-16. F-16 had 3 control computers, each of which were taking airspeed information from an independent Pitot tube. If one of the three Pitot tubes failed physically or iced up, the computer takes votes and go with democracy. Having three separate systems improved the reliability of F-16.
If there are only two inputs, it is good for a human pilot because a human pilot can identify which one failed. We are trained to cross-check instruments. From the computer point of view, having two input doesn't give redundancy. When one fails, it doesn't know which to trust. Still Boeing might have made an decision that the AOA sensor is unlikely to fail. I can only guess. But, I don't know if having only two AOA sensors was a good idea. It's a very un-Boeing-like case.
I am seriously worried about the wrong trend of programming. Too many programmers are thinking they can just release an incomplete software and then release updates to fix errors. It is utterly wrong. Even for-consumer products it is wrong. Users are not specimen. The trend can be contagious. If this wrong mentality is contaminating the control-software developers in the aircraft design field, I hope it is not the case, but it is scary. Someone needs to stop this wrong trend.
Un-Boeing-like Accident?We don't know if the crash of Ethiopian Airline B-737 Max 8 was caused by the same cause as Lion Air's crash a while ago. However, even if the causes of the two accidents are different, the background of the accidents maybe traced back to the change of the design philosophy of Boeing.
Lion Air's accident reminded me of an Airbus 300-600R crash at Nagoya airport in 1994. I don't know if you remember, but the crash was obviously from the design error by Airbus. Airbus 300-600R in go-around mode, mixed control-input from the human-pilot and auto-pilot together. Auto-pilot controlled the pitch trim, and the elevator input from the pilot controlled the elevator. On April 26, 1994, the pilot of Airbus 300-600R accidentally pulled the go-around lever, setting the airplane into the go-around mode. The pilot wanted to continue landing, but the auto-pilot pulled the nose up to go around. The pilot pushed the yoke harder, fully deflecting the elevator to the nose-down position, while the auto-pilot moved the elevator trim to nose-up position to counter the elevator. Eventually the elevator trim overpowered the human-pilot. At that time, the aircraft no longer could lower nose. The aircraft climbed violently, stalled, and then crashed killing all souls on board. The obvious cause was that the aircraft could be put in a state that mixed input from the auto-pilot and the human-pilot together.
On the other hand, Airbus did everything to deny the design error. They announced right away that the accident was caused by the human error. Their point was since the human-pilot may make a mistake, the auto-pilot must be trusted in case of emergency. Therefore the accident was caused by the human error.
You don't have to be a Ph.D to understand Airbus's logic was absurd. We can discuss if the input from the human-pilot should be prioritized over the auto-pilot or vise-versa. Both human-pilot and auto-pilot has some probability of making a mistake. We need to bet on one of them. Human cannot make accident absolutely zero. All we can do is to minimize the probability of an accident. If, as Airbus said, Airbus took a bet on the auto-pilot, and the human-pilot happened to be right, it was unfortunate, but not a design error.
Well, let's say Airbus was right that the auto-pilot should be prioritized. Then, the inputs from the human-pilot and the auto-pilot must not be mixed. If Airbus wants to trust the auto-pilot over the human-pilot, input from the human-pilot should be shut off. Or, if they trust the human-pilot over the auto-pilot, the input from the auto-pilot must be shut off. In either case, the inputs must not be mixed. However, Airbus 300-600R mixed them in go-around mode. Therefore, it was an obvious design error.
To my surprise, Japanese counterpart of NTSB, accepted what Airbus was saying and concluded that the accident was caused by the human error. Hello?? As a Ph.D in Mechanical Engineering, I think it is obviously caused by the design error. Airbus should have been held responsible. By the way, Airbus should have kept Concorde flying instead of developing A380.
I guess someone working for Japanese NTSB got richer. Airbus probably made a secret change in the control system of Airbus 300-600R. Typically it is called an SB, or Service Bulletin. No similar accident was reported after this Nagoya accident.
<- I've restored Amazon Affiliate Link. I appreciate if you use this link when you buy something from Amazon.com.
Anyway, the Boeing's reaction to this accident was this: Boeing trusts the human-pilot over the auto-pilot in case of emergency. Therefore a similar accident is impossible in Boeing aircrafts.
It was supposed to be.
I had some chances to talk with employees of Boeing before in conferences. They were saying Boeing likes pilots, and they trust the pilot in case of emergency. They never employ side-stick because pilots love control yoke right in front of the pilot seat. Boeing aircrafts disables auto-pilot and complies with the pilot's input when a strong pressure is applied to the control yoke. Boeing was always pilot-centered. That's what I heard then.
But, what about Lion Air's accident? The reaction from Boeing was a copy of the reaction from Airbus after the Nagoya accident. Boeing said that the solution was to make sure the pilot was informed and trained to deal with this situation. No, it's not. I wouldn't say it is an design error. The human-pilot may make an error in case of emergency. It is true. If the design philosophy trusts the auto-pilot over the human-pilot, it is a valid philosophy. There is not right or wrong. But, we need to keep in mind that the computer may make a mistake, too.
I'm a programmer. I know that a programmer makes mistakes because I make mistakes. I'm not the god. A control program used by the auto-pilot is written by a human-programmer and may include an error. It is nothing to surprise if the auto-pilot makes an error. Just like trusting the human-pilot will never eliminate an airplane crash, neither trusting the auto-pilot will never eliminate an airplane crash. All we can do is make an airplane crash less likely to happen.
Which philosophy do I like? Obviously I would trust the human-pilot. A human-pilot can better adapt to an unknown flight condition. But, if the auto-pilot steps on the programming error, it cannot correct itself. Well, we can theoretically make it wireless-updatable. But, do you want to start updating the control software of an airplane while flying? "The flight-control computer needs reboot. It would take 10 minutes to restart." Would you click "Yes" to this? Machine learning? It does good, if the flight condition is an interpolation of the known training conditions, but it may go berserk if it happens to be an extrapolation.
So, I liked the Boeing's pilot-centered design.
In Lion Air's crash, the human-pilot tried to pull the nose up while the auto-pilot was trying to dive. The auto-pilot was thinking the aircraft was about to stall. The pilot was trying to prevent the aircraft to dive into the ocean. From the aircraft point of view, it had no idea who was right. In the aircraft-accident history, there were numerous cases that the human-pilot ended up pulling the nose up too high and stalled and crashed. The aircraft trusted the auto-pilot. And, the auto-pilot happened to be wrong this time. It was unlucky.
Again, it is not a design error. Both the human-pilot and the auto-pilot can make a mistake. Who to trust depends on the design philosophy. If the design philosophy trusts the auto-pilot over the human-pilot, it is a choice, not an error. I don't like it though.
If Boeing trusted the human-pilot like it did before, Lion Air's accident could have been averted. If current Boeing trusts the auto-pilot over the human-pilot, it is not an error, but I feel it is unfortunate.
Trying to release a YSFLIGHT Demo for Android, but...
I have succeeded in running YSFLIGHT kernel on Android several months ago. Alghouth it is not playable yet, I thought to release a demo-only version.
Since I have a new laptop now, I installed the latest version Android Studio. As expected it could not build from a project set up by an earlier version. Evidently, Google doesn't even running a unit-test of building a project from earlier-version Android Studio. That's the way grad students write programs. (No unit tests)
This is exactly the major problem of Android development system. It changes. It changes way too often. Now many developers seems to be thinking frequent update is a good thing. It is a huge mistake, as huge as a red-giant about to explode into a supernova. If a software is coming close to its goal, it gets stable and has less-frequent updates. If something needs to update frequently, it is an indication that the thing is bad. It needs update because it is disgusting. From my observation, Android Studio is a crap.
It's not just Android Studio. Too many too often updates. I want to shout "DON'T UPDATE!!!!" Seriously I want developers to take time to make a secure and robust code that needs fewer updates. Current trend of releasing pre-mature and updating later attitude is toxic. The current trend of software development is quite deplorable. That's not what I learned. People may call me outdated. But, if releasing a crap pre-mature software is the trend, I proudly stay outdated.
Fix for this problem was easy. I entered the exact error message, and Google took me to the solution. I wish Google didn't create this problem for the first place.
But, the program was running extremely slow, most likely because I compiled in the debug mode. I changed the configuration to release mode and tried to test on the emulator, then I was told I needed to sign the code. The APK file was indeed named as something-release-unsigned.apk.
Argh! Code signature again! The main purpose of this code-signature thing used to be for good cause, but now is to decimate individual developers in the name of security. It's evil. I followed an instruction to make my developer signature which presumably won't be accepted by the Play Store. But, it's ok. My plan is to upload my APK here. I have no business with Play Store.
But, Android Studio keeps trying to run something-release-unsigned.apk and keeps complaining that the APK is not signed. Android Studio could not see somthing-release.apk which d**n Android Studio has just built by itself seconds ago. I force-deleted the something-release-unsigned.apk, but Android Studio only complains file not found.
The time is up for the day. I reverted all the changes except the fix for the new version Android Studio. Will try again.
Added Night Solo. (Although this flight took place a month ago.)
I flew a night-solo for the first time since November of 2013.
Original plan was to take my wife with me, but she got a cold. I thought about cancelling it, but her condition improved, but not good enough to go flying with me. So I flew solo.
Tried to repair my Sanyo Data Recorder (and failed).
Last year I bought a vintage game program called Plazma Line from www.suruga-ya.jp. I also ordered a Sanyo Cassette Data Recorder called MR33DR from Yahoo auction. According to the description the data recorder spins, but the seller could not confirm if it worked or not. Majority of the defective data recorder has some mechanical problems. If it spins, I thought it should be in good shape. The data recorder crossed the pacific ocean using the service from buyee.jp.
However, the data recorder didn't play sound. It spins. But no sound from the speaker and the phone jack. My problem became suddenly challenging then. But somehow I wrote a program that applies filters to the audio recording from a conventional audio cassette player and restored Plazma Line successfully.
Repairing my data recorder has been in my to-do list, but I have been postponing mainly because I didn't have a skill set to do so. Now, after making some serial connection adapters for FM-7, I thought maybe now I can do it. So I tried. (Read more)
Heard Airbus stopped building Airbus 380. They should have modernized Concorde and kept them flying instead, or at least kept Concorde flying :-P
I reluctantly tried to upgrade my Ubuntu 14 in my virtual machine to Ubuntu 16, ending up destroying the desktop. No icon, no menu, no Terminal opens with Ctrl+Alt+T. Utterly broken. I am not that familiar with Linux that I can log in single-user mode and correct settings. I can choose to revert back to back-up Ubuntu 14, or otherwise only option looks to be clean re-installation, absolute waste of time. I end up going through absolutely unproductive and unpleasant waste of time regular basis.
Linux is still extremely brittle. It never gets solid. If a major update breaks the settings so easily, I want Linux developers stop major updates. I want security updates, but I don't want major updates. Does anyone want a new version of an operating system? I don't know anyone looking forward to a new version operating system. A new version, from time to time, makes perfectly healthy hardware unusable by making changes to the device-driver model that I never asked for. Kills good programs by making unnecessary changes in the kernel. When there is major hardware updates, I understand it is inevitable. But, did we have one in the recent years? I am not aware of any. For the past many years, the same thing has been just getting faster. No major changes in the hardware. Major upgrade of an operating system is always a nuisance to me. If they keep doing what customers don't want, nobody will use their product eventually.
A utility for FM-7/77 for loading and running tape-based (T77-image) software title via RS232C.
Succeeded! Fabricating FM-7/77 series RS232C serial communication card.
I have successfully fabricated a RS232C serial communication card for Fujitsu 8-bit FM-7/77 seriescomputers. I have tested with my still-working FM-7 unit.
In fact, I also succeeded in writing a code for overriding BIOS and loading audio-tape based programs into FM-7 via RS232C. The code will be posted here soon.
YS FLIGHT SIMULATOR Version 20181124 Available for Download!
Thank you for your patience! YSFLIGHT Ver 20181124 is ready for download!
Added Fujitsu FM-7/77 Disk Image Write-Back Utility
Updated FM77AV/AV20/AV40 Wireless Keyboard Emulator.
Thank you for your patience! YSFLIGHT Ver 20181124 is ready for download! Major changes are as follows.
- Shadow mapping in OpenGL 2.x version.
- Particle rendering for clouds and smokes.
- Particle rendering support in OpenGL 1.1 and Direct3D9 executables.
- Added Air-Racing mode. Quite primitive, but it at least measures time to pass all check points for you.
- Massively and automatically tested add-ons. I hope the ones stopped working now works again.
- Stopped using Windows installer. I am tired of it.
- SRF models in .FLD file. Older preliminary implementation was checking bounding-box collision, but it now check polygon-by-polygon collision.
- Separated ILS view and Tower view (I think I made it back to same as previous versions.)
When you try to run YSFLIGHT, you may be seeing a security warning from your operating system stating that the executable binary is not code-signed. The purpose of he code signature is to confirm that the program is written by a known person and not altered by a malicious hand. The purpose itself is very correct.
Information security is extremely important. There is no question about that. We hear security breaches, stolen information, identity thiefts, and all sorts of crimes. Many of those incidents originate from a malicious program. Of course, the responsibility is primarily on a person who wrote such a malicious program. Such a programmers should be locked for life without parole.
But unfortunately there are even more cowardly groups of people. There are some companies called certificate authorities who are responsible for issuing digital certificates including code-signing certificates. Those companies are taking advantage of the security problems and cowardly trying to decimate individual free-software programmers.
Code-signing certificate used to be too expensive for individuals. Most of them used to cost like $500 per year. Not just one-time payment every year you have to pay. I wanted to get one for my projects. Yeah, it is not impossible to pay $500 per year, but I couldn't justify to do it for my free-software projects. This time one of the long-time YSFLIGHT users raised a concern about the security warning. So, I did shop around again. I then found $179 per year certificate from COMODO. I paid for it, only to hear that they no longer issue a certificate for individual developers.
I looked into other major certificate authorities, too. None of them issues a code-signing certificate to individuals any more. They apparently are united and are trying to destroy individual developers. It is not just unaffordable. It is now impossible for an individual developer to get a certificate. It is not right. I don't understand how it is allowed. The certificate authorities are intentionally trying to decimate individual programmers like myself.
Therefore, it is not what I like, but I am not able to sign my programs available from YSFLIGHT.COM. I just release my programs without signature. I can do nothing about it. Probably those cowards will win. Individual free-software developers will eventually extinct. All I can do is to tell what's going on on this web site.
Still no words from Vector.co.jp. For the meanwhile, folks outside Japan can download YS FLIGHT 20181124 version from download.com already.
First Flight of the Year
I flew from Beaver today.
I had to cancel flight so many times due to bad weather. I hope we have more flyable days this year.
I flew a local flight from Beaver. I haven't practiced maneuvers for a while, so I thought to practice some this time. After flying steep turns a few times, I noticed another airplane came into the proximity and started practicing maneuvers. I think he was doing Power-On Stalls. I picked a large gap of the clouds and climbed through it.
FM TOWNS Internal SCSI connector pin assignments
If you are an owner of a classic Fujitsu PC, FM TOWNS, and if you are trying to put your hard-disk emulator such as SCSI2SD internal, WAAAAAAIT!!!
Do you have an adapter to be inserted between your SCSI2SD and FM TOWNS' internal SCSI connector? Aren't you trying to directly connect your SCSI2SD to the internal SCSI connector because it is a rectangular 50-pin connector just like a standard SCSI connector?
DON'T DIRECTLY CONNECT YOUR SCSI DEVICE TO THIS CONNECTOR!! MOST LIKELY YOU FRY YOUR DEVICE OR FM TOWNS OR BOTH!!
You need to insert an adapter between the FM TOWNS' internal SCSI connector and the SCSI device.
|Comments are welcome. Send E-Mail to:|