Update X-Plane navigation database for free

In the United States, you don’t need to buy a subscription from a navigation service provider to update the navigation waypoint and procedure database used by X-Plane.

X-Plane 11 and X-Plane 12 are capable of interpreting the FAA’s Coded Instrument Flight Procedures databases that are available online for free. These won’t give you the latest terrain elevation charts and obstacle databases, but for basic at-home instrument procedure training this is really all you need to match the latest charts, sectionals and FAA procedures.

  1. Visit the FAA CIFP download website, download the latest CIFP zip
  2. Extract the zip and copy the file FAACIFP18 to X-Plane’s Custom Data folder
  3. Rename FAACIFP18 to earth_424.dat
  4. Restart X-Plane

The “navigation data out of date” alert should no longer be present. If this is the first time you’ve done this procedure, you can also verify it worked by checking for the existence of a procedure that’s not in the stock version of X-Plane. (For example, try KLAS RNDRZ TWO arrival procedure which was updated 19MAY22).

Will AI language models make us smarter or dumber?

I think there’s a reasonable case to be made that language models will not make us smarter or dumber. They will offer no improvement to humanity overall, and this hype train will eventually pass. But part of me worries that they may actually freeze us in time.

These models are built by sampling a large set of writing (and images) at a fixed point in time. They are then optimized, with human guidance, to return “better” results. What is “better” is in the eye of the beholder(s), and is often determined by a market or economic incentive rather than what is objectively richer or more sophisticated response. There is an incentive with these systems to provide a result that appeals to the most people–it’s a race towards the median in the best case, (or a race to the bottom in the worst case).

We’ve seen this in many other domains: Movies. Music. Food. As the world has grown more connected and industries strive to serve the most number of people, originality is thrown by the wayside in favor of things that trigger the most user engagement and thus the most sales.

I have a slightly cynical outlook here based on my own past experience. In 2004 I started a music recommendation company. The idea was to help people explore The Long Tail, the edge, the art on the periphery that the mainstream wasn’t picking up. I felt that I had created a wonderful system, but what I discovered then was a fundamental truth that Apple Genius and Pandora discovered years later: most people do not want to explore the long tail. There’s comfort in the familiar. If you like 90’s country music then nine times out of ten you probably don’t want to be bothered with a recommendation to listen to a crossover ska-country fusion band, you just want to hear Garth Brooks.

Given these two forces: consumers wanting to be satiated by the familiar and producers wanting to make things that appeal to the widest audience, my concern is that AI language models will trigger a race towards the median in human knowledge.

Here’s a completely hypothetical example from a potentially not-to-distant future:

User: Who was Henry the 8th?

Computer: Henry VIII was King of England from 1509 to 1547. He had his first wife executed. His disagreement with the Pope led to the English Reformation. [Merchandise] [Quotes]

Compare this to what you get from Wikipedia today, and you’ll see there’s a lot of nuance left out in this answer and the writing style is far more sophisticated. This hypothetical answer is distilled down to only a few “essential” points, as determined by the optimizer(s).

In my view, this is already happening today on the Internet, even without AI language models. YouTube, WikiHow and a mess of other search-engine-optimized sites return wasteful, low-information-density garbage. Time consuming answers to even the simplest questions. When I read what ChatGPT-4 is producing, to me it feels like I’ve fallen into the worst corners of WikiHow-laden search results.

If we increase our reliance on AI generated responses, tuned in ways that appeal to the widest possible audience, it could make it harder for us–as a species–to gain new knowledge. For the future’s sake, I hope my fears prove to be unfounded.

Pellet smoker pulled pork

This recipe is so simple I feel silly writing it down, but it needs to be written down because so many recipes out on the internet for pulled pork are just wrong. Good pulled pork should be tender and juicy. It should almost melt-in-your-mouth. The smoke and pepper flavors should be intense. Great pulled pork does not require barbecue sauce.

You get tender and juicy by holding the pork at the right temperatures while cooking. Like the Texas Crutch, if you seal the pork from air after smoking it and before bringing it above boiling you’ll retain most of the moisture. A healthy amount of salt will help retain moisture during the smoke.

This recipe cooks the pork in two phases: low and slow in the pellet smoker followed by a higher-temperature period in a dutch oven.

Start by rinsing the pork shoulder and patting dry with paper towels. Cut the pork into 3-4″ chunks. (Don’t worry about removing the bone, it will fall out later). Then mix equal parts salt and pepper and thoroughly cover the pork with the salt and pepper blend.

Use salt and pepper where the granules are the same size, such as classic table salt and medium grind pepper. This is important, because salt and pepper of different sizes won’t mix together thoroughly and you’ll struggle getting the right balance.

Place the pork into your pellet smoker set to 150°F and let it go for at least 6 hours, I usually just set it up overnight for 8-10 hours.

Next, move the pork into a cast iron dutch oven and place it in the oven at 225°F for at least 4 hours. (If you have a crock pot large enough it also works to use a crock pot set on high, but more moisture tends to escape with a crock pot vs the dutch oven in my experience).

After 4+ hours in the dutch oven you should be able “pull” the pork using two regular table forks. If there is still a bone in the meat it should easily separate out. Separate all the pork, mixing it back with its own juices.

If the pork is not tender enough to separate give it another hour and try again. Resist the urge to increase the temperature on the oven–this will just dry it out. If you really can’t wait to eat it would be better for you to just eat it, as it’s already well-above a food safe temperature by now. But if you wait you will be rewarded.

Serve straight up on a plate with a side of beans and coleslaw, or serve on a classic white hamburger bun, slaw optional.

If your guests asks for barbecue sauce stare at them with an expression of horror on your face, and then calmly assert the pork does not require “sauce”. For extra kick it may be acceptable to add a little cayenne pepper, but I would recommend this be done sparingly and mixed into the dutch oven before serving.

Restoring nVidia 3D Vision on Windows 10

nVidia ended support for the 3D Vision system on April 11, 2019. I didn’t learn this until I updated to a newer driver today, which then sent me on a long journey trying to figure out how to install a driver newer than I had before but old enough to still have 3D Vision support.

According to the release notes of recent nVidia drivers, “those looking to utilize 3D Vision can remain on a Release 418 driver,” but the 418 driver is not available through nVidia’s driver search tool.

You can still obtain version 418 from guru3d.com, along with a tool you may need to wipe any newer versions of the driver from your system:

Windows 10 may automatically update the driver next time it checks for updates. To prevent it from doing this use the “show or hide update” troubleshooter:

Creating lesson files for Yamaha YPG-235

I recently picked up a YPG-235 off Craigslist. One of the reasons I sought it out was for the “lesson mode” (or “Yamaha Education Suite”) where it helps you learn songs by displaying the notes and pausing the song for you until you hit the notes. You can do the same with a PC/iPad now, but I was hoping for a more offline experience. Sadly, the process to get new songs onto the keyboard is less-than-straightforward.. As I was unable to find a tutorial online on how to do this, here are the basic steps for you, Internet.

You’ll need a PC running Windows, as Yamaha’s music transfer software only runs on Windows. Install the USB MIDI driver for your keyboard and verify you can transfer midi files to it using their “Musicsoft Downloader” program.
Regular midi files will play on Yamaha keyboards, but they won’t work in lesson mode. The trick for getting files to play in lesson mode is to put the music you want to play yourself on Track 0 with the right hand on Channel 0 and the left hand on Channel 1. The file must also be in MIDI Type 0 file format.
Some free software for Windows that can help you out with a conversion: try MidiEditor to rearrange the tracks/channels and GN1:0 to convert MIDI Type 1 format files into MIDI Type 0.
Once you have the file in the right format you should be able to transfer it to the keyboard, reboot and it will appear in the song list and be playable in lesson mode. If you’re looking for free midi files try midiworld.com or hymnary.org. Good luck!

Accessing the OBDLink SX USB Scantool on MacOS X

The OBDLink SX is an inexpensive USB OBDII scantool marketed by ScanTool.net. It’s sold as a Windows-only scantool and comes packaged with some very simple OBDII software.

Not much exists on MacOS X for CAN monitoring, but I was still curious if I could access my car through my Mac. The System Information app told me the OBDLink SX had the vendor ID for Future Technology Devices International, a manufacturer of popular USB<->Serial bridges like the ones in the Beaglebone Black. Once I had that established it was just a matter of guessing the baud rate to see what was connected to it, and a few minutes later I discovered the OBDLink SX is actually the common ELM327 OBD to RS232 Interpreter, for which a great deal of software already exists.

So here’s how you can chat with the OBDLink SX USB on MacOS X:

  • Connect the OBDLink and check if the device appears at /dev/tty.usbserial-000012FD. The Console will also say FTDIUSBSerialDriver: start - ok. If you don’t see the device or this message then you may need to install the FTDI USB kext from here or here.
  • Open a screen session 115200 baud, 8 bits, no stop bits, parity.
  • Type ATZ <enter> to reset the device, at which point you can chat with it.
  • If you want to be able to see what it’s saying back send the ATL1 command to enable line feeds.

Happy hacking.

$ screen /dev/tty.usbserial-000012FD 115200,cs8,-cstopb,parity
ELM327 v1.3a
> ATL1

Restoring a MacBook Pro with an encrypted hard drive

Hard drive encrypted using FileVault? Lost your password? 

You can’t get your data back, but you can make the MacBook usable again:

  • Start the MacBook in Target Disk Mode by holding down ‘t’
  • Connect the MacBook to another computer using a Thunderbolt Cable.
  • You will be prompted for the drive’s password. Click Cancel.
  • Wipe the partition table of the drive using sudo dd if=/dev/zero of=/dev/diskN bs=1024k count=1 (where N is the drive number)
  • Eject the drive.
  • Reboot the MacBook while holding down Cmd-R to enter recovery mode. It will switch to “Internet Recovery Mode” and begin the restore process.

Comcast’s xfinitywifi secondary access point that steals bandwidth and ruins your WIFI experience

About two weeks ago I noticed my wifi performance at home went to garbage. When I first got the router I was getting 20-30Mbps but now I was lucky to get 250kbps. TCP connections were constantly retrying and frequently timing out. Something changed. Figuring my neighbors might have set up a new AP I opened up Maverick’s Wireless Diagnostics tool and started scanning.

What I saw shocked me. There was a new network, one BSSID away from mine, named ‘xfinitywifi’ broadcasting on the same channel, at the same signal strength. That could only mean one thing: someone had hacked my wifi router and somehow got it to broadcast a second network so they could steal my bandwidth.
Thinking first that I was hacked, I reset the modem to factory settings and picked new passwords for everything. I ran some tests and confirmed that my wifi performance was back to what it was the day I got it. Things were fine for a few hours but then the xfinitywifi AP reappeared.
Google search for ‘xfinitywifi’. I’m not the only one. Lot’s of angry people. Others were noticing the same thing, and the culprit was Comcast. Searching more I found that supposedly you can disable it:
We encourage all subscribers to keep this feature enabled as it allows more people to enjoy the benefits of XFINITY WiFi around the neighborhood. You will always have the ability to disable the XFINITY WiFi feature on your Wireless Gateway by calling 1-800-XFINITY. You can also visit My Account at https://customer.comcast.com/, click on “Users & Preferences”, and then select “Manage XFINITY WiFi.”

But when I followed these instructions I received the classic lazy programmer’s, “an unexpected error has occurred, please try again later” error message.

So I called the number and was able to speak to a human being after being on hold for 9 minutes. What they said reflected the experience of other’s who’ve tried similar.
At first she denied that this was going on. I said that my router was broadcasting a second BSSID with the network name “xfinitywifi” and I wanted them to disable it. She said (not joking): “Are you sure? How do you know?” I said I have diagnostic tools and when I power the router off the second network goes down with it.
She still didn’t believe me. She wanted to run me through a set of standard “put the O.N.O.F.F. switch in the O.F.F. position then back in the O.N. position” tests. I interrupted and said I knew it was a Comcast configuration, “you have a button on your website to disable this but it’s not working, I get an error.”
Long pause. Then in a tone that said, “why didn’t you say that the first time” she says “Ohhh… the XFINITYWIFI network… Why would you want to disable that? That’s a free service that we provide. You don’t need to disable it.” Then she pauses, expecting me to say something in return.
My turn to pause. Having practiced these types of conversations in the past, I paused for about 5 seconds, then let out a slow, exasperated sigh. I said, “I dunno.. I dunno what to say. I’m speechless… So.. How can you do this? How can you share my bandwidth without my permission? Where did I agree to this? How is this legal?”
She then tells me that she doesn’t have permission to disable it. Only the wifi support department has that capability. I’m put back on hold.
Imagine at this point my frustration. While on hold I go back to the website and keep reloading the page to disable the feature and finally on the 5th try it lets me disable it. The changes take effect after a minute, the BSSID is gone. I hang up the phone.
30 minutes later I check the Wireless Diagnostics tool again. The BSSID ‘xfinitywifi’ is back. Go back to the website, “unexpected error” yet again.
So it automatically re-enables itself. Which means the choice is either a) buy a different cable modem that doesn’t support this garbage or b) move to a different Internet provider.

I’m 110% for community wireless initiatives. I believe free or highly affordable public access to the Internet would be good for people and better for the economy. In 2002 I co-founded cafwap.net, a small project that tried to blanket as much of the Corvallis, Oregon area in free wifi as possible.

What bothers me about xfinitywifi is a) they didn’t ask my permission to steal my bandwidth b) broadcasting a second AP on the same channel is just dumb and c) they’re charging for this service. I would rather have an open AP and use MAC filtering to limit bandwidth.

Mount a Windows CD on a Mac like a Windows PC would see it

So you’ve got a PC without a CD-ROM drive. (Err, DVD-ROM, DVD-RW, whatever). Or you bought a new PC motherboard without realizing it lacks an IDE port for your antiquated DVD player. Then you bought some software on physical media like it was the 90’s. (Perhaps you got a great deal on tax software, for example). So you have a Mac that has a DVD drive, and you’d like to copy the installer off the Mac but when you insert the CD into the Mac it mounts the Mac partition, not the PC partition.

Drop to the command line and figure out where the CD is getting mounted:

$ diskutil list

Make a temporary directory to mount the image:

$ mkdir /tmp/mnt

Mount the iso9660 partition at that location:

sudo mount -t cd9660 -o nodev,nosuid /dev/disk3s1 /tmp/mnt

Replace /dev/disk3s1 with your CD’s location.