My FlatPress blog
Keeping track of my work
Thursday, January 23, 2020
As I am human, I have many failings. Some of them are even relevant to what I ramble about here. There is one that I would like to discuss here.
I have been a ‘professional’ developer now for ten years. While that is a fraction of what some of my colleagues have done, I think it now gives me a decent amount of experience. I can, and have, seen full projects from conception to release, I have lead some of those projects. I have seen what works, and what doesn’t. There is always the kind of naïve thing when you have a piece of software that doesn’t quite work how you want it to, to assume you could do it better. There are probably reasons why it’s done that way, either because the way you’re considering has some kind of fundamental flaw in the design, or because it just proved too complex (ie expensive) to develop. Usually. Sometimes of course, you can do things better yourself.
That is not really what I’m talking about. But it is related. What I’m talking about today is when I’m looking at developing for a classic platform, taking the Atari ST as the example here.
Generally speaking, you have three ways to attack this:
- Cross compile and test on an emulator
- Cross compile and test on hardware
- Compile on actual hardware
For some platforms, such as consoles where you physically cannot compile on the target device, you might be limited, but generally those are open for most machines with a keyboard. The middle option seems a little bit strange in this case, and my gut feeling is that most people would do either the first or the last. I guess which camp you fall into depends on what kind of person you are.
I am very much the latter person. I own the hardware, so I want to use it. I also find that often in emulation you find little glitches which just get irritating over time if you use it a lot.
But I have definitely been spoilt by modern programming practices. Specifically version control. If I cross compiled, I could easily use version control on the host machine but I don’t really want that. I could also use something like my PARCP-USB to copy data to/from my ST and have the version control repository on a modern computer. I would then have to remember to copy files to and from it and, it’s using modern hardware which, in this case is just about acceptable, but still bothers me a little.
So I’m looking at this problem and thinking “I Could Do Better”
The problem here is, if you haven’t already picked up on this, if I work on this, it will detract any development effort I might have from my actual development project. But anyway, let’s explore it
At this point, I have a small collection of sixteen bit Atari machines. Specifically a 520 STFM, one of each 520, 1040 and 4160 STE, and a MegaST2. As a programmer I want to be able to code comfortably, that is done most easily using a high resolution monitor. I happen to have a monochrome SM124 monitor, so this works. However, if I’m trying to make a game, I will want to have colour graphics, so I’ll need a graphics workstation. I have a colour SC1224 monitor so I can hook that up to a second ST. I probably want to use the 4160 as my primary development machine, as I can set up a RAM disk, so I can compile quicker, and I can use the 1040 STE then as a graphics workstation, possibly with a smaller RAM disk. I even have the 520 STE which I can use on a TV with a SCART converter as a test device, as it will be the theoretical minimum spec.
This is all good. This works. I have a SCSI drive which came with my 4160 STE, with an ACSI-SCSI converter cable. I could easily store the project on there. But then, how do I share the project with the graphics workstation, and how do I run it on the test machine? I could unplug the drive and switch it between machines, but the drive is old, and the constant power cycling is probably a good way to shorten its life expectancy. The normal way to do this is to copy what I needed onto a floppy and take it to the machine I need it on.
If this is a project which only I am working on, this is technically feasible. I could reasonably trivially keep track of which is the latest copy of whatever I’m working on. It does not, however, lend itself to quick iteration, as writing to floppy and the physical transfer of disks is tedious. Also it is prone to errors, not least as floppy disks are easy to corrupt.
What I would really like is something like a version control system. Now, I should be clear that I’m not talking about making git for TOS, there are a number of technical limitations which I think make that unfeasible, but something more straightforward and server/client based like CVS, SVN or Perforce, where there is a separate server which handles all of the heavy lifting, and the client just says “got some new files for you”. This means that I could have a relatively small client program on the ST I’m working on, which just handles things like transferring files, and possibly checking whether files have changed.
To be complete here, the server in my scenario would probably run on my MegaST, as I quite like the idea of the keyboard-less thing being a server sitting in the corner. The feature set for the server would probably be particularly minimal, probably storing whole changed files, rather than delta patches, as I would presume that resolving the deltas for a get would be prohibitively slow after a while. I would have to look at what a sensible way to do this would be. It would probably support commit messages, and some basic history logging and management. As this is running on a separate computer though, I have all of that machine’s resources to play with, so it’s more limited by my programming time rather than hardware limitations, I should think. At least, I think I’ll run out of the former first.
One more thing to consider, as I mentioned above, I’d be storing this on an old hard drive. I have little trust in them, and wouldn’t be surprised if the platters just turn to dust next week. For this reason, I would be using modern hardware to do some backup. What I would probably do is, using something like the PARCP-USB, set up some system by which I can take a snapshot of the repository and back it up somewhere, in a way that I can restore it later. The minimum viable product is just to do this step manually, which is trivial with the PARCP-USB, so I’m not too bothered by this.
The final thing to consider I think, is how to get the computers to talk to each other. No ethernet, no TCP/IP. I basically have three possible communications channels:
I am, of course, immediately drawn towards parallel, as it is, in theory, quicker to transfer, so for quick iteration times, this would be ideal. However serial already has RS485, which is relatively easy to convert to from RS232, so I should be able to make some kind of network with that. I think this is probably the best option I can come up with. MIDI also seems like a sensible option, as there is both an IN and an OUT on the ST, so I could quite easily chain the computers, but that does mean that I couldn’t, at a later date, add a music workstation to the network, so I quite like this idea. Also, freeing up the parallel port means that I am able to use it solely for communication with the Jaguar, if I ever get as far as working on that.
So, what do people think? Does anyone happen to have any experience writing version control systems and feel like helping? Does anyone have experience creating multi-node serial networks? And who thinks I’m being stupid and should just use git on a modern PC, and cross compile to an emulator?
Fill out the form below to add your own comments
Thursday, June 2, 2022 - 10:34:22
Football teams often become legendary. Athletes wish defend colors of
their favorite squad. Fanbase growing constantly.
Leading teams support in home country and in other countries.
Matches attract millions of TV viewers. Let’s meet legendary teams
from different regions of the planet.
“Juventus” originated in 1897. Club considered most titled.
About achievements you can talk long. In the early 2010s the club was named as the most famous in Italy.
Outside companies carried out own research. It was possible
to find out that more than 13 million fans are
sick of Juventus. The data is huge. Such help spectators have majority other leading teams don’t meet.
Players of Juventus often contribute charity projects.
Team leads different programs:
• medical field;
• support for the homeless.
Juventus overcome declines. However the club
managed to overcome challenges.
Team appeared in the list thanks to the today situation. Team steady shows excellent results.
Players year after year trying to achieve the championship title in the English Premier League.
Total number awards so far low. However situation is improving.
Scheme work may cause only praise. Manchester City supports many clubs from different parts of the world.
List includes countries from North and South America, Asia.
Young athletes have a chance get into the best tournament the planet.
List of best teams would stripped without Manchester United.
Indicated team has become the most popular on the planet.
Fans can be found different regions:
• “The Fifth Republic”.
Help team huge. Manchester United appeared in 1878.
During the history managed pass through different obstacles.
Manchester United regarded the one of the titled clubs history of
English football in England .
Worth report another fact. In the early 1990s Manchester United founded the APL.
Best period came job Alex Ferguson. Club won many prestigious awards.
While about the past glory remains only remembering.
But Manchester United still be able to show excellent football.
“Star of the South”
Club first originated in early last century. During years development “Bayern” achieved
title most famous team FRG. Total about 60 major achievements.
Currently fame started from early 2010s. Squad showed excellent football.
Bayern strengthened in the first lines in the Bundesliga.
Football players were able to achieve excellent results at European tournaments.
Club often helped other teams and ordinary people. Several times
Star of the South supported Munich 1860. Functional implemented various methods
• profitable transitions;
• free matches;
• financial transactions.
Now support works addressed. Team strives help personally.
List of the leading football teams planet be incomplete without Real
Madrid. International organizations named this squad as the leader of football of the last century.
The team won 65 titles national class. To the list get add
34 championships in the Spain championship. Such achievements of competitors does not exist.
“Real Madrid” originated in 1902. After 18 years of
existence composition assigned title royal.
Leading positions in Spanish football roster began to take over from the beginning.
Achieve this succeeded with the help of set reasons. The team is renowned for its comprehensive approach to training.
Mentors pay attention to on different parameters:
1. Shape of football players.
2. The procedure for selecting players for
3. Settings for the game.
Meticulous preparation helps creamy win championships.
About the merits of the composition successfully talk for
hours. More 10 times Real Madrid won in Champions League and other European club competitions.
Club never didn’t drop from the national championship of the country.
Independent researchers believe Galacticos the most expensive club in the world.
Indicative value at the time of study amounted to 4.2 billion USD.
Annual income decent. Club earns on selection, advertising contracts, sponsorship.
Impressive income is selling tickets for matches.
Wednesday, September 28, 2022 - 17:08:07
I’m now not certain where you are getting your information, however great topic.
I needs to spend a while studying more or understanding more.
Thank you for magnificent info I used to be on the lookout for this
information for my mission.
Monday, November 28, 2022 - 17:20:39
This is really interesting, You are a very
skilled blogger. I have joined your feed and look forward to seeking more of your fantastic post.
Also, I’ve shared your website in my social networks!
Thursday, December 29, 2022 - 18:20:51
Friday, January 20, 2023 - 12:53:07
Tuesday, January 24, 2023 - 06:06:11
Tuesday, January 24, 2023 - 19:08:49
Friday, February 3, 2023 - 11:16:31
Tuesday, May 30, 2023 - 14:16:56