Mathematics with Pi – and earth measurement with network requests

In Ian Stewart’s book, Professor Stewart’s Casbook of Mathematical Mysteries, he writes about an easy way one might prove that the earth is not flat. His “easy” proof can be done by booking some flights and timing them… or, simply looking up actual flights from certain cities to other cities. If it is much much shorter for a certain flight from A to D while A to B to C to D in a nearly straight line is much longer, it’s effectively a proof you can go around the world without falling off…

Continue reading “Mathematics with Pi – and earth measurement with network requests”

Building a Linux App with Python – Part 6, connecting to the repeater listing!

It’s easy to start a Python project in one file, and then add class after class and function after function in the same file – as i have in the repeater-start project. This can get unwieldy after awhile. As I am adding a type for the open-source Hearham Live Repeater Listing, I will make a new node creator that will get the repeaters out of the api. So from what I had before, just one repeater code:

Continue reading “Building a Linux App with Python – Part 6, connecting to the repeater listing!”

Google breaks all Google calendars for the public (Update: Fixed!)

As you may have noticed if you have Google Calendar anywhere on a public website, recently these went down – and are still down, for the general public. View a page with a Google calendar embed while logged out of Google (or try any other browser that is not logged in), and you will get a blank page. This has been reported with dozens of “me too” upvotes.

Continue reading “Google breaks all Google calendars for the public (Update: Fixed!)”

Speech recognition made easy

There are numerous howtos for Raspberry Pi and other portable computer voice applications, like this one, but generally they are using Google’s voice api. This may work… when the wifi or network is working, but not only is this sending your voice to google, it requires payment for usage over a certain amount. Users of your robotic application may be not so thrilled when they see it is sending audio samples to Google, and that it does not even work if there is a wifi hiccup! Instead, let’s go through a simple on-device installation that works fairly accurately with no external dependencies!

Continue reading “Speech recognition made easy”

Building a repeater app for Linux, part 5: Subprocess for listening to the radio

With the number of cheap RTLSDR devices that let you listen to radio or ham radio, it’s only natural to want to check out each of the repeaters and their use when you go to a new area. In fact, once you have a device set up correctly it is easy to integrate that (or any other command line features) into your project.

To start with I set up a class based on what I added for Hearham uploader – this will make the command run in a separate thread, continuing the process until it is killed. An ongoing process must not be on the same thread as the GUI (in any interface, Java, Android, or GTK…) This is going to use subprocess module as it can make it easier to use an existing utility (rlt_fm command in this case), rather than doing the whole signal processing in Python.

Continue reading “Building a repeater app for Linux, part 5: Subprocess for listening to the radio”

Building a mobile app for Linux, part 4: GPS/mobile tracking

Another important part of many mobile apps is location tracking – there is, fortunately, there is a built in api for most Linux systems called Geoclue that should work… There is even a Python-geoclue package, but after some digging I found that this package does not work in Python3. In fact it’s hard to find examples or documentation, if you look at the files of the package you can see there are some basic docs:

Continue reading “Building a mobile app for Linux, part 4: GPS/mobile tracking”