Exploring AI and Privacy with Bing/Copilot

Introduction to AI Privacy Concerns
As a Principal Technical Writer, I delve into how AI intersects with privacy concerns. A recent experience with Bing/Copilot in Edge highlighted a crucial privacy feature.

An abstract representation of AI and privacy generated by DALL-E

Flagging Private Content
While summarizing my Q4 GitHub contributions, Bing/Copilot detected potentially private information. It displayed a dialog emphasizing privacy protection:

“Let’s not save this conversation. The answer to your question may contain info that’s not public. To protect your privacy, we’re not saving it. Chat history so far has been saved.”

Bing/Copilot’s Privacy Alert

The Importance of Data Protection

Why non-saving of conversations matters:

  1. Data Security: Prevents sensitive data from being vulnerable to unauthorized access.
  2. Privacy Compliance: Avoids accidental violations of privacy laws like GDPR or HIPAA.
  3. Trust and Integrity: Builds user trust by ensuring sensitive conversations remain confidential.
  4. Preventing Misuse: Reduces the risk of misusing private data in AI model training.

Your Role in Shaping AI Privacy

Invite community discussion: I encourage you, as a member of the technical writing community, to discuss ways to enhance AI tools for privacy. Your perspectives are vital in navigating this landscape.

Expand Your Knowledge
For more details on Copilot’s privacy features, check out:

  1. Copilot Privacy and Protections
  2. Overview of Copilot
  3. Data, Privacy, and Security for Microsoft Copilot for Microsoft 365

The Copilot in Bing logo

Technical Writing and AI: A Tale of Tractors, Fields, and Fresh Beginnings

Photo by Randy Fath on Unsplash

If life was a sitcom, we’d be at that point in the episode where the character stares at a mirror, questioning their career choice. But since this isn’t television, I’ll save us the dramatic pause and let you know: It will be just fine. Trust me on this.

I’ve been musing on the future of technical writing, a noble profession standing at the crossroads of a transformative technological era. Let me paint you a picture — maybe it hits home, maybe it’s a bit offbeat, or maybe it teaches a different lesson than I intended. Regardless, here it is:

Visualize a remote village nestled between verdant hills and lush farmland. As its inhabitants, we work tirelessly on the land, our lives governed by the ebb and flow of the seasons. We’ve heard rumors of miraculous machines, “tractors,” they call them, yet none of us have seen one up close until now.

Our neighbor returns from a trip to the city, steering this monstrous contraption, its gears grinding, pulling an impressive array of farming tools behind it. Our hearts thud in our chests — both from exhilaration and a twinge of panic. Just like that, we are in the presence of a revolution.

This is precisely where we find ourselves as technical writers today. AI is our metaphorical tractor, promising to amplify the fruits of our labor. The natural response, tinged with a scarcity mindset, might be: Oh dear, do we need fewer farmers/writers now? But, as with many panic-induced thoughts, this isn’t entirely accurate.

For starters, even without the advent of AI, has anyone managed to document everything needing documentation? Not even close. From maintaining and updating a mammoth backlog of content to addressing undocumented features and tailoring content to a diverse user base — there’s more work than we can handle.

Moreover, the advent of AI in docs coincides with its arrival in coding software. The tech industry isn’t sitting idle while AI takes strides. And more software means even more to document. Think of it as job security, if you will.

Lastly, while AI might ease the manual aspect of writing, the cognitive functions remain firmly in human hands. Rather than wielding a hoe, we now get to master the tractor while also strategizing on crop rotation and harvest planning. Translation? You’ll focus on the nuanced art of designing, researching, editing, verifying, and validating content.

While this simplistic analogy and dash of optimism set the stage, the script has many more scenes to unfold. Just as the mechanization of farming saw the younger generation venturing into new fields (pun intended), the technical writing profession will also experience shifts.

Folklore and history are rich with tales of young people leaving familiar homesteads to pursue different careers. Some of us might leave, while others join us, riding the wave of demand and remuneration.

Whether you are a newer or established professional, consider investing further in your craft:

Deepen Product Knowledge: Take courses, read books, roll up your sleeves, and get down to the nitty-gritty of the product.

Know Your Users: Understanding your users’ needs is a formidable superpower in this AI-driven era. Sharpen your listening skills.

Human Relations: Working with your software engineering team is an art. Master it, and you’ll see both personal and professional growth.

Specialization: Besides enhancing your general skills, delve into a niche area. This knowledge not only shields you from potential displacement but makes you invaluable.

This transformative period for technical writing isn’t the end; it’s just a fresh chapter. Let’s welcome it with open arms, shall we? It’s here anyway, just like that neighbor and their damn tractor 😉


CC BY 2.0
https://creativecommons.org/licenses/by/2.0/

Tout comme un bon vin a besoin de temps pour s’épanouir et révéler toute sa richesse, le contenu nécessite également un temps de maturation pour atteindre sa pleine qualité. Il est essentiel de laisser les idées se décanter et s’affiner pour obtenir un résultat profond et savoureux.

(Just like a good wine needs time to bloom and reveal all its richness, content also requires a maturation time to reach its full quality. It is essential to let the ideas decant and refine to obtain a deep and flavorful result.)

Me

Mastering Screen Recording with Kooha

Photo by Magda Ehlers on Pexels.com

A lot is happening in the world of screen recording. From online classes to software demos, remote work to gameplay, the need for reliable, easy-to-use screen recording software is growing exponentially. Kooha, an open-source screen recorder, is a relatively new and noteworthy entrant in this field. Its simplicity and functionality have been turning heads and gaining popularity. Let’s dive in and see what it has to offer.

Introducing Kooha

Kooha is a free, open-source screen recorder designed explicitly for GNOME, a popular desktop environment for Unix and Linux operating systems. Developed using GTK4 and written in Python, it quickly gained attention within the developer community for its simplicity and reliability.

The Kooha user interface
The Kooha UI = Simplicity

A primary design goal of Kooha is to prioritize simplicity and user-friendliness. Rather than overwhelming users with many options and settings, Kooha delivers a streamlined, easy-to-navigate user interface, enabling users to start recording their screens with just a few clicks.

Latest Features of Kooha

Support for Wayland Display Server

Kooha now supports the Wayland display server, the default display server for many Linux distributions. This added support makes Kooha more versatile because it can run on almost any popular distribution.

Xorg and Wayland display servers
Kooha supports both Xorg and Wayland

New Recording Formats

In addition to the WebM and Matroska recording formats, Kooha now supports MP4 and GIF. This added flexibility allows users to save their screen recordings in the format that best suits their needs.

Improved Performance

Kooha has been optimized for performance, which results in faster recording and playback. This makes Kooha more efficient for users who need to record long or high-quality videos.

New Features

Kooha has also introduced several new features, such as the ability to record a specific window or area of the screen, add a watermark to recordings, and export recordings to various file formats.

Open Source and Community-Driven

One of the significant advantages of Kooha being open-source is that its development is not merely driven by a company or a small team of developers. Instead, it’s a community-driven project, with its development and enhancements influenced mainly by feedback and contributions from its user community. This approach often results in well-maintained software, regularly updated, and continually evolving to better meet user needs.

A Bit More About Kooha

Kooha is developed by SeaDve, a solo developer. It is available for download from the GNOME Software Center, the Flathub repository, and the GitHub releases page. It’s compatible with most Linux distributions that use the GNOME desktop environment. Being a continually evolving software, Kooha is regularly updated with new features and bug fixes.

Conclusion

Kooha is an easy-to-use, versatile, free, and open-source screen recorder that offers an excellent option for users needing to record their screens on Linux. The latest version of Kooha includes several new features and improvements, making it even more powerful and user-friendly.

So, if you’re looking for a simple, easy-to-use, and versatile screen recorder for Linux, Kooha could be a fantastic choice. It’s an excellent example of the versatility and power of open-source software, and I recommend giving it a try to see if it fits your needs.

Does WordPress.com support markdown?

Photo by Markus Winkler on Pexels.com

If you are a writer or a blogger, you might have heard of Markdown. Markdown is a simple way to write and format content using plain text and punctuation marks. You can create headings, lists, links, images, and more with just a few characters.

But does WordPress.com support Markdown? The answer is yes, but you need to enable it first.

In this post, I will show you how to use Markdown in WordPress.com and why you might want to try it.

https://en.wikipedia.org/wiki/Markdown#/media/File:Markdown-mark.svg
The Markdown logo

What is Markdown and why use it?

Markdown is a plain-text syntax created by John Gruber and Aaron Swartz in 2004. It is designed to be easy to read and write, and to be converted into HTML by a software tool.

https://en.wikipedia.org/wiki/Aaron_Swartz#/media/File:Aaron_Swartz_at_Boston_Wikipedia_Meetup,_2009-08-18.jpg
Aaron Swartz

Markdown has many advantages for writers and bloggers:

  • It lets you focus on the content rather than the appearance. You don’t have to worry about fonts, colors, alignments, or other formatting options that can distract you from your message.
  • It is portable and compatible. You can write Markdown in any text editor or app and use it on any platform or device. You can also copy and paste Markdown from one place to another without losing the formatting.
  • It is fast and efficient. You can write Markdown with just your keyboard, without using your mouse or menus. You can also use shortcuts and symbols that are easy to remember and type.
  • It is clean and consistent. You don’t have to deal with messy HTML tags or code that can break your layout or cause errors. You also don’t have to worry about different styles or themes that can change how your content looks.

How to use Markdown in WordPress.com?

There are two ways to use Markdown in WordPress.com:

  • You can use a Markdown block in the WordPress.com editor. The Markdown block allows you to write content using Markdown syntax and preview it in real time. You can also convert existing content into Markdown format.
  • You can enable Markdown for your site in the Writing Settings in WordPress.com. This will allow you to use Markdown for all your posts, pages, and comments. You can also customize how Markdown works for your site.

Let’s see how each method works…

Using the Markdown block

You can add the Markdown block to your posts and pages in the WordPress.com editor. It lets you write content using Markdown syntax and see how it looks in the preview tab.

type /markdown and hit enter

To add a Markdown block, click the + icon or type /markdown and hit enter in a new paragraph block. You will see a blank block with two tabs: Markdown and Preview.

In the Markdown tab, you can write your content using Markdown syntax. You can refer to this cheat sheet for a quick syntax reference.

In the WordPress Preview tab, you can see your content’s appearance when published. Note that the actual appearance may vary depending on the styles added by your theme.

The Markdown block follows the CommonMark spec for formatting styles and links.

The documentation claims that you can convert an existing block into a Markdown block by clicking the three dots icon and selecting “Convert to Markdown.” However, when I tested this feature, that option wasn’t available.

Using the Writing Settings

If you want to use Markdown for all your site posts, pages, and comments, you must enable this feature.

To do this, open the WordPress dashboard for your site and go to Settings → Writing. Under Composing, enable the Write posts or pages in plain text markdown syntax option. Click Save Settings.

Now you can write your content using Markdown syntax in any text editor or app and paste it into the WordPress.com editor. It will automatically be converted into HTML when published.

Conclusion

Markdown is a great way to write and format content using plain text and punctuation marks. It benefits writers and bloggers who want to focus on their message rather than appearance.

WordPress.com supports Markdown through the markdown block and the writing settings. You can choose whichever method suits your needs and preferences.

If you want to learn more about Markdown, you can check out these resources:

Create training videos quickly and easily

Photo by Karolina Grabowska on Pexels.com

Training videos are a great way to share your knowledge and skills with your audience, whether they are your employees, customers, students, or followers. However, creating training videos can be time-consuming and challenging, especially if you don’t have the right tools and techniques.

Here, I’ll give you an overview of the steps and best practices for creating training videos quickly and easily. In later blog posts, I’ll show you how to do each of these steps.

Step 1: Plan your content. Before you start recording your video, you need to plan your content:

  1. Identify your target audience.
  2. Define their learning objectives.
  3. Structure your content to meet each objective.

Step 2: Choose your tools. The next step is to choose the tools you will use to create your video. You will need the following items:

  • Recording location
  • Camera or webcam
  • Microphone
  • Screen recorder
  • Video editor

Step 3: Record your video. Once you have your tools ready, you can start recording your video.

Step 4: Edit your video. After recording your video, edit it to make it more polished and professional.

Step 5: Share your video. The penultimate step is to share your video with your audience. You can upload your video to online platforms like YouTube, Vimeo, Udemy, Skillshare, or Wistia. You can also embed your video on your website or blog.

Step 5: Reach out to your audience and iterate. It’s not enough to publish your training video and wait for folks to find it. You have to find your audience, show them your content, gather their feedback, and improve the content.

Getting minikube up and running

After I’ve gotten podman running, I want to start using minikube:

rolfedh@rolfedh-HP-Z2-Mini-G3-Workstation:~$ minikube start
😄  minikube v1.23.0 on Linuxmint 20.3
✨  Using the podman driver based on user configuration

💣  Exiting due to PROVIDER_PODMAN_NOT_RUNNING: "sudo -k -n podman version --format " exit status 1: sudo: a password is required
💡  Suggestion: Add your user to the 'sudoers' file: 'rolfedh ALL=(ALL) NOPASSWD: /usr/bin/podman'
📘  Documentation: https://podman.io

Looking at line 5, I see that starting minikube bombed. I must enable a non-root user like minikube to run podman. How do that?

From line 6, I copy the suggestion, rolfedh ALL=(ALL) NOPASSWD: /usr/bin/podman and open /etc/sudoers by using the visudo command, which uses vim by default:

$ sudo visudo

If you prefer nano over vim, you can use `$ sudo EDITOR=nano visudo` instead:

With /etc/sudoers open in the editor, I write the following comment for my future self, paste the suggestion, and save the changes:

# Added the following line so minikube can run  podman

rolfedh ALL=(ALL) NOPASSWD: /usr/bin/podman

I start minikube again:

$ minikube start
😄  minikube v1.23.0 on Linuxmint 20.3
✨  Using the podman driver based on user configuration
👍  Starting control plane node minikube in cluster minikube
🚜  Pulling base image ...
💾  Downloading Kubernetes v1.22.1 preload ...
    > preloaded-images-k8s-v12-v1...: 515.04 MiB / 515.04 MiB  100.00% 4.25 MiB
    > gcr.io/k8s-minikube/kicbase: 355.82 MiB / 355.82 MiB  100.00% 2.75 MiB p/
E0501 20:01:53.791150 1379766 cache.go:200] Error downloading kic artifacts:  not yet implemented, see issue #8426
🔥  Creating podman container (CPUs=2, Memory=7900MB) ...
🐳  Preparing Kubernetes v1.22.1 on Docker 20.10.8 ...
    ▪ Generating certificates and keys ...
    ▪ Booting up control plane ...
    ▪ Configuring RBAC rules ...
🔎  Verifying Kubernetes components...
    ▪ Using image gcr.io/k8s-minikube/storage-provisioner:v5
🌟  Enabled addons: storage-provisioner, default-storageclass
🏄  Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default

And it works!

Some things I noted upon reviewing the cheery output, above:

  • On line 6, I see minikube is running kubernetes v1.22. How do I get kubernetes v1.24, which is coming out next week? (topic for a future blog post)
  • Reading TBD, I see minikube overwrote .kube/config file to make getting started easier. However, this overwrote the previous configuration, which I was using to connect to a kubernetes cluster I am running on Linode. No worries…I can easily get my hands on the *kubeconfig.yaml file for the Linode cluster. But I wonder, what’s the best way to manage multiple config files for multiple clusters? (topic for a future blog post)

To verify that things are running, I use kubectl to get the names of running pods (po) across all (-A) namespaces.

$ kubectl get po -A
NAMESPACE     NAME                               READY   STATUS    RESTARTS      AGE
kube-system   coredns-78fcd69978-7bvgw           1/1     Running   0             42m
kube-system   etcd-minikube                      1/1     Running   0             42m
kube-system   kube-apiserver-minikube            1/1     Running   0             42m
kube-system   kube-controller-manager-minikube   1/1     Running   0             42m
kube-system   kube-proxy-p6gqj                   1/1     Running   0             42m
kube-system   kube-scheduler-minikube            1/1     Running   0             42m
kube-system   storage-provisioner                1/1     Running   1 (41m ago)   42m

Now, having accomplished my goals of getting minikube up and running, and having published this post, I can stop minikube and go hang out with my family.

$ minikube stop
✋  Stopping node "minikube"  ...
🛑  Powering off "minikube" via SSH ...
✋  Stopping node "minikube"  ...
🛑  Powering off "minikube" via SSH ...
✋  Stopping node "minikube"  ...
🛑  Powering off "minikube" via SSH ...
✋  Stopping node "minikube"  ...

Side note

I’m evaluating Nigel Poulton’s “Kubernetes Quick Start” for team training and want to establish alternatives to the tech stack in the book:

  • Building images with podman and/or buildah instead of Docker Engine
  • Running a cluster on my local machine by using minikube or microk8s instead of running one remotely on Linode.

“podman is already the newest version”, but I’m still getting “Command ‘podman’ not found”

Problem and solution

Problem: After installing podman, I my sistem can’t find it:

$ podman

Command 'podman' not found, did you mean:

  command 'pod2man' from deb perl (5.30.0-9ubuntu0.2)

Try: sudo apt install <deb name>

Uninstalling and reinstalling podman in a variety of ways didn’t didn’t fix the problem. The output always included a podman is already the newest version statement:

$ sudo apt install podman
[sudo] password for rolfedh:        
Reading package lists... Done
Building dependency tree       
Reading state information... Done
podman is already the newest version (100:3.4.2-1).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

Solution: Finally, I found one particular way of reinstalling podman that worked:

$ sudo apt-get install podman --reinstall
Reading package lists... Done
Building dependency tree       
Reading state information... Done
0 upgraded, 0 newly installed, 1 reinstalled, 0 to remove and 0 not upgraded.
Need to get 0 B/17.7 MB of archives.
After this operation, 0 B of additional disk space will be used.
(Reading database ... 472048 files and directories currently installed.)
Preparing to unpack .../podman_100%3a3.4.2-1_amd64.deb ...
Unpacking podman (100:3.4.2-1) over (100:3.4.2-1) ...
Setting up podman (100:3.4.2-1) ...
Processing triggers for man-db (2.9.1-1) ...

Now, podman just works. For example:

$ podman
Error: missing command 'podman COMMAND'
Try 'podman --help' for more information.

Side note: Why am I installing podman?

I’m evaluating Nigel Pouton’s “Quick Start Kubernetes” book as a team training tool. Nigel’s great story-telling skills make learning kubernetes fun. He cuts away the fluff and really tells you the important things in a very engaging way.

Although his website offers a variety of purchase options, I’ve had trouble getting or updating to the latest 2022 edition on Amazon Kindle. Therefore, I strongly recommend purchasing the book on Leanpub: https://leanpub.com/quickstartkubernetes (this is not an affiliate link) where you can always get the latest edition.

What’s the difference between Vale Server and Vale CLI?

With Vale Server, you can use Vale CLI’s style-checking capabilities in editors such as Visual Studio Code, Atom*, Sublime Text, Google Docs, and Chrome.

On your system, you run Vale CLI and Vale Server. In your editor, you run a Vale client that connects to Vale Server and displays style feedback while you’re editing the content.

For example, without using Vale Server, if you run Vale CLI and use the Google style to check some newsletter content in a markdown file, the output looks like this:

With Vale Server, checking the same content in Microsoft Visual Studio Code looks like this:

Hovering my mouse pointer over line 8 displays the same warning message about sentence-style capitalization. Unlike the CLI, this message in the editor gives me a link to docs for the Google.Headings style rule. And if the issue has an automatic “quick fix”, I can click a button to make that change.

In terms of writing and editing, that’s how Vale CLI and Vale Server are different! The other differences have to do with how you configure and administer each one.

Footnote: I haven’t been able to get Atom to work with Vale Server.

Installing Vale CLI

Vale CLI is a style linter you can use to improve your writing style. Here’s a quick oveview: What is the Vale CLI style checker.

After you install Homebrew, which can be a little tricky, you install Vale CLI by running the brew install vale command:

$ brew install vale
==> Downloading https://ghcr.io/v2/homebrew/core/vale/manifests/2.15.5
######################################################################## 100.0%
==> Downloading https://ghcr.io/v2/homebrew/core/vale/blobs/sha256:8b2094cb8521d
==> Downloading from https://pkg-containers.githubusercontent.com/ghcr1/blobs/sh
######################################################################## 100.0%
==> Pouring vale--2.15.5.x86_64_linux.bottle.tar.gz
🍺  /home/linuxbrew/.linuxbrew/Cellar/vale/2.15.5: 5 files, 13.0MB
==> Running `brew cleanup vale`...
Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP.
Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).

That’s it! Pretty easy. You’re ready to start using Vale CLI with Markdown or HTML.

You also need to install a parser if you plan to use Vale CLI with the following markup formats:

  • reStructuredText
  • AsciiDoc
  • DITA
  • XML
  • Code

For example, because I use Vale with Asciidoc markup, I install the asciidoctor parser:

$ brew install asciidoctor
[...]
==> Installing dependencies for asciidoctor: libyaml and ruby
[...]
==> Installing asciidoctor
==> Pouring asciidoctor--2.0.17.x86_64_linux.bottle.tar.gz
🍺  /home/linuxbrew/.linuxbrew/Cellar/asciidoctor/2.0.17: 3,059 files, 22.4MB
==> Running `brew cleanup asciidoctor`...