CalcPad

Submit portable freeware that you find here. It helps if you include information like description, extraction instruction, Unicode support, whether it writes to the registry, and so on.
Message
Author
User avatar
vevy
Posts: 795
Joined: Tue Sep 10, 2019 11:17 am

Re: CalcPad

#16 Post by vevy »

iangm wrote: ↑Thu Mar 26, 2020 8:00 pm Auto-inserting "ans" at the beginning of a line with "+", "-", "*", or "/" is pretty straightforward. But if you start a line with sqrt(4) and auto insert "ans" it would produce "ans sqrt(4)". So if your previous answer was 10, it would evaluate the next line as "(10) sqrt(4)". This should multiply them via implicit multiplication, so it would evaluate as "10 * sqrt(4)". It seems like it would be better to only auto-insert "ans" for the basic binary operators, instead of all functions? So instead of starting a line with "sqrt" you would start with "+ sqrt", "- sqrt", "/ sqrt", or "* sqrt".
Thanks for the explanation. I suggested auto-inserting "ans" so that the user is aware of the calculation syntax. I was thinking of:
  • Press enter with an operator or function only:

Code: Select all

2+7			9
sqrt			3		if you stop after sqrt or if you press enter, it shows 3.
  • If you auto-insert ans it would be (pipe represents cursor):

Code: Select all

s|			...
sq|			...
sqr|			...
sqrt|(ans)		3		ans is autoinserted and highlighted (or shown in lighter font) and result is shown like above.


If the user continues, it is replaced/ignored:

sqrt4|			2
vevy wrote: ↑Thu Mar 26, 2020 6:54 pm
I've thought about it more, and I have an idea....
This seems interesting, but I think you will have top be on top of things or you will have a lot of tabs and it will be confusing (I know I will confuse myself :)).
There are two main reasons I can think of for having some sort of history:
1. Checking the result of some calculation.
2. Copying the calculation to modify it into a new one.

Neither of these necessarily requires multiple pages. Maybe you can have a history page, where (if the user toggles a setting) every time you clear the screen, the current page is appended to the history page. If you want to access some old calculation, you open this (read-only?) history page and see/copy the needed line(s) to the main window.

I currently save the session, but if there is something like this, I don't think I will save the session any more since I know that history is just a click away.

The pages idea you suggest seems like a neat idea though, if you have multiple threads of calculations that you don't want to confuse.

This is actually how my online version of this periodic table works. Honestly, I don't know why I made this one different. I'll get that changed.
πŸ‘
iangm wrote: ↑Thu Mar 26, 2020 8:11 pm I have been wanting this for so long! But unfortunately, I don't know enough about UI/WPF to implement it. And the code I am using from someone else for syntax coloring doesn't support this feature. Occasionally I spend some time looking into finding a better textbox, but there isn't much out there that can do what I need. But you may see it in the future.
I'll look into it. I am not sure if it's possible to change it, but maybe. I did figure out a way to get tooltips to stay up longer, so people could actually read them, the code for it was really bizarre.
Here is hoping!


------------------

A couple more :P:

1. If you have many lines, the scrollbar takes too much space: it is full size and there is an empty space to the right. maybe it can be a slim line?
2. Going with the same theme of requiring less typing: there can be a "default conversion target so to speak. For example:

Code: Select all

3 ft			0.9143999 m			shown until the user continues typing
4 miles			6.437375 km			note it is in km since this is the most natural/common equivalent.
Maybe the user can override/add their own pairs.

3. Things like "3 ft > 1 m" should give a true/false answer.

4. Ctrl+C copy shortcut doesn't work for me. It always clears the page.

5. A copy button next to every answer for quick copying the result.

Thanks!

iangm
Posts: 14
Joined: Tue Mar 10, 2020 6:14 pm

Re: CalcPad

#17 Post by iangm »

vevy wrote: ↑Thu Mar 26, 2020 9:15 pm Thanks for the explanation. I suggested auto-inserting "ans" so that the user is aware of the calculation syntax. I was thinking of:
  • Press enter with an operator or function only:

Code: Select all

2+7			9
sqrt			3		if you stop after sqrt or if you press enter, it shows 3.
  • If you auto-insert ans it would be (pipe represents cursor):

Code: Select all

s|			...
sq|			...
sqr|			...
sqrt|(ans)		3		ans is autoinserted and highlighted (or shown in lighter font) and result is shown like above.


If the user continues, it is replaced/ignored:

sqrt4|			2
I see, yes that would be very difficult to code I think. Unless I think of something, I'll stick to having an option just for the negative sign.
vevy wrote: ↑Thu Mar 26, 2020 9:15 pm This seems interesting, but I think you will have top be on top of things or you will have a lot of tabs and it will be confusing (I know I will confuse myself :)).
There are two main reasons I can think of for having some sort of history:
You may have missed it since I added the screenshot a bit later, but this implementation wouldn't use tabs. It would look like the screenshot. Tabs would definitely turn into clutter if you're working with more than 8 saved pages.
Image

Here is hoping!
I tried to make the splash screen optional, but it requires I load the settings immediately, which causes them not to load properly. However, I found you can run the splash screen using code instead of setting an image to be a splash screen. So now it opens right before initialization and closes at the end of it before the window is finished loading. I close it with a 0 delay. I tried something small like 20ms and 10ms, but it doesn't appear to work with values that small, so I just set it to 0.
vevy wrote: ↑Thu Mar 26, 2020 9:15 pm 1. If you have many lines, the scrollbar takes too much space: it is full size and there is an empty space to the right. maybe it can be a slim line?
There seems to be a way. It looks really complicated for such a simple thing, but I'll keep it on my todo list. I personally try to avoid it completely and enlongate CalcPad.

vevy wrote: ↑Thu Mar 26, 2020 9:15 pm 2. Going with the same theme of requiring less typing: there can be a "default conversion target so to speak. For example:

Code: Select all

3 ft			0.9143999 m			shown until the user continues typing
4 miles			6.437375 km			note it is in km since this is the most natural/common equivalent.
Maybe the user can override/add their own pairs.
That may come around as an option. At some point, I do want to be able to change default units, right now all the constants are set to SI/metric.
vevy wrote: ↑Thu Mar 26, 2020 9:15 pm 3. Things like "3 ft > 1 m" should give a true/false answer.
It should. I am not sure why it doesn't. I'll look into it. I want all the basic functions to work with units. Out of all the features, units are what I've put the most work into.
vevy wrote: ↑Thu Mar 26, 2020 9:15 pm 4. Ctrl+C copy shortcut doesn't work for me. It always clears the page.
That has been fixed for the next version, I had to change some shortcuts. I didn't realize it made it out to the download, I've been so busy changing things it's hard to keep track.
vevy wrote: ↑Thu Mar 26, 2020 9:15 pm 5. A copy button next to every answer for quick copying the result.
That would be nice, I'd have to think of exactly how I would want to implement it. Ideally, you'd just click on the answer and it would go into your clipboard. That way I don't have to clutter the UI.

I appreciate your interest and ideas, some may be a long time coming, I am shifting focus to another project. I didn't work on this for about a year and have done 4 releases this month so far, hopefully, I'll make that 5. It definitely needed it.

****EDIT****

Version 1.14 (BETA/PREVIEW) is up. Let me know what you think about the pages implementation.

User avatar
vevy
Posts: 795
Joined: Tue Sep 10, 2019 11:17 am

Re: CalcPad

#18 Post by vevy »

iangm wrote: ↑Thu Mar 26, 2020 11:25 pm I see, yes that would be very difficult to code I think...
Even the first option?
You may have missed it since I added the screenshot a bit later, but this implementation wouldn't use tabs. It would look like the screenshot. Tabs would definitely turn into clutter if you're working with more than 8 saved pages.
Image
I saw it (and tried it)! It is neat for organization, but I have to be honest and say that I think it is a bit of an overkill for the purpose of history. By all means keep it! It is useful and I like it. It is just difficult to use as history for me. :)
splash screen
It works fine now. Thank you!
There seems to be a way. It looks really complicated for such a simple thing, but I'll keep it on my todo list. I personally try to avoid it completely and enlongate CalcPad.
Is there a way to automatically elongate it? It would be great if there is an option to let it expand downwards as you add more line until you reach some limit (user-settable px length or the edge of the system taskbar or something) before the scrollbar starts to appear.
It should. I am not sure why it doesn't. I'll look into it. I want all the basic functions to work with units. Out of all the features, units are what I've put the most work into.
I can tell! I read the doc index and I was impressed. For what it's worth, it is quickly becoming my default calculator!
That has been fixed for the next version, I had to change some shortcuts. I didn't realize it made it out to the download, I've been so busy changing things it's hard to keep track.
Can confirm.

That may come around as an option. At some point, I do want to be able to change default units, right now all the constants are set to SI/metric.
That would be nice, I'd have to think of exactly how I would want to implement it. Ideally, you'd just click on the answer and it would go into your clipboard. That way I don't have to clutter the UI.
Great!
I appreciate your interest and ideas, some may be a long time coming, I am shifting focus to another project. I didn't work on this for about a year and have done 4 releases this month so far, hopefully, I'll make that 5. It definitely needed it.
Thanks! And thank you for being very responsive. I hope CalcPad won't be shelved! Good luck with your new project.

----------------------

There seems to be a bug in 1.14 beta with pages:
  • Click the green plus.
  • Click File>Internal reset. This triggers multiple problematic behaviors. Try any of these:
  • Try to do a calculation. It is in gray with no result.
  • Go to the page 1. Go to page 2. The app crashes.
  • Click the green sign again. The new (third) page is also labeled "2".
What does internal reset do anyway?

iangm
Posts: 14
Joined: Tue Mar 10, 2020 6:14 pm

Re: CalcPad

#19 Post by iangm »

The official version 1.14 is up.

I thought putting "ans" in front of "-" would be easy. But I am having trouble. I can get it to work without using "ans" easily. But right now, for some reason, I am having trouble capturing the "-" key. There is one way I can capture it so far, but Microsoft's code breaks and doesn't let me see why.

Englogating CalcPad as you type breaks autosize for width. I'll have to see if I can get both to work.

I haven't looked into click on answers to copy them into the clipboard yet.

I needed to get this version up though, to fix the custom function bug and issues with the preview release.

User avatar
vevy
Posts: 795
Joined: Tue Sep 10, 2019 11:17 am

Re: CalcPad

#20 Post by vevy »

iangm wrote: ↑Sat Mar 28, 2020 6:33 pm The official version 1.14 is up.
There seems to be a snag. :? The changelog says that the periodic table behavior changed but the actual version downloaded has the old behavior. Also, the version number inside Calcpad still says 1.14 beta (with date as 2020.03.??).
I thought putting "ans" in front of "-" would be easy. But I am having trouble. I can get it to work without using "ans" easily. But right now, for some reason, I am having trouble capturing the "-" key. There is one way I can capture it so far, but Microsoft's code breaks and doesn't let me see why.
There is a workaround. If the user is going to check the option for using "-" to subtract from last result rather than for negation, it should require a leading white space to use it for negation. You can skip the auto-insert altogether. For example (note the spacing):

Code: Select all

2+3		5
-1		4				subtraction (no leading space)

Code: Select all

2+3		5
 -1		-1				negation (with leading space)
This behavior is used with, for example, clink. See here (in the table. Look for: "space_prefix_match_files").
Englogating CalcPad as you type breaks autosize for width. I'll have to see if I can get both to work.
Thanks! Meanwhile or if it is unworkable, how about allowing to set a length in pixels for the initial length (without linking it to the width as per the presets).

-------------

PS. https://tekagen.com/ says .Net 9.8 rather than 4.8

iangm
Posts: 14
Joined: Tue Mar 10, 2020 6:14 pm

Re: CalcPad

#21 Post by iangm »

Thanks for pointing those out. They should be fixed now. I also added two new behaviors.

  • You can double-click on answers to copy them to clipboard
  • There is a new option in math settings for inserting ans before "-"
By initial length, you mean an option for when CalcPad starts up, you want to be able to have it set to be longer than its default?

The new v1.14 is ready for download.

User avatar
vevy
Posts: 795
Joined: Tue Sep 10, 2019 11:17 am

Re: CalcPad

#22 Post by vevy »

iangm wrote: ↑Sun Mar 29, 2020 5:55 pm
  • You can double-click on answers to copy them to clipboard
  • There is a new option in math settings for inserting ans before "-"
Both working for me. Thanks!
What do you think of the leading space idea? I am glad you got autoinsert to work, though. Congrats!
By initial length, you mean an option for when CalcPad starts up, you want to be able to have it set to be longer than its default?
Yes.

-----------------

So, what remains (for me) so far (bugs and wishes; for the sake of organizing the discussion):
  • The internal reset bug remains (described at the end of post #18).
  • The leading space behavior (could be off by default to avoid confusion).
  • Apply any operator/function to the previous result until further typing (#16 First code box).
  • Limit backspace to the same line (as an option).
  • Autosave history (on clear?).
  • Scrollbar size.
  • Set initial length.
  • Autocomplete (sometime in the future).

Thanks a lot for your work and design. I really appreciate it and I think others do too. πŸ‘

iangm
Posts: 14
Joined: Tue Mar 10, 2020 6:14 pm

Re: CalcPad

#23 Post by iangm »

vevy wrote: ↑Sun Mar 29, 2020 10:38 pm Both working for me. Thanks!
Glad to hear!
vevy wrote: ↑Sun Mar 29, 2020 10:38 pm What do you think of the leading space idea? I am glad you got autoinsert to work, though. Congrats!
I think it's a great idea. But now that I have an option for inserting "ans" I think we're good on this. If I am able to, I try to avoid settings that change the background behavior when calculating math expressions.
vevy wrote: ↑Sun Mar 29, 2020 10:38 pm Yes.
Done.
vevy wrote: ↑Sun Mar 29, 2020 10:38 pm Scrollbar size.
I made it thinner. You can't even see the up/down arrow graphics anymore. Let me know what you think.
vevy wrote: ↑Sun Mar 29, 2020 10:38 pm The internal reset bug remains (described at the end of post
I went ahead and removed it. It doesn't need to be there. It was put in during the early days and basically restarted CalcPad without actually having to open and close it. It was mostly for me, for testing.
vevy wrote: ↑Sun Mar 29, 2020 10:38 pm Autosave history (on clear?).
You really want this. We have pages and sessions, but I see no reason to not add another way of ensuring your work isn't lost. Plus, I like the idea. So.... done!

There is a version 1.15 Preview available for download. Let me know what you think about the "Clear History" window found in the "File" menu.

Right now it has no upper limit to saves, it will add new entries indefinitely, which probably isn't good. But I am not sure how exactly to tackle that problem and I wanted to get this out to you so you can try it out and give me your thoughts on it.

I can put a max on the history according to:
  • Number of entries (e.g. 32 or 64)
  • Time (e.g. up to 3 months)
  • File Size (e.g. file size up to half a meg)

User avatar
vevy
Posts: 795
Joined: Tue Sep 10, 2019 11:17 am

Re: CalcPad

#24 Post by vevy »

iangm wrote: ↑Mon Mar 30, 2020 10:36 pm
I think it's a great idea. But now that I have an option for inserting "ans" I think we're good on this. If I am able to, I try to avoid settings that change the background behavior when calculating math expressions.
I understand. It actually works this way now! Although for some reason, the numbers are shown in grey (Enter: " -2 + 3", the numbers are in grey).
[initial length]
πŸ‘
I made it thinner. You can't even see the up/down arrow graphics anymore. Let me know what you think.
It looks much neater now!
You really want this. We have pages and sessions, but I see no reason to not add another way of ensuring your work isn't lost. Plus, I like the idea. So.... done!
Ahem... I do! I believe it is a very useful feature, so thanks!

Thoughts: I think it would be more useful if it is similar to the main window:
  • it also showed results.
  • session separation was in-page (like an autoinserted comment line with date/time) rather than in separate pages. This helps quick glancing.
  • it was easy to copy either the equation to the main window or copy the result to the clipboard.
  • maybe it should be read-only.
  • it was a different color/shade to avoid confusion. Maybe no menus.


It would also be great if there was a πŸ•“ button for history in the main window next to the pages buttons. A shortcut (Ctrl+H)?
Right now it has no upper limit to saves, it will add new entries indefinitely, which probably isn't good. But I am not sure how exactly to tackle that problem and I wanted to get this out to you so you can try it out and give me your thoughts on it.

I can put a max on the history according to:
  • Number of entries (e.g. 32 or 64)
  • Time (e.g. up to 3 months)
  • File Size (e.g. file size up to half a meg)
I usually care about recent calculations, but other users might care about older history. Maybe after the limit you choose, you put the "expired" history to an archive file just for keeps.

For example: keep the last 31 days on hand in a history file, and on every new calendar month, save that month's history in a separate file that the user can access manually (or within the app: if the history window is going to look like the main window, you can navigate older history like pages. Instead of "1" and "2" it would be "2020-03", "2020-04", etc)
history.png
history.png (8.83 KiB) Viewed 13151 times
Side note: Since we are in a portable forum, I believe it is best to save any user-specific data (settings, currency updates, history, etc) in a separate folder under the main one, to make backups easier. :)

iangm
Posts: 14
Joined: Tue Mar 10, 2020 6:14 pm

Re: CalcPad

#25 Post by iangm »

I think what I"ll likely do is keep the clear function as-is for now. But add two more icons for saving things for later and bringing them up in a window more like the one you envision, which I like. This will give us two files. The clear icon will send things to a trash bin, that you can pull up later in case you deleted something you didn't want to delete. The other icon will be more for things you have consciously decided to quickly save for later inside of one big file. If we want syntax highlighting, I can use existing code, but it would have to be modified not to always evaluate the answer unless I want to calculate all of them again instead of saving those to file as well. If I want to save them with the file, I'll have to make many changes to the code, because I wrote the code to only work with regular CalcPad, with multiple pages (even when they weren't being utilized, it was still setup for that). Technically, I don't have to and not use the results, but I don't know exactly how much it can calculate without stuttering for a bit. And I can't use the graph as an example, because the graph is optimized to recalculate the exact same equation over and over again, with a changing variable.

Image

User avatar
vevy
Posts: 795
Joined: Tue Sep 10, 2019 11:17 am

Re: CalcPad

#26 Post by vevy »

iangm wrote: ↑Fri Apr 03, 2020 9:44 pm I think what I"ll likely do is keep the clear function as-is for now.
As opposed to "save on clear"?
The clear icon will send things to a trash bin, that you can pull up later in case you deleted something you didn't want to delete.
How will trash bin be accessed? Will it be cumulative (until cleared manually)? I prefer yes or else we will have access to the last cleared only.
If we want syntax highlighting, I can use existing code, but it would have to be modified not to always evaluate the answer unless I want to calculate all of them again instead of saving those to file as well. If I want to save them with the file, I'll have to make many changes to the code, because I wrote the code to only work with regular CalcPad, with multiple pages (even when they weren't being utilized, it was still setup for that). Technically, I don't have to and not use the results, but I don't know exactly how much it can calculate without stuttering for a bit. And I can't use the graph as an example, because the graph is optimized to recalculate the exact same equation over and over again, with a changing variable.
So, if I understand correctly, we have these options:
  • Small code change: highlighting + no answer > fast operation.
  • Small code change: highlighting + answer > slow operation?
  • Bigger code change: highlighting + (stored) answer > fast operation.
Did I get that right?

Maybe we can get the best case scenario from option 2 if you segmented showing the history read from the one big file. Like my previous history suggestion but the separation into months (or other factor) is only done (pagination) in the UI rather than at a file level. This way you can avoid storing the answers but only calculate the shown segment (page) only.

--------------------

Some more things for your consideration :D :
1. Option to allow one instance only and if called again e.g. by an external launcher, switch to the current window (I keep not noticing that I already have it open :oops: ).
2. Ctrl+W to close the current page. Ctrl+T to open a new page (like a browser).


Side request: Can you please not reuse the same version number if you made a minor modification. It makes keeping up difficult (both online and when comparing downloaded versions). Thanks!

User avatar
vevy
Posts: 795
Joined: Tue Sep 10, 2019 11:17 am

Re: CalcPad

#27 Post by vevy »

One more thing I found myself keep doing:
One starting Calcpad from a previous session, I start typing only to discover I am continuing in the last line!

Maybe an option to always jump to a new line on startup if the last line is not empty?

Thanks

iangm
Posts: 14
Joined: Tue Mar 10, 2020 6:14 pm

Re: CalcPad

#28 Post by iangm »

vevy wrote: ↑Sat Apr 04, 2020 3:46 am How will trash bin be accessed? Will it be cumulative (until cleared manually)? I prefer yes or else we will have access to the last cleared only.
From the file menu. It will only save up to so many clears and start deleting the old ones.
vevy wrote: ↑Sat Apr 04, 2020 3:46 am Did I get that right?
Correct.
vevy wrote: ↑Sat Apr 04, 2020 3:46 am Maybe we can get the best case scenario from option 2 if you segmented showing the history read from the one big file. Like my previous history suggestion but the separation into months (or other factor) is only done (pagination) in the UI rather than at a file level. This way you can avoid storing the answers but only calculate the shown segment (page) only.
This is what I was thinking, but going back up to 3 months, and then 3+ months for the last option. I will have to determine how many entries it will save before deleting them like the trash bin. At some point, if you really want to keep something, you'd have to use the save feature. It wouldn't go on forever, so it wouldn't be an alternative to saving files. At some point, I'll have to see how much it can handle. In the future, I may make it more in-depth (put more time into it), but not for the 1.15 release.
vevy wrote: ↑Sat Apr 04, 2020 3:46 am 1. Option to allow one instance only and if called again e.g. by an external launcher, switch to the current window (I keep not noticing that I already have it open :oops: ).
I am not sure how people do that, I'll look into it.
vevy wrote: ↑Sat Apr 04, 2020 3:46 am 2. Ctrl+W to close the current page. Ctrl+T to open a new page (like a browser).
I don't mind adding more shortcuts.
vevy wrote: ↑Sat Apr 04, 2020 3:46 am Side request: Can you please not reuse the same version number if you made a minor modification. It makes keeping up difficult (both online and when comparing downloaded versions). Thanks!
This version is referred to as a preview. So the next one will be Preview 2 or official.

For personal reasons I haven't really been able to work on this project, but hopefully I'll get a chance soon.

User avatar
vevy
Posts: 795
Joined: Tue Sep 10, 2019 11:17 am

Re: CalcPad

#29 Post by vevy »

iangm wrote: ↑Fri Apr 10, 2020 1:59 am This is what I was thinking, but going back up to 3 months, and then 3+ months for the last option. I will have to determine how many entries it will save before deleting them like the trash bin. At some point, if you really want to keep something, you'd have to use the save feature. It wouldn't go on forever, so it wouldn't be an alternative to saving files. At some point, I'll have to see how much it can handle. In the future, I may make it more in-depth (put more time into it), but not for the 1.15 release.
Thanks for replying. So here is what my use case might look like:
  • Save function: Any specific calculation/thread I want to keep.
  • Trash bin: When I am done with a calculation thread (over one or more app sessions). I will hit the clear button to clear AND temporarily save the thread just in case I want to return to it days or weeks later. If I suspect I will use it more often or longer, I will use the save function.
  • History: I'm not sure how this would work in my case since the trash bin functions as a history for me, especially with save on clear.
  • Pages: useful in keeping multiple real-time calculation threads at the same time separate and clean. Say, doing some quick calculations without disrupting the flow of school/work calculations.
For personal reasons I haven't really been able to work on this project, but hopefully I'll get a chance soon.
I am grateful for what you do. I hope things go smoothly for you. :)

iangm
Posts: 14
Joined: Tue Mar 10, 2020 6:14 pm

Re: CalcPad

#30 Post by iangm »

Unfortunately, I have some bad news. I decided to do a quick test just to see how fast it can evaluate history. It's far too slow. Even 30 small entries are slow to load. At 100 entries it takes around 30 seconds to load. Other than the first 10, I just used the following entry over and over again.

Code: Select all

// 2020-04-01
2+sqrt(4)
42+sin(8)
3.14159265*2
f(x)=x^2+1
f(3)
f(3) + f(4)
If you cleared, say only 4 times a day, that would be 124 entries in a month. If you cleared 10 times a day, that would be 310 entries a month. If on average, you have 6 lines per entry, that 1,860 lines to evaluate, plus the timestamps. When doing this, I also have to check every line to see if it's a timestamp or not.

It should be fast if I just want to load the file, but it simply cannot evaluate it fast enough. I could try to just parse it and not evaluate it, but I don't think that would be enough.

I could show 1 week at a time. But if someone is clearing 30 times a day, that's 210 entries and 1,260 lines at an average of 6 lines per entry.

Optimizations can be made. But I don't think it would be enough.

Post Reply