rjd324's AmigaOne Daily Driver Blog

Who am I?

Trevor Dickinson's blog explains it best in the section titled Northern Rock.

What is this?

My progression of using my AmigaOne machine as my daily driver. This means that when I come home the machine that I turn on is my AmigaOne.

Why does this exist?

To document struggles, tips, hints, suggested improvements, workarounds and progress along the journey to a hopefully improved AmigaOne experience, enabling it to become a fluent daily driver for anyone. Although, the use of anyone, here, may be a little exclusive due to my subjectivity and coming from the view of a developer. In reality, some people use their AmigaOne machine to do different things that I do on my AmigaOne machine, so if you are not interested in a development environment then maybe these blogs are not so relevant for you.

How does this exist?

Using my AmigaOne X5000 and JASSPA MEmacs to write HTML4 - aided by both my 20+ year HTML Programmer's Reference book and some useful hints and tips from Amigans.net user and Amiga enthusiast, Paul "pjs" Sadlik, over IRC - that is served on one of my Linux machines via Apache2.

The first blog entry will encompass my current usage of various applications and/or tools and my reasons for using them. In subsequent blogs, newly found applications, tools or hints and any updates to those will be shared.

2024 August

So here begins the journey. By the way, I did use my X5000 as my daily driver a few years ago and for a long time, but the insidiousness of erring on the side of ease of use is an addictive one. For example, being able to use a modern browser without restriction is more than slightly appealing. Being able to build projects using the machine I acquired from work, my HP Z420, which offers 12 logical cores and 32GB of memory to allow for more rapid development versus my X5000 is also attractive and I will delve into the synergy of using that machine with my AmigaOne X5000, later. However, if you read Trevor Dickinson's 2024 blog, referenced above, you will understand that my passion lies with Amiga. I am more than happy to wait longer for a project to build, natively, with the AmigaOne in order use it.

And so, I have recently realised that I am not using my AmigaOne machines as much as I would like. I know people who I work with who are more than happy to cross-compile projects using non-AmigaOne machines. Indeed, I have done that from the very beginning, but it does not feel quite right. I should be using my AmigaOne machine. However, there are reasons why cross-compiling on a non-AmigaOne machine is mandatory. For example, many projects are built with new-age build systems such as CMake. In fact, forget about CMake for a second: some projects still use a simple ./configure && make but even those are not possible to invoke on the AmigaOne machine depending on complexity of the configure script. We also do not have a port of AutoTools for AmigaOne and some projects often come with files such as configure.(in|ac) which generates a configure script based on your environment via autoconf and automake. The point being that our current tools are there, they are just not mature enough and are quickly becoming outdated with the most recent commits from many years ago. Despite that, these are open source projects and nothing stops anyone from updating them. I hope to be able to contribute to said projects and the only way to learn about their deficiencies is by using the AmigaOne machine as a daily driver.

Odyssey

We all know that as of 2024 Odyssey is fast becoming outdated but thankfully there are some useful scripts, developed by George "Walkero" Sokianos that improve our lives while we wait for an updated browser. The link includes a script that improves Github.com such that you can download a project via a zip file. Needless to say, Odyssey is rather old, and that all these new-age websites evolve much quicker, selfishly not considering AmigaOS4. Regarding Github.com, one workaround to consider is that you can always load a Github project URL and then go to the URL and append archive/refs/heads/<BRANCH>.zip to download the zip file of that branch. The better approach would be to have a Git client that would just do that for us but, right now, I am not sure that is quite ready.

AmiCygnix X Server (Odyssey Alternative)

In the event that you have additional machines on your LAN and one of those is a Linux machine then you can benefit from using AmiCygnix. When you install AmiCygnix you can invoke Start_XServer_Only.bat. Instantly you have an X server running on your AmigaOne machine. From there, you can SSH into your Linux machine and run the command DISPLAY=<IP_ADDRESS>:1 firefox. Firefox now appears on your AmigaOne machine, albeit it a little slower; never suitable enough to play YouTube videos but things such as checking complex email websites and general browsing is comfortably achievable. Bill "Tekmage" Borsari has in incredibly useful demonstration of many of a number of the things that I am describing, here.

Issues
Thoughts on X11

I do have a concern regarding the phasing out of the X11 windowing system with Wayland. I do not keep up to date with all the latest Linux news, so perhaps this is just a paranoid concern but I fear it is not.

AmiCygnix X Server 1.7r2

SSH

SSHTerm initiates an SSH session into a remote machine and, for me, it is a vital program in order to develop applications for the AmigaOne machine given our current lack of full support for building new-age projects.

When I drifted into using my Linux machine as my main driver, the vast majority of the time I was using the terminal anyway, such that converting to my AmigaOne X5000 as my daily driver does not make a great deal of difference.

SSHTerm 1.9

Samba

To be able to share files across the LAN, seamlessly, such that shares are just treated like any other folder is vital if I should use my AmigaOne X5000 as my daily driver. smb2fs uses the SMB protocol so that Samba shares are mountable. This allows for so many things, from streaming media on my AmigaOne X5000 directly from my NAS share to further developing or porting projects, actively creating, saving and reading files directly from their remote source.

SVN (Subversion)

For any other developers out there, this is pretty self explanatory. A version control system which trumps the need to create many, many folders with names such as "project_version1", "project_version2", "project_the_latest", "project_definitely_the_final_version". Yes, I have done this before, when I was younger, and such a method becomes quickly unwieldy. Our version of Subversion does the job for me, although it is a little outdated and does not offer the ability to display a defined amount of log messages; for example svn log --limit 1 is not an available command. Still, if you have the SDK installed then you will access to NIX tools such as head, grep etc. So, it is possible to just run commands like svn log | head -n 10 which only shows 10 lines of the full output of the log.

Subversion 1.1.4

Synergy

When I met with Trevor Dickinson, I was surprised to learn that even he - today - still uses adjacent machines with a separate keyboard and mouse. Think for a second just how many he would need if he had his entire collection running! Synergy allows the using of a single keyboard and mouse through a type of client-server protocol. One machine serves these assets to multiple clients. As referenced to earlier, Bill "Tekmage" Borsari's video demonstrates Synergy in use. Keyboards and mice are bulky things and the last thing I want on my desk is more than one of each. It is really inconvenient to need to physically move these objects around on a single desk. I use my Z420 as the Synergy server. From there, my AmigaOne (and classic machines) all use the Synergy client (which I believe was written from scratch) via uhctools. In that archive there is C/SynergyClient and documentation about using it lies in UHCHelp/SynergyClient.

Personally, I build the Synergy on my Z420 from the source tree since I like to apply a patch I created which allows for usable mouse rotation in 3D games.

AmigaOS4 SDK

If I am to be serious about using the AmigaOne as my daily driver and bring to the surface any bugs with existing tools, then I need to install the SDK. The SDK, maintained by George "Walkero" Sokianos, includes many things, but not least a GCC compiler and the necessary header files and libraries to compile and link applications. It also brings with it many NIX tools such as grep, ls, cp. These tools are essential to run configure scripts and run build systems from other projects.

Thoughts on NIX tools

Ideally, the command line tools used would always be our native AmigaOS tools. Instead of using ls I would prefer to use list and, instead of cp, copy. But, NIX tools are used during configure scripts. Moreover, I use NIX command like second nature during my day job as well as at home. Despite that I do concertedly try to use AmigaOS4 tools where I can remember.

Emacs

It should be noted that I include MicroEmacs (MEmacs) into the term broad term Emacs. I would be hard-pressed to find enjoyment in editing code if Emacs was not available to me on the AmigaOne machine. Actually, it is available right out of the box; AmigaOS4 ships with MEmacs version 2.1 but I am personally not a fan. That is why I set about porting JASSPA MEmacs as my first task when I just started using my newly acquired AmigaOne X1000. I conjecture that JASSPA MEmacs has many more features and conveniences than people would assume. It has major modes for C code, HTML, Makefiles and many more. It has a dictionary. It has - as expected - macros and auto-indentation; the ability to perform a diff on different buffers. A built in calculator and massive customisation. It has its own file explorer where you can create files, folders and delete them all with JASSPA MEmacs.

My fingers are now too set in their ways. This means that things like going to the beginning or end of a line immediately result in me pressing CTRL-A/E. Despite my obvious bias preference for Emacs, there are many good editors out there including full IDEs like CygnusEd and George "Walkero" Sokianos' port of LiteXL.

Emacs is a great operating system, lacking only a decent editor. (Dr. Roy Schestowitz)
I am not sure if the source of the quote above is correct but I have heard that one many times and have always found it humorous.

But for Emacs, I am nothing. (rjd324)
During my internship I did a year in industry and worked for Hewlett Packard in Bristol. It was at a time of getting to grips with Linux and command line tools. I had a mentor named Mike Hinds who used GNUEmacs. I wanted to be just like Mike. The rest is history.

JASSPA MEmacs 1.5

Summary

At this point, I am fairly comfortably able to use my AmigaOne X5000 as my daily driver because I am able to:

2024 September

SOBJS: GAMES YOUTUBE/STREAMING DISCORD (AmiCygnix) LINKS TO SOME OF MY STUFF. WHAT I HAVE WORKED ON, ETC.