LB Booster
Programming >> BASIC code examples >> Teleprompter
http://lbb.conforums.com/index.cgi?board=code&action=display&num=1476573503

Teleprompter
Post by Richard Russell on Oct 15th, 2016, 11:18pm

Somebody over at the LB Community Forum has asked about a teleprompter display. This is something I've done before, and it was easily translated to Liberty BASIC:

Code:
    ' Program to act as a simple Teleprompter, closely based on PROMPTER.BBC
    ' supplied as one of the example programs with 'BBC BASIC for 'Windows'.
    ' Richard Russell, 15th October 2016

    Text$ = "This is a demonstration of a simple teleprompter-like display in "; _
            "Liberty BASIC.  It is closely based on the program PROMPTER.BBC "; _
            "which is supplied as one of the example programs with 'BBC BASIC "; _
            "for Windows'."; chr$(13); chr$(10); _
            "The actual scrolling is carried out with the ScrollDC API function; "; _
            "the scrolling is not perfectly smooth because it is "; _
            "not synchronised with the display refresh rate."; chr$(13); chr$(10); _
            "The program would be improved by a means to pause the scrolling, or "; _
            "to control the scrolling speed to match the reader's pace."

    RowHeight = 80
    TotalWidth = DisplayWidth
    TotalHeight = DisplayHeight

    nomainwin
    open "Teleprompter" for graphics_fs as #w
    #w "trapclose [quit]"
    #w "horizscrollbar off"
    #w "vertscrollbar off"
    #w "font Arial 0 "; RowHeight
    #w "down; fill black; backcolor black; color white"
    hw = hwnd(#w)
    calldll #user32, "GetDC", hw as ulong, hdc as ulong
    timer 25, [scroll]
    wait
    end

[quit]
    close #w
    end

[scroll]
    calldll #user32, "ScrollDC", hdc as ulong, 0 as long, -1 as long, _
        0 as long, 0 as long, 0 as long, 0 as long, r as void

    if ScrollCount = 0 then
      ScrollCount = RowHeight
      row$ = ""
      do
        row$ = row$ + wrd$
        i = instr(Text$, " ")
        j = instr(Text$, chr$(13))
        if j <> 0 and j < i then i = j
        if i = 0 then i = len(Text$)
        wrd$ = left$(Text$, i)
        Text$ = mid$(Text$, i+1)
        temp$ = row$ + wrd$
        #w "stringwidth? temp$ width"
      loop until width > TotalWidth or Text$ = "" or right$(row$,1) = chr$(13)
      if Text$ = "" then row$ = temp$ : wrd$ = ""
      #w "place 0 "; TotalHeight - RowHeight
      #w "\"; trim$(row$) 
    end if

    ScrollCount = ScrollCount - 1
    wait 

Richard.

Re: Teleprompter
Post by Jack Kelly on Oct 19th, 2016, 12:34pm

I posted this code on the LB Forum a few days ago, along with text stating 'This solution was posted by Richard on our sister forum."

Today I found that my wording has been anonymously changed by someone to 'This was posted elsewhere."

I have deleted my membership in the LB Forum and deleted the bookmark to it on my browser.

I'm tired of all this nonsense. I've lost all interest and hope for a Liberty BASIC Community.
Re: Teleprompter
Post by Richard Russell on Oct 19th, 2016, 1:25pm

on Oct 19th, 2016, 12:34pm, Jack Kelly wrote:
Today I found that my wording has been anonymously changed by someone to "This was posted elsewhere."

Did you not receive a PM informing you of this edit? Common courtesy should mean that any modification of a message is accompanied by such a notification, explaining the reason. I would also expect a comment to have been added to the post itself noting that it had been edited by a moderator.

Quote:
I have deleted my membership in the LB Forum and deleted the bookmark to it on my browser.

In a way that's a shame, because it means there's one fewer voice of reason there. But I can understand your reaction; whilst that particular edit was fairly innocuous, continued membership may be impossible if you can't have confidence that your posts won't be changed to misrepresent your views.

Richard.

Re: Teleprompter
Post by AAW on Oct 19th, 2016, 3:23pm

on Oct 19th, 2016, 12:34pm, Jack Kelly wrote:
I posted this code on the LB Forum a few days ago, along with text stating 'This solution was posted by Richard on our sister forum."

Today I found that my wording has been anonymously changed by someone to 'This was posted elsewhere."

I have deleted my membership in the LB Forum and deleted the bookmark to it on my browser.

I'm tired of all this nonsense. I've lost all interest and hope for a Liberty BASIC Community.


The edit was done by a moderator who is very busy in personal life. This person informed the staff of the edit and asked if a PM should be sent. I responded that a PM should be sent, but the moderator has not logged in since then to do it.

It is a shame that Jack did not give the forum a chance. We will all miss him.

I do not care to visit this forum because of the language used to describe the Community Forum, Carl, Liberty BASIC itself, and the forum staff. Such terms as "stupid", "ridiculous" and "ego" are used.
Re: Teleprompter
Post by Brandon Parker on Oct 19th, 2016, 6:24pm

on Oct 19th, 2016, 12:34pm, Jack Kelly wrote:
I posted this code on the LB Forum a few days ago, along with text stating 'This solution was posted by Richard on our sister forum."

Today I found that my wording has been anonymously changed by someone to 'This was posted elsewhere."

I have deleted my membership in the LB Forum and deleted the bookmark to it on my browser.

I'm tired of all this nonsense. I've lost all interest and hope for a Liberty BASIC Community.


Jack,
It was I who modified your post and I apologize for not sending you a PM regarding the edit. The forum rules clearly state that moderators can modify post without warning. I modified your post as I felt that it was unfairly stating that LBB is in affiliated with Liberty BASIC by describing this LBB Conforum site as a "sister" forum. Liberty BASIC is not in any way affiliated with LBB other than the fact that LBB has blatantly copied the Liberty BASIC syntax, almost without fault, in order to draw Liberty BASIC members in. That's OK; as you can't really protect a syntax for a language. Is it morally and ethically OK; that is debatable and I will tell you any time that it does not sit very well with me.

Alyce is completely correct in her statement regarding my current intermittent activity on the Liberty BASIC Conforum site. I have a lot going on in my life at the moment and just simply forgot to send you a PM regarding the edit. I have bought a house, got married, moved over 500 miles, my wife started a new job, I started working from home, and my last remaining grand-parent past away all within the last 6 months; most everything within the last 1.5 months.

I myself have had posts edited when I first joined the forum for posting about items that were then "off limits". My reaction was quite different than yours however as I went straight to the rules and figured out where I had gone so horribly wrong. Your reaction was more like never driving a car again because a police officer gave you a ticket for speeding. In some people's opinion this is akin to "Burning a Bridge", but the Liberty BASIC community is not like that and we wish you would consider where we are coming from when posts are edited regarding LBB.

The community that was built around Liberty BASIC is a fantastic community full of highly skilled and intelligent people from around the world. The fact that this forum and LBB for that matter even exist is a testament to what a great and simple programming language Liberty BASIC has grown to be. LBB was created to siphon members from the Liberty BASIC pool since attempts to keep the language which LBB was built upon alive have failed over the years due to many reasons.

This feud and non-sense that has been going on for the past few years between LBB and the whole of the Liberty BASIC community has, at times, brought members to tears due to messages and intentions being completely misconstrued by certain individuals. I can certainly say that it has damaged both sides irreparably and neither will likely every fully recover from the wounds. I wish it would completely end or better yet would have never started. Programming communities, this one included, are supposed to be places where individuals can go and share code, tricks & tips, get help when needed, and share common experiences. Most of us don't hang around similarly minded people just to bash their work and ideas when we see things differently.

We, meaning the entire Liberty BASIC community, wish that you would reconsider your decision to leave the Liberty BASIC Conforum forum. I am sure that you can agree that we all make rash and hasty decisions at times that we regret at some later point. I just don't want you to make a decision about the whole of the Liberty BASIC community just because I have been busy with personal stuff.

Please accept my full apology for not sending you a PM immediately upon editing your post.

{:0)

Sincerely,
Brandon R. Parker

Re: Teleprompter
Post by Richard Russell on Oct 19th, 2016, 7:08pm

on Oct 19th, 2016, 6:24pm, Brandon Parker wrote:
LBB was created to siphon members from the Liberty BASIC pool since attempts to keep the language which LBB was built upon alive have failed over the years due to many reasons.

Please do not presume to state why "LBB was created" when you can't possibly know what the motivation was.

The suggestion that LBB "siphons members from the Liberty BASIC pool" does not make much sense when you consider how many people continue to program in Liberty BASIC only because of the existence of LBB! Without it, the limitations of LB4 would have forced them to switch to an entirely different language.

It also seems rather odd that you bemoan the "failure to keep Liberty BASIC alive" when LBB is contributing to doing exactly that.

Finally, and I have made this point before, you don't see users of the various implementations of BBC BASIC complaining about the existence of the others.

Richard.

Re: Teleprompter
Post by Rod on Oct 19th, 2016, 8:05pm

I use both languages, I am very much a beginner with LBB.

We keep dancing round the edges of the problem here. Liberty BASIC v4.5 is what it is, LBB is what it is. The forums support each in isolation.

This forum is not particularly interested in supporting LB problems, the LB forum is not interested in supporting LBB problems.

Why? well it gets confusing for the poster and there are folks who think copying the syntax and intellect is a bit off and some folks here think LBB is better that LB. Forums are delicate things and need to stay focused on the things they do best. The success of this forum is an example.

An uneasy truce where LB supports LB and LBB supports LBB seems to fail always because one side assumes that the other forum should mention and support the other.

Now no one here is pushing for LBB to mention LB. So one is the aggressor and the other feels under attack, no matter how nice and how honest the intentions of the posters.

This all started with Richard bombarding the LB forum with hints tips and mentions of LBB including private messaging individuals. I actually welcomed Richards involvement as he is massively skilled and brought a welcome freshness and perspective to the LB problems. However folks complained and Richard refused to participate if he was not allowed to mention LBB.

So that's where we are. I would suggest that if you use LBB stay here and forget about LB. If you are a LB user then the LB forum is the place for you.

There is a massive resource of code that is on LB that will run quite happily on LBB, feel free to browse and use, just don't post problems on LB, post them here.

The JB forum has been working well and focuses on JB why not try and have a period of hassle free forum activity by focusing on keeping LB to LB and LBB to LBB?

This post is directed at LBB users, I am not interested in having it torn apart by Richard, indeed I post because I have Richards interests at heart. I will not be reading any responses, I will be continuing to enjoy coding and responding to beginners questions and users bug hunts.
Re: Teleprompter
Post by Brandon Parker on Oct 19th, 2016, 8:12pm

I had originally responded to Richards post with lengthy dialog, but I refuse to dignify the squabble with a response.

Rod is correct; keep them separated and place nice in the sand box.

{:0)

Brandon


Re: Teleprompter
Post by Richard Russell on Oct 19th, 2016, 10:40pm

on Oct 19th, 2016, 8:05pm, Rod wrote:
This forum is not particularly interested in supporting LB problems

There's some irony in making that comment in a thread whose sole purpose was to help solve a problem asked at the LB forum, using LB code with no dependence on LBB (indeed, specifically adapted to eliminate such dependence), and posted here simply because I'm banned from posting it there!

Richard.

Re: Teleprompter
Post by Jack Kelly on Oct 20th, 2016, 8:22pm

I’m touched and overwhelmed by all your responses and support. I’ve waited a day or so to assimilate the situation and to allow all of us to calm down, especially me. I’d like now to address each of you personally and directly.

Richard, you are my guru on the mountaintop. I turn to you first with my questions and problems – hopefully not too many. You are always there for me and for anyone else who asks, but often with a tongue lashing for our critical comments about something LBB does or doesn’t do. Everyone has experienced your often spontaneous, defensive reactions, not just LB Forum moderators and administrators. But that is your personality and we all have personalities, to be sure. No one should question your motives. You saw how a good thing, the Liberty BASIC Programming Language, could be improved and better implemented, and you had the ability, time, and means to do something about it. No one who has used LBB could deny that it is a truly great compiler, worth defending, and worth wanting people to use or at least try. It is yet another major creation of your lifetime and the Liberty BASIC Community is the benefactor. I said it before and I’ll say it again, you are one of the greatest software engineers alive today.

Alyce, I don’t know how to properly tell you how much your efforts have meant to me and thousands of other Liberty BASIC programmers over the years. You have been tireless in your pursuit of excellence. And what’s more, I think you are a very nice person. Isn’t it incredible how charisma can shine through the Internet? How is that possible? But believe me, yours comes through as brilliant as the summer sun. You clearly want the best for all those involved with Liberty BASIC, and, like most community leaders, you continually give more than you get.

Brandon, thank you for your apology, and I accept it. Don’t worry, I won’t stop driving, Mr. Police Officer. I reacted hastily to both your censorship and the reasons why. If it’s within the rules that moderators or administrators can anonymously modify member’s posts, then I respectfully request that the rules be changed. We are all mature adults – well adults, anyway. Of course we’ll react badly to anonymous censorship. We live in a society that respects democracy, freedom, and, yes, liberty. Anonymous censorship is a symbol of repressive dictatorships, offensive to our norms, like everything else they represent. A few weeks ago I posted a program on the LB Forum which contained an LBB specific assign statement. It caused a syntax error under LB4.5, which confused a member. Alyce asked me to remove the program and told me the reason why. I promptly and willingly did it. That seems like a reasonable first step when someone has posted something objectionable – ask the person to change or remove it, and explain the reason. That shouldn’t take much more time than censoring, and is much more constructive. If problems persists with an individual, then other solutions need to be discussed. No… please… not chemical castration! But banning should never be an option. That’s like the death penalty. It’s too easy to kill an innocent person.

Your reasons for censoring summarize the ongoing conflict, as I suspected. It’s a sad saga based on opinions, misunderstandings, and personalities. The reality is that there are three forums, each tied to a programming product – JB, LB, and LBB. But they have one most important commonality – a programming language – Liberty BASIC. The reality is that Liberty BASIC is a programming language, just like COBOL, C, Java, Python, and hundreds of others. Someone invented those languages and someone had to let them go at some point. A language is public domain whether one likes it or not, or agrees with the law or not. When I think of the Liberty BASIC Community I think of all of us who enjoy programming in that language. I understand that the LB Forum administrators’ concept of The Community is customers who have purchased the LB4.x programming product. But couldn’t it be more? We are all Liberty BASIC programmers. I must admit that my dream of a common community is probably utopian and unrealistic, but can’t we try?

It’s an economic fact – competition stimulates and expands the market for a product. It doesn’t automatically put someone out of business. LB4.x has thousands of loyal customers. Richard has no customers because he isn’t selling anything. If an LB user tries LBB it is unlikely that he or she will desert LB. That hasn’t proven to be the case so far. I would venture to say that Richard would be more of a threat to Carl’s livelihood if he charged money for LBB. When a person gets something for free they subconsciously think it has no value. If they pay for it they usually remain a loyal customer.

And, finally, Rod. I said it before and I’ll say it again – you are a prince among moderators. Your patience and persistence with member’s problems is a joy to watch. Thank you for your eloquent and candid response. I, too, think it was right on the mark. Perhaps we should all play in our own sandbox and mind our own business. That’s a simple and easy solution. But… when I learn something new I want to stand on the highest hill and shout for everyone to hear, “Wow. Look at this great new feature I just discovered! See what I can do with it!” Forums should be places where ideas bloom and creativity flourishes. If tempers bloom from time to time it’s due to frustration, not maliciousness.

I’d like to come back to the LB Community Forum, if I’m still welcome. I too will try to give more than I get. I’ll say what my four year old granddaughter said as she was standing in the pool shivering and turning blue. “Do you want to come out, Penelope?” “N-n-no. I’m h-having too much fun.”

Re: Teleprompter
Post by Mystic on Oct 20th, 2016, 8:40pm

Well said Jack!

Thanks to all, both LB and LBB folks. For your support, knowledge and products!

I hate seeing the divide between the two camps, but understand the issues and we're not all the same.

Long live LB and LBB!

Carl and Richard will both always have my support!
Re: Teleprompter
Post by joker on Oct 21st, 2016, 01:36am

It used to be when someone in programming made you mad, you jumped into creating a masterpiece to put 'em in their place.

Now we just all have to have a good cry and sing "Kumbaya"? Makin' me sick.

Good grief! Just program and quit whining.
Re: Teleprompter
Post by Richard Russell on Oct 30th, 2016, 11:07am

on Oct 19th, 2016, 6:24pm, Brandon Parker wrote:
Is it morally and ethically OK; that is debatable and I will tell you any time that it does not sit very well with me.

For reference here, from 2½ years ago, is my rebuttal to that.

Richard.