PodcastsNieuwsHacker Public Radio

Hacker Public Radio

Hacker Public Radio
Hacker Public Radio
Nieuwste aflevering

264 afleveringen

  • Hacker Public Radio

    HPR4644: Response to comments on HPR4424: Newsboat...

    21-05-2026
    This show has been flagged as Clean by the host.


    Hi this is your host, Archer72 for Hacker Public Radio.






    In this episode I share some of my findings about a problem with
    the Newsboat naming of the HPR feeds,


    which was brought up in comments about my Newsboat show, HPR4424.







    hpr4424: How I use Newsboat for Podcasts: comment #6 :
    download-filename-format for HPR podcasts






    Ken already had some findings of his own about the
    ccdn.php extension in the feed.







    hpr4424: comment #10 : Summary of findings






    I thought that this might be able to be fixed on an invididual
    basis, and set out to ask Claude.ai a few questions.






    But first, some colaboration from Dave Morriss about a good
    renaming format. This was definitely more on Dave’s side than
    mine, but came up with this.


    You can tell Dave’s handywork from the short variable names, which
    stems from his extensive experience on Unix type machines in the
    University days.






    exif-rename-hpr-dave.sh





    #!/bin/bash

    URL="$(cat /tmp/hpr-url.txt)"
    echo "DEBUG URL: $URL" >> /tmp/hpr-debug.log

    AUDIO_URL="$(curl -s "$URL" | grep -Eo 'https?://[^"]*\.(ogg|mp3)' | head -1)"
    echo "DEBUG AUDIO: $AUDIO_URL" >> /tmp/hpr-debug.log

    if [[ -z "$AUDIO_URL" ]]; then
    echo "ERROR: Could not find audio URL from: $URL" >> /tmp/hpr-debug.log
    exit 1
    fi

    # Changed destination to HPR-queue
    DEST=~/podcasts/hub.hackerpublicradio.org/HPR-queue/

    # Record files present before download
    BEFORE="$(ls "$DEST"*.{ogg,mp3} 2>/dev/null | sort)"

    wget -nc --content-disposition -P "$DEST" "$AUDIO_URL"

    cd "$DEST"

    # Record filename just downloaded (new file not in BEFORE)
    AFTER="$(ls "$DEST"*.{ogg,mp3} 2>/dev/null | sort)"
    DOWNLOADED="$(comm -13 <(echo "$BEFORE") <(echo "$AFTER"))"
    echo "DEBUG DOWNLOADED: $DOWNLOADED" >> /tmp/hpr-debug.log

    ~/bin/exif-rename-hpr-dave.sh

    # Find renamed file — newest file that wasn't in BEFORE
    AFTER_RENAME="$(ls "$DEST"*.{ogg,mp3} 2>/dev/null | sort)"
    RENAMED="$(comm -13 <(echo "$BEFORE") <(echo "$AFTER_RENAME"))"
    echo "DEBUG RENAMED: $RENAMED" >> /tmp/hpr-debug.log

    if [[ -n "$RENAMED" ]]; then
    echo "\"$AUDIO_URL\" \"$RENAMED\" downloaded" >> ~/.local/share/newsboat/queue
    else
    echo "WARN: Could not determine renamed file" >> /tmp/hpr-debug.log
    echo "\"$AUDIO_URL\" \"$DOWNLOADED\" downloaded" >> ~/.local/share/newsboat/queue
    fi





    At first the question was about something simple. The input was a
    query on one of the lines from Kevie’s







    hpr4398 :: Command line fun: downloading a podcast






    Particularly, the section on To get the latest episode of TuxJam






    wget
    curl https://tuxjam.otherside.network/feed/podcast/ | grep -o
    'https*://[^"]*ogg' | head -1






    Which I re-wrote to:





    wget -nc -P ~/podcasts/TuxJam $(curl https://tuxjam.otherside.network/feed/ogg | grep -Eo 'https*://[^"]*ogg' | sort -u | xargs | head -1)





    The reason for $() instead of backticks to enclose a command was
    that the former was being deprecated.







    GNU Bash Reference Manual - 3.5.4 Command Substitution






    -nc –no-clobber is to not re-download a podcast -P specifies
    download directory






    I went on a different direction than downloading TuxJam and asked
    to download the last 2 hpr shows, but
    head -2 did not work as expected. This turned out to be
    an issue with the placement of
    xargs joining all URLs and passing them to
    wget all at once.






    Original:





    wget -nc --content-disposition -P ~/podcasts/hub.hackerpublicradio.org/HPR-newsboat-test/ $(curl [http://hackerpublicradio.org/hpr\_ogg\_rss.php](http://hackerpublicradio.org/hpr_ogg_rss.php) | grep -Eo 'https\*://\[^"\]\*ogg' | sort -u | xargs | head -2)





    New:





    curl http://hackerpublicradio.org/hpr_ogg_rss.php | grep -Eo 'https?://[^"]*\.ogg' | sort -u | head -2 | xargs wget -nc --content-disposition -P ~/podcasts/hub.hackerpublicradio.org/HPR-newsboat-test/


    Key fixes:







    Removed the premature
    xargs before
    head -2
    , so
    head actually limits the list to 2 URLs



    Moved
    xargs wget ... to the end, after the list is already
    trimmed



    Cleaned up
    https* →
    https? (the original would also match
    httpssss
    , etc.)







    Now I wanted the downloaded file to go the the queue file, located
    in
    ~/.local/share/newsboat/queue



    After several iterations in
    Claude
    , it was determined that the audio URL was not being expanded by
    the
    %u in the download macro.






    The solution was to add a /tmp file to hold the actual audio URL





    macro d set browser "echo %u > /tmp/hpr-url.txt && ~/bin/download-and-rename-hpr.sh"; open-in-browser ; set browser "your-normal-browser"





    A few Claude questions later… After asking to add a function to
    the macro in order to add the resulting downloaded file to the
    queue, the file name hpr1234.ogg was being added to the queue
    instead of the renamed file.






    Two things to fix:







    The renamed file isn’t being found because
    ls -t runs before the rename has fully settled, or the
    glob isn’t matching the new filename format (which includes
    spaces and semicolons)



    The existing queue entries show the correct format:
    "url" "path" downloaded — we need to match that, with
    downloaded status and the full renamed path including
    extension







    Exif rename script





    #!/bin/bash
    # ~/bin/download-and-rename-hpr.sh

    URL="$(cat /tmp/hpr-url.txt)"
    echo "DEBUG URL: $URL" >> /tmp/hpr-debug.log

    AUDIO_URL="$(curl -s "$URL" | grep -Eo 'https?://[^"]*\.(ogg|mp3)' | head -1)"
    echo "DEBUG AUDIO: $AUDIO_URL" >> /tmp/hpr-debug.log

    if [[ -z "$AUDIO_URL" ]]; then
    echo "ERROR: Could not find audio URL from: $URL" >> /tmp/hpr-debug.log
    exit 1
    fi

    DEST=~/podcasts/hub.hackerpublicradio.org/HPR-newsboat-test/

    # Record files present before download
    BEFORE="$(ls "$DEST"*.{ogg,mp3} 2>/dev/null | sort)"

    wget -nc --content-disposition -P "$DEST" "$AUDIO_URL"

    cd "$DEST"

    # Record filename just downloaded (new file not in BEFORE)
    AFTER="$(ls "$DEST"*.{ogg,mp3} 2>/dev/null | sort)"
    DOWNLOADED="$(comm -13 <(echo "$BEFORE") <(echo "$AFTER"))"
    echo "DEBUG DOWNLOADED: $DOWNLOADED" >> /tmp/hpr-debug.log

    ~/bin/exif-rename-hpr-dave.sh

    # Find renamed file — newest file that wasn't in BEFORE
    AFTER_RENAME="$(ls "$DEST"*.{ogg,mp3} 2>/dev/null | sort)"
    RENAMED="$(comm -13 <(echo "$BEFORE") <(echo "$AFTER_RENAME"))"
    echo "DEBUG RENAMED: $RENAMED" >> /tmp/hpr-debug.log

    if [[ -n "$RENAMED" ]]; then
    echo "\"$AUDIO_URL\" \"$RENAMED\" downloaded" >> ~/.local/share/newsboat/queue
    else
    echo "WARN: Could not determine renamed file" >> /tmp/hpr-debug.log
    echo "\"$AUDIO_URL\" \"$DOWNLOADED\" downloaded" >> ~/.local/share/newsboat/queue
    fi





    Using
    comm -13 on sorted before/after file lists is more
    reliable than
    ls -t — it finds exactly which file is new regardless of
    timing. Check
    /tmp/hpr-debug.log after the next run to see what
    DOWNLOADED and
    RENAMED show.







    GNU Coreutils - Comm invocation






    Newsboat config snippet






    key changes





    download-filename-format "%t.%e"
    macro d set browser "echo %u > /tmp/hpr-url.txt && ~/bin/download-and-rename-hpr.sh"; open-in-browser ; set browser lynx



    Provide feedback on this episode.
  • Hacker Public Radio

    HPR4643: HPR Beer Garden 13 - Triple IPA

    20-05-2026
    This show has been flagged as Clean by the host.

    Dave and Kevie continue the Beer Garden series with a look at a relatively new style of IPA known as a Triple. Dave samples
    Triple Hazy Jane by Brewdog
    , whilst Kevie tries out
    Glory Triple IPA
    by
    Northern Monk
    .













    Connect with the guys on Untappd:











    Dave






    Kevie




    Provide feedback on this episode.
  • Hacker Public Radio

    HPR4642: Hackerpublic Radio New Years Eve Show 2026 Episode 7

    19-05-2026
    This show has been flagged as Explicit by the host.


    PFSense









    https://www.pfsense.org/









    Chromebook









    https://www.google.com/chromebook/discover-chromebook/









    AMD Sempron 140









    https://www.techpowerup.com/cpu-specs/sempron-140.c820









    Trinity









    https://www.trinitydesktop.org/









    XFCE









    https://www.xfce.org/













    Chrome OS









    https://chromeos.google/









    SSH









    https://www.ssh.com/









    Onshape









    https://www.onshape.com/en/









    TinkerCAD









    https://www.tinkercad.com/









    Thorium OS









    https://thorium.rocks/thoriumos









    Tech And Coffee









    https://techandcoffee.info/









    Panera









    https://www.panerabread.com/en-us/home.html









    IHOP









    https://www.panerabread.com/en-us/home.html









    Waffle House









    https://www.wafflehouse.com/









    In And Out Burger









    https://www.in-n-out.com/









    Economies Of Scale









    https://www.investopedia.com/terms/e/economiesofscale.asp









    Dunkin Donuts









    https://www.dunkindonuts.com/en









    F-Droid









    https://f-droid.org/en/









    Cheap Yellow Display









    https://blog.decryption.net.au/posts/cyd-for-beginners.html









    NTP Server









    https://www.ntppool.org/en/









    Beagle (Dog)









    https://www.akc.org/dog-breeds/beagle/









    Siamese Cat









    https://www.life-with-siamese-cats.com/









    Bsides InfoSec Conference - Knoxville, TN









    https://www.papercall.io/bsides-knoxville-2026









    CI/CD Pipeline









    https://circleci.com/blog/what-is-a-ci-cd-pipeline/









    Strace Command









    https://www.geeksforgeeks.org/linux-unix/strace-command-in-linux-with-examples/









    High Pass Filter









    https://www.izotope.com/en/learn/6-ways-to-use-a-high-pass-filter-when-mixing









    Waters & Stanton - Radio Shop









    https://www.hamradiostore.co.uk/









    Home Assistant









    https://www.home-assistant.io/









    ESP 32









    https://www.espressif.com/en/products/socs/esp32









    EMF Camp









    https://www.emfcamp.org/









    YAML









    https://yaml.org/









    ChatGPT









    https://chatgpt.com/









    TOR









    https://www.torproject.org/









    IPTables









    https://linux.die.net/man/8/iptables










    https://ccrma.stanford.edu/planetccrma/man/man8/ipchains.8.html









    RSYNC









    https://linux.die.net/man/1/rsync









    SYM Link









    https://stackoverflow.com/questions/1951742/how-can-i-symlink-a-file-in-linux









    CDN (Content Delivery Network)









    https://www.cloudflare.com/learning/cdn/what-is-a-cdn/









    Mastadon









    https://joinmastodon.org/









    DuoLingo









    https://www.duolingo.com/









    Fedora









    https://en.wikipedia.org/wiki/Fedora









    Pea Coat









    https://www.artofmanliness.com/style/clothing/mans-guide-pea-coat/









    Haiku









    https://www.haiku-os.org/









    Hunt Brothers Pizza









    https://www.huntbrotherspizza.com/









    Papa Johns Pizza









    https://www.papajohns.com/omni/en









    PIzza Hut









    https://www.pizzahut.com/









    Dominos Pizza









    https://www.dominos.com/









    Marcos Pizza









    https://www.marcos.com/









    Little Ceasars Pizza









    https://littlecaesars.com/en-us/









    Hungry Howies Pizza









    https://www.hungryhowies.com/









    MOD Pizza









    https://modpizza.com/









    Papa Murphys Pizza









    https://www.papamurphys.com/









    Wolfman Pizza









    https://wolfmanpizza.com/









    Fuel Pizza









    https://www.fuelpizza.com/









    Shallow Hal









    https://www.rottentomatoes.com/m/shallow_hal









    South Coast Pizza









    https://southcoastpizza.com/









    Casa Dora









    https://www.casadoraitaliancusinepizzeria.com/









    National Pizza Day









    https://www.nationaldaycalendar.com/national-day/national-pizza-day-february-9









    Sagitarius









    https://www.zodiacsign.com/zodiac-signs/sagittarius/









    Alexa









    https://alexa.amazon.com/userProfile?redirectTo=%2F









    Gemini









    https://gemini.google.com/app









    Netscape









    https://isp.netscape.com/









    Seamonkey









    https://www.seamonkey-project.org/









    Thunderbird









    https://www.thunderbird.net/en-US/









    ULC Minister









    https://www.ulc.org/









    Church Of Spiritual Humanism









    https://spiritualhumanism.org/









    Oberon Zelle Ravenheart









    https://en.wikipedia.org/wiki/Oberon_Zell-Ravenheart









    Temple of Wicca









    https://www.wiccanfamilytemple.org/









    Church Of All Worlds









    https://caw.org/









    Progressive Universal Life Church









    https://www.thepulc.com/









    Pine Time









    https://pine64.org/devices/pinetime/









    AmazFit Watch









    https://us.amazfit.com/









    Zepp App









    https://play.google.com/store/apps/details?id=com.huami.watch.hmwatchmanager&hl=en_US&pli=1









    Pegasus Mail









    https://www.pmail.com/









    Eudora









    https://en.wikipedia.org/wiki/Eudora_(email_client)









    Proton Mail









    https://proton.me/mail









    AOL









    https://www.aol.com/









    OpenSuse









    https://www.opensuse.org/









    Mandrake Linux









    https://www.mandrakelinux.org/









    Virtualbox









    https://www.virtualbox.org/









    Bitcoin









    https://bitcoin.org/en/









    Norway









    https://www.visitnorway.com/









    XFCE









    https://www.xfce.org/






    Provide feedback on this episode.
  • Hacker Public Radio

    HPR4641: Technical Dutch Open Source Event (T-DOSE)

    18-05-2026
    This show has been flagged as Clean by the host.

    Technical Dutch Open Source Event (T-DOSE)

    Ken interviews Peter van Ginneken who is chair of the
    Technical Dutch Open Source Event (T-DOSE)
    .

    It is a free conference to promote the use and development of Open Source software. This event has is organized yearly since 2006 in the Brainport region, near Eindhoven, The Netherlands. During this event, Open Source projects, developers and visitors can exchange ideas and knowledge.

    T-DOSE wil take place on
    6 and 7 June 2026
    at
    the Weeffabriek
    in Geldrop (near Eindhoven).

    https://t-dose.org/2026/

    Contact Information

    Peertube

    Libera.chat
    IRC, #t-dose

    Mastodon

    LinkedIn

    Facebook

    Instagram

    Travel Times



    Country
    Typical Travel Method
    Example Destination
    Approx Duration
    Typical Budget Cost (One Way)




    Belgium
    Train / Flixbus
    Antwerp
    1–1.5h
    €10–25


    Germany
    Train / Flixbus
    Cologne
    1.5–2h
    €20–40


    United Kingdom
    Ryanair flight
    London Stansted
    1h05
    €20–70


    Ireland
    Ryanair flight
    Dublin
    1h40
    €25–80


    Denmark
    Transavia flight
    Copenhagen
    1h25
    €40–100


    Austria
    Ryanair flight
    Vienna
    1h40
    €30–90


    Czech Republic
    Transavia flight
    Prague
    1h20
    €35–90


    Poland
    Ryanair / Wizz Air
    Kraków
    1h50
    €25–80


    Hungary
    Wizz Air
    Budapest
    1h55
    €30–90


    Italy
    Ryanair flight
    Milan Bergamo
    1h35
    €25–85


    Spain
    Ryanair / Transavia
    Barcelona
    2h05
    €35–120


    Portugal
    Ryanair / Transavia
    Porto
    2h40
    €45–130


    Croatia
    Ryanair flight
    Zagreb
    1h50
    €35–90


    Slovakia
    Ryanair flight
    Bratislava
    1h40
    €25–70


    Romania
    Wizz Air
    Cluj-Napoca
    2h20
    €40–110


    Bulgaria
    Ryanair / Wizz Air
    Sofia
    2h35
    €35–100


    Albania
    Ryanair / Wizz Air
    Tirana
    2h30
    €35–110



    Provide feedback on this episode.
  • Hacker Public Radio

    HPR4640: Robert A. Heinlein

    15-05-2026
    This show has been flagged as Clean by the host.

    Robert A. Heinlein

    Robert A. Heinlein was the author who many people claim kicked off the Golden Age, though that can be the subject of many a barroom argument. E.E. “Doc” Smith was already an established writer by this time, and A.E. van Vogt was contemporaneous with Heinlein. But Heinlein managed to outshine everyone in very short order. He was widely known as “The Dean of Science Fiction Writers,” which testifies to his stature in the community, and along with Arthur C. Clarke and Isaac Asimov he was one of the Big Three of the Golden Age. He was the first person to be named a Science Fiction Grand Master in 1974. Four of his novels won Hugo Awards (Double Star, Starship Troopers, Stranger in a Strange Land, and The Moon is a Harsh Mistress), and 7 more works were given Retro-Hugo awards, which are awarded for works that were written before the Hugos were established. He also had many more works nominated for both awards, as well as many other awards like Nebula Awards. In short, he was a big deal to the science fiction community at large, and to me personally. I was, for a short time, managing the web site for The Heinlein Society, and I have read every work of his that I am aware of.

    Heinlein Background

    Robert Anson Heinlein was born in 1907 in Butler, Missouri, and grew up in Kansas City, Missouri, which he described as the middle of the Bible Belt, and this background is reflected in some of his stories, particularly the later ones. His family tradition had it that the Heinlein’s had fought in every American war beginning with the War of Independence, and Robert and his brothers all joined the armed forces. Robert lied about his age when he was 16 in order to enlist in the Missouri National Guard, and a few years later obtained an appointment to the Naval Academy, graduating in 1929 with the equivalent of a bachelors degree in engineering (the Naval Academy did not award degrees at the time). His engineering background is very apparent in his writings. He served on several ships, rising to the rank of Lieutenant, before being discharged in 1934 due to pulmonary tuberculosis. It seems likely that if he did not contract this illness he would have continued his career in the Navy, and with World War II coming, well, who knows what might have happened. But he did get ill, and had to find things to do. He notably got involved with Upton Sinclair’s socialist organization EPIC (End Poverty in California). He ran for office unsuccessfully, running as a left-Democrat in a conservative district. And while he had a disability pension from the Navy, he turned to writing to pay off his mortgage.

    Heinlein’s Writing

    Heinlein was originally known as a “hard” science fiction writer, meaning one who puts plausible and accurate science at the heart of the story. But looking at his entire career, he was equally comfortable writing fantasy, though not the faux medieval kind that many writers. In fact, he coined the term “speculative fiction” to describe the kind of stories he wrote. And if he wanted to he was quite capable of mixing the hard science and the fantasy, particularly in his later novels. And his output was very substantial. Asimov wrote more than Heinlein, but Heinlein stuck to fiction, while Asimov wrote in a variety of fields, so Heinlein’s output in the general area of science fiction/fantasy is the greater. And he is known for works of all lengths from short stories to novels. A useful guide to his works is the book Robert A. Heinlein: A Reader’s Companion, by James Gifford. This book covers all of his science fiction/fantasy works known as of 2000, and gives additional information about the writing and circumstances of the stories. But in 2003 an early work was discovered and published. It was a novel called For Us The Living, and while you can see the germ of Heinlein’s style in this novel, it is also a very early work written in 1938 and is not one of his best. He would get a lot better than this. In any case, it was not published at the time, and is mostly of interest to Heinlein superfans or scholars.

    Heinlein got his real start in 1939 with a short story called Life-line, which was published in John W. Campbell’s Astounding magazine. Isaac Asimov had published a few stories by this time, and his first for John W. Campbell’s Astounding was in the previous month, July 1939, so as you can see this was a very fertile time in the development of the genre. Heinlein’s story was about a scientist who developed a technology to predict a person’s time of death. This totally threatens the insurance industry, and one of the CEO’s put out hit on the scientist, which he of course already knows about having tested himself. This is not the best short story, but it was quite competent, and John W. Campbell immediately asked for more.

    More short stories followed. In the November 1939 issue of Astounding the story Misfit appeared. It introduces the character of Andrew Jackson “Slipstick” Libby, a young man with little education but a great ability to do mathematics in his head. And his ability turns out to be just what is needed during a construction project in space when things go wrong. And in 1940 he had 9 more stories published. And at this point he faced a problem. He was becoming so prolific that for a number of reasons he had to employ pseudonyms for some of his stories. One reason was that he couldn’t have too many stories in one magazine in his name, it made the editor look bad. In any case all of the stories are now published under Heinlein’s name. And of the 9 stories, 6 were either nominated for or won Retro Hugo awards, and several also won Prometheus Hall of Fame Awards, for the best libertarian or anti-authoritarian works. So you can see that his was a talent that exploded on the scene, so that you could legitimately divide the science fiction history into pre-Heinlein and post-Heinlein periods.

    11 more stories of various lengths followed in 1941, and 5 in 1942. There were mostly short stories, but a few novellas and novelettes appeared. But he was really a short fiction writer at this time, and there are some extraordinary stories in this group. He was the most successful writer of speculative fiction of the time, and passed along some advice to anyone who wanted to be a successful writer.

    Heinlein’s Rules of Writing

    Because he was so successful, it should come as no surprise that aspiring writers frequently wrote to him for advice, and in response he formulated his Rules of Writing. This is taken from his On The Writing of Speculative Fiction :

    You must write.

    Finish what you start.

    You must refrain from rewriting, except to editorial order.

    You must put your story on the market.

    You must keep it on the market until it has sold.

    He goes on to say in this article : “The above five rules really have more to do with how to write speculative fiction than anything said above them. But they are amazingly hard to follow—which is why there are so few professional writers and so many aspirants, and which is why I am not afraid to give away the racket!”

    This is very good advice, but as Heinlein points out his rules are indeed hard to follow. For example, Rule #1: You must write. Many people want to be a writer, but not as many really want to write, and there is a very distinct difference. Just as many people want to be a rock star, but don’t want to spend years dead broke playing in dive bars to get there.

    But it is also fair to point out that Heinlein was a rare talent, and I doubt if simply following his rules would make anyone else a similar success. They are good rules, no doubt, but Heinlein was already very familiar with and well-read in the field before he started writing.

    That finishes this particular exploration of where Heinlein came from and how be began his career. And since it all started with short fiction, I next want to focus on that. beginning with his Future History.

    This starts our look at the works of Robert A. Heinlein, the third of the Big Three authors of the Golden Age.

    Links:

    https://en.wikipedia.org/wiki/Robert_A._Heinlein

    https://www.amazon.com/Robert-Heinlein-Readers-Companion/dp/0967987407

    https://www.amazon.com/Us-Living-Comedy-Customs/dp/074325998X/ref=tmm_hrd_swatch_0

    https://en.wikipedia.org/wiki/On_the_Writing_of_Speculative_Fiction

    https://www.palain.com/science-fiction/the-golden-age/robert-a-heinlein/

    Provide feedback on this episode.
Meer Nieuws podcasts
Over Hacker Public Radio
Hacker Public Radio is an podcast that releases shows every weekday Monday through Friday. Our shows are produced by the community (you) and can be on any topic that are of interest to hackers and hobbyists.
Podcast website

Luister naar Hacker Public Radio, Maarten van Rossem &amp; Tom Jessen en vele andere podcasts van over de hele wereld met de radio.net-app

Ontvang de gratis radio.net app

  • Zenders en podcasts om te bookmarken
  • Streamen via Wi-Fi of Bluetooth
  • Ondersteunt Carplay & Android Auto
  • Veel andere app-functies