Running CSpect ZX Spectrum Next emulator on M1 MacBook Pro

Running CSpect on Windows is pretty much download and go, but on MacOS you need to download some additional support, specifically mono in order to run the Windows .exe on MacOS. This page here, describes downloading mono using homebrew, but when starting it up it would give a segv error and crash. Instead of installing Mono via brew, download and install using the latest .pkg installer from here. It’s possible downloading via brew misses some needed dependencies, but the .pkg installer has everything needed.

To run with the Next rom I downloaded, I used these options:

mono cspect.exe -w3 -basickeys -zxnext -nextrom -mmc=sn-emulator-22.10a.img

As an industry we still don’t know how to effectively transfer ‘experience’ to new developers

New developers start their careers with a limited grasp of the ‘what’, the basics of how to write code in a given language and tech stack, but the deeper understanding of the ‘why’ and how to evaluate potential solutions and pick the most effective solution given known constraints comes much later with experience.

Experienced developers have knowledge of what they’ve seen work and not work from past development projects and can use this knowledge to make educated decisions. Given any problem, having seen multiple solutions applied on past projects allows you to draw from that knowledge of seeing what has worked and not worked and evaluate what solution is the better option when you see this problem again (or something similar).

Experience and knowledge is hard to pass on from one developer to the next. Programming techniques like iteration and conditional statements can be taught and easily learned, but an appreciation of why solution A is more effective than B is harder to convey, usually because the reasons why one solution is better depends on the context and an understanding of the current constraints that you need to work with. Being able to identify what’s important and what is not is a skill that more experienced developers develop over time, but it’s hard to teach.

Experienced developers add obvious value to any project or team, they provide leadership and the benefit of being able to make informed decisions based on their prior experience that lead to better outcomes for the business with a higher degree of certainty (compared to randomly picking a possible solution without knowing if it’s feasible or the most effective option or not).

The problem we have as an industry is that we still haven’t worked out an effective approach for conveying this experience to other new developers. You can gain experience by putting in the time and effort by working on a variety of different software development projects, but there doesn’t appear to be any easy fasttrack approach to package this information and hand to another developer. Can software development experience be ‘knowledge transferred’ to another developer? Maybe not. Maybe you just have to invest the time to gain experience the hard way.

Misunderstanding or under valuing the experience that an experienced developer brings to a team is a common mistake of someone who does not fully appreciate the complexity of software development. All developers are not equal, and one developer cannot be equally exchanged for another. If we can find an effective approach to easily fastrack the passing of experience from one developer to another, this would massively accelerate the growth of new developers, but maybe the reality is experience just has to be gained the hard way.

Differences between US and UK Amateur Radio license rules and restrictions – part 3: Callsigns

Continuing my posts looking at the differences between US and UK amateur radio licenses (part 1, part 2), I’m now taking a look at callsigns.

In the US, callsigns are assigned using the following format (described in FCC doc here):

Technician

For regions 1 through 10:

  • K, N or W prefix + additional letter + region 1 through 10 + 3 letter suffix (aka 2 by 3)
  • Other regions beyond 10 have slight variations in the prefix, such as KH for Hawaii (Region 13)

General

For regions 1 through 10:

  • K, N or W prefix + region 1 through 10 + 3 letter suffix (aka 1 by 3
  • Other regions beyond 10 have slight variations in the prefix, such as KH for Hawaii (Region 13)

Amateur Extra

For regions 1 through 10:

  • K, N or W prefix + region 1 through 10 + 2 letter suffix (aka 1 by 2)
  • 2 letter prefix starting A, N, W or M + region + 1 letter suffix (aka 2 by 1)
  • 2 letter prefix starting A + region + 2 letter suffix (aka 2 by 2)
  • Other regions have slight variations in prefix

UK Licences

For UK licenses there are similar differences between Foundation, Intermediate and Full, but with the addition of a required ‘Regional Secondary Locator’ (RSL) character to indicate the country where you are transmitting from:

Foundation License

Prefix starts:

  • M#3
  • M#6
  • M#7

… where # is the placeholder for the RSL. Interestingly, the UK licenses are issued showing the # where you are expected to substitute your RSL yourself.

RSLs used are:

  • none : England (E is not used for Foundation callsigns)
  • M : Scotland
  • I : Northern Ireland
  • EI : Ireland
  • W : Wales
  • D : Isle of Man
  • U: Guernsey
  • J : Jersey

Intermediate

Prefix starts:

  • 2#0
  • 2#1

RSLs used are (note ALL RSLs are used, including E for England, where this is not used for Foundation and Full):

  • E : England
  • M : Scotland
  • I : Northern Ireland
  • EI : Ireland
  • W : Wales
  • D : Isle of Man (for Douglas, capital of Isle of Man)
  • U: Guernsey
  • J : Jersey

Full

  • M#0
  • M#5
  • G#0 to G#8

RSLs used are:

  • none : England (E is not used for Full callsigns)
  • M : Scotland
  • I : Northern Ireland
  • EI : Ireland
  • W : Wales
  • D : Isle of Man
  • U: Guernsey
  • J : Jersey

Optional callsign suffixes

/A : used to indicate operating from a different address than your normal station location, if the alternative location has an address

/M : operating mobile, e.g. in a car

/P : away from main station location, but NOT at an address that has a postal address, e.g. if camping in a field

  • note that /P does not include operating an HT when mobile which is /M

Updating Personal Access Tokens used with Github Actions

A while back I set up a Github Action to build and deploy an app on each code commit. Since it’s good practice to set an expiry date on your Personal Access Tokens, at some point they will expire and you’ll need to update them.

In my project I reference the Access Token using a Github Secret stored in the settings for the project:

To update the expired or about to expire token:

  • create a new Personal Access Token in your account settings
  • copy the new token value, update the Secrets in your project and paste the new value

Done!