How to install SSTP VPN on Ubuntu-Based Distros such as Ubuntu, Kubuntu, KDE NEON, Linux Mint

TL;DR

This guide provides step-by-step instructions on installing and configuring Secure Socket Tunneling Protocol (SSTP) VPN on Ubuntu, Kubuntu, KDE Neon, and other similar distros. Whether you're using GNOME or other desktop environments, this guide covers all necessary steps, including troubleshooting tips.

Context

SSTP VPN is widely used for securely connecting to remote networks. It's especially relevant for Ubuntu-based Linux distributions, which might require different installation steps depending on the desktop environment. This guide simplifies the process, ensuring a smooth VPN setup.

Steps

For GNOME-Based Distros (Ubuntu)

1. Install SSTP Packages:

sudo apt install network-manager-sstp sstp-client

2. Open Network Manager:

  • If unsure about accessing Network Manager, run:
nm-connection-editor

3. Creating a New SSTP VPN Connection:

  • Use Network Manager to set up a new SSTP VPN connection.
  • Click on the '+' sign.
  • Select 'Secure Socket Tunneling Protocol (SSTP)' and click 'Create'.
  • Enter the VPN gateway, username, and password.
  • Save the settings.

For Non-GNOME Distros (Kubuntu, Linux Mint, KDE Neon)

1. Install Required Packages:

sudo apt install network-manager-gnome sstp-client network-manager-sstp

2. Accessing Network Manager:

  • Run nm-connection-editor in the terminal.

3. Setting Up SSTP VPN:

  • Click on the '+' sign.
  • Select 'Secure Socket Tunneling Protocol (SSTP)' and click 'Create'.
  • Enter the VPN gateway, username, and password.
  • Save the settings.

4. Connecting to VPN:

  • Connect via your network manager (tested on KDE).

Troubleshooting

  • Restarting NetworkManager Services: Sometimes, it's necessary to restart network services for changes to take effect. Use sudo service network-manager restart in the terminal.
  • Other SSTP Versions I use the following versions
dpkg -l | grep sstp
ii  libsstp-api-0                                 1.0.17-1                                                                     amd64        Connect to a Microsoft Windows 2008 server using SSTP VPN
ii  network-manager-sstp                          1.3.0-0ubuntu1                                                               amd64        network management framework (SSTP plugin core)
ii  network-manager-sstp-gnome                    1.3.0-0ubuntu1                                                               amd64        network management framework (SSTP plugin GNOME GUI)
ii  sstp-client                                   1.0.17-1                                                                     amd64        Connect to a Microsoft Windows 2008 server using SSTP VPN

References

  • Trial and Error
  • sstp documentation

How to install Linux Mint's webapp-manager on Ubuntu/ Kubuntu 22.04

TLDR

Install Linux Mint's WebApp Manager on Ubuntu/Kubuntu 22.04 by downloading the .deb file and using wget and apt commands. This guide provides a quick and easy method for installation, suitable for KDE Plasma 5, KDE Plasma 6, GNOME, and more.

Context

Linux Mint's WebApp Manager allows users to create web apps that feel like native applications on their desktop (They get their own icon, menu entry and isolated browser profile, and you can select which browser to use). This guide focuses on installing it on Ubuntu, Kubuntu and KDE Neon based on 22.04, avoiding the complexities and potential issues of adding Linux Mint's repositories directly.

I love Linux Mint but the last few months I migrated to KDE Plasma as Desktop environment. This meant (of course) testing new distros to check if there was any distro with better Plasma integration (it does not come with Linux Mint by default).

After changing distros, I really missed the Webapp Manager from Linux Mint, thus this guide.

Why This Method?

While some sources suggest adding Linux Mint's repositories to install the WebApp Manager, this method can be problematic. Linux Mint is a standalone distro, built on Ubuntu or Debian (depending on the version). Adding its repositories directly to Ubuntu or Kubuntu without proper configuration (for example, setting sources prios) can lead to package conflicts and system instability. By downloading and installing the .deb file directly, we bypass these issues. However, it's important to note that this method doesn't provide automatic updates for the WebApp Manager.

Steps to Install

All in one

cd ~/Downloads
wget http://packages.linuxmint.com/pool/main/w/webapp-manager/webapp-manager_1.1.5_all.deb
sudo apt  install ./webapp-manager_1.1.5_all.deb
sudo apt install -f  # in some cases there are missing packages and this will install those.

Or step by step

1. Open Terminal and Navigate to Downloads Directory:

cd ~/Downloads

2. Download the .deb Package

Use the wget command to download the latest version of the WebApp Manager.

wget http://packages.linuxmint.com/pool/main/w/webapp-manager/webapp-manager_1.1.5_all.deb

3. Install the Downloaded Package

Use apt install command to install the package.

sudo apt install ./webapp-manager_1.1.5_all.deb

4. Resolve Dependencies

If there are missing packages, use the following command to install them.

sudo apt install -f

5. Launch WebApp Manager

Search for 'Web Apps' in your desktop environment's menu to start using the WebApp Manager.

Compatibility

This should work on almost any Debian/ Ubuntu based distro, but I tested on Linux Mint with Plasma 5, KDE Neon with Plasma 6.

References

  • This answer on Stackoverflow
  • https://ubuntuhandbook.org/index.php/2021/01/install-linux-mints-web-app-manager-ubuntu-20-04/

Overview: Enhancing Group Discussions and Decision-Making with Edward de Bono’s Six Thinking Hats Technique

TLDR The Six Thinking Hats by Edward de Bono, is a powerful tool for group discussion and individual thinking. It segments thought processes into six distinct approaches, each represented by a colored hat. This method enhances focus, creativity, and collaboration, making it great for effective decision-making and problem-solving.

Context

As I mentioned in my previous post, Unlocking Innovation and Value: A Summary of SRI's Five Disciplines of Innovation (5DOI), innovation is a key driver of growth and value creation. It is a complex process that requires a systematic approach to be successful. SRI International has developed a framework for innovation called the Five Disciplines of Innovation (5DOI). This framework include a technique called "Value Creation Forum process", which is a systematic approach to structured thinking and problem-solving. As I wrote there, that is really similar to Edward de Bono's Six Thinking, which is, in my opinion, a more general and powerful tool for group discussion and individual thinking.

While the Five Disciplines of Innovation (5DOI) framework is a systematic approach to innovation, the Six Thinking Hats is focused on structured thinking and problem-solving, allowing individuals and groups to explore different ideas and approaches to a problem without getting into a debate involving personal opinions.

The thinking hats allows for what's called "enclothed cognition", which is a phenomenon in which the clothes you wear (including hats) can affect your psychological processes. In other words, the hats help you to think in a certain way.

Introduction to Six Thinking Hats

The Six Thinking Hats is a model introduced by Edward de Bono in 1985. It's a thinking process that simplifies and streamlines discussions, particularly in group settings. By "wearing" different colored hats, participants can switch perspectives and explore various angles of a problem.

In my experience, physically wearing the hats is important. It helps to keep the conversation focused and on track, and helps the participants to "own" their role. It also helps to keep the conversation from getting personal, which is more important than what you think. The hats are a tool to help you think, not a way to judge others. Once you judge others or get personal, the conversation is about the people, not about the ideas. And once that happens, the conversation is over and people will start defending their positions instead of exploring new ideas.

Once you wear a hat, you are only allowed to speak and share ideas from that perspective. This means, that if you are wearing the black hat, you can only share critical thoughts and ideas. Wearing the hat also protects you from becoming the "bad guy" or the devil's advocate in a conversation. It's not you, is the hat.

Why the Six Thinking Hats Method is so interesting?

This method is intriguing as it breaks down complex decision-making processes into manageable parts. It encourages diverse perspectives, reduces conflict, and makes it easier to have constructive dialogue. The Six Thinking Hats approach is a game-changer for teams and individuals seeking to enhance their problem-solving skills and actually get things done in a collaborative way.

Why You Should Use This Method

  • Enhances Creativity: Encourages out-of-the-box thinking in a safe way.
  • Reduces Conflict: By seeing things from multiple perspectives and using the hats, misunderstandings and conflicts are minimized as it helps prevent getting personal.
  • Streamlines Decision-Making: Makes group discussions more focused and efficient, as there is a structured approach to the conversation.

The Six Thinking Hats

The Six Thinking Hats method uses 6 thinking hats, each of which represents a different perspective. The hats are:

  1. White Hat: Focuses on data and facts. (What information do we have? What information do we need?)
  2. Red Hat: Represents emotions and feelings. (How do we feel about this? What are our gut reactions?)
  3. Black Hat: Concerns caution and critical thinking. (Something like the Devil's Advocate, from which there is always something to learn)
  4. Yellow Hat: Symbolizes optimism and positive thinking. (What are the benefits? What are the opportunities?)
  5. Green Hat: Represents creativity and new ideas. (What are some alternatives? What else can we do?)
  6. Blue Hat: Manages the thinking process. (What is the goal? What is the next step? Who is responsible for each step?)

Examples in Fictional and Real-Life Situations

  • Corporate Strategy Meeting: You discuss a new product launch strategy from different perspectives, in a structured way.
  • Educational Setting: Teachers use hats to encourage students to explore different perspectives.
  • Personal Decision-Making: An individual uses hats to evaluate career options, weighing facts, emotions, risks, benefits, creative possibilities, and overall planning.

The Six Thinking Hats Method in Action

Step 1: Define the Problem

The first step is to define the problem or issue you want to address.

Step 2: Assign Roles

There are three main roles in my experience:

  1. Facilitator: The facilitator is responsible for
  2. guiding the conversation and making sure that the rules are followed,
  3. making sure that the conversation is focused on the problem and not on the people,
  4. intervening if the conversation gets personal.

It is important to note that the facilitator should not be the one that is wearing the hats, as it is difficult to manage the conversation, wear the hats and try not to be biased at the same time. (been there, done that 😁)

This person usually wears the blue hat (according to some sources), as it is the one that manages the thinking process. I like to leave the facilitator without a hat because thinking process, or processes in general, are also part of the perspectives the group should explore.

  1. Recorder: The recorder is responsible for taking notes and keeping track of the ideas and perspectives that are shared. You can think of this person as someone who wears the white hat, as it is the one that focuses on data and facts but, as I said with the facilitator, I like to leave this person without a hat.

  2. Participants: The participants are the ones that wear the hats and share their ideas and perspectives.

Step 3: Assign Hats

According to the topic to explore and discuss, and the number of participants, I personally use two approaches:

  1. Assign hats to participants: Assign each participant a role, represented by a hat. For example, one person can be the white hat, another the red hat, and so on. You can also assign multiple hats to one person, depending on the size of the group. This allows for a more focused conversation, as each person is responsible for a specific perspective, but prevents the participants from exploring other perspectives and the group from exploring the topic as a whole.
  2. Rotate hats: Assign each participant the same hat and rotate the hats after a certain amount of time. This allows for a more holistic conversation, as each participant is responsible for all the perspectives, but it can be more time-consuming.

Step 4: Explore Perspectives

Once you have decided on the approach to use, you can start exploring the different perspectives. The facilitator should guide the conversation and make sure that the rules are followed. The recorder should take notes and keep track of the ideas and perspectives that are shared.

Step 5: Summarize and Decide

Once you have explored all the perspectives, you can summarize the ideas and perspectives that were shared and make a decision. If there are to many ideas and insights, you can use a tool like Affinity Diagrams to group them and make sense of them.

This looks something like this:

Affinity Diagram from mindtools.com
Affinity Diagram from mindtools.com.

In easy words, you write each idea on a sticky note and group them by similarity and then assign them a name for each group, much like a category. This allows you to make sense of the ideas and insights and to make a decision.

If the time allows it, you can this in the same session. Depending on the topic, number of participants and time available, I sometimes leave this as a task for the facilitator and the recorder. They then analyse and prepare the results for the next session to be discussed and decided on.

Step 6: Results and Follow Up

Once you have made a decision, you can start implementing it. It is important to follow up on the decision and to make sure that it is implemented. This can be done in a follow-up session, where you can use the same approach to explore the results and to make adjustments if necessary.

In the previous step, in the discussion of the results, you also decide on the next steps and assign responsibilities. This is important, as it makes sure that the decision is implemented and that the next steps are clear.

By not way should you leave the session without a clear next step and a responsible person for each step. This is a common mistake that I have seen many times. People leave the session with a decision, but without clear next steps and a responsible person for each step. This leads to the decision not being implemented and the next steps not being clear, which leads to frustration and a waste of time, and worst of all, with the feeling that the methodology does not work.

Key Takeaways

  • Structured Thinking: The 6 thinking hats provides a clear framework for discussions.
  • Defined Roles: The hats and roles allow for a clear definition of what is expected and give the participants the freedom and security of exploring different perspectives that they would not usually pursue.
  • Focus: The hats help to keep the conversation focused and on track, and help the participants to "own" their role. (if I'm being the Devil's Advocate, it's not me, it's the hat, and I may as well play my role right. Later I will be able to say my creative ideas, or my need to get data, and so on.).
  • Safe: The hats help to keep the conversation from getting personal.

References

  1. Edward de Bono's book "Six Thinking Hats"
  2. Affinity Diagrams
  3. Experiences using the method in different settings and with different groups.

  • Disclosure: This post includes affiliate links to books I endorse. Should you choose to make a purchase through these links, I may earn a commission at no extra cost to you. Rest assured, I recommend only those books I've personally read and found valuable. 

Unlocking Innovation and Value: A Summary of SRI's Five Disciplines of Innovation (5DOI)

Context

Innovation is a key driver of growth and value creation. It is a complex process that requires a systematic approach to be successful. SRI International, a nonprofit research institute, has developed a framework for innovation called the Five Disciplines of Innovation (5DOI). This framework provides a systematic approach to innovation that can be applied to any organization or industry.

SRI’s Five Disciplines of Innovation (5DOI) and Value Creation Process

Note: SRI stands for Stanford Research Institute

First, one should start defining what Innovation is. For SRI, it means:

The creation and delivery of new customer value in the marketplace with a sustainable business model for the enterprise.

It is also important to highlight that for SRI, Innovation is a process, not an event.

(Innovation) is a disciplined, continuous improvement process with a focus on creating customer value.

So, what are the 5 disciplines of Innovation?

Discipline 1: Need (Important Needs)

You need to know who the customer is and why would the customer take out their wallet and give you their money.

If you are trying to innovate (bring something new to the marketplace), you need to know who the customer is and why is the customer compelled to solve that problem now. This means focusing on an important market need, not an interesting one.

There should be a sense of urgency to solve a particular need.

Discipline 2: Value (Value creation)

You need to be able to explain yourself and your value proposition to the one you want to sell it to (investor, customer, team, etc.)

The template for the Elevator Pitch has, according to SRI, the following parts:

  1. a hook: to get their interest
  2. a core: you NABC value proposition (check below)
  3. a close: action to get to the next step

NABC or How to create a value proposition (Value Creation)

NABC is an acronym for Need, Approach, Benefits, Competition. It is a way to structure your value proposition and to make sure you are communicating the right information.

Each letter represents a question:

Need: What is the need you are trying to solve?

Approach: How are you going to solve it?

Benefits: What are the benefits of your approach?

Competition: What is the competition doing?

Value Creation Forum process

This is a lot like 6 Thinking hats, from Edward de Bono (1985) (which is a topic for another post).

The idea is to have a structured way of providing feedback. This is very useful for example in a PITCH or the discussion of an Idea.

A PITCH is a presentation of an idea, a project, a product, etc. It is usually done to get funding, but it can also be done to get feedback, to get buy-in, to get support, etc. It should be short and to the point.

When you give a PITCH, presentation or similar, you are expecting SMART Feedback. (We will get back to it later).

For the feedback to be valuable, it has to be structured and understood. For this the following roles are needed, according to SRI:

  • Green Hat: only good, what is working and is successful in the pitch.
  • Red Hat: What would I like to see more of, what can be improved.
  • Eyes of the customer: Customer's perspective
  • White Hats: What would a founder or the decision maker need to hear to fund or make the final decision?

Discipline 3: Champion (Innovation Champions)

You need to identify and encourage champions.

Even if you have a great story, for an innovation to get into the market, someone has to be the champion. This champion has to have passion and drive.

You recognize a champion by their behavior. They are extra-energetic people and can bend the rules a little bit to make the time.

Why is this important? Because if you don't have a champion, the innovation will not happen. You need someone to push the project forward and does everything in his power to make it happen. This person should be well-connected (internally) and resourceful.

Discipline 4: Team (Innovation Team)

If you are going to have a successful innovation process, on a repeated basis, you need to have programs and processes to form teams and to encourage teams to work together.

Even if you have a champion, they cannot do everything by themselves. They need a team with the right skills and focus.

This team should be able to work together and have the right level of expertise to reach the goals and place the innovation in the market. They should also be open-minded and willing to learn from their mistakes.

Remember: this is a process, not a one-time event.

There will be mistakes and failures, and the team should be able to keep moving forward when this happens and adapt to the new situation. Even if this means changing the product, the concept, or starting again from another point.

Level of expertise matches the level of ambition.

You cannot have a non-experienced team working on a high-ambition project. This will most likely fail and cause frustration in the team. You need a balanced team with the right level of expertise for the project.

Discipline 5: Organization (Organizational Alignment)

An innovation needs the support of the organization.

Organizational alignment. The organization should have procedures in place to support innovation and not squash it. For example, objections because a new Idea might threaten an existing business might hinder innovation.

Final Thoughts

These disciplines are thought as being multiplicative. This means that if one of them is 0 (zero) then your odds of success are 0. You need all of them for this to work.

It is also important to note that an innovation could put another business inside your organization out of business, or it could also be in development in another company which may do it faster and better than yourself. You should be aware of this and be prepared to react to it.

References

How to Use Virt-Manager on Linux Mint/Ubuntu: A Step-by-Step Guide

TLDR

This article guides you through the installation and usage of Virt-Manager on Linux Mint or Ubuntu, providing an easy way to manage virtual machines (VMs).

Context

Virt-Manager is a graphical tool for managing virtual machines via libvirt. It's user-friendly and supports KVM/QEMU and Xen virtualization.

Why Virt-Manager?

  • Graphical Interface: Easy for beginners.
  • Wide Support: Works with KVM, QEMU, and Xen.
  • Linux Compatibility: Ideal for Linux Mint and Ubuntu users.

Steps

1. Installing Virt-Manager

  1. Open Terminal: You can press Ctrl + Alt + T or search for terminal in the start menu.
  2. Update Repositories:
sudo apt update
  1. Install Virt-Manager:
sudo apt install virt-manager

2. Adding Your User to Relevant Groups

  1. Add Your User to the libvirt Group:
sudo usermod -aG libvirt $USER
  1. Add Your User to the kvm Group:
sudo usermod -aG kvm $USER
  1. Reload Groups:
newgrp libvirt 
newgrp kvm

3. Using Virt-Manager

  1. Open Virt-Manager: You can search for virt-manager in the start menu or run the following command in the terminal:
virt-manager
  1. Create a New Virtual Machine: Click on the Create a new virtual machine button.
  2. Select Installation Method: Choose Local install media (ISO image or CDROM).
  3. Select ISO Image: Click on the Browse button and select the ISO image you want to use. You can downlaod Ubuntu server from here: Ubuntu Server.
  4. Follow the Wizard: Choose the installation method and configure your VM.

4. Managing Virtual Machines

  • Start/Stop VMs: Right-click on the VM and select Start or Shut Down.
  • Access VM Console: Double-click the VM.
  • Edit VM Settings: Right-click and choose Open.

Troubleshooting

1. Unable to Connect to libvirt qemu:///system Error on Linux Mint/Ubuntu

Steps to solve

1. Ensure libvirt Service is Active
  1. Check Status:
sudo systemctl status libvirtd
  1. Start Service:
sudo systemctl start libvirtd
  1. Verify user group permissions:
# check groups for user
groups $(whoami)
# add required groups if missing
sudo usermod -aG libvirt $USER
sudo usermod -aG kvm $USER
# reload groups or log out and log in again
newgrp libvirt 
newgrp kvm
2. Check libvirt Configuration
  1. Open libvirt Configuration File:
sudo nano /etc/libvirt/libvirtd.conf
  1. Enable TCP Connections: Uncomment listen_tcp = 1.
  2. Restart libvirtd Service:
sudo systemctl restart libvirtd

Note: Sometimes just rebooting the service also works.

Reboot the System

Sometimes, even in linux, rebooting the system can solve the problem.

References

How to Create a 'Next/Previous' Article Navigation in Nikola Static Site Generator

TLDR

This guide demonstrates how to create and implement a 'Next/Previous' navigation shortcode in Nikola. Ideal for article series, this feature enhances user navigation through sequential content.

Context

Navigating through an article series or multipart content can be challenging for readers without proper navigation aids. Implementing a 'Next/Previous' button system in Nikola SSG helps readers seamlessly move through related content and allows you to create article series with ease.

I am using this on my UX series, and it looks like this:

UX Series Navigation

I wanted a way in Nikola to create a 'Next/Previous' navigation system for my article series and I wanted to be able to reuse it in other articles, thus I decided to create a shortcode.

Prerequisites

This guide assumes you have a basic understanding of Nikola and have already created a Nikola site. If you haven't, please check the Nikola Handbook for more information.

We will be using the Bootstrap framework for styling and Jinja2 for templating.

I will be saving the shortcode in the shortcodes folder in the root of my Nikola site. You may also save it to the templates folder, but then other steps are needed.

Creating the 'Next/Previous' Navigation Shortcode

What I wanted to achieve is a shortcode that displays two buttons: one for the previous article and one for the next article. The buttons should be styled with Bootstrap and should be responsive.

The button will receive 4 parameters:

  • previous_url: The URL of the previous article.
  • previous_text: The text to display in the previous button.
  • next_url: The URL of the next article.
  • next_text: The text to display in the next button.

If the previous_url or next_url are empty, the corresponding button should not be displayed and the button should use the full width of the row.

For example for the first article, there is no previous article, so the previous button should not be displayed and for the last article, no next button should be displayed.

Of course, you can also use the buttons for something else, like linking to your next recommended article or something similar.

Step 1: Create the Shortcode

In the shortcodes folder, create a file called series_buttons.tmpl and add the following code:

<div class="row mb-4" id="series-buttons">
    {% if  previous_url %}
    <div class="{% if next_url %}col-md-6{% else %}col-md{% endif %} d-flex align-items-stretch">
        <a href="{{ previous_url }}" class="btn btn-secondary w-100 d-flex justify-content-between align-items-center mb-2 series-button-prev" aria-label="Previous in series">
            <i class="fa fa-arrow-left"></i> <span class="mx-auto">{{ previous_text|default("Previous in series") }}</span>
        </a>
    </div>
    {% endif %}

    {% if  next_url %}
    <div class="{% if prev_url %}col-md-6{% else %}col-md{% endif %} d-flex align-items-stretch">
        <a href="{{ next_url }}" class="btn btn-secondary w-100 d-flex justify-content-between align-items-center mb-2 series-button-next" aria-label="Next in series">
            <span class="mx-auto">{{ next_text|default("Next in series") }}</span> <i class="fa fa-arrow-right"></i>
        </a>
    </div>
    {% endif %}
</div>

Step 2: use the Shortcode in an article

Depending on which markup language you are using, you can use the shortcode in different ways.

In all cases, the same (optional) parameters are used:

  • previous_url: (optional) The URL of the previous article. If not present, the previous button is not displayed.
  • previous_text: (optional) The text to display in the previous button. If not present, the default text is "Previous in series".
  • next_url: (optional) The URL of the next article. If not present, the next button is not displayed.
  • next_text: (optional) The text to display in the next button. If not present, the default text is "Next in series".

reStructuredText

In reStructuredText, you can use the shortcode like this:

.. series_buttons:: 
    :previous_url: /previous-article
    :previous_text: Previous Article
    :next_url: /next-article
    :next_text: Next Article

Markdown

In Markdown, you can use the shortcode like this:

series-button-md-html-example.html (Source)

{{% series_buttons previous_url="/previous-article" previous_text="Previous Article" next_url="/next-article" next_text="Next Article" %}}

HTML

In HTML, you can use the shortcode like this:

series-button-md-html-example.html (Source)

{{% series_buttons previous_url="/previous-article" previous_text="Previous Article" next_url="/next-article" next_text="Next Article" %}}

AsciiDoc

In AsciiDoc, you can use the shortcode like this:

[series_buttons, previous_url="/previous-article", previous_text="Previous Article", next_url="/next-article", next_text="Next Article"]

Step 3: Customize the Shortcode Styles (Optional)

The shortcode uses Bootstrap 4 styles and have the following classes and ids:

  • the main row has the id series-buttons
  • the previous button has class .series-button-prev
  • the next button has class .series-button-next

You can customize the styles of the buttons by adding the custom CSS to your custom.css file.


That's it! You now have a 'Next/Previous' navigation shortcode that you can use in your Nikola site.

Key Insights from the UX Design Series | UX Series Part 6 of 6

TLDR This article offers a condensed overview of the insights from my UX Design series, highlighting essential aspects like user testing, information architecture, visual design, and prototyping in UX.

Context:

Understanding and effectively implementing UX design principles is crucial in today's digital landscape. This sum-up article brings together key insights from my learning on UX Design from the course, my experience and other resources.

Key Insights from the UX Design Series:

1. Understanding and Implementing UX

  • UX design, also known as User-Centered Design (UCD), is about understanding and addressing the needs and preferences of users.
  • It encompasses every interaction a customer has with a business, both online and offline.
  • UX design is a dynamic, ongoing process integral to the success of any (digital) product.
  • t requires a deep understanding of the user and a commitment to continual improvement based on feedback and evolving user needs.
  • It also requires a multidisciplinary team with diverse perspectives and skills.

2. The Role of User Feedback and Research

  • User feedback is essential for uncovering real user needs and preferences, often missed due to "expert blindness".
  • Methods like focus groups, surveys, and market research play a critical role in gathering user insights
  • Marketing personas are fictional characters that represent our ideal customers, helping us understand their needs and behaviors.
  • UX is complex and requires you to understand the user, its needs and expectations. It's not just about adding pretty colours to a website or app. It's about understanding the user and creating a product that is easy to use and intuitive.

3. Designing the User Experience: User Journeys and Visual Design

  • User journeys outline the steps a user takes to complete a task, crucial for understanding user needs and expectations.
  • There is always a happy path, but you should also consider alternative routes that might include errors or unexpected user actions.
  • Visual design, encompassing elements like typography, colors, and layout, is crucial for conveying the brand message and enhancing user interaction.
  • There are tools like card sorting, which involves organizing information into categories, to help designers understand how users think and organize information and colour theory, which helps designers understand how color evoke emotions and convey meaning.

4. The Significance of Information Architecture and Prototyping

  • Information Architecture (IA) involves organizing information for a logical, user-friendly flow through a product’s content.
  • Prototyping, ranging from simple sketches to interactive models, is vital for visualizing and testing design concepts.
  • Information Architecture is the strategic organization of information to ensure a logical and user-friendly flow through a product's content.
  • Prototyping is creating early models or mockups of a product to visualize and test design concepts.
  • User Testing refers to observing real user interactions with the prototype to gather feedback and refine the design.

5. User Testing in UX Design

  • User testing is critical for understanding how real users interact with products, involving methods like focus groups, surveys, and formal lab usability studies.
  • Effective user testing requires unbiased, relevant, and clear questions to gather meaningful feedback.
  • There are many methods for user testing, including focus groups, surveys, market research, and formal lab usability studies.
  • Each method has its pros and cons, and you should choose the one that best fits your needs and budget.

Conclusion:

The course was a great entry-level introduction to UX design, covering the fundamentals of UX design and its role in Product Development. It also offered a practical structure to understand and implement UX design principles, which, without a structure, can be overwhelming.


User Testing in UX Design | UX Series Part 5 of 6

TLDR

User testing is a pivotal aspect of UX design, offering direct insights into user needs and preferences. This article outlines various user testing methods, illustrating their role in creating effective and user-friendly designs.

Introduction to User Testing

User testing is an essential process in UX design, aimed at understanding how real users interact with products. It uncovers user needs, preferences, and challenges, ensuring that the final product resonates with its intended audience (or at least, it should). There are always questions involved in user testing, which should be non-leading and non-biased.

Importance of Non-Leading Questions: Ensuring unbiased and genuine user responses.

Methods of User Testing

Focus Groups

A focus group is a group interview involving a small number (sometimes up to ten) of demographically similar people or participants who have other traits/experiences in common depending on the research objective of the study. Their reactions to specific researcher/evaluator-posed questions are studied.

-- Focus Group on Wikipedia

Essentially, a focus group is a (small) group of people who are brought together to discuss a particular topic.

There are 3 main components to a focus group:

  1. The Moderator: The person who leads the discussion and asks questions. Without a good moderator, the focus group will not be successful. This person is responsible for keeping the discussion on track and making sure that the participants are engaged and the goals of the focus group are met. The moderator is also responsible for the preparation of the questions and topics of discussion.
  2. The Participants: The people who are invited to take part in the focus group. Without participants, there is no focus group. The participants are usually selected based on their knowledge of the topic and their ability to contribute to the discussion, always keeping in mind the goals of the focus group.
  3. The Observers: The people who observe the focus group and take notes. The observers are usually the people who are responsible for the analysis of the focus group. They are responsible for taking notes and making sure that the discussion is on track and that the goals of the focus group are met. The moderator is not able to moderate, take notes and observe, and thus are observers really important.

And you can add additional components as needed:

  1. The Recording: The recording of the focus group, which can be audio, video, or both. Now a bit more difficult with data privacy laws, but still possible.
  2. The Report: The report of the focus group, which is a summary of the discussion and the findings.
  3. The Analysis: The analysis of the focus group, which is the interpretation of the findings.
  4. The Recommendations: The recommendations of the focus group, which are the suggestions for the future.
  5. The Follow-Up: The follow-up of the focus group, which is the action that is taken after the focus group.

Surveys

A survey is a structured way of gathering information from a group of people. It is a way of collecting primary data which should be aligned with the research objectives and support the research questions.

A good survey should be:

  • Precise: The questions should be clear and concise.
  • Unbiased: The questions should be unbiased and not leading.
  • Relevant: The questions should be relevant to the research objectives.
  • Easy to answer: The questions should be easy to answer.
  • Easy to analyze: The questions should be easy to analyze.
  • Easy to understand: The questions should be easy to understand.

The answer types should be aligned with the research objectives and support the research questions. This means, that even if some answer types are easier to analyze but do not help gather the information you need, you should not use them. The contrary is also true, if some answer types help you gather too much unstructured information, but you just need to get a boolean (yes/no) answer, you should not use them.

Market Research

A market research study is a study that is conducted to understand the market and the customers. There are many types of market research studies, but the most common are:

  • Explorative: Exploring a topic, a market, or a customer segment.
  • Descriptive: Describing a topic, a market, or a customer segment.
  • Causal: Understanding the cause and effect of a topic, a market, or a customer segment.

Market research studies are usually conducted by market research companies or marketing professionals with experience in market research design and analysis.

Formal Lab Usability Studies

A usability lab is a place where usability testing is done. It is an environment where users are studied interacting with a system for the sake of evaluating the system's usability.

-- Usability Lab on Wikipedia

In other words, it's conducting controlled tests to observe user interaction in a controlled environment.

I would this is the most expensive and time-consuming method of user testing.

Regrettably, I have not had the opportunity to conduct or participate in a formal lab usability study, so I don't have much more to say about it.

Interpreting User Feedback

Understanding and effectively utilizing user feedback is crucial. It involves identifying common pain points, gauging user satisfaction, and iterating the design based on this feedback.

It is important to note that not everything must be taken under account. Some feedback is not relevant, some feedback is, and is the job of the UX designer to identify what is relevant and what is not.

In all cases, if the testing/ research was correctly designed and conducted, the feedback should be taken into account and should be relevant for your business and product. If this is not the case, you should review your methodological approach.

Key Takeaways

  • User testing is a pivotal aspect of UX design, offering direct insights into user needs and preferences.
  • There are various methods of user testing, each with its own advantages and disadvantages.
  • User testing is an iterative process, and it should be conducted regularly throughout the design process.
  • User testing is a methodological process, and it should be designed and conducted with care.

References


Intro to Databases: Understanding OLAP, OLTP, Embeddable, and Standalone

TLDR

Databases are essential if you work with computers, varying in type and purpose. OLAP and OLTP represent different data processing approaches, while embeddable and standalone databases differ in their integration with applications. This article serves as an introductory guide to these concepts.

Introduction to Databases

If you have ever worked with computers, you have probably heard of databases. They are the (usually correct) way for storing and managing data efficiently. While some (of us) still use Spreadsheets as a database, there are many types of actual databases, each with its own purpose and advantages.

Databases are used in almost every application, from simple blogs running WordPress to complex ERPs. They are used in banking, e-commerce, and even in your smartphone.

That said, databases are pivotal in storing and managing data efficiently if you work with data. With various types available, understanding the basics, like OLAP, OLTP, embeddable, and standalone databases, is important, but regrettably not enough, for choosing the right database for your needs. but we need to start somewhere.

Why this article?

A few weeks ago I found out about DuckDB, an embeddable SQL OLAP database that can be used with Python (and many other). I was curious about its positioning as an OLAP database, and I found a mention to this paper in Reddit where I found this graphic:

Systems Landscape from the paper "DuckDB: an Embeddable Analytical Database"

And I thought interesting to dive a bit deeper into the concepts of OLAP, OLTP, embeddable, and standalone databases.

So here we are.

What is OLAP?

OLAP (Online Analytical Processing) is a type of database designed for complex queries, data analysis, and reporting. It's often used in business intelligence and data warehousing, allowing users to analyze data from multiple perspectives.

OLAP is an approach to answer multidimensional analytical (MDA) queries swiftly in computing. Typical applications of OLAP include business reporting for sales, marketing, management reporting, business process management (BPM), budgeting and forecasting, financial reporting and similar areas. OLAP tools enable users to analyze multidimensional data interactively from multiple perspectives.

-- Automatic Summary from Wikipedia using this script

An example of an OLAP database is a data warehouse that stores historical data from multiple sources. It allows users to analyze data from different perspectives, like sales by region, product, or time.

Database that are in this category are:

  • Amazon Redshift: A fully managed, petabyte-scale data warehouse service in the cloud.
  • Snowflake: A cloud-based data platform that provides a data warehouse as a service designed for the cloud.
  • BigQuery: A serverless, highly scalable, and cost-effective cloud data warehouse designed for business agility.
  • DuckDB: An embeddable SQL OLAP database that can be used with Python and many other languages.
  • ClickHouse: An open-source OLAP database management system developed by Yandex. It is column-oriented and allows to generate analytical reports using SQL queries in real-time.

What is OLTP?

OLTP (Online transaction processing) databases are optimized for managing transaction-oriented applications, like e-commerce systems, banking, and reservation systems.

Online transaction processing (OLTP) is a type of database system used in transaction-oriented applications, such as many operational systems. "Online" refers to that such systems are expected to respond to user requests and process them in real-time (process transactions) The term is contrasted with online analytical processing ( OLAP) which instead focuses on data analysis.

-- Automatic Summary from Wikipedia using this script

An example of an OLTP database is a banking system that stores customer information and transactions. It allows users to perform transactions like deposits, withdrawals, and transfers.

Database that are in this category are:

  • MySQL : An open-source relational database management system.
  • MariaDB: An open-source relational database management system, and a fork of MySQL before being acquired by Oracle.
  • PostgreSQL: An open-source object-relational database management system.
  • Oracle: A relational database management system developed by Oracle Corporation.
  • SQL Server: A relational database management system developed by Microsoft.
  • SQLite: A relational database management system that is embedded into the end program.

What is Embeddable?

Embeddable databases can be directly integrated into an application's software. They run within the application’s process, making them ideal for desktop applications, small-scale web applications, or for use in portable devices.

Database that are in this category are:

  • SQLite: A relational database management system that is embedded into the end program.
  • DuckDB: An embeddable SQL OLAP database that can be used with Python and many other languages.
  • H2: An embeddable RDBMS written in Java.
  • Firebird: An open-source SQL relational database management system.
  • HSQLDB: An open-source relational database management system written in Java.

What is Standalone?

Standalone databases operate separately from the application. They require their server process and are accessed over a network. This type is suitable for large-scale applications that require robust database management systems.

Database that are in this category are:

  • MySQL : An open-source relational database management system.
  • MariaDB: An open-source relational database management system, and a fork of MySQL before being acquired by Oracle.
  • PostgreSQL: An open-source object-relational database management system.

Understanding the differences

OLAP vs OLTP

OLAP and OLTP are two different approaches to data processing. OLAP is used for complex queries and data analysis, while OLTP is used for transaction-oriented applications.

Transaction-oriented means that the database is optimized for handling transactions, which are a set of operations that must be executed as a whole. For example, when you buy something online, the transaction is the whole process of adding the item to the cart, entering your payment information, and confirming the purchase.

OLAP databases are optimized for complex queries and data analysis. They are used in business intelligence and data warehousing, allowing users to analyze data from multiple perspectives.

Embeddable vs Standalone

Embeddable databases can be directly integrated into an application's software. They run within the application’s process, making them ideal for desktop applications, small-scale web applications, or for use in portable devices. But they also have a sweet spot in data science and machine learning applications, where they can be used to store data without the need for a separate database server.

Standalone databases operate separately from the application. They require their server process and are accessed over a network. This type is suitable for large-scale applications that require robust database management systems. In data science and machine learning applications, they are used for storing large amounts of data, and you can also run them using Docker, if you want to avoid the whole setup process.

With embeddable databases, you can store data in a single file, which is easier to manage and move around, and you just need to install the database driver to use it. With standalone databases, you need to install the database server, the client and everything in between.

Conclusion

Understanding these basic database concepts is crucial but not enough for selecting the right database type for your specific needs. Each type offers unique advantages depending on the application's requirements and your use case.

References

The Significance of Information Architecture and Prototyping in UX | UX Series Part 4 of 6

Context

In the realm of User Experience (UX) design, Information Architecture (IA) and Prototyping are pivotal elements that contribute significantly to the development of user-centric digital products.

Information Architecture (IA) in UX

We already saw in the previous article that User Journeys are the steps a user takes to complete a task, both online and offline. They are a critical component of UX design, as they help designers and other team members understand the user's needs and expectations. IN that article we also discussed the elements of Information Architecture.

In this article I will relate IA with Prototyping, so a small review is needed.

Information Architecture involves the strategic organization of information to ensure a logical and user-friendly flow through a product's content. Key elements include:

In simple words, Information Architecture is how you organize your information for something. The outcome is a logical, clear and user-friendly flow through all the content of your sites.

  1. Content Organization: Structuring information in an intuitive manner.
  2. Labelling: Using clear and concise words and icons.
  3. Navigation: Designing user movement through the site or app.
  4. Search Functionality: Allowing users to find information efficiently.
  5. Personalization: Tailoring experiences based on user history and preferences.

Regular testing and refinement are crucial to ensure the IA aligns with user needs and behaviors.

Prototyping in UX

Prototyping is creating early models or mockups of a product to visualize and test design concepts. It encompasses:

  1. Sketches: Initial ideas captured through simple drawings.
  2. Wireframes: Basic layout designs showing essential elements.
  3. Interactive Prototypes: Advanced versions incorporating user interactions, ranging from low to high fidelity.

Responsive design is a critical consideration in prototyping, ensuring the product adapts to various screen sizes and devices.

User Testing in Prototyping

User Testing is an integral part of the prototyping process. It helps identify issues and gather feedback, guiding the iterative design process. Effective user testing involves:

  • Observing real user interactions with the prototype.
  • Gathering feedback to refine and improve the design.
  • Balancing user needs with technical feasibility and business goals.

Key Takeaways

Information Architecture and Prototyping are foundational to the UX design process. They facilitate a deep understanding of user needs and enable the creation of intuitive, effective digital experiences.

  • Information Architecture: The strategic organization of information to ensure a logical and user-friendly flow through a product's content.
  • Prototyping: Creating early models or mockups of a product to visualize and test design concepts.
  • User Testing: Observing real user interactions with the prototype to gather feedback and refine the design.

Learn more about Information Architecture and Prototyping