Date   

Re: Any serious interest in code with advanced techniques?

James McBride
 

That sounds like an interesting idea....I think. Are you saying that this will be sort of like drawing an ASCII box around certain text, or removes/changes that box?

Truthfully, any code that is well documented and that we can run it and see what it does to further the understanding of the code is a good thing.

This language isn’t like C++ or Javascript or Python where you can just go out to 1 of hundreds or thousands of websites to find example code with accompanying explanations of that code. There are very few places to find examples of Clipcode. I don’t guess that I would be able to understand and completely follow the code, as it sounds a lot more complex than where I am at right now with Clipcode, but it would certainly be welcome.

--Jim

-----Original Message-----
From: Clips@Notetab.groups.io <Clips@Notetab.groups.io> On Behalf Of joy8388608 via groups.io
Sent: Saturday, August 1, 2020 3:41 PM
To: Clips@Notetab.groups.io
Subject: [NTB-Clps] Any serious interest in code with advanced techniques?

I've put lots of thought into whether I wanted to invest the time and energy into making it available but would do it if there is serious interest. Since we were just talking about compound IF statements and how to learn new techniques, I thought this would be quite the challenge to look at but would be a real learning experience for the brave.

It's a clip that works on selected text and either draws a box around the selected lines, draws an open box, removes an existing box, or converts a previously drawn closed box to an open box.

(An open box does not have the rightmost side which would reduce file size by eliminating spaces to pad those lines.)

The concept is simple but the clip is not.

It can be run directly from the library or toolbar which will cause a wizard to ask for the function.
It can be run with a shift\alt\control key down to specify the function and bypass the wizard.
It can be called as a subroutine.

It will recognize and adapt itself from NTP vrs NTS\NTL which is important because there are some major differences. Some functions are available to some flavors of NT but not to others. The main issue here is the ability to convert tabs to spaces so the right side of the box lines up. There was a lot of thinking about what to do if any tabs are found, what version of NT is running, whether to ask the user what to do if running NTL\NTS and tabs cannot be converted or if the clip should automatically take an action. This is affected by if it is running standalone or called from a subroutine, etc.

In other words, there are a lot of possible conditions where I needed to make decisions like

If (NOT Tab Question Override) AND (NOT called as sub) AND (tabs exist in selection) AND (running NTP) THEN ask-user

which I can do in a single IF statement.

It uses two subroutines which I also use in other clips and works very well. It can even create\uncreate nested boxes.

I use this clip when making notes and also wrote another clip which draws a box around all lines which contain a specified string which calls this clip as a subroutine.

This program is a complete redesign and rewrite in Nov 2019 when I added functions and made it aware of tabs and which version of NT was running.

As discussed before, it does take a surprising and unexpected amount of time to get code ready for the public even if it is already fully documented and commented so please be honest about if you will really take the time to study the code. I'm happy to do it. It's my way of giving back for all the help I've received here over the years.

Joy


Re: Any serious interest in code with advanced techniques?

Axel Berger
 

"joy8388608 via groups.io" wrote:
please be honest about if you will really take the time to study the code.
For me that's easy, I won't. I love clips. I really love leaning back and
watch NT chugging along, (Screen update is never turned off, would diminish
all the fun) doing a lot of stuff most people I know would spend hours
doing manually. I love the power, but I see programming purely as a tool
and do as little of it and and that as simple and primitive as I can get
away with.

But many thanks for the offer. I'm sure to turn back to you the next time
I'm stumped.


--
/¯\ No | Dipl.-Ing. F. Axel Berger Tel: +49/ 221/ 7771 8067
\ / HTML | Roald-Amundsen-Straße 2a Fax: +49/ 221/ 7771 8069
 X in | D-50829 Köln-Ossendorf http://berger-odenthal.de
/ \ Mail | -- No unannounced, large, binary attachments, please! --


Any serious interest in code with advanced techniques?

joy8388608
 

I've put lots of thought into whether I wanted to invest the time and energy into making it available but would do it if there is serious interest. Since we were just talking about compound IF statements and how to learn new techniques, I thought this would be quite the challenge to look at but would be a real learning experience for the brave.

It's a clip that works on selected text and either draws a box around the selected lines, draws an open box, removes an existing box, or converts a previously drawn closed box to an open box.

(An open box does not have the rightmost side which would reduce file size by eliminating spaces to pad those lines.)

The concept is simple but the clip is not.

It can be run directly from the library or toolbar which will cause a wizard to ask for the function.
It can be run with a shift\alt\control key down to specify the function and bypass the wizard.
It can be called as a subroutine.

It will recognize and adapt itself from NTP vrs NTS\NTL which is important because there are some major differences. Some functions are available to some flavors of NT but not to others. The main issue here is the ability to convert tabs to spaces so the right side of the box lines up. There was a lot of thinking about what to do if any tabs are found, what version of NT is running, whether to ask the user what to do if running NTL\NTS and tabs cannot be converted or if the clip should automatically take an action. This is affected by if it is running standalone or called from a subroutine, etc.

In other words, there are a lot of possible conditions where I needed to make decisions like

If (NOT Tab Question Override) AND (NOT called as sub) AND (tabs exist in selection) AND (running NTP) THEN ask-user

which I can do in a single IF statement.

It uses two subroutines which I also use in other clips and works very well. It can even create\uncreate nested boxes.

I use this clip when making notes and also wrote another clip which draws a box around all lines which contain a specified string which calls this clip as a subroutine.

This program is a complete redesign and rewrite in Nov 2019 when I added functions and made it aware of tabs and which version of NT was running.

As discussed before, it does take a surprising and unexpected amount of time to get code ready for the public even if it is already fully documented and commented so please be honest about if you will really take the time to study the code. I'm happy to do it. It's my way of giving back for all the help I've received here over the years.

Joy


Re: My thoughts on multiple topics over the past few days

Axel Berger
 

"joy8388608 via groups.io" wrote:
I hope I don't sound (fill in any one of several words)
Helpful? Experienced? Absolutely right?

I am the one who used to (at the time when there still were handbooks)
unpack new gadgets only after having read and annotated the handbook in
full. After that I unpacked and assembled them, typed in all the settings I
had noted in the handbook in pencil and normally they worked first time.

When asked for help I'm known to demand the handbook first. "I don't know
where it is." "Find it! I'll not even look before I hold it in hand." (Yes,
I would look later, but don't pass that on, please.)

^!Prompt ^$StrReplace(",([^,]+)ZZZ";"\&$1";"^%axel%ZZZ";R)$
Hey, that's great! I'll try to remember it. I'm with Lotta in "one should
strive for readability above all. That is more important than compactness
and even speed." but that idea of yours is not hard to understand -- at
least not after having someone else think of it.

In other words, curly braces pop up as they are found in the code.
Square brackets are put together and shown all at once when the code
starts even if they are scattered throughout the code and not
at the beginning.
Yes, but: Only curly brackets evaluate functions and variables inside the
prompt. I frequently want to make my last entry the default for the next
time the input is asked for. Can't do that with square brackets. (And of
course you can't use square brackets in loops anyway.) On the plus side
they make code more legible:

^!GoTo ^?[]

is much easier than

^!Set %vaiable%=^?{}
...
^!GoTo ^%variable%

at least when they're far apart in a long clip.


--
/¯\ No | Dipl.-Ing. F. Axel Berger Tel: +49/ 221/ 7771 8067
\ / HTML | Roald-Amundsen-Straße 2a Fax: +49/ 221/ 7771 8069
 X in | D-50829 Köln-Ossendorf http://berger-odenthal.de
/ \ Mail | -- No unannounced, large, binary attachments, please! --


Re: My thoughts on multiple topics over the past few days

loro
 

Hi Joy,

Joy wrote:
Forgive me for lumping several topics together. I wouldn't have time
As a programmer who has had to learn
many languages over the years, I hope I don't sound (fill in any one of
several words) when I offer my advice which is to read the manual. Several
times if you can. It's certainly not the most detailed or clear at times,
but it does answer many questions I'm seeing, gives information and prevents
surprise bugs because it is such a flexible language and loose on the
syntax checking. And there are so many commands, I've often found some I
didn't know about because of the information overload.
True. I think the problem is that one don't always understand fully what the rather terse explanations mean (don't get me wrong, I actually like terse). Then, when one reads again later it's crystal clear - because one now have learnt more and that helps one's understanding tremendously. But it's easy to think it isn't needed to read that basic stuff again.


The manual does state
New since NoteTab 4.8: conditional commands now accept a command statement
instead of a label.

---

Although it seems to work without quotes (I haven't tested), the syntax
for IsAlpha requires quotes around the argument. Not using quotes may cause
it not to work correctly in certain cases.

---

The IF statement cannot use logical arguments such as AND and OR.although
there are ways I've written about several times to emulate this feature.
Ask if you are interested and cannot find it.
Duh. Point proved and taken. ;-o)


A regexp way to replace the last comma in a string.
Lotta's way is easier to debug and understand. This way is shorter and for
educational purposes because it was only recently I discovered regexp is
permitted in StrReplace. (I still don't think well in regexp so I'm sure
this can be improved upon)

^!Set %axel%=Goethe,Mann,Hesse
; ^!Set %pos%=^$StrPosRight(",";"^%axel%";false)$
; ^!Set %axel%=^$StrDelete("^%axel%";^%pos%;1)$
; ^!Set %axel%=^$StrInsert("&";"^%axel%";^%pos%)$
^!Prompt ^$StrReplace(",([^,]+)ZZZ";"\&$1";"^%axel%ZZZ";R)$
This I like. It's good to show different ways to accomplish what's asked for. Maybe even more so when a RexEx solution is given to someone who doesn't do RexEx. That person won't be able to make changes to the code himself. I've always liked when both options are given.

Lotta




--
Computer says no.


My thoughts on multiple topics over the past few days

joy8388608
 

Forgive me for lumping several topics together. I wouldn't have time otherwise.

I, too, was in the same NoteTab beginner boat so I know what it feels like. Clipcode is quite unique but very predictable and usually easy to read when written clearly with comments. As a programmer who has had to learn many languages over the years, I hope I don't sound (fill in any one of several words) when I offer my advice which is to read the manual. Several times if you can. It's certainly not the most detailed or clear at times, but it does answer many questions I'm seeing, gives information and prevents surprise bugs because it is such a flexible language and loose on the syntax checking. And there are so many commands, I've often found some I didn't know about because of the information overload.

It is also VERY helpful to go through as much code (from other people) as you can find to learn new things that you missed in the help files or that weren't mentioned. I've learned a huge amount by doing that and by following discussions like this one.

I don't see it done often but don't see anything wrong with someone posting some code that works but seems long, obtuse or overly complicated and asking if someone knows how to rewrite it better. I'm sure many of the replies would be very educational.

Also, it's fine to ask if someone already has a clip to do one thing or another for ready to use or for a template.

On the topics of the last few days...

The manual does state
New since NoteTab 4.8: conditional commands now accept a command statement instead of a label.

---

Although it seems to work without quotes (I haven't tested), the syntax for IsAlpha requires quotes around the argument. Not using quotes may cause it not to work correctly in certain cases.

---

The IF statement cannot use logical arguments such as AND and OR.although there are ways I've written about several times to emulate this feature. Ask if you are interested and cannot find it.

---

A regexp way to replace the last comma in a string.
Lotta's way is easier to debug and understand. This way is shorter and for educational purposes because it was only recently I discovered regexp is permitted in StrReplace. (I still don't think well in regexp so I'm sure this can be improved upon)

^!Set %axel%=Goethe,Mann,Hesse
; ^!Set %pos%=^$StrPosRight(",";"^%axel%";false)$
; ^!Set %axel%=^$StrDelete("^%axel%";^%pos%;1)$
; ^!Set %axel%=^$StrInsert("&";"^%axel%";^%pos%)$
^!Prompt ^$StrReplace(",([^,]+)ZZZ";"\&$1";"^%axel%ZZZ";R)$

---

Regarding Help with Message boxes

I think I understand the question and I think useful answers were given but I'm not sure so here are my thoughts...

To process part of a file and stop to have it examined and then to continue, some things need be done. The first is to remember the location in the file where processing should restart from either with a bookmark or remembering the line and column. (Be careful the user doesn't toggle the WordWrap as this may cause a problem).
The next thing is to possibly check a variable at the start of the code to know if you need to position the starting point and to possibly skip any processing that only has to be done once and, therefore, was already done if this is a restart.

---

Braces and Brackets in Wizard:

From the manual
When input fields are defined using the square bracket format, the Wizard is displayed before the first Clip instruction is executed/evaluated. The Wizard is built from all such fields encountered in the script. That is how and why you may see multiple input fields in a single Wizard as soon as you click on the Clip while others using curly braces may take a little while to pop up.

In other words, curly braces pop up as they are found in the code. Square brackets are put together and shown all at once when the code starts even if they are scattered throughout the code and not at the beginning.

Joy


Re: ClipClass WAS: 'IsNumber' and 'IsAlpha' functions syntax

loro
 

Axel Berger wrote:
What Lotta found is:

If <condition> <command to execute>

I'm very surprised that ever works and I'm certainly not ever going to
use
it. Why rely on flaky side effects, when it's so easy to do things the
right way?
I don't use it either. I still would like to know why it's sometimes OK and sometimes not.

I don't know much programming, but I once read a short book about programming in general. What I took with me is that one should strive for readability above all. That it's more important than compactness and even speed.

I think nested Clip functions are about the most hard to read code I've seen. Sure, I nest too. But sometimes it takes me longer to understand something that I wrote some time ago than it took me to write it in the first place - a lot longer. Especially for demos I think several lines with repeated ^!Set make it easier to follows than 10 nested functions on one row.

And I constantly slap myself for not always writing comments in clips for my own use. When I later want to change them a little it isn't always as easy if it could have been had I written comments and used self explanatory variable names...

Lotta

--
Computer says no.


Re: ClipClass WAS: 'IsNumber' and 'IsAlpha' functions syntax

Axel Berger
 

John Shotsky wrote:
If this condition is false Exit
If this condition is false Exit
Here is what needs to be done, because they were both true.
:Exit
Yes, that's the canonical way:
If <condition> <label1> [ELSE <label2>]

That way is documented and always works. END and others can be read as
pseudo-labels here, not commands in the usual sense. Without ^!If you'd use
them as "^!GoTo END" not as naked "END" (no idea if that would work at
all).

What Lotta found is:

If <condition> <command to execute>

I'm very surprised that ever works and I'm certainly not ever going to use
it. Why rely on flaky side effects, when it's so easy to do things the
right way?


--
/¯\ No | Dipl.-Ing. F. Axel Berger Tel: +49/ 221/ 7771 8067
\ / HTML | Roald-Amundsen-Straße 2a Fax: +49/ 221/ 7771 8069
 X in | D-50829 Köln-Ossendorf http://berger-odenthal.de
/ \ Mail | -- No unannounced, large, binary attachments, please! --


Re: ClipClass WAS: 'IsNumber' and 'IsAlpha' functions syntax

James McBride
 

Thank you, John! That structure seemed to work for me......seems so obvious to do that, but for some reason, to me, it wasn’t ☹

-----Original Message-----
From: Clips@Notetab.groups.io <Clips@Notetab.groups.io> On Behalf Of John Shotsky
Sent: Friday, July 31, 2020 10:05 AM
To: Clips@Notetab.groups.io
Subject: Re: [NTB-Clps] ClipClass WAS: 'IsNumber' and 'IsAlpha' functions syntax

I do this 'conditional' fairly often
If this condition is false Exit
If this condition is false Exit
Here is what needs to be done, because they were both true.
:Exit
Regards,
John

-----Original Message-----
From: Clips@Notetab.groups.io <Clips@Notetab.groups.io> On Behalf Of loro
Sent: Friday, July 31, 2020 6:46 AM
To: Clips@Notetab.groups.io
Subject: Re: [NTB-Clps] ClipClass WAS: 'IsNumber' and 'IsAlpha' functions syntax

At 09:23 AM 2020-07-31 -0400, James McBride wrote:
Holy Schnikes, that is a 'lotta' emails (yeah, I just made that pun
up.....you can thank me later 😝 )
Maybe I should buy a domain like alottaemails.com to use for my email needs. :-)

Now that I know that the clip language handles 'if' statements in a
rather strange way, I know that they may require some special
debugging. I have a series of conditions that need to be met to set a
certain variable and it def doesn’t seem that it works right if I just do:

^!If <condition1> and <condition2> action
But sometimes it does!

^!If 2 = 2 ^!calc

I'm confused about this too. Originally it didn't enter my mind that a command could be placed on the same line as a conditional statement. Then I saw some clips that did exactly that. I still keep things on separate lines since that's what I'm used to, but it would be interesting to know what the rules are, when things can be shoved together on one line and when they can't. It seems pretty random to me, but I'm sure it isn't.

Lotta

--
Computer says no.


Re: ClipClass WAS: 'IsNumber' and 'IsAlpha' functions syntax

John Shotsky
 

I do this 'conditional' fairly often
If this condition is false Exit
If this condition is false Exit
Here is what needs to be done, because they were both true.
:Exit
Regards,
John

-----Original Message-----
From: Clips@Notetab.groups.io <Clips@Notetab.groups.io> On Behalf Of loro
Sent: Friday, July 31, 2020 6:46 AM
To: Clips@Notetab.groups.io
Subject: Re: [NTB-Clps] ClipClass WAS: 'IsNumber' and 'IsAlpha' functions syntax

At 09:23 AM 2020-07-31 -0400, James McBride wrote:
Holy Schnikes, that is a 'lotta' emails (yeah, I just made that pun
up.....you can thank me later 😝 )
Maybe I should buy a domain like alottaemails.com to use for my email needs. :-)

Now that I know that the clip language handles 'if' statements in a
rather strange way, I know that they may require some special
debugging. I have a series of conditions that need to be met to set a
certain variable and it def doesn’t seem that it works right if I just do:

^!If <condition1> and <condition2> action
But sometimes it does!

^!If 2 = 2 ^!calc

I'm confused about this too. Originally it didn't enter my mind that a command could be placed on the same line as a conditional statement. Then I saw some clips that did exactly that. I still keep things on separate lines since that's what I'm used to, but it would be interesting to know what the rules are, when things can be shoved together on one line and when they can't. It seems pretty random to me, but I'm sure it isn't.

Lotta

--
Computer says no.


Re: ClipClass WAS: 'IsNumber' and 'IsAlpha' functions syntax

loro
 

At 09:23 AM 2020-07-31 -0400, James McBride wrote:
Holy Schnikes, that is a 'lotta' emails (yeah, I just made that pun
up.....you can thank me later 😝 )
Maybe I should buy a domain like alottaemails.com to use for my email needs. :-)

Now that I know that the clip language handles 'if' statements in a rather
strange way, I know that they may require some special debugging. I have
a series of conditions that need to be met to set a certain variable and
it def doesn’t seem that it works right if I just do:

^!If <condition1> and <condition2> action
But sometimes it does!

^!If 2 = 2 ^!calc

I'm confused about this too. Originally it didn't enter my mind that a command could be placed on the same line as a conditional statement. Then I saw some clips that did exactly that. I still keep things on separate lines since that's what I'm used to, but it would be interesting to know what the rules are, when things can be shoved together on one line and when they can't. It seems pretty random to me, but I'm sure it isn't.

Lotta

--
Computer says no.


Re: ClipClass WAS: 'IsNumber' and 'IsAlpha' functions syntax

James McBride
 

Holy Schnikes, that is a 'lotta' emails (yeah, I just made that pun up.....you can thank me later 😝 )



Now that I know that the clip language handles 'if' statements in a rather strange way, I know that they may require some special debugging. I have a series of conditions that need to be met to set a certain variable and it def doesn’t seem that it works right if I just do:

^!If <condition1> and <condition2> action



This is what learning a new language is all about, finding its idisyncracies.

-----Original Message-----
From: Clips@Notetab.groups.io <Clips@Notetab.groups.io> On Behalf Of loro
Sent: Friday, July 31, 2020 9:06 AM
To: Clips@Notetab.groups.io
Subject: [NTB-Clps] ClipClass WAS: 'IsNumber' and 'IsAlpha' functions syntax



I wrote:

< <https://notetab.groups.io/g/Clips/files/ClipClass.zip>; https://notetab.groups.io/g/Clips/files/ClipClass.zip>;


I've skimmed through some of the emails. They are a little confusing, even to me who was there. But I think if you primarily focus on the assignments and the related posts it becomes clearer. Also, a few posts from the Clip list had sneaked in there. And note this is the basic stuff. You won't learn fancy here.



Lotta









--

Computer says no.


ClipClass WAS: 'IsNumber' and 'IsAlpha' functions syntax

loro
 

I wrote:
<https://notetab.groups.io/g/Clips/files/ClipClass.zip>;
I've skimmed through some of the emails. They are a little confusing, even to me who was there. But I think if you primarily focus on the assignments and the related posts it becomes clearer. Also, a few posts from the Clip list had sneaked in there. And note this is the basic stuff. You won't learn fancy here.

Lotta




--
Computer says no.


Re: Help with message boxes

Axel Berger
 

John Shotsky wrote:
The problem is that the user can't review the text in the interim.
Yes. That's waht I found in my test and that's why I gave the full example.
Open message boxes block everthing. So the answer is to end the clip
completely and restart it at just the right point. My code should do just
that.


--
/¯\ No | Dipl.-Ing. F. Axel Berger Tel: +49/ 221/ 7771 8067
\ / HTML | Roald-Amundsen-Straße 2a Fax: +49/ 221/ 7771 8069
 X in | D-50829 Köln-Ossendorf http://berger-odenthal.de
/ \ Mail | -- No unannounced, large, binary attachments, please! --


Re: 'IsNumber' and 'IsAlpha' functions syntax

Peter Hulm
 

Yes, please. A great idea to make NoteTab Great Again.

On 31 Jul 2020, at 03:23, loro <tabbie@gmx.com> wrote:

Hi James,

James McBride wrote:
Thank you! I am not a great programmer, by a longshot and it is taking me
a long time to get used to this syntax.
Most of us are or were where you're at. I still find clip code hard to read and untangle in comparison to many other languages. So many squiggly characters and and it all run together. The code can't hardly be structured at all to make it easier to follow. That doesn't help.

Came to think of something. Long ago some of us complained so much about that it was hard for non programmers to get a handle on clips (yes, I was one of the them, I confess!) that Jody started a Clip School. In form of a mailing list of course, called Clip Class, [CC] for short. It really helped us. For me it was godsent. Jody walked us through the basics, gave us assignments and told us what we could and could not use to get the job done. It worked, it was the way in I couldn't find for myself. This happened 20 years ago, in 2000 - jesus.

That list never got transferred. I think it was lost already when we moved from eGroups to Yahoo. I have all the emails saved. Would you or anyone else be interested in them? I think I can manage to get them out of the mailbox as separate, sortable text files so it would be fairly easy to follow threads. I have an old clip for it, just need to check if it needs any modifications. If there isn't too much to fix it's done in a blink. It wouldn't be the same, of course, since you can't interact. But you could do the assignments and if you get stuck you can ask here. We aren't Jody, but we can try our best.

Let me know if there's any interest for this.

Lotta



Re: 'IsNumber' and 'IsAlpha' functions syntax

loro
 

James McBride wrote:
I certainly WOULD be interested!
OK. Here it comes.

From what I can see, though, this is not some major company of
many people that wrote the NoteTab program and its accompanying script
language. It was probably just one or 2 people, and it is a very impressive
effort.
I think it was just one, Eric. How it is now I don't know.

Well, it was quickly done. I only needed to make some minor changes because of the odd things people put in their subject lines. ;-)

I uploaded a zip file to the Clip groups file repository. It contains the emails as individual text files, an OTL that I don't think Jody never finished or I just don't have the latest edition and a Clip library that Imust have come with the class.

The emails are named after the pattern year-month-day-time-subject.txt. Because all characters can't be used in file names the date and time format is a little unusual with dots everywhere, but the point is to make the files sortable and findable, so it is at is. For example the fist list post is named like so:
2000.04.26_03.56.19 _Subject- Welcome to ntb-clipclass

There were a lot of reserved characters in the subject lines that Windows don't allow in file names. That was what I needed to change. I tried to come up with good replacements but gave up. Here's what I replaced them with.

: -> -
? -> ¤
< -> [
-> ]
/ -> ¤
\ -> ¤

So it looks a little odd here and there. But that's only in the file names. When you open a file the unaltered subject line is there. Oh, if you get confused by that there are different time stamps in the file name and in the headers in the email, that's because it's GMT time in the file names but the sender's time in the date field in the headers. I don't remember if that's by design or if it just happened that way. Good it's GMT in the file names anyway so they sort in the right order. Different time zones would have messed that up.

There are 368 emails. The 10 or so I checked were fine so I assume all are. But if you find some that aren't, just holler.

<https://notetab.groups.io/g/Clips/files/ClipClass.zip>;

Lotta





--
Computer says no.


Re: 'IsNumber' and 'IsAlpha' functions syntax

James McBride
 

Hello Lotta,
I certainly WOULD be interested!
I have been puttering around with clip programming for a couple of years now, just very off and on....I get frustrated, then give up for a while only to come back later and give it another shot. I have been working on variations of the same project for quite some time now, and I am coming to a better understanding of the language, albeit very slowly.

The help file is fairly well written, but really does leave a lot to be desired. From what I can see, though, this is not some major company of many people that wrote the NoteTab program and its accompanying script language. It was probably just one or 2 people, and it is a very impressive effort.
Like I said in my original email, I have looked at Atom as another possibility for a programmable text editor, but it REALLY pales in comparison, even though the language used to write its scripts might be a little more comprehensible. It has so few features compared to NoteTab, so there really is no comparison. Some of my friends at work use Atom and seem to like it, but I just don’t see the point.

I am working on learning Clip Programming and also AutoHotKey, another language that looks very interesting and useful to me.

--Jim

-----Original Message-----
From: Clips@Notetab.groups.io <Clips@Notetab.groups.io> On Behalf Of loro
Sent: Thursday, July 30, 2020 9:24 PM
To: Clips@Notetab.groups.io
Subject: Re: [NTB-Clps] 'IsNumber' and 'IsAlpha' functions syntax

Hi James,

James McBride wrote:
Thank you! I am not a great programmer, by a longshot and it is taking
me a long time to get used to this syntax.
Most of us are or were where you're at. I still find clip code hard to read and untangle in comparison to many other languages. So many squiggly characters and and it all run together. The code can't hardly be structured at all to make it easier to follow. That doesn't help.

Came to think of something. Long ago some of us complained so much about that it was hard for non programmers to get a handle on clips (yes, I was one of the them, I confess!) that Jody started a Clip School. In form of a mailing list of course, called Clip Class, [CC] for short. It really helped us. For me it was godsent. Jody walked us through the basics, gave us assignments and told us what we could and could not use to get the job done. It worked, it was the way in I couldn't find for myself. This happened 20 years ago, in 2000 - jesus.

That list never got transferred. I think it was lost already when we moved from eGroups to Yahoo. I have all the emails saved. Would you or anyone else be interested in them? I think I can manage to get them out of the mailbox as separate, sortable text files so it would be fairly easy to follow threads. I have an old clip for it, just need to check if it needs any modifications. If there isn't too much to fix it's done in a blink. It wouldn't be the same, of course, since you can't interact. But you could do the assignments and if you get stuck you can ask here. We aren't Jody, but we can try our best.

Let me know if there's any interest for this.

Lotta


Re: 'IsNumber' and 'IsAlpha' functions syntax

loro
 

Hi James,

James McBride wrote:
Thank you! I am not a great programmer, by a longshot and it is taking me
a long time to get used to this syntax.
Most of us are or were where you're at. I still find clip code hard to read and untangle in comparison to many other languages. So many squiggly characters and and it all run together. The code can't hardly be structured at all to make it easier to follow. That doesn't help.

Came to think of something. Long ago some of us complained so much about that it was hard for non programmers to get a handle on clips (yes, I was one of the them, I confess!) that Jody started a Clip School. In form of a mailing list of course, called Clip Class, [CC] for short. It really helped us. For me it was godsent. Jody walked us through the basics, gave us assignments and told us what we could and could not use to get the job done. It worked, it was the way in I couldn't find for myself. This happened 20 years ago, in 2000 - jesus.

That list never got transferred. I think it was lost already when we moved from eGroups to Yahoo. I have all the emails saved. Would you or anyone else be interested in them? I think I can manage to get them out of the mailbox as separate, sortable text files so it would be fairly easy to follow threads. I have an old clip for it, just need to check if it needs any modifications. If there isn't too much to fix it's done in a blink. It wouldn't be the same, of course, since you can't interact. But you could do the assignments and if you get stuck you can ask here. We aren't Jody, but we can try our best.

Let me know if there's any interest for this.

Lotta


Re: Help with message boxes

John Shotsky
 

The problem is that the user can't review the text in the interim. The Notetab
messages prevent access to the document to review it. It can be thousands of
lines of text that they scroll through. With shellwait, I start a different text
viewer that everyone has in Windows, and when they close it they get the
^!Continue and choose whether to stop or continue.

Regards,
John

-----Original Message-----
From: Clips@Notetab.groups.io <Clips@Notetab.groups.io> On Behalf Of Axel Berger
Sent: Thursday, July 30, 2020 2:33 PM
To: Clips@Notetab.groups.io
Subject: Re: [NTB-Clps] Help with message boxes

John Shotsky wrote:
I was really just looking for a way to do it without running a separate
program.

Help says: "Variables keep their value as long as the Clipbook is kept open."
You could have a label and ^!Set that label to a variable right at the break
point. With a ^!Continue you could ask whether to just go on or stop for
inspection.
Make the first command in the clip a jump to the variable.

When the clip is invoked it ought to start right at the very place it broke off
before.

---------------------------------------------
^!Goto ^%vLbl%
...
^Set %vLbl%="break-here
^!Continue Go on without inspection?
:break-here
---------------------------------------------

I fear this can't be very reliable and will result in unintended consequences
but it ought to work in principle.


--
/¯\ No | Dipl.-Ing. F. Axel Berger Tel: +49/ 221/ 7771 8067
\ / HTML | Roald-Amundsen-Straße 2a Fax: +49/ 221/ 7771 8069
 X in | D-50829 Köln-Ossendorf http://berger-odenthal.de
/ \ Mail | -- No unannounced, large, binary attachments, please! --


Re: Help with message boxes

John Shotsky
 

I was able to do this by using the shellwait command.
Regards,
John

-----Original Message-----
From: Clips@Notetab.groups.io <Clips@Notetab.groups.io> On Behalf Of John Shotsky
Sent: Thursday, July 30, 2020 11:18 AM
To: Clips@Notetab.groups.io
Subject: Re: [NTB-Clps] Help with message boxes

A bookmark will return the cursor to the bookmark in the subject text. What I want is to resume execution where it left off. (Code, not text) I may be able to do it another way - I already run additional programs by shelling out to them, which freezes NoteTab until control is given back. I was really just looking for a way to do it without running a separate program.
Regards,
John

-----Original Message-----
From: Clips@Notetab.groups.io <Clips@Notetab.groups.io> On Behalf Of John Shotsky
Sent: Thursday, July 30, 2020 4:17 AM
To: Clips@Notetab.groups.io
Subject: Re: [NTB-Clps] Help with message boxes

I've never used a bookmark, but I'll see if I can do something along those lines. More to learn.
Regards,
John

-----Original Message-----
From: Clips@Notetab.groups.io <Clips@Notetab.groups.io> On Behalf Of Ray Shapp
Sent: Wednesday, July 29, 2020 9:12 PM
To: Clips@notetab.groups.io
Subject: Re: [NTB-Clps] Help with message boxes

Hi John,

Please excuse me if this is too simpleminded. Why not set a "bookmark" at the point where the user stops to review his/her work. When they resume, your editor would search for the bookmark, remove it, and allow the user to continue from there.

Ray Shapp
---


On Wed, Jul 29, 2020 at 6:16 PM Axel Berger <Axel@berger-odenthal.de> wrote:

John Shotsky wrote:
Any ideas?
You could do the review in *another* editor and pause execution until
that is closed. Something along the the lines of:

^!ShellWait pdflatex ^$GetFileName(^%vFIL%)$ ^!Delay 5 ^!Shell
F:\Winutil\acrobat\Reader\AcroRd32.exe ^%vdst%

(Unmodified from a clip doing something entirely different, but shows
the principle. The pdflatex run can take quite some time. The delay is
to ensure all disk caches are flushed.)

That could also mean they 'tweaked'
something, and want that in the continuation.
This could prove to be difficult. It's safer to reload and start over.
But you know your own clips best, perhaps it can be done safely.


--
/¯\ No | Dipl.-Ing. F. Axel Berger Tel: +49/ 221/ 7771 8067
\ / HTML | Roald-Amundsen-Straße 2a Fax: +49/ 221/ 7771 8069
X in | D-50829 Köln-Ossendorf http://berger-odenthal.de
/ \ Mail | -- No unannounced, large, binary attachments, please! --



61 - 80 of 26187