Ride Write Geek

simple solutions to complex problems

It's possible to install open source maps to many Garmin GNSS1 devices. There are several projects that make the compatible file available. Each project offers unique advantages that will suit different use cases.

  1. BBBike

  2. If you find yourself in a region where you can't read the local characters, the BBBike service provides maps with Romanized place names. Furthermore, a useful map-extraction tool allows you to select the map style and area of interest before downloading the file. A script and download link is sent to your e-mail. You can re-use the script whenever you want to download an updated map. BBBike deserves and needs our support, so please chip in when you can. You can also download a separate map, showing just the contour lines, from the BBBike site.

  3. Opentopomap

  4. Opentopomap is supported by the Friedrich-Alexander-University Of Erlangen-Nuremberg, Germany. The project doesn't accept donations, but one can register and offer whatever assistance one can. The Opentopomap site provides, IMO, the most up-to-date map images. The download process is simple. I find that having the topographical contour map from this site, and the BBBike Cycle or Openfiets map style on my Garmin device is a good solution. Downloading only the latest BBBike map and enabling both or just one of the files as I need them.

  5. Velomap

  6. Velomap and Openmtbmap have been around for a very long time. This project provides users with an installer for initial setup and for map updates. The map can then be used in Garmin's route planning software, Basecamp, on Windows or Mac computers. You can also install the map to QMapshack on Windows, Mac or Linux systems. The software suite allows one to select from a few map styles, create a separate map image for contours, a separate image for buildings, or select an area of interest before transferring the image to your device. This way, your device memory and processor needn't be burdened by a large map file. You can also see a clean map or add detail as and when you need it, on the go. Velomap's premium offering includes 20m or 10m contour lines and Romanized maps (for 'non-Latin' regions). Subscribers can also post queries in the forum.

  7. Sundry tools

    • GMapTool apply edits to any Garmin map file.
    • Transfer a map in sections with Garmin MapInstall
    • Use installed maps, plan routes, create waypoints, courses, and send these to your Garmin from the Garmin Basecamp software. Basecamp relies on MapInstall to send the map to the device.
    • Keep your Garmin updated with Garmin Express
    • Review your activities and interact with connections on Garmin Connect
#Garmin #Map

Donate using Liberapay

Screenshot at 2023-03-19 18-01-46.png

I own two Garmin Edge cycling computers, and multiple Huawei fitness tracking devices. The Huawei Health ecosystem is always improving, and their devices are excellent and affordable. Garmin devices and the Connect platform have unique benefits too. For example, there are badges and challenges which serve to motivate me. One can accumulate points to elevate one's account to higher levels. The Health Sync can sync all activities tracked with a Huawei watch, to Runalyze, Strava and other platforms. Syncing from here to Garmin is fairly easy.

The problem is that Garmin's connect platform will register your activities, but these efforts will not count in the challenges and subsequently, you will not achieve the badges unless you use a Garmin device. Here's one solution.

  1. From the originating platform (Runalyze, etc), export the fit file.
  2. Upload the fit file to Garmin Connect
  3. Download the same target activity from Garmin Connect. This time, select the TCX format file. Now, you can delete the activity from Garmin Connect.
  4. Download an Edge-generated dummy TCX from any earlier activity
  5. At the bottom of this dummy TCX file, find the section header <Creator>...</Creator> Select all the text from that section including the opening and closing section header codes, copy with CTRL+C
  6. In the target TCX file, after </Lap> and before </Activity> insert the selected and copied content and paste it with CTRL+V
  7. When you download the TCX file from Garmin Connect, the calories will be shown as zero. Find this line in the TCX file <Calories>0</Calories> and enter the calories as shown in Huawei Health app or Runalyze.
  8. Save the TCX
  9. Upload the new TCX file to Garmin Connect.
  10. The Walk activity from the Huawei Health app will show as “Other”. It is important alter this category to earn any badges for walking in Connect. Do this from Garmin's mobile app. Find the activity and edit it by switching the Activity Type from “Other” to “Walking”. Save the activity in the app, and your activity will now be reflected correctly.

You win!

Unfortunately, I have yet to figure out how to do the same for steps from my Huawei watch, but you may have better luck with your Fitbit or other tracking devices.

Screenshot at 2023-03-19 18-04-17.png

Collecting virtual badges from reaching milestones or completing challenges and aiming to achieve a higher level is a fun way to stay motivated, maintain your fitness, healthy mind and body. Stay up to date with the monthly challenges available in Garmin Connect because Garmin points will often only accumulate to your account if you have joined a challenge.

PS: click on the image above to find my garmin profile; you can follow me there.

#fitness #cycling #hack #garmin #strava

Donate using Liberapay

  1. Background
  2. I consider Ride With GPS to be the best site for creating routes, planning cycling group activities, and analysing rides. I first signed up for a year's subscription to RWGPS in 2016 and have been doing so nearly every year since. The RWGPS segments feature can be used in a very special sort of way, as I will demonstrate in this article. The Garmin Edge 810 bike computer is capable of alerting you when you approach a Garmin Connect marked segment. Unfortunately, many segments that I created and sent to my device, do not work as expected. The alternative, Strava Live Segments, requires a premium Strava subscription. For one, you'll be financially supporting a company that profits from holding historical user data in ransom. Technical problems arise too, and, unlike the good people at RWGPS, the Strava and Garmin corporations are less invested in replying to questions when things do not work as expected. As I already invested in the Garmin device, I make the most of the poorly-maintained segment feature while it still exists. For those Garmin Connect Segments that will not show on my device, I use a course file. This method worked for me when my primary device was the Edge 800. This bike computer does not have the segment feature, but it does allow the loading of a course. If a selected course contains the necessary race data, a virtual partner screen will provide the same feedback as a Live Segment does. The only difference being the course will need to be loaded just before reaching the start point of the segment. I will now explain how to prepare a course file that will function similar to a Live Segment race.

  3. Identify and Mark The Segment on Ride With GPS
  4. You will need at least a free account on RWGPS. Create a Bike category. From the top left of the Dashboard, Jump To, More. Then from the bottom right corner, Add Bike. You could name it 'Segments'. When you upload your final file, you will select Segments. This will prevent mileage being wrongly added to your actual bike. Identify a segment from any ride on the platform. It can be your own ride effort, or someone else's.

    1. Mark the Segment
    2. To mark the segment, follow the instructions1 at RWGPS. I name these in a way that informs at-a-glance, even on the bike computer screen. I begin with a 4-letter code in uppercase characters, which identifies a district. Then a 5-digit code that identifies the hilltop or another landmark. The bearing and distance in km, elevation gain in km, average gradient and category of climb complete the name. You may want to take a look at a segment, by way of example2.

    3. Identify a PR (yours or another rider's)
    4. Now that you have the segment marked, you want to identify your target performance on the segment. This may be your personal record (PR), or the best effort by the rider appearing at the top of the leaderboard (KOM). The choice is yours. A few minutes after creating the segment, a leaderboard is generated by RWGPS. From your 'Dashboard' go to the 'More' link. Open the tab that says 'Created segments', and find the segment there. You will see the Leaderboard page. Find the target effort in the list.

    5. Download TCX
    You'll want to click on the "Go to ride" link, related to that target effort. When the page opens, you will see the complete ride by the person. I usually save the link to this ride for my own reference. From the "More" link at the top-left of the page, choose "Export as file", then select "Download .tcx file". The file would be named according to the date. I suggest adding the rider's name beside the date. At this point, scroll down the left and select the segment area (not the actual link to the segment name). The map on the right side will now display the segment region, in relation to the entire ride. Select the same type of map in RWGPS as the one shown in your map software. OSM map is usually the one you need. You will use this as reference when manipulating the course data in QMS.

  5. Trim The Ride
    • QMapShack

    I recommend installing QMS from your Linux software manager. If you must use another OS, you can find a link in the sources list below3. You may wish to plug your Garmin in to the computer and have the device show in the workspace of QMS. It makes sense to add a waypoint a few meters before the start point of the segment, save it to locations and transfer this to the device. As you are riding, this waypoint will remind you to load the course.
    1. File menu, Load GIS Data and point to the tcx file. The track name appears in the workspace.
    2. Trim the beginning and tail sections of the track/ride. Point to the position on the track, left-click, then click the scissor icon.
    3. Uncheck "Create a new track" and choose the first "Cut mode".
    4. Choose "Delete first part of the track and keep second one".
    5. Find the end of the segment, repeat the steps, but this time choose "Keep first part of the track and delete the second one"
    6. In the workspace, select the TCX track and Edit. Unlock the padlock icon and provide the name that will show in the Edge Device. Also add a description, eg. KOM by rider's name or PR
    7. In the workspace, select the TCX track and right click, Save as (only allowed characters for the file name). Now also save as GPX.

    Screenshot at 2023-03-12 20-31-45.png

    • GPSTrackEditor

    Use this software4 as an alternative to QMS. I have tested this procedure, but I can't vouch for it always working, as the software doesn't appear to be maintained.
    1. Open the TCX then set to display, in columns, the elapsed time.
    2. Set the start and end point to 'break' for all segments in the ride. In the lap view, save as name of segment (without special characters).
    3. Open the newly saved 'lap' and alter the date field to also reflect the segment name.
    4. Save the newly-named lap as gpx.
    5. In the lap view, save as name of segment (without special characters). Open the newly saved 'lap' and alter the date field to also reflect the segment name.
    6. Save the newly-named lap as gpx again.

  6. Neaten Up
  7. I am testing the use of Garmin's now discontinued Training Center software (final version and the update)5, to ensure the file is suitable and doesn't disturb the functioning of the bike computer during a ride. You can also upload the TCX or GPX file to RWGPS as if you are uploading an activity. Check that cadence, speed and other data is correct, then download to the Edge device. To do all of this, go to Jump to, Upload the TCX or GPX file. Name the ride. Add a description, a link to the KOM ride and add hashtags #KOM or #PR tags. The GTC approach means you will add your device to the software, then import the output file/s from step III above, into the Garmin Training Centre. Finally, send a single or multiple courses to your device. GTC provides a convenient and effective way to keep a track of your courses, IMO. The big downside being the need for a special virtual machine or dual boot running windows crapware.

  8. Download to Edge Device
  9. You are ready to Export the ride as a file. Once again, open the 'ride', from the More link, Export as a file, and this time select .fit file. Save this fit file to the 'GARMIN/NewFiles' folder. Allow your device to reboot.

    You can either delete the file from RWGPS or keep it there as a backup as well as for easy reference.

  10. Ride The Course

When you are riding, observing road safety, as you approach the segment start point, open the course. Do not select “ride to start” when you load the course on the bike computer, as this sometimes causes an error on the Garmin. The Virtual Partner will update. Now, all you have to do is give it your best shot!


  1. Help documentation, Ride With GPS Create segment
  2. Example of Segment bushgrad@RWGPS
  3. QMapShack Download Software
  4. GPS Track Editor Software Download Software
  5. Garmin Training Centre Download Software Initial installer, optional Web update

#cycling #sport #hack #garmin #rwgps

Donate using Liberapay

Soon after arriving in Korea, I bought myself a bicycle to commute in to work. At that time, we lived in a suburb of Hwaseong, in Gyeonggi Province. The town wasn't cycle friendly. In fact, it was hazardous to use the bike. My safe commute took me along agricultural service roads, beside rice paddies and under freeways. In 2010, we moved to Geochang, a town nestled in Daekyu mountain, and Jiri mountain just 25 kms to the south. In contrast to Hwaseong, this location has over 15 kilometers of dedicated biking lanes that run along a pristine river, and are all within walking distance from the residential areas. There are also more trekking routes into the nearby mountains. Furthermore, the nearby motor routes are safer for cycling, than the roads in Hwaseong.

I had given away my first bike when I left Hwaseong, so after living here for a year, I hit on the idea of biking beyond the bus routes in order to explore these beautiful surroundings. I soon found a few mates who were eager to join me on rides of around 30 or more kilometers. For myself, it was like a bug that didn't let go of me. I wanted to go farther and reach greater elevations. The longer rides grew even longer and more frequent, and while I did many memorable rides with friends, I did most of them alone. One of the first really long rides I completed with an Englishman who was teaching here. We rode out here one afternoon and ended up at Hapcheon in the evening. After having supper, we started on our way back again. On our way back, a wild animal (perhaps a small deer or pig) rammed into my companion, injuring him quite severely. He nevertheless insisted on pushing on and we made it back here early the next morning. It was during this ride, we also ran out of celphone battery power. As we relied on our phones to route us back, we were really following our noses and the Korean road signs, in total darkness. I resolved soon after that night to invest in a Garmin Edge 800. A reliable and rugged beast of a navigational tool. Unlike newer models, it has a capacitive touch screen and very long battery staying power.

Here's the route I took on a ride to Jinju in 2014. I did the ride alone, slept the night in Jinju, and made my way back the next morning. A great adventure, some of it, in single digit temperatures! A lot has changed since then. My motivaton for cold, long rides has diminished, and my weight has increased.

#cycling #explore #korea

Donate using Liberapay

I thought that sharing this template might save someone, some time, some day. I know too little about CSS code to solve some of the issues I encountered applying the other solutions. By comparison, this is a simple method, easily learned for later application.

Read the source document (link below) to understand the logic behind the code. Briefly, to move to a lower class of ordered list class <ol>, leave the list <li> 'hanging' when opening another <ol> and close each list using </li> only when that ordered list numbering is complete. Only display size is determined by the heading markers here: <h2> </h2>. In Write Freely environment, the post title is still defined by placing a hash character, followed by a space, before the very first line of the post: # Post Title.

Here is the code template:

<h2>Benefits of Dancing</h2>
<p>Paragraph text here.</p>
<ol><h2><li>Physical</h2><ol type="a"><!-- 'hanging' </li> tag, closing tag not here! -->
  <h3><li>Major Detail</h3><ol type="i"><!-- 'hanging' </li> tag, closing tag not here! -->
        <h4><li>Minor Detail</h4></li>
       <h4><li>Minor Detail</h4></li></ol>
    <h3><li>Major Detail</h3></li><ul><!-- Here's the closing </li> tag -->
          <h4><li>Minor bullet</h4></li></ul></ol>

<h2><li>Psychological</h2><ol type="a"><!-- 'hanging' </li> tag, closing tag not here! -->
   <h3><li>Major Detail</h3><ol type="i"><!-- 'hanging' </li> tag, closing tag not here! -->
        <h4><li>Minor Detail</h4></li>
        <h4><li>Minor Detail</h4></li></ol>
   <h3><li>Major Detail</h3></li><ol type="i"><!-- Here's the closing </li> tag -->
           <h4><li>Minor Detail</h4></li></ol></ol>

<h2><li>Social</h2></li><ol type="a"><!-- Here's the closing </li> tag -->
    <h3><li>Major Detail</h3><ol type="I"><!-- 'hanging' </li> tag, closing tag not here! -->
        <h4><li>Minor Detail</h4></li>
        <h4><li>Minor Detail</h4></li></ol>
    <h3><li>Major Detail</h3></li><ol type="i"><!-- Here's the closing </li> tag -->
            <h4><li>Minor Detail</h4></li></ol></ol>

In the example, mixed unordered (bullets) with ordered (numbered) lists. The upper case Roman and lower case Roman types are also useful.

Bullet markers will default in order: disc (1st order), circle (2nd order), square (3rd order), or none (4th order). The order can be overridden by expressly defining the bullet marker: <ul style="list-style-type:disc;">

The code above renders like this,

Benefits of Dancing

Paragraph text here.

  1. Physical
    1. Major Detail
      1. Minor Detail
      2. Minor Detail

    2. Major Detail
      • Minor bullet

  2. Psychological
    1. Major Detail
      1. Minor Detail
      2. Minor Detail

    2. Major Detail
      1. Minor Detail

  3. Social
    1. Major Detail
      1. Minor Detail
      2. Minor Detail

    2. Major Detail
      1. Minor Detail

    Find me on my Rebased server @bushgrad@zov.oti.st to let me know about omissions, errors, different solutions.

    #writefreely #code #blog #website #write


    1. MDN Web Docs, Mozilla Foundation The Ordered List Element
    2. w3schools, Refsnes Data Unordered List element (type)

    Donate using Liberapay


  • System Installation & Post Installation

  • Yandex Browser working (playing videos)

  • Change the Yandex search engine to render English results.

Business article covering the history of Astra Linux Astra Linux Display (IMAGE: RusBITech)


  1. Astra Linux Common Edition Installation Essentials
    1. Nov 2022 – version: orel-
    2. GNU/Linux Distribution Astra Linux Common Edition Write to USB using ROSA Image Writer or similar Use the guided installation and follow the prompts (Guided LVM with encryption is advised). The Red Book addresses any questions outside the information in this post.

      Consider installing the latest 'generic kernel'. After installing, set your firewall or set it up during installation.

    3. Issues with repository after upgrade
    4. Open the Info Center from start menu and note the Astra Linux version Open Synaptic package manager and disable the old sources (repositories). Create a new source to correspond with the Info Center information.

      Astra Linux Common Edition 2.12.45






      stable main contrib non-free

      Astra Linux Common Edition 2.12.44






      stable main contrib non-free

      Reference latest links from the official site.

    5. Astra Linux links
    6. Get the ROSA Image writer for win/mac or Linux here.

      Latest Version Official

      Alternate link Mega Cloud.

      Astra Linux official user guide.

  2. Debian non-free Sources
  3. To install the Yandex Browser, you need the Debian (buster) sources. Additionally, the stretch sources may prove useful in future. Add these sources now, and enable them only for specific packages, and install packages with careful attention to warnings. Disable them after installing whatever you need.

    Hotkeys for terminal are Meta+t (you can change it – search for fly hotkeys editor in the start menu).

    1. Add The Sources
    2. Alt+T to open a terminal, then issue this to open the sources file for editing.

      sudo nano /etc/apt/sources.list

      Add these lines to the sources list file:

      deb http://deb.debian.org/debian/ buster main contrib non-free
      deb http://deb.debian.org/debian/ buster-updates main contrib non-free
      deb https://mirror.yandex.ru/debian/ buster main contrib non-free

      Save the sources list file (Ctrl+X, and confirm by hitting 'Y').

    3. Import The Keys
    4. Enter these into the terminal one command at a time

      sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 648ACFD622F3D138

      sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 0E98404D386FA1D9

      sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 605C66F00D6C9793

      sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 112695A0E562B32A

      sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 54404762BBB6E853

      After adding the debian sources, update the sources.

      sudo apt-get update

      Now you can install this keyring from the debian sources

      sudo apt install debian-archive-keyring

  4. Yandex Browser
    1. Get the Yandex Package
    2. Yandex Browser is pre-packaged in the Astra OS version 2.12.46 (April 2023). If you installed the April version, proceed to section 3. (iv) below.

      From the Astra Linux link, follow the “Other” link to download the Yandex Stable version or the Yandex Beta Linux deb package.

    3. Download and Install deb Package
    4. Open a terminal in the directory containing the deb package.

      cd ~/Downloads

      List the contents to see the name of the package


      (pay attention to the name of the downloaded Yandex-.deb package)

      Open the Synaptic Package Manager and enable Stretch and Buster repository before proceeding. Close the package manager. If there are errors during the next step, open Synaptic again and 'fix broken packages', then proceed to Update FFMPEG and the installation of libraries.


      sudo dpkg -i Yandex.deb

    5. Update FFMPEG
    6. If you installed the stable version of the browser:

      sudo /opt/yandex/browser/update-ffmpeg

      If you installed the beta version:

      sudo /opt/yandex/browser-beta/update-ffmpeg

    7. Install Other Libraries
    8. These are required for playing video from streaming sites or DRM protected content. Use the Synaptic Package Manager, enable buster sources. Then install the libraries.

      sudo apt update && sudo apt-get -t buster install libc6 libu2f-udev gstreamer1.0-libav

      Remember to disable the buster source after completing this step. Odysee videos should now play without any errors. You will need to reboot before DRM protected streaming services will work. You will still find some text fails to display. To fix this, install the droid font: sudo apt install fonts-droid-fallback

      This procedure is courtesy of the users at the Astra Linux Forum.

    9. Yandex Search Engine
    10. The default Yandex Search engine (ya.ru) renders Russian results. Add the yandex.com search engine to get English results. In the browser settings on the left of the Settings page, enter 'search engine' then click 'Add' to create a new search engine link. Provide a name for the new search engine entry: Yandex Key:

      https://yandex.com/? Enter this link: https://yandex.com/search/?text=%s

      Save the engine and set it as 'default'.

      Go to this link, scroll to the bottom of the page and set the option to “English”.

Donate using Liberapay

Relevance Users of your instance need a login password-reset link or other notifications, sent to their private email address.

Considerations Sendmail, being one of the oldest, behaves well alongside other mail delivery setups. The configuration and files you are going to edit, are compatible with Postfix, for example.

Best practice is to do the following on a fresh setup, i.e. after installing or upgrading your OS, and before commencing installation of the actual website or instance.

IMPORTANT: Remember to do a back-up before making any changes to your precious server. This procedure may not work should your vps service have the smtp ports locked or when the receiving email client always rejects mail from your server.

Required Obtain from your email service, the SMTP host information and port information (587 or something else)

My domain registration provides this host: mail.gandi.net, for instance.


  1. Update, Install, Insert hostname $ = terminal, as user. #, terminal as root. Terminal commands – copy everything after the # or $ in this guide.

    $ su - root
    # apt update
    # apt install sendmail -y
    # hostname
    # hostname --fqdn

    [Remember this information, you may have to insert into [hostname] in the 'hosts' file]

    # nano /etc/hosts
 localhost [hostname] [hostname -fqdn] localhost [hostname] [hostname -fqdn] [edit if necessary, [hostname] (no square brackets), CTRL+x, Y, Enter

  2. E-mail Authentication

    # mkdir /etc/mail/authinfo
    # chmod -R 700 /etc/mail/authinfo
    # cd /etc/mail/authinfo
    # nano smtp-auth

    Add this to the file. Your actual full email (login), and password:

    AuthInfo: "U:root" "I:your@email.com" "P:your_email_password"

    Make a hash file,

    # sudo makemap hash smtp-auth < smtp-auth
  3. Configuration

    # cd /etc/mail

    Edit the text-block below, reflecting your own information. Important: change mail.host.yours.net to your own email host Leave port 587 as it is, unless your email service port is different. Then paste the edited text into the sendmail.me file, which you will edit (nano) now.

    # nano sendmail.mc

    Find this line “MAILER_DEFINITIONS” and paste the edited text-block immediately after that

    define(`RELAY_MAILER_ARGS', `TCP $h 587')dnl
    define(`ESMTP_MAILER_ARGS', `TCP $h 587')dnl
    define(`confAUTH_OPTIONS', `A p')dnl
    FEATURE(`authinfo',`hash -o /etc/mail/authinfo/smtp-auth.db')dnl
  4. Make, reload, restart

    # cd /etc/mail
    # make
    # /etc/init.d/sendmail reload
    # /etc/init.d/sendmail restart

    Test to see it works. Do this (you may need to run it a few times). Check your email to see if it is delivered. It may appear in your server email. Open THAT (nano) to see what errors show up. The command to run a test is:

    echo "My test email being sent from sendmail" | /usr/sbin/sendmail youname@yourmail.com

    Troubleshoot: check every step in this guide. Nano into every file to check your edits. Is the password, host, port and email, correct? Finally, do

    # sendmailconfig
    # /etc/init.d/sendmail restart

    Your Diaspora* instance should now send out an email for notifications. You can test it by logging out and checking the 'forgot password' link.

  5. Pleroma Moderator Panel (AdminFE) Of course, this only applies to a Pleroma instance. Get into this panel (soapbox, from Admin user's profile). “Moderator, or “AdminFE”. On the left of the AdminFE, locate these sections, and make these adjustments.

Settings, Mailer section. Pleroma.Emails.Mailer section

  • Toggle, Mailer: enabled
  • Adapter (dropdown), SMTP
  • Relay, mail.host.yours.net (as above)
  • Port, 465 (or as above)
  • Username, your@email.com (as above)
  • Password, youremailpassword (as above)
  • Use SSL, (enable if port 465)

I hope it works for you. Happy days!


  1. Cloudbooklet, 9 Aug 2021 Install Sendmail, Debian 10
  2. Diaspora Foundation Diaspora Wiki, Debian 10
  3. Suguru Hirahara, 28 Jan 2021 Progressive.blog.dev Install Diaspora, Debian 10

#fediverse #linux #socialmedia

Donate using Liberapay