Are RISC OS folk meanies or just poor?
Rick Murray (539) 13806 posts |
Interesting bedside manner there, Steve. You forgot one very important point. Users. Even those who do nothing evident and don’t throw around cash they don’t have. Without developers a platform is dead, fair enough. Everybody using RISC OS right now, in whatever form and whatever context, is doing a small part in helping to keep it alive. |
Clive Semmens (2335) 3276 posts |
This ^ If RISCOS slowly dies, I shall be sad. Correction: when RISCOS slowly dies, I shall be sad (assuming I’m still alive at the time). The only question is that when, really. For me, RISCOS will probably die when my Pi dies, and I hope that’s not for a long time, or when the final replacement dies and there aren’t any more available. I’d be very surprised if anything happens in the RISCOS scene that would be worth my spending a lot of money on, like my share of the cost of moving to 64 bit ARM architecture. !Draw, !Zap and BBC BASIC all work on the hardware I’ve got, and handle files as big as I can foresee ever wanting them to handle, plenty fast enough. I’m very grateful for that, and would probably have been prepared to pay a bit more money for it than I actually had to, and I’m grateful for that, too. I write some stuff that other people perhaps find useful. If they do, that’s great. If not, so be it. If they’re flush and feel like paying me something for it, that’s great; if not, so be it (nobody ever has). If at some point I’m feeling flush, I may chuck a tenner (or even two) in ROOL’s direction, but don’t count on it. I may find something new coming out of ROOL useful, and if I do that will encourage me to contribute, but I’m not really expecting it. None of the things there are bounties for really interest me much at all. |
David Boddie (1934) 222 posts |
Team up with someone so that you write the back end, someone else writes the front end, perhaps. |
Rick Murray (539) 13806 posts |
Depending on what you actually want to do, front ends aren’t that difficult. It’s a little scary in BASIC because there’s a lot of farting around setting up memory blocks, but basically you initialise a bunch of stuff then you “poll the Wimp”. When this happens, your task is shoved aside and others run. The Wimp will get back to you when something needs your attention – draw stuff in a window, or respond to button presses (it’ll hand you a window handle and an icon handle so all you need to do really is a bunch of CASE structures to sort out what needs done). It isn’t complicated, it’s just a bit fiddly. Things are better in C, the Event part of DeskLib means it is often a case of setting up “if something happens to this window, call this function”. What language would we be talking? BASIC? C? |
Rick Murray (539) 13806 posts |
Just for lulz, I wrote a simple multitasking BASIC program the hard way – https://www.heyrick.co.uk/blog/index.php?diary=20151226 The following day (‘next’ link at bottom of page), I do it with templates. You should use templates. Example in C using DeskLib? How’s your French? You’ll be wanting Frobnicate 31 https://riscos.fr/frob31/ |
David Boddie (1934) 222 posts |
I used Python with a custom GUI framework back in my full-time RISC OS using days. These days I would be tempted to use Lua, though I would want a high level toolkit for writing WIMP applications. I don’t know if one exists for RiscLua. |
Michael Drake (88) 336 posts |
I think I agree with this. As an example, the main thing I find jarring whenever I return to RISC OS is the lack of text selection, and cut and paste in writeable icons. However, the bounty that seems related to that is unclear and it has other stuff I’m not interested in. https://www.riscosopen.org/bounty/polls/25 I’d use Artworks, rather than Draw, so the first part doesn’t interest me. The second part doesn’t mention text selection. Only drag and drop, and cut and paste. So its unclear if it would behave in the awkward RISC OS way of copying/drag-saving all the text in the writeable icon, or properly supporting selected text, the way everything else behaves. |
Richard Walker (2090) 431 posts |
I find this thread interesting. The lack of traction in general is a shame, but I’m more guilty than most, having sent zero pounds to a bounty. I must also echo Michael’s comments: I have ‘come back’ to RISC OS a little bit recently, and the clipboard drives me crazy: the lack of support for selecting bits of text in the Wimp and many (most?) apps not doing what you’d expect these days with CTRL-C/V. Twenty years ago, I could cope, but now it’s been too long, and it’s just irritating. I’d rate getting the Wimp clipboard behaviour correct at 100, with updating Draw/Paint/etc. to suit at about score 10. Maybe the bounty should be split, so it’s just the Wimp work first? Would that entice anyone? (to develop, or donate!) I should probably put my money where my mouth is and donate to it right now. I think I will. |
Kees Grinwis (3528) 18 posts |
Based on these comments (which I partially agree with) I’m just wondering whether it is possible to split this bounty in 2 parts? (Although I fear that when this is done implementing the Draw parts may never happen – although I’m curious how the actual bounty amount is calculated…)
As far I know there is no way to do a donation without having an account, when there is one then I couldn’t find it :-) However where should the funds raised with such a periodical donation go? The ‘general bounty’ or should they be equally distributed over the open bounties? (Except the ‘general bounty’ of course). It would serve as a mini “Select Scheme” in that case. Just a thought. |
Tristan M. (2946) 1039 posts |
David, it’s sort of related but I saw the instructions and extra source for building Python using DDE in RISC OS in a freshly downloaded 2.something source archive from Python’s site. So maybe Python is still possible. Not for me though. I’ve only ventured as far as “Hello, World!” with it. Never needed it. I tried following A Beginner’s Guide to WIMP Programming recently. Struggled a little making sprites for icons (misread I think), and then got stopped dead when it came to trying the first application. My code looked like the listing. BASIC was unhelpful with “Mistake”. After some choice words I walked off.
Probably C and / or Lua. One I’ve been meaning to do for a while is a little utility to generate NTFS-3g UserMap entries. Really simple. Like a few lines of code. It’d just be useful to have in a nice window where I can enter the needed fields, press a button and have it spit out an entry I can paste into !Nettle I bought the “proper” DDE. Does that count for anything? |
David Boddie (1934) 222 posts |
Python 2.7 is available from the RISC OS ports site. I was writing applications in Python back in the 1.5.2 days, so there are plenty of things that could be removed from my old code. :-) |
Rick Murray (539) 13806 posts |
A simple typo can do that. It is useful to begin a program with: ON ERROR PRINT REPORT$ + " at " + STR$(ERL) : END That will indicate the line that went wrong for further investigation. [Would it be possible to make BASIC report the line number automatically? It would be a lot friendlier!] |
Steve Revill (20) 1361 posts |
> You forgot one very important point. Users. Hi Rick. I never forget the users, although the emphasis of my post was squarely talking about developers because this is a discussion on how the bounty scheme works, where users are the ultimate beneficiaries but developers are the people we’re attempting to motivate. To be absolutely clear on my views, the users are the whole point of RISC OS. Having a healthy community of users and developers leads to a healthy virtuous circle. We need to deliver the features that users want and need or RISC OS will increasingly find itself marginalised because it cannot do what people need it to. Of course, it’s already niche and pretty marginal so we should always be trying to improve the situation. However, the thrust of my original post was to draw attention to the fact that RISC OS is living in a fluid environment, where global standards and accepted norms continually change. We need on-going development, often not user-facing work, just to maintain the current features and functionality. So the work in our bounty scheme is attempting to strike a balance between both of these needs: the users and the fundamentals. Sadly, most of the fundamentals are non-trivial and do not lend themselves well to being sliced up piecemeal. And on the further clipboard support bounty, I agree it may be better to put the Wimp enhancements part first. I’m speaking personally and not as ROOL here (because I don’t know the definitive answer on this bounty) but I believe the reason why it includes the stuff about Draw in there is because it would provide a useful test bed and demonstration of the new features. If you added all of the clipboard support to the Wimp, you’d need to test it somehow so it’s probably better to benefit an existing application for that purpose rather than write a stand-alone and otherwise useless test harness. |
Michael Drake (88) 336 posts |
Surely once writeable icons support text selection and cut&paste, it will “just work” anywhere there are writeable icons. E.g. the Network section of Configure, or NetSurf’s URL bar. |
Steve Revill (20) 1361 posts |
Copy and paste is more complex and nuanced than perhaps you are considering. Ben thought long and hard about this topic and while it may be possible to roll-out subsets of it, I think the general intent was once a developer has got their head around the codebase and their teeth into the problem, it’d be easier to do the lot than stop-start and double/triple the time/effort. |
Steve Drain (222) 1620 posts |
Use Reporter and Use |
Steve Pampling (1551) 8155 posts |
An interesting idea that requires the user to install an additional app/utility whereas the suggestion from Rick was: ON ERROR PRINT REPORT$ + " at " + STR$(ERL) : END
which requires no additional installations and can therefore be used “out of the box” |
Martin Avison (27) 1491 posts |
I would agree that using Reporter just to find the line number of a Mistake is overkill. However, for any serious debugging, particularly of Wimp programs, Reporter is most useful to be able to easily display the values of any variables in real time. I know I would say that … but I also know many others find it useful. |
Tristan M. (2946) 1039 posts |
Ricn’s suggestion worked for me and there is now one less thing deterring me from using BASIC on RO, besides having barely touched any varietyy of it since maybe the mid ’90s. |
Steve Pampling (1551) 8155 posts |
Agreed. The simple version incorporated in BASIC itself is easier to implement though and suffices for most people. |
Martin Avison (27) 1491 posts |
I think Rick was suggesting that |
Steve Revill (20) 1361 posts |
Clearly it would break any program that relies upon the format of the default error handler. RISC OS and BBC BASIC have historically tried to avoid making breaking changes such as this to published interfaces. It’s the main reason why you’re still able to run a lot of stuff written in the 80’s for Beeb on a RISC OS 5-powered Titanium. My gut tells me not to meddle with the default error handler in BASIC, even if we do all agree it’s a bit sucky. |
Bryan Hogan (339) 589 posts |
IIRC the default BASIC error handler prints the full message with line number if the program is run on the command line but only the error if run from the desktop. |
Bryan Hogan (339) 589 posts |
Wow, how far off topic has this drifted!
Yes, it’s hidden under the General bounty :-( Steve, while we’ve got your attention – GIVE THIS ITS OWN BUTTON ON THE DONATE PAGE! Sorry for shouting, but I’ve been saying this for years, and it is clearly still a problem as this question comes up regularly. You need to make it as obvious as possible. If enough people gave a regular donation ROOL could employ a full time programmer! (assuming they can find one, seeing RO Dev’s probelms)
Also jarring when switching from a RO Select machine, which has had this for about 15 years :-( |
Martin Avison (27) 1491 posts |
I agree published APIs should not be changed if possible. But I have never understood the ‘format of the default error handler’ to be a published API. It does some stuff and creates a (variable) message. I have written some dubious code at times, but I have never considered, or depended on, the format of the error message. Many times I have cursed that a simple program needs an ON ERROR just to see where an error was! The current default handler does display ERL if QUIT is not TRUE – usually when a program is run from within the BASIC interpreter |