• Welcome to Linux Liom

    Introduction

    Hello, my name is Ruairí Ó hÓgartaigh, welcome to my technical blog and portfolio.

    I’ve decided to start this blog for the following reasons:

    • There is only so much one can fit on a curriculum vitae.
    • Technical interviews only ever give a brief vignette of someone’s experience. I don’t think they work well for anyone.
    • I don’t like posting on Linkedin; I want a layer of abstraction from data scrapers.
    • I’m more of a doer than a sayer. I want people to read about projects I’m working on, not a Linkenin promo pieces on how wonderful an employee I am.
    • I needed somewhere to show my home projects, interests and experience.
      • Hobby projects can be added to blog portfolios and public repository’s:
      • References to professional work are usually superficial with code locked away in commercial IP.
    • Hobby projects can give more self-direction and can give a broader learning outcome.

    What does Linux Liom mean?

    “Liom” is an Irish word which means “with me”. Aside from the alliteration, I chose the name because I want the readers to actively read and engage with my progress.

    I decided to call this blog Linux Liom partly because I use a Linux distro as my daily drive OS. It is the backbone of the majority of projects and tools I use on a daily basis. It is also part of tools and technologies I am in the process of learning and intend to master.

    What to expect

    I’m working with tools and concepts that I am familiar with, others that I am in the process of leaning. Some of the main topics you will find are:

    • Linux :
      • Bash scripting, DIY bash toolkit
      • LPIC1 study and putting study into practice
      • Distro hopping
    • Coding :
      • C++
      • Python
      • CMake
      • Test Driven Development
    • Projects :
      • Home lab – Lab in a can
      • Local GitLab pipeline
      • Mountain weather App
    • New topic exploration:

  • Application UI:UX Design: Step 1 Declarative statements

    Background

    I’m in the process of building out the front end of my Mountain weather Application. In University I did two modules based on UI design, mainly oriented towards biomedical applications.

    In these modules, theory such as Shneiderman’s eight golden rules of design and Neilson’s ten usability heuristics were covered. Application design was also part of the course, covering low fidelity design and cognitive walkthroughs. For the design of this app, I intend to use these principles and processes. Before building a low-fidelity design, lets cover the theory and how I will use it to shape the application. By the end of the post I will have some declarative statements. These should give a skeleton outline of what the final app should look like and how it will function.

    Shneiderman’s eight golden

    Here I will review Shneiderman’s eight golden rules and how they apply to the app I plan on designing:

    1. Strive for consistency
      • I think this is relevant for applications with multiple windows. This app will be just one window but consistency will be considered.
    2. Seek Universal usability
      • So where possible, make the app as accessible as feasible. Can I design it so a child or a non-English speaker can use it with little to no issue.
        • Where possible, use images to show weather state.
        • For user inputs like date range, Add a drop-down calendar widget, use a drop-down menu for mountain selection.
    3. Offer informative feedback
      • When is an item is selected, have the GUI provide a visual and audible signifier to show there request has been registered.
      • If forecast data cannot be retrieved from the Met API, make it apparent to the end user.
    4. Design Dialogue to yield closure
      • If forecast data cannot be retrieved from the Met API, make it apparent to the end user.
    5. Prevent errors
      • Stop user from selecting passed dates or dates outside the forecast model’s range.
      • Confine the user to the scope of the programmed backed. Avoid random text inputs.
      • Make it clear which mountain’s forecast is currently presented on the main screen.
    6. Permit easy reversal of actions
      • Add a panel for recent selections.
      • Possibly add a back arrow
    7. Keep user in control
      • Make it impossible to input illegal inputs.
      • Avoid automatic selection where possible, recall inputs such as date ranges where applicable.
    8. Reduce short term memory loading
      • With a “recent” panel, previous actions can be recalled.
      • maintain user inputs when changing selected mountains.

    Great, after covering these eight rules I’ve pinned down some designs. First, lets cover Neilson’s ten usability heuristics before recapping.

    Neilson’s Ten Usability Heuristics

    Lets quickly cover these, many tread the same ground as the eight golden rules:

    • 1. Visibility of System Status
      • Make sure it is clear which mountain is selected
      • maybe have a thread pining Met API in the back-end to confirm connection
    • 2. Match Between the System and the Real World
      • UI mapping, I’m not sure If this can be applied in this application. A mapping design may become more apparent after the first low-fidelity design or cognitive walk-though is completed.
    • 3. User Control and Freedom
      • Overlapping with some of the thinks outlined in the previous section, prevent out-of-bounds inputs, make inputs selection as intuitive as possible.
    • 4. Consistency and Standards
      • review rule one of the eight golden rules.
    • 5. Error Prevention
      • review rule five of the golden rules.
    • 6. Recognition Rather than Recall
      • Keep date ranges when switching mountain ranges.
      • Possibly cluster ranges by region and not alphabetically
    • 7. Flexibility and Efficiency of Use
      • Add panel for home/ favourite ranges of mountains.
    • 8. Aesthetic and Minimalist Design
      • minimise clutter and bloat. If it holds no relevance to the current view, remove it.
    • 9. Help Users Recognize, Diagnose, and Recover from Errors
      • Give feedback when an error happens, i.e. cannot retrieve weather data check local internet access.
    • 10. Help and Documentation
      • Add help tab where appropriate.

    UI Declarations:

    Now that we have reviewed some theory, lets make some declarative statements before drawing some low fidelity designs and doing some cognitive walkthroughs.

    User Inputs

    • The user inputs should be limited to the mountains supported by the back-end, this can be done with a drop-down selection.
    • Group mountains by locality, not alphabetical order
    • Map date inputs with a calendar to select the dates. Lock out the selection of passed dates and future dates beyond what the forecast supports.
    • Possibly add an advanced section, where users can append their own coordinates to their local app.

    Graphics

    To make the app as accessible as possible, emojis and graphics should be used to map purposes of user inputs. Graphics should be used to show the weather outlook selected to give universal and comprehensive feedback.

    Application function

    • Should allow favourite locations to be saved and easily recalled
    • Should have the user option to either intuitively open the nearest location or the last selected mountain.
    • Should have recommendations for locations in with favourable forecasts in a user selected time-frame.

    Conclusion

    This posting is getting a bit lengthy. Lets do some Low fidelity designs and congnitive walkthroughs in a follow-up post. Until then!

  • I’m building a mountain weather at the moment. When the weather is good, I like to spend my weekends in the mountains. I wanted to create an application that can retrieve and display the best weather forecast for the main mountain ranges in Ireland. I outlined some learning outcomes and intend to integrate it into my home lab.

    App

    To broaden my knowledge, I decided to build the front and the back end in separate containers. Docker is a tool I haven’t used in a professional environment but it is a technology I am eager to learn. Here are some more details of the construction:

    Backend

    The backend of the application is written in C++. At the moment there are three classes of note:

    • The mountainmapping class: loads constant mountain values into a structure and also creates a blank forecast structure to be updated.
    • The weather forecast class:
      • interfaces with the Irish Met offices Harmonie weather model’s API.
      • Uses coordinates from the mountainmapping class, gets weather forecast for specific locations.
    • Clock class
      • Formats time to be suitable for weather API requests.

    Frontend

    This is still in the UI:UX design phase.

    Database storage (Maybe)

    I want to become more familiar with SQL. I don’t have a large amount of storage to create a large database of weather data but I’d be interested in integrating some kind of rolling weather forecast data comparator.

    Learning outcomes

    RestfulAPI

    I can’t say I’ve worked with a restful API but I think this statement alone is a good enough reason to read up on the structure and try an integrate it into this project.

    DevOps

    I would like to integrate this into my home lab. I think it would be a good project to become familiar with containerized processes.

    Databases

    SQL is something I want to learn. I don’t think a database is necessary in the current scope of the project. There could be an interesting spin-off project to analyse forecast accuracy relative to the time between forecast and date. Either way, I currently don’t have enough hardware memory for a large database.

  • Fedora 42 base screen saver.
    Fedora 42 base screen saver.

    I am on a mission to gain familiarity with Linux desktop distributions. My reasons have been outlined on this page. Here is my first review of Fedora 42, written a little over a month after installing it as my daily driver.

    Installation experience

    Installing an OS on a computer is not something new to me. It is a process I have carried out dozens of times both manually and with some automated installations. Soon I want to get hands-on with a PXE boot in my home lab. What I’m trying to convey is that this process is by no means new to me. I found the process simple to execute with Rufus and a thumb drive. For someone who hasn’t installed a new OS to hardware, it might be complicated, but no more complex than a Windows or another Linux distribution.

    First impressions

    Only after installation did I realise that Fedora 42 was just released in Spring 2025. For a new release, it worked better than I had expected. In settings, there is an option to revert to Fedora 41. I never found myself needing to revert to this older version.
    The only minor sticking point I have is that the VScode IDE app was initially running in a third-party virtual container. I broke the OS a week or two ago when working in partitions. I realised my mistake before rebooting the laptop and ran a backup of my files before confirming my suspicions. This event was a blessing in disguise, on reinstalling the OS I found an MS-supported VScode distribution online.

    Other pleasant surprises

    With Fedora 42 being a new release, many third-party software suppliers still only have support up to version 41 on their web pages. In such cases, I just installed the latest release for version 41 and I’ve yet to encounter one that doesn’t run on 42.
    I find the dnf package manager is often more intuitive than other managers I have used in the past. While I think there may come a time when it installs the wrong package, its suggestions so far haven’t led me astray.

    Things you might find annoying

    For anyone migrating from a Windows OS, there are some things in the UI that might perplex you. In stock form, the control bar can only be accessed when the hotkey is pressed. In stock form, the UI windows don’t have a maximization button between _ and X, this needs to be added with gnome tweaks. Like with all Linux distributions, there is no clipboard and ctrl+x, and ctrl+v are not system-wide as in Windows.

    Gnome tweaks

    For many of the issues raised in the above paragraph, there is a solution. One of the benefits of Linux is how customisable it is as a platform. For extreme, unique customisation, one can go down the rabbit hole of ricing. To get a UI to resemble a Mac or Windows OS there are several Gnome-based apps in the software store to configure the OS as desired.

    Conclusion

    So far my experience with Fedora 42 has been issue free. I think it makes the grade as a daily driver. If you are looking for a change of scenery from Windows then it might be a bit jarring, but from another Linux desktop OS the migration is not so bad.

Posts

Welcome to a world of limitless possibilities, where the journey is as exhilarating as the destination, and where every moment is an opportunity to make your mark.

  • Application UI:UX Design: Step 1 Declarative statements

    Application UI:UX Design: Step 1 Declarative statements

    Background I’m in the process of building out the front end of my Mountain weather Application. In University I did two modules based on UI design, mainly oriented towards biomedical applications. In these modules, theory such as Shneiderman’s eight golden rules of design and Neilson’s ten usability heuristics were covered. Application design was also part…

    Mountain Weather App

    I’m building a mountain weather at the moment. When the weather is good, I like to spend my weekends in the mountains. I wanted to create an application that can retrieve and display the best weather forecast for the main mountain ranges in Ireland. I outlined some learning outcomes and intend to integrate it into…

    Fedora 42 Desktop :1 month review

    I am on a mission to gain familiarity with Linux desktop distributions. My reasons have been outlined on this page. Here is my first review of Fedora 42, written a little over a month after installing it as my daily driver. Installation experience Installing an OS on a computer is not something new to me.…

  • Fáilte go Linux Liom

    Welcome to Linux Liom Introduction Hello, my name is Ruairí Ó hÓgartaigh, welcome to my technical blog and portfolio. I’ve decided to start this blog for the following reasons: What does Linux Liom mean? “Liom” is an Irish word which means “with me”. Aside from the alliteration, I chose the name because I want the…