mailto: blog -at- heyrick -dot- eu

Replies to a troll...

Recently a(nother) troll descended on the normally peaceful RISC OS Open forum. Now, things started well with some discussion regarding potential future directions that RISC OS could take, albeit with numerous repetitive comparisons to various aspects of Windows - I wonder how many people would have been familiar with "OLELoadimage" - would it not have been better to describe what is supposed to happen instead of name-dropping like we all know (or care) about specifics of an entirely different platform?
It was here that things started to get a bit strange - talk of wanting pre-emption and to remodel the OS to be a "DOM model" apparently like an OS that has already been written by this individual. He did not seem to appreciate that you just can't take an operating system and entirely change it and consider that it is going to be the same thing that works in the same way. As I pointed out several times, it is essential to retain compatibility. An operating system without application software is, well, useless.

It is at this point that I would normally provide links to various pertinent topics or articles, but the person in question (known originally as "h0bby1" and later as "g0st") deleted the majority of the messages that he had posted - which is a shame as his h0bby1 persona had posted some interesting resource material that would have been worth retaining. Nothing of interest was posted under the guise of g0st.

Some of the content, along with the gleeful backstabbing and insults, have turned up on a nowhere nothing website. So in the interests of balancing things, I will respond to the points raised in the most recent posting on my own nowhere nothing website... ☺

The original is here, and if you back out to the system development stuff, there is more of the same.

So, without further ado, let's get to it:

Originally it's a very good operating system, technically, well very good, with a cooperative multi tasking system well in itself it's not bad, but the whole api is still in low level language like mix of assembler and C that is not very well documented, so it make a few things a bit dicey to program, but the core system is still rather well designed.
This rather amusingly contradicts everything else posted.
Allow me to explain. RISC OS is indeed a technically good, clean, integrated, and tightly programmed operating system. It was far ahead of its time. In 1987. It was ahead of its time because it was more or less a direct port of the BBC MOS which dates from 1981 and was miles ahead of pretty much every other 8 bit home micro ever produced.
As to the RISC OS connection, I'm not kidding - go download the BBC Advanced User Guide and anything technical looking you can find for the Master 128. You will find so much applies to RISC OS that you will quickly come to think that modules are like "sideways ROMs" only better, and the entire command line system and background events and stuff, it's all just like the Master 128 only way better.
RISC OS was a great operating system in the late '80s. It offered a GUI, multiple tasks, and anti-aliased font rendering before the world had heard of Windows. We RISC OS users were using WYSIWYG desktop publishers (actually functional on a 1MiB machine with floppy swapping) while the PC world was using WordPerfect 5.1 and its multiply coloured terminal style text.

[Impression Style screenshot from Computer Concepts, WordPerfect 5.1 screenshot from WinWorldPC]

It was great in the late '80s. But what was good then is entirely different to what is good today. RISC OS is a fundamentally insecure single user single process operating system with inter-application memory protection ranging from minimal to non-existant. This, as you can understand, precludes its use as a serious server or for operatings that are supposed to be crypto-secure. That said, there is still a place for a simple lightweight operating system without the bells and whistles. After all, you would not write your memoirs on RaspBMC would you? It is not intended for that. RISC OS doesn't have much in the way of media support, so I wouldn't use it to watch movies... I, personally, believe it could have some mileage in embedded devices where your application is what is important and RISC OS will act as a framework to prevent you needing to roll your own OS. Times when Linux is total overkill but you still want a fairly competent system capable of talking to FAT media, TCP/IP, pretty text rendering, etc.

Perhaps the simplest way to describe the actual differences is to say that RISC OS is a reactive operating system; that means that the operating system responds to requests from the program and the user. The program that is running controls the operating system.
This contrasts with modern operating systems where the operating system controls the program, and both try to competently respond to the user; however the operating system is (usually) the one in overall control.

It's written large part in assembler, it uses a mechanism of software interrupts and relocatable modules , the system itself is rather smart, in fact close to the system i'm developping myself, minus the software interupts, the module stay resident in a static memory zone, and programs are loaded in there declaring entry point of swi in a module header.
The OS is written mostly in assembler, yes. The core mechanism is the software interrupt - RISC OS offers hundreds (if not well into four digits). When you want something to be done, you set up the registers with the appropriate data and then you call a SWI. It is a lot like making an INT call in DOS, only this is the primary interface to the services provided. I can't say "primary interface to the OS" because third party modules can add SWIs. My OLED module (for controlling inexpensive 128x64 OLED panels) provides a set of SWIs. My MIDI module provides a lot of SWIs. This is how modules can offer their services to programs and the OS as a whole. It is possible to provide commands that can be issued on the command line, as well as other more esoteric things, but SWIs are by and far the most common.
The module is loaded into a memory area called the "RMA" for "Relocatable Module Area". As said, this is static in the memory map (it isn't paged out on application swaps). The thing is, unless you consider the module itself to be a "program", it isn't quite the same thing. Application programs do not (usually) load themselves into the RMA as they do not (usually) run as modules. Instead, a module tends to provide a set of reactive services. There's that word again - modules usually respond to system events, SWI calls, things happening that the module needs to deal with.
You'll notice "(usually)" in brackets. RISC OS is quite flexible so it is possible to run a specially written application in a module, just as it is possible to embed a normal application in a module (look how the likes of !Edit are implemented).

The system in itself is fine, but what took me long time to realize is that nobody at castle know how it works.
That's an interesting assertion given that nobody at Castle ever replied to any of the posts, to the best of my knowledge. Sometimes ROOL Steve may post in the forums. Once in a blue moon Ben may turn up. But generally they stay out of the fray. Probably a good idea...
Oh, and Castle != ROOL.
They bought the sources 15 years ago from a convoluted path from acorn, no original developper of the operating are active today, well there are still people active on it, but they mostly playing out with interupts and fixing quick stuff, on hardware and all.
Yes, because Jeffrey's GraphicsV work was just a quick hack he threw together one weekend, wasn't it? Certainly it may appear that most of what happens is bug fixes, because once a bug can be positively identified, it can be quashed. This doesn't mean that nothing else is understood and nothing can be done by anybody. If you consider just what it actually means to create a graphics API and to "teach" RISC OS about new graphics/pixel formats (such as those available in the OMAP/Broadcom SoCs), you will realise that a fairly deep level of knowledge is necessary. A knowledge of the entire OS? Perhaps not - did anybody understand the darker corners of FontManager other than its author? - but certainly more than "playing with interrupts and fixing quick stuff".

Actually, as I write this, I noticed something in the CVS changes that says, and I quote:

   Fix aborts on Cortex-A15 when using lazy task swapping
   Detail:
   s/VMSAv6 - After AMB_LazyFixUp has modified the page tables, perform a DSB + ISB to ensure
   the page table write has completed before we return from the abort handler.
So, yes, I would definitely agree. Tracing down a problem with the task swapping and correcting it is just a quick fix (in BASIC, maybe?) and in reality nobody at all knows how the system actually works. This is clearly just a spit-and-rubber-bands patch to bodge something to work, right?
After all, God forbid yet another asinine assertion turn out to be wrong... [but, hey, get used to it]

i wanted something that leave all cpu power and memory for applications , with better support for certain things for multi media,
RISC OS is great for the first - if an application needs to claim exclusive use of the machine for something time sensitive, RISC OS will obligingly get out of the way, not start an argument.
For multimedia? Not so much. The problem here is not RISC OS' lack of support, it is because the low level GPU stuff is mostly closed source so a nice friendly binary blob exists for Linux and we... don't have anything like that.
Now problem, everything is made in assembler, with a list of swi with the assembler API using register used/left and all, so it's pretty old.
Ironically, I would imagine that modern calls on modern OSs are more or less the same kind of deal, only you have layers of libraries and fancy frameworks hiding all the complexities from you. On RISC OS, there are few libraries and, well, people are just used to calling the API directly for a lot of stuff. Consider DeskLib that I have forked/ported to RISC OS 5 on newer hardware. Some things, such as the Event system, are great. A bit like VisualBasic, you can say "when an icon in this window is clicked, call this function". However an awful lot of the library is little more than a veneer between the conventions of C and the underlying API.
To give an example, here is the code to DeskLib's File_Seek() which is like C's fseek() only using RISC OS file handles:
        STARTCODE File_Seek
;
; extern os_error *File_Seek(file_handle a1, file_position position);
;
        STMFD   sp!, {lr}
        MOV     a3, a2
        MOV     a2, a1
        MOV     a1, #1
        
        SWI     SWI_OS_Args + XOS_Bit
        
        MOVVC   a1, #0
        STR     a1, file_lasterror
        
        LDMFD   sp!, {pc}
A friendly function, calling the underlying API, all in eight instructions.

With my objective to have a system organized around a DOM-tree, well it clearly missed something.
I asked Google "what is a DOM tree" and it replied: "The DOM is a W3C (World Wide Web Consortium) standard. The DOM defines a standard for accessing documents: The W3C Document Object Model (DOM) is a platform and language-neutral interface that allows programs and scripts to dynamically access and update the content, structure, and style of a document."
Is this something that is sensibly applicable to an operating system? It is an interesting concept, but somehow I feel that trying to promote applying an idea like that to an older OS might possibly be why it wasn't met with an enthusiastic reception. Such things would surely need to be written from the ground up, no?

I started to ask question, about how to make certain of the things i'm into, and they were like you can do this with a filer it's easy to do this on riscos, well then i realized nobody pulled out this thing together in the past 15 years,
Regarding his idea to make a filer for... what was it, squashed files? I don't recall, the messages have been deleted. Well, I remember that if it was Image Filing Systems (which I thought were the most applicable), I pointed to X-Files (a filing system, with source) and also to DOSFS along with the relevant part of PRM book 2 (link to web version as PRM PDF not available). What more does he want? Documentation of something that hasn't changed much and two source code examples not enough to get started? There's also the source to Memphis (resizing RAMdisc) as well.

and the guy who was saying this to me well he never been programming anything that works more than copy pasting a tutorial, and he is there giving advice to people on technical thing, pretending it's a riscos things.
If that was me, I may have been copy-pasting from one of my own tutorials - I recall I did so recently but don't remember where. If not, what's wrong with copy-pasting from an existing tutorial? Is it a bad thing to utilise an existing resource? Is he, like, really insulted that everything wasn't created anew specifically for him? Dude, life's too short...
At first i was bit surprised, when i said it would need something like 'OLELoadimage' and been told on rude impolite tone that it's esoteric windows things that nobody care about, i was like ok, well let see how it works on this system.
Actually, the quote reads as follows:
Him: I mean you consider the way functions like OLEImage works
Me: ...RISC OS forum. Mightn’t be too many around here who know (or care) about esoteric Windows stuff.
The point being, as mentioned above, that while he may know all about specific Windows calls, that doesn't mean that everybody else does - especially considering that this was posted to a RISC OS forum.
This is, incidently, the same post where he alleged that Microsoft did steal the whole C/Shared library principle from unix and Which could also explain why Microsoft had to steal the ActiveX thing from another company to make the bulk of their system. His messages deleted, my reply here. I mention this to indicate that I was by then failing to take it completely seriously.

Then i tried to investigate to get threads or something preemptive like to run webservers, it was like opening a whole can of worms, i just saw there was a thread on it that lasted for like years, as i already have some code and lightweight infrastructure to handle threading based on interupt in my own system, that can already solve lot of this issue, i tried to pull it there, but only got trolling answers, and all kind of things about cmt/pmt/amp theory, i'm sure none of this people ever programmed anything multi thread in c or c++ or assembler.
The basic bottom line is you cannot sensibly shoehorn pre-emption into a system that has no clue about such things. Essentially RISC OS is a single process system. The multitasking is clever smoke and mirrors - when an application yields (it is co-operative multitasking), the desktop system remaps memory to move the application out of the way. A different one is mapped in, and execution continues with that application until it yields. Repeat as many times as there are applications. It is clever, yes. But it is so far from pre-emptive that it is unreal.
Personally, I would favour a "Pre-emption Lite", in that an application can tell the desktop system that it is in a piece of code where it cannot respond to events but needs to be busy for a while, please pre-empt me. So when such an application is switched to, the desktop system will set up a timed callback (say, 5cs or so (a 20th of a second)) and when it elapses, the task will be switched out and replaced by another. Essentially a sort of forced yield.
This is not the best form of pre-emption. Far from it. But it is - to my mind - the best way to bring a pre-emptive sort of behaviour to application space without breaking everything and it shouldn't be too hard to implement meaning that it might actually happen instead of a never-ending discussion on a forum.
One does not simply 'bolt on' pre-emption of the type he requires. Such things have to be designed from the ground up. For a start, the entire filing system model not only has no concept of non-blocking, FileCore itself is not re-entrant. So, pray tell, at exactly which point does all this high-faluting pre-emption guff grind to a halt? You just cannot bolt on pre-emption to a system designed with no concept of such behaviour. How many more times does this need to be said?

I note that he mentions a threading infrastructure on his own system, I should point out that no code was ever posted. As far as I'm concerned, no code exists.

To my knowledge, there are three pre-emption systems "available" for RISC OS:

  • From 1992 comes a pre-emptive multitasking timeslicer. This appears to set a CallAfter with a 20cs timer, which will then do a callback. Sort of what I suggested before and it was called a "dirty fix". Riiight. I'm not sure if this has ever been used, or if it was more a proof of concept.
  • From 1999 comes the one that actually got used and pre-empted regular Wimp programs spectacularly well - Wimp2 (formerly known as Tornado?). This doesn't use CallAfter, it uses the hardware high resolution "Timer1" built into the IOC chip.
  • And, of course, the venerable TaskWindow, a stand-alone program preemption system that we use all the time. It is pretty solid (it is used extensively while building RISC OS itself) but it has quirks (understatement of the year!), just take a look at what Justin Fletcher thinks of TaskWindow...
If it was an easy thing to do, it would have been done long before now. To quote Justin: "Well, the thing about TaskWindow is that it was written to provide a preemptive system on top of the cooperative system that the desktop used. As no part of RISC OS is really designed to be preempted, this had some interesting effects."

Then all kind of crazy solutions, and when you critics anything, you get insulted called no brainer,
...which is so not what that phrase means.

What was said is:
Him: Microsoft did steal the whole C/Shared library principle from unix
Me: What? You mean like we did? Dude – it’s an obvious no-brainer. You simply do not need to have the entire runtime kicking around within every single program you have. That might fly in a single-tasking world, but in a multitasking (GUI or console) world, having a shared library makes a LOT of sense.

When something is a "no-brainer", it means that it is something that is so obvious that it doesn't require any effort to understand. For instance, taking an umbrella with you when the sky is black as night at noon is a no-brainer. That means a really black sky is usually a sign of heavy rain, so it doesn't require much mental effort to consider that equipping yourself is a wise move. It's.... a no-brainer.

people just act like if they were technical directory of some big company whereas they are just there sitting on their 15 year old OS who can't do anything else than blitting sprite and printing text, well it's a bit abusive,
Really? Well, some of the people behind the scenes work for Broadcom. Some may or may not work (or have worked) for Pace. I only really kept track of everything until 2002 and the following time without connectivity was a sort of black hole in that respect.
Not that it actually matters. I called him on his repeated references to his own operating system by asking where something (if even a demo) could be downloaded for either an x86 box or a Pi - because I wasn't quite getting the concepts mentioned (and I still don't see how an entire OS can be a DOM tree), so maybe if I had something to look at, it might make the organisation much clearer. Like an "oh, so that's what he means" kind of thing. So I asked.
His response? That was the first time he deleted all of his messages.
So I'm just going to go out on a limb here and say it's all hot air and no such thing exists in any usable form (if at all). Because, hell, if I put together an entire OS all by myself, I'd want to show it off just for a geek karma upgrade.

For what it is worth, RISC OS is not 15 years old. Take that figure and shift it one place to the left. That'll be closer to the truth.

it has still good windowing system and the people who programmed this are smart, but none of the people on castle and this forum understand anything of this. They just stick on old manuals and copy back interupt in programs mostly in BASIC with tweaks and stuff.
Oh... wow... I can totally call him on this. Unless people are using BASIC as a wrapper for writing in assembler, you simply do not do interrupt stuff in BASIC. You can't even do callbacks as BASIC does not expose the addresses of routines so there is anything sensible to provide to the OS for an address to call. It might be doable if you wrote a veneer to set up an environment and jump into BASIC and your name is Steve Drain... for the rest of us? BASIC and interrupts/events/etc don't match.
Having spent all that time "investigating RISC OS", he managed to actually learn very little about it... Okay, granted, it is a somewhat esoteric thing to know, but if one is going to use it as an insult, it might be useful to check that it won't just make you look a dummy. You know, like calling somebody a "chicken dick" (one of the preferred insults when I was at school, showing a complete lack of awareness of gender and basic anatomy.... but then again I managed to get most of the first form to refuse to eat breakfast one day by convincing them that by having milk they were actually drinking cow semen - I probably didn't get in big trouble over that because it was too stupid to be believable... yet, they did). Anyway, as far as put-downs go, this one was a big fat FAIL.
The desktop system is clever. Yes.
The rest of the sentence doesn't even justify a response.

Well not that it's wrong in itself, but clearly that's not going to work out to compete with modern system.
...in some imaginary fantasy world where we are trying to compete, right?
Even Microsoft hasn't quite realised that it is playing runner up to iOS and Android. Frankly I kind of wish Microsoft would just walk away and cash in those patent royalty cheques instead of messing up desktop Windows with tablet-inspired rubbish. But with those three (iOS, Android, Microsoft), we'd be nuts to think RISC OS is a serious competitor in that arena.

Then i started to ask if things could be modified, i got thrown the whole issue of porting applications, then i said them clearly i won't port 20 applications to new things, then tried to investigate a little bit more about the whole thing, well basically nothing like function import, no hierarchy, no dependency, just series of module in machine code loaded in a fixed location in memory that application reference through swi number match with a name.
Function importing and such requires a symbol table and some way of resolving the linkages. These are higher level things than the level that RISC OS works at. RISC OS was originally written when it was not unusual to write things in assembler. The OS itself was written almost entirely in assembler, as were some major applications. RISC OS 2 didn't even have CLib inside it. So, no, the API doesn't have symbol tables.
Dependencies are easy, actually. Either a necessary module exists, or it does not. If it does not, you load it. If it does, you use it. It is expected that modules for public use will retain backwards compatibility, so older programs can use newer modules without issue. We don't need to have half a dozen versions, and a dozen more symlinks to fill in the gaps.
The fixed location in memory thing is specific to CLib which sets up a jump table into itself in the application. As you can imagine, if the module subsequently changes position, all of the jump tables will be wrong and everything blows up. It was a good idea for maximising speed on an 8MHz uncached processor (the entire SWI call mechanism could be replaced by two branches) but it isn't a terribly logical design in modern terms.
Actually, most programming languages (BASIC being the exception) require SWIs to be given by number. This is usually hidden in a header file so you can refer to SWIs by name in the code, but it is something the preprocessor will replace with the applicable number at compile time.
BASIC is more friendly here. It will accept SWIs by name (as well as by number) and do the job of looking up the names for you. You do, of course, pay a small speed penalty for having the name looked up, but that's a choice you can make as a programmer...

And they're all there waiting the messiah who will port a dom like browser and make the system preemptive,
I can't speak for others, but I'm in no rush for a clever browser. I have four Android phones and an iPad (plus I'm writing this on my PC). There's no shortage of capable browsers at my disposal. As for pre-emption, the endless threads are because it opens up a huge can of worms. Fundamentally, a pre-emptive RISC OS would be something entirely different to RISC OS as it exists now - perhaps to the point where the current API is a mere overlay running on top.
The problem is, one just doesn't roll out of bed one day and bash out a pre-emptive kernel while waiting for the kettle to boil. I might suggest a good long read of Andrew Tanenbaum's instructive book about the design and internal workings of MINIX.

while not giving any clue, making all the way more complicated to anyone who ask question, giving them irrelevant links or wrong information to look like they are competent, but basically none of the people there seem to worth rat shit in system or modern application programming, maybe i'm wrong though.
It reads like an insult, so I couldn't be bothered even trying to parse that to figure out what he is trying to say.

Some of the guy looked ok, but not the guyz from castle of from the board.
Incidentally, which guys from Castle? If anybody "official" on the forum responded, then they would represent RISC OS Open Ltd and not Castle. John Ballance (Castle CTO) is a user on the forums, but pretty much all of his posts this year have been about the ReadEDID work. I don't think this justifies the insults aimed at Castle.
Jack Lillingston, Castle's Managing Director, doesn't appear to even have a forum presence. So... I suppose Castle is guilty by association. RISC OS sucks, we suck, and everything related sucks. Something like that... I'm aiming for a big fat whatever here.

Then i asked them if then things can be modified, or if it just cannot be changed at all, and just need to stay exactly how it is, with the current api, and i've been told ok you can modify it, so then i started to investigate a little bit more, well it's not even that there is that much work to do on it for the most part to have equivalent to threads and dom plugin, but then figuring out 120MO of source, the whole application dependency, while people are just there throwing insult and calling you insane, with no other resources , well seem difficult.
Things can be modified, but it is important to retain the existing API. Breaking existing programs would not be a popular move.
Look, let's put it like this. I cannot believe that Linux (and its POSIX ilk) are still using case sensitive filenames. For Christ's sake, it is 2015. Get over it people. Become case insensitive, like every other functioning operating system around.
It is probably a fairly small change to make this work. It would probably trigger a reaction that would make the systemd debate seem trivial by comparison.

And when you consider that he is asking about some fairly fundamental upheavals to the OS, it is clear that things are going to be.... difficult. Not much work for threads and DOM? Is he for real? Perhaps if he attempted to figure out the dependencies, it might have been clear that you just cannot bolt on... oh bugger it, I'm getting sick of repeating that over and over.

120MiB of source? Most of that is probably irrelevant in the short term. I mean, one would probably concentrate first on getting the kernel to be aware of pre-emption (three and a quarter megabytes), then one would probably want to see what can be done with FileCore for possibly re-entrant behaviour (one and a quarter megabytes). DeviceFS, Buffers, and various system devices (keyboard, mouse, etc) may need to be checked (another megabyte, give or take). Then comes the fun - Switcher and the Desktop (two megabytes). Add another two megabytes for the SCSI-USB and USB drivers. And finally 170 kilobytes for the entire HAL.
Are you seeing what I'm seeing? Because I'm seeing that one would want to concentrate on about nine and a half megabytes of source. Which is a far cry from 120MiB. And, wait, there's no such thing as application dependency, didn't he say that just a few paragraphs ago?
But, yeah. I'm not aware of anybody outright calling him insane, but I do think that if it was easy then it would have been done by now. After all, he has already written an operating system, allegedly, so this should be fairly simple for him, right?

so for the moment i'll just publish some of things i made, and document few things i figured out,
Well, at least the information gleaned isn't going to waste, although it is rather ironic to say our documentation sucks (yes, it does) and then not contribute to said documentation...
and will more focus on my own system which seem more productive than dealing with a bunch of old fart with their basic not wanting anything to move to be able to brag about how great they are to know how the old stuff work, and not even knowing one tenth of anything but still act as technical director for the whole system while they don't know anything about it.
...blah blah blah, whatever. I note that this mythical system is being bragged about referenced yet again.

The most disturbing has been to find out that the most active developper of riscos this past 15 year has been struggling for years on the exact same issues, and he had all the good idea, with ole like components, with js scripting, OO orientation, fixing dependency issues on module for the toolbox, and he complains himself to have been faced with only people who wanted their BASIC and non OO things to keep the few base of users they had in 1998 that were mostly education and some home user, but those needs moved quite a lot past years, and they are still like robots on these old issues.
He is referring here to Justin Fletcher, a very clever person who did a huge amount of work to improve RISC OS. Sadly, Justin's work was for the non-open branch of RISC OS which appears to have had its most recent release in 2009. The faction and split of RISC OS was... rather unpleasant. I think we (of the RISC OS 5 camp) can consider that all of that work is lost to us, and possibly lost to the RISC OS world as a whole as it appears that RISC OS 4/6 is not progressing forward any time soon (if ever).

Well i been there it just seem people are only interesting into bragging at how great their is, and how great they are for knowing such a great piece of technology,
In a way, our support of Acorn and their ARM project (I can say this - most of the people at the various RISC OS shows have grey hair, and sadly I would these days be counted among their numbers) helped to get the ARM started and established and on its way to being the amazing success that it is today. I do not know if the Archimedes had flopped if ARM would still be around, but then I think if I described my S5 Mini back in '87 people would think I had been watching way too much Star Trek. I mean, a quad core 1.4GHz ARM with 1.5GiB RAM, 16GiB flash, an 8mpix camera, an HD (1280x720) display in a 5" size, and it is about half the size of a pack of cigarettes (slightly taller)! By comparison, the Archimedes offered an 8MHz processor with up to 4MiB RAM (depending on model, 1MiB was common as memory was frightfully expensive), you may have a floppy-only system or you may have a 40MiB harddisc (which would cost the earth). A typical 14" monitor would provide something between 640×480 and 800×600 if multisync or (S)VGA, or typically 640×256 if a standard ("TV style") RGB colour monitor. Looking back, I struggle to imagine how we managed to ever get anything done...but then my first "magazine" (way predating Frobnicate) was written on a Beeb using EDWORD!

trying to pretend they have the level of system developpers whereas any attempt by any team to do anyting of this the past 15 year to bring to preemptiveness and all things it needs like a web browser failed,
NetSurf is a web browser. I'm not even going to comment any more on the pre-emptive thing. I think anybody who has performed low level work on RISC OS can call themselves a system developer. They are working on the system, are they not?
and are still there it's better that windows,
In some respects, it is. Still. Even today. I don't get why the other operating systems insist upon bringing the active (input focus) window to the top. With applications such as Notepad++ you can tell the document to remain "always on top" and you can then direct input to a window underneath and, guess what, it works. So why does Windows (and Linux) keep with this annoying pop-to-top behaviour? Why can't I perform a two dimensional scroll on the scrollbars? What is the deal with an application starting and opening a big empty window awaiting input? What is the deal with the application quitting when I close the window? I know Windows can push windows out of the way (minimise), so why can't applications just load and wait until they are wanted?
In other respects, Windows is better. RISC OS multimedia support is pretty poor. We don't have a POSIX layer so I can't run ports of things like AVIDemux. My web server requires an SSH login using a shared crypto key (that means even if I publish my login password here, you still couldn't get in). WinSCP does this effortlessly. I'm not sure how I'd set up my Android phone to do likewise. I'm not going to consider using RISC OS, I don't think such a thing even exists.
It is clear that different operating systems have strengths and weaknesses. Some people prefer iOS, some prefer Android. Having used both, I'd say they're kind of the same thing - the main difference for me is that Android is easy to talk to for data transfer while iOS seems incapable of talking to anything other than iTunes. But in use? They're pretty similar and do the things I ask in much the same way - I mean, web browsers act the same, video playback acts the same, the YouTube app acts the same... yet, for all of this, people are very passionately on one side of the fence or the other. A fruity follower or a 'droid fan. Complete with numerous clichéd pejoratives.
I like RISC OS because of its simplicity, and I like RISC OS because of its clean uncomplicated interface that doesn't clutter windows with rubbish like menu bars, and I like RISC OS because ironically its lack of support for fancy apps and such mean fewer distractions - I can get on with what I am doing without... oh cute kitten!

and who needs objects, dependency, threading, only giving cheap solution that are just nothing more than dirty fix presented as if they were the holy grail of programming, and the whole thing is made like this out of cheap fix after cheap fix with horrible synthax, the whole thing hold with glue and rope and nobody know even how it works there.
Objects are usually associated with higher level languages, which may or may not be tied with the OS, and anyway at its base level an "object" is a data structure. I think you'll find the RISC OS API is full of data structures (try OS_GBPB!).
Dependency is again a high level language. I will accept that this is something that RISC OS is missing, however given that our libraries are generally statically linked and are often fairly small (calling module SWIs for the heavy lifting), things like dynamically fixing up dependencies never really happened on RISC OS. This lack hasn't been a huge impediment in the past quarter century, don't think it is critical because your favourite operating system does it and RISC OS doesn't. There are, I believe, plans to introduce something like this with the ELF loader.
Threading comes back to the pre-emption thing. We could fake threading (I think UnixLib does?) but is it sufficient for an application that uses threads extensively?

Is it a dirty fix to suggest that one fakes threading and thread switching by hanging off of the system ticker or a callback? Perhaps. Perhaps not. I should point out that the UnixLib pthreads library suggests using __pthread_stop_ticker() and __pthread_start_ticker() around calls to Wimp_Poll. To me, this suggests a similar sort of idea. But, hey, what else can you expect to do on a system that doesn't natively understand multiple threads? It isn't the holy grail of anything, it is trying to get a concept not understood by RISC OS...working on RISC OS. If anybody has any better ideas, feel free to write some code and release it. Maybe porting all these wonderful Linux programs (that rely heavily on various attributes of POSIX) would become a little bit easier?

The rest... I think we've already completely demonstrated that there are people that understand RISC OS so the rest can be disregarded.

Plus all the people who try interpret words, or to push people out of their limit, like a guy who is working h24 with not so good health, and they don't even say him to make a break,
He is referring to this, part of which is this: "As for the RISCOS scene – I quit my full time day job three years ago to devote 100% of my time to JASPP / ADFFS etc. I’ve had to go back and do the odd contract to pay the bills, but where possible I’ve negotiated short weeks or short days so I can spent at least 4-5 hours a day on the project. As mentioned above, my health isn’t that great at the minute, however I’ve used the lack of sleep to put in an average of 20 hours a day for the past three months whilst coding up the next ADFFS release.". You know what? Yes, I would like for Jon to ease up as I can't imagine doing long stretches of 20 hour days without burning out. But I would not say this. Why? Because he is an adult and he doesn't need me being patronising. It is his time and his life, and if he really wants to devote such amounts of time to working on his projects, then that's his choice to make. Not mine. Not yours, either.
and always confronting people on their ego and stuff, and making them say thing they didn't say, really immature manipulative behavior, it really reminded me cult tactics almost, about great promise of future things to come that never come, and how everything is best with tons of bias and dishonnest speech, never spoken to people with so little honnesty in their speech for a while lol
This is the sort of stuff he posted in the forum and yet he has the audacity to accuse us of trolling, immaturity, and being rude. Well, you can make your own minds up. Our replies to his posts are in the forum; we don't have the habit of randomly deleting stuff.

Those guy are so biased, you'd think it's a religion, you critics anything, you get insulted, called insane, it's really like a cult in fact,
Given the content and the general tone of the original post quoted here, and that the forum posts were of a similar nature - is it any wonder? It is all very well to march in and talk about threads and pre-emption and DOM and many references to something called "Cobra" which would appear to be a programming language that runs on Microsoft .Net, is it any wonder? A lot of talk that started to get accusatory in tone and nothing that resembled a plan of action; or maybe what he really wanted was to march in with these grandiose ideas and have somebody else do the work? We don't have enough developer time as it is without stupid ideas like Cobra - and it is stupid because it is tied to Microsoft .Net or Mono (which is a cross-platform version of .Net) which is something else that would need to be ported in addition to the language. To port an entire library framework in order to implement "my favourite programming language" is stupid. There are so many better things to spend the time on. Apparently our printf is broken, that was an accusation he liked to bandy around with his other weird insults. Well, maybe just maybe fixing printf might be useful? Every C programmer in the past quarter century (who somehow managed to fail to notice the problem) would be very appreciative.

as long as you in hearth at the greatness of riscos, everything is fine, even if you say 10 bad advise per word to other people who might be interested, as long as it's pro riscos it's fine, but once you start to ask question, and to face them with problems, then suddently you become odd, insane, and all.
That depends upon your context of reality. I said IIC was broken and things go horribly wrong if you probe looking for IIC hardware. A short while afterwards, a fix was made to stop IIC failing in that way, and a little while later a SWI call was extended to report on how many IIC buses actually exist, so no probing invalid stuff. I have also reported that localtime() is utterly crap and just plain wrong, but the 'fix' is awaiting the difficulties of performing adequate testing on older systems.
You will notice that these are real issues and real problems. Read the forum today, discussion regarding making sound effects in a game. Again, real problems with real answers.

How, though, does one respond to requests for a DOM model (does he even know what this means?), a .Net specific language, and pre-emption? The latter is one that we have actually discussed but without knowing the best way forward for all of the reasons already given, maybe multicore work will provide a test bed for different ideas? I don't know. It is a valid problem, but a very difficult problem. The other requests? Incomprehensible, only we were more polite.

Well i removed all my posts from there, and one guy started to take picture of them thinking that looked smart with his phone haha saying he would use it for its own site,
That was me. Here's my post and for what it is worth, here's the picture that I took. You'll see it got quite a reaction - perhaps the moment he realised that he can't just delete his posts and pretend that all the things he said were never said. When he accused me of taking the photo and pretending that it was mine, I told him to "Cease and Desist from making such accusations"; so I am somewhat miffed to see him now apparently claiming that I said I would use it for my own site. A have linked to the original posted image, but I have very specifically not included the screenshot here.
If you feel so inclined, follow the above forum link and read down and tell me where I said that I would use pictures of his posts on my own site. Here's a hint - I did not. It is as much a fabrication as most of the rest of his delusions. Don't believe me? Go read the forums. You can get an idea of what was said by looking at the quoted stuff, like "it's not because riscos is a piece of crap and the team has zero organisation, sure not at all" (read it quick before he deletes it! ☺).

at least there would be something more interesting than useless arm tutorial with 3 lines of code and 3 pages of explanation to explain some basic concept.
Three lines of code with three pages of explanation? That's a bit verbose, even for me. However I do tend to explain at length because I often get frustrated when I see tutorials that give you a wodge of code to do something but don't actually explain in detail what the code is doing. If you are trying to learn (which is the point of a tutorial, is it not?) then things should be described at length so everything is clear to the reader. The reader should have confidence in what the code is doing, why it is doing it, what it is doing it in that way, and what is expected to happen at every step. It may be utter overkill for normal programming, but to a beginner a normal program would be scary and unreadable. I believe that if a person understands every bit of the code presented, they might experiment with it and try alternative ways to do things. This is how one learns. Not by some obscure process of osmosis.

He even more or less stollen a sentence i told in a thread to make his own little tutorial on C trying to look smart or helpful or something lol
I can only imagine that he doesn't know what "Cease and Desist" means. Well, consider this blog post my response. As for the above? I will patiently await somebody (anybody) pointing out a link to this supposedly stolen sentence - however if I can create an entire little tutorial from one sentence he supposedly posted, I guess this does imply that I am smarter, huh? Like, whatever.

Well it's a little bit pathetic, it's sad a system like this had fallen into such kind of place haha, i can understand why justin has given up and why he kept on it for long,
Fundamental fail. Justin (Fletcher) did his work on the other branch of RISC OS.
Okay, here's a crash course to make this really simple. The last version of RISC OS that Acorn officially released was RISC OS 3.71 (or so). There was a later version "internally available" for the forthcoming Phoebe project (called RISC OS 3.80). It was incomplete and buggy, but it probably would have been fixed up and released as RISC OS 4 on Phoebe. Only that did not happen. Acorn threw in the towel and the history of who owned what where got really complicated. I'll skip that, it's not relevant. What is relevant is that RISC OS then split.
To the left: The internal RISC OS 3.80 was fixed up and released as RISC OS 4 by RISC OS Ltd. This went through numerous incarnations including being called Select and Adjust. Justin Fletcher worked on this, and the focus was on enhancing system stability and usability. Pretty much every version made has been for RiscPC class machines (which includes the VirtualRPC emulator product). There was a not quite complete foray into 32 bit for the A9home computer, but this is - as far as I'm aware - the only 32 bit version - and RISC OS Ltd was dissolved before the version of RISC OS for that machine was "feature complete" (that means it was never finished).
To the right: Starting from the same post RISC OS 3.7 code, Castle developed RISC OS 5. It has none of the additions and bells and whistles as the other branch. Instead it began life as a fairly straight port into a 32 bit realm. However, unlike Adjust32, RISC OS 5 defers much of the actual hardware access to a HAL which means that it is simpler to target different hardware. This version is being developed today, mostly as a part time hobby by volunteers, and the system is available for a variety of ARM boards such as the Beagle, Beagle xM, Pandaboard, iMX6, and the various members of the RaspberryPi family. There is a version available for RiscPC type machines, however unlike the RISC OS Ltd version, RISC OS 5 runs in a 32 bit mode. Exclusively.
Acorn ceased to be in the year 2000. It is now 2015. The two branches of RISC OS have had practically zero crossover in that time, and I wouldn't hold my breath waiting on anything else. People still hold grudges, throw their toys out of their prams, etc. It got really idiotic on both sides for a while so, like I said, I wouldn't hold my breath awaiting a reconciliation even though such a thing would no doubt be beneficial to every player in the long run.

but really the organisation, the mentality, it make it impossible to turn it into something more modern, despite all being in lack of good browser and threading, the mentality there make it impossible to do anything.
A basic fact of life is that the RISC OS market is really really tiny. I could go all Steve Ballmer and shout developers! over and over, but developers don't just fall out of the sky. We are constrained by a requirement not to cock up the applications we have by making incompatible changes. We have already suffered, firstly from the change from 26 bit combined PC+PSR to a 32 bit PC and separate PSR (if you don't understand that, it's nerdy but basically was like the inside of the computer changing from a Honda moped to an Audi). This has been partly dealt with by Aemulor. The second thing that has affected us has been the change in behaviour of unaligned loads, and the Castle era compiler's propensity for using them. We really don't need to compound the issue by making incompatible API changes, especially as you will notice that the big issues are actually changes in the fundamental ARM architecture - RISC OS itself has always emphasised backwards compatibility, and this is something that we try to do even today.
Yes, there is a load of crap in the OS and a lot that could be redone and/or thrown out. But, what of the programs that actually wanted to use the facilities deemed as "crap" or "unwanted"? Yes, we are potentially stunting future development by clinging to the past, but the flip side of the coin is that an operating system without applications is useless.
Things are being done. Now that a multicore device is available for an affordable price, it will give a push to having RISC OS support more than one core, which would be a huge step forward. I believe that something will come of this in time. But remember, many of the developers are volunteers. Big changes don't happen overnight. If you want to speed things up, get involved!

No wonder why nobody is more involved developping this system, it has potential, but people prefer to be in their cultish os war of it's better than windows, always trying to compare it saying it's better,
No more development? Maybe he ought to read this?
Has potential? We seem to think so...
Comparisons? Yes, it is better than Windows. In some respects. In others, Windows wins. That's the fun thing with comparing stuff. Change the criteria, the result can be entirely different.
with all bias and dishonnesty possible to have,
Says the person who has invented things I am supposed to have said. Yeah, I'm sure he knows a thing or two about bias and dishonesty.

and to me it give a very bad impression of cheap marketting and amateurism,
Marketing? I'm sorry... where is RISC OS marketed, other than at RISC OS events (which is like preaching to the converted, really...)? Does RISC OS Open even have a marketing budget? Or marketing, for that matter? If it does, can I get a sweatshirt with the ROOL cog on it? Or maybe a mug. I'm undecided.

the number of inacurate things or plain wrong i've been told there, really i would advise anyone going on that forum to check twice any said, even if checking twice 1000 things to get anything done is long well, i didn't really see much people there competent at answering anything.
Some references would be nice, thanks.

They pretend to be competent at answering, and will act if they know what they are talking about, and how to do things, what is risc like, what is riscosish but it's just mostly myth and dragon about stuff that just has been put up to date, cleanup and made safer, and i guess it's kind of scene marketting to keep things in certain myth to keep the user base they have currently, but well that's not very attractive to new users, that's for sure.
And he accused us of trolling and being deceitful.
Look, we're pretty much all volunteering our time and trying to be helpful. We may not always get things right. There may be problems along the way, but generally people who respond to questions do attempt to know what they're talking about (unless it is the biggest troll of all time, the (in)famous GPL!); and you know what? Many of us do actually know our way around a RISC OS machine. I mean, a hundred modules packed into 5MiB and a bunch of boot scripts and such, it isn't that hard to see how it all fits together. There is no mythology other than "that other branch" (and yeah, I guess there were dragons and fire and cack) but more or less we do try to be helpful and polite and most of all useful. If new people experience a problem using RISC OS, then this is something that it would be in our benefit to resolve. But we do expect a certain level of politeness and not to be insulted. After all, who really wants to help a person that calls you dishonest, a liar, and not "worth rat shit" (sic)? If you come along with ridiculous ideas and that sort of attitude... let's just say that a testament to the tolerance and open-mindedness shown is that the two user accounts still exist after all of this. I have been on programming forums where those sorts of criticisms of the administration would get the user account nuked and the IP blocked for good measure. Some admins like to wield the ban-hammer. RISC OS Open didn't, so we all got to be randomly insulted over and over again.

In closing, I would like to point you to a post by Steffen Huber that sums things up nicely. You don't need to take my word for anything here. I encourage you, in the interests of fairness, to go read the forum posts and try to glean what was said in the now mostly deleted messages and you might derive some context as to the extremely skewed mostly erroneous delusions that are provided on the Psychic Vibe website. If you wish to believe it, fine. That's your choice. But I will keep referring you to the actual forum so you can see what sort of evilly nefarious things really happened there (hmmm, the first rule of troll is you don't talk about troll...?) and maybe realise what the truth is. Because the content quoted (and replied to) here? That isn't the truth. Not by a long long long long way. Let's just say it's a good thing us Brits don't have a litigious mindset!
However, I do expect you to work this out for yourself, not just believe some random rubbish on some random website.

Okay, that's enough time I've wasted on this individual. I ought to be Frenchy-New-Wave and finish like this:

 

 

Your comments:

Please note that while I check this page every so often, I am not able to control what users write; therefore I disclaim all liability for unpleasant and/or infringing and/or defamatory material. Undesired content will be removed as soon as it is noticed. By leaving a comment, you agree not to post material that is illegal or in bad taste, and you should be aware that the time and your IP address are both recorded, should it be necessary to find out who you are. Oh, and don't bother trying to inline HTML. I'm not that stupid! ☺ ADDING COMMENTS DOES NOT WORK IF READING TRANSLATED VERSIONS.
 
You can now follow comment additions with the comment RSS feed. This is distinct from the b.log RSS feed, so you can subscribe to one or both as you wish.

GAVIN WRAITH, 18th April 2015, 15:13
It was clear to me right from the start, before the vituperation started, that we were dealing with a paranoiac. His poor English, and poor spelling, were clues to his isolation. But is it not amazing how easily he gets under people's skin? Maybe that is because we all have a paranoiac inside us somewhere? 
Anyway, your long piece here, Rick, will be useful to a lot of people, and is a good read. 
 
I have come across one or two people suffering from similar delusions, not in the world of computing but mathematics. There was this chap that kept asking inane, meaningless questions during a seminar by Sammy Eilenberg. Afterwards, over a drink, Sammy said: "This chap does not understand. He thinks that everybody else is as befuddled as himself. He thinks that we are just spouting nonsense, and is offended to find that when he spouts nonsense nobody treats him seriously". Some years later this guy was charman of the maths department of a university in East Berlin. He invited me to visit and give a seminar. Alas, when I arrived, I discovered that he had been admitted to a mental hospital that same day.
VinceH, 19th April 2015, 12:26
Gavin, 
> It was clear to me right from the start, before the vituperation started, that we were dealing with a paranoiac. 
 
Quite so. Some of the habits evident in his posts reminded me very much of posts I've seen from my brother on Facebook and the like (though with a massive difference as well. 
 
My brother has paranoid schizophrenia, coupled with learning difficulties, and when he's exhibiting signs of his illness, you'll often see multiple replies to a single post, each becoming increasingly far removed from (and reacting negatively towards) what was originally said and based increasingly on what he himself said in previous comments. 
 
The difference seems to be that this individual has an amount of technical knowledge (though not necessarily understanding to go with it) that my brother wouldn't have a hope of achieving. 
 
Incidentally, re the bizarre 'DOM model' he was talking about - bizarre because he seemed to be talking about it in the context of the OS. I wonder if the answer lies in this comment of yours (somewhere in the post above): 
 
"What is the deal with an application starting and opening a big empty window awaiting input? What is the deal with the application quitting when I close the window? I know Windows can push windows out of the way (minimise), so why can't applications just load and wait until they are wanted?" 
 
I wonder if by DOM model, he's thinking in terms of an OS where applications work like that - so the application does indeed load and open a big empty window to start creating its document type, rather than sit quietly on the icon bar until we want to use it either by starting a new document, or opening an existing one. For someone used to the other behaviour, it might be frustrating for someone used to something else. 
Rick, 12th December 2020, 16:21
https://web.archive.org/web/20151022003823/http://psychic.vibe.f ree.fr/pf/index.php/welcome/article/en/thoughts%20on%20castle%20 and%20%20riscos_1/tech/osdev

Add a comment (v0.11) [help?] . . . try the comment feed!
Your name
Your email (optional)
Validation Are you real? Please type 83924 backwards.
Your comment
French flagSpanish flagJapanese flag
Calendar
«   April 2015   »
MonTueWedThuFriSatSun
  1234
678101112
1315161819
202122232425
27282930   

Advent Calendar 2023
(YouTube playlist)

(Felicity? Marte? Find out!)

Last 5 entries

List all b.log entries

Return to the site index

Geekery

Search

Search Rick's b.log!

PS: Don't try to be clever.
It's a simple substring match.

Etc...

Last read at 14:07 on 2024/03/29.

QR code


Valid HTML 4.01 Transitional
Valid CSS
Valid RSS 2.0

 

© 2015 Rick Murray
This web page is licenced for your personal, private, non-commercial use only. No automated processing by advertising systems is permitted.
RIPA notice: No consent is given for interception of page transmission.

 

Have you noticed the watermarks on pictures?
Next entry - 2015/04/26
Return to top of page