Work In Progress

What is CalcBucket?

About

Let's say you have a brand-new TI-84+, fresh-out-of-box, and a new computer. Here's what you have to do to get games on it:

1. Find your games
2. Download the zip for your games
3. Extract the files
4. Download and install TI-Connect or TiLP
5. Transfer your games

Depending on the game, you might even need:

6. Download DoorsCS
7. Extract it
8. Transfer it

And that's being generous (I could've made that list longer). The number of times I've had to explain that whole process to the kind of person who thinks the Windows Logon sound is a bad thing (I actually know someone who thought it was a virus) is infuriating. Why is it so hard to get games on your calculator? Why has no one done any all-in-one program yet?

Well, it's been my goal since I found out about TI|BD and Cemetech. izder456 helps out occasionally.


Why use CalcBucket?

▪ It's easier!
▪ It looks pretty!
▪ Everything is built into one program, you don't even need to download your games anymore!

Source code will be available soon! Releases expected within the next month or so!



Progress

Program: [########____________] 40%
Managing files: [########__] 80%
TiLP Integration: [__________] 0%

UI: [#######___] 70%

Beta Release: [###########_________] 55%


Screenshots
Screenshot 1

Here's the logo
That sounds awesome, but what will this program actually do? Will it gather all the files hosted on Cemetech, TI-Planet, and ti-calc? Will it be able to send files to the calculator without TI-Connect (CE)? Will it be able to detect what programs are compatible with your calculator? How will it detect if Doors is required or the C libs?
TheLastMillennial wrote:
That sounds awesome, but what will this program actually do? Will it gather all the files hosted on Cemetech, TI-Planet, and ti-calc? Will it be able to send files to the calculator without TI-Connect (CE)? Will it be able to detect what programs are compatible with your calculator? How will it detect if Doors is required or the C libs?


Actually, that is something I hadn't considered. Basically I wanted something like the GameJolt Client but with the added step of transferring with TiLP. This means it will index, browse, download, and transfer all your programs for you.

I will definitely have to look into compatibility detection though.
So basically steam for TI-84 +.
Neat Smile . I look forward to seeing how the project will end up Smile
Alvajoy123 wrote:
So basically steam for TI-84 +.
Neat Smile .


Thanks!

Alvajoy123 wrote:
I look forward to seeing how the project will end up Smile


I am kinda looking forward to seeing the results too, and I'm the one making it!

Edit: I realized the responses were backwards. Not sure how that happened.
Do you plan to support ez80 calcs, or only the z80 models?
Nice work so far! Smile
beckadamtheinventor wrote:
Do you plan to support ez80 calcs, or only the z80 models?
Nice work so far! Smile


Anything that can run arbitrary code.
Nomkid wrote:
beckadamtheinventor wrote:
Do you plan to support ez80 calcs, or only the z80 models?
Nice work so far! Smile


Anything that can run arbitrary code.

hah Laughing

Cool project!
I never considered it particularly difficult, even for beginners... If 2013 womp could figure it out, it can't be that bad Evil or Very Mad
Its not like there's weird dependencies or drivers (with ti-connect) which could complicate the process. I guess less steps is better though Smile
Would be good to integrate a dependency manager because the whole point is to distance the user from the code... There's not that many dependencies that exist anyways, particularly for older models (Mallard, CrASH19.006, ZShell, Ion, Fargo-II, DoorsCS[E]...) Maybe the C libs for the CE and a handful of libs like TextLib CE.
When I saw 'CalcBucket', I assumed it was something like git for your calc, which might also be a little useful. Plug in your calc, launch CalcBucket, and have it back-up any changes to your programs.

Neat project; good luck!
Is this for Mac and Linux, or just Windows? I run Ubuntu, but I would love to try this out. Pulling dependencies should be pretty easy for the monochrome TI-84 Plus Models, maybe when you first connect your calculator it could ask if you have DCS 7, and if you don't, just auto-install it.
I bring you all some good news and some bad news. I'm sorry I haven't gotten to your questions yet, my dad has internet set to turn on at 5pm.
I'll start with the bad news so we can end on a high note.

The bad news: Sadly, izder456 has left the project for a while. He has been overwhelmed with college stuff lately. He might jump in to help from time to time though.
I will be working alone for the forseeable future, so there might be a delay on the expected 1 month beta release.
To make matters worse, I am going camping for a week and a half, so I won't have internet. I will be in a cabin though, and I will have power, so I am bringing my laptop with me. No, I don't have data. Yes, I would love it if you gave me money to pay for data. (kidding)




Now for the good news: UPDATES!!!

I'm currently working on the code to extract and transfer the programs over to the calculator. The goal for CalcBucket has always been to make everything into one program, and TiLP doesn't really support that right now. I am thinking of writing the source code into CalcBucket and cut out TiLP entirely. This will be a chore.
The issue is that TiLP doesn't have a standalone executable like 7-Zip does, and the program only allows for transferring programs to your calculator. I want CalcBucket to support setting the clock, backing up your calculator, and assisting with developing programs, too. TiLP's cli doesn't allow all that. Thus we get challenge #1.

Also, I want to throw the idea out there that maybe we could include a frontend for mycalcs so underexperienced users can register their calculators on that website to build a better database. Just a thought. Let me know what you think.



Next, we talk about challenge #2. I still need to add MacOS and Linux support. I hate how different Windows' filesystem is to UNIX-based. I prefer UNIX, but Windows is a lot easier to develop for in my experience. I am going to need to check the OS before every single filesystem update, because the location of the hidden .calcbucket folder changes between OSes.
There are two ways I think I could combat this.

A) I could fork the project into 'Windows' and 'UNIX' after the beta is done and v1.0.0 is released, and develop each seperately.
B) I could not do that, and have to check upon opening, and store the OS type to a variable. But that seems redundant, as I am still doing checks every time I access the filesystem.


Now for challenge #3. Compatibility is a question that has been brought up numerous times. Here are the options I have thought of:

A) Have it check the file extension and hex values to determine compatible calculators.
B) Tell people to include a 'calcbucket.ini' file with their programs to give details.
C) Have people include a header section in their programs that gives details.

Option A gives compatibility with ALL existing programs in the archives, but this will be a pain to build, especially since I don't really understand z80 ASM, and have no clue about ez80 ASM.
Option B is what I am strongly leaning towards, since it gives the most flexibility, and is the easiest to program.
Option C is dumb, since that means that extra header data is taking up space on your calculator. I kept it in though, because it means CalcBucket can recognize programs you already put on your calculator.

Expect me to choose option B.

Now to answer your questions:
mr womp womp wrote:
I never considered it particularly difficult, even for beginners...

It's not just because it's difficult, it's just about removing steps, and getting rid of the need for multiple programs. Also, you don't have tech-illiterate friends like I do. I wasn't lying about the one who thought the Windows logon was a virus.

Xeda112358 wrote:
When I saw 'CalcBucket', I assumed it was something like git for your calc.

This name was chosen because I originally planned it to be an archive with a built-in web app. I eventually decided to just make it a computer program, and kept the name.

TIny_Hacker wrote:
Is this for Mac and Linux, or just Windows?

Windows for now, and I haven't decided when I will start developing for MacOS and Linux. Version 1.0.0 will support all three for sure.

TIny_Hacker wrote:
Pulling dependencies should be pretty easy for the monochrome TI-84 Plus Models, maybe when you first connect your calculator it could ask if you have DCS 7, and if you don't, just auto-install it.

That won't even be necessary. It will just look for the programs on the calculator, so you won't even have to ask any questions.



Now to wrap things up, I have added a Goal List and Progress Counter to the main post above. It seems a lot more people are on board than I thought. I honestly wasn't expecting all this positive feedback. Thanks, guys!
I really like this idea - especially if you can pick up on the ratings for programs from respective archives and have popular downloads charts etc to help people.

Also could be a good platform to assist people with discovering new programs as well.

Great initiative Nomkid!
This would be really cool! Maybe you could also have cemetech TI-SAX integration?Idk, but I'd really like this program!

Also, maybe you could have integration with SourceCoder? I like to test on my hardware, and it's a real pain to download and then send it over with TI-Connect CE. Anyway, really looking forward to the beta release!
Quote:
Why is it so hard to get games on your calculator? Why has no one done any all-in-one program yet?

Maybe because it's very hard to achieve that, let alone in a portable way ? Wink
Packing up the drivers and install thereof (on Windows, other OS don't bother the user with that), the whole UI (with framework and theming support), the language localizations, and everything into an all-in-one program which would then have all of the drawbacks of embedding and static linking... good luck.

Quote:
The issue is that TiLP doesn't have a standalone executable like 7-Zip does

TILP will never have a standalone executable, because technically, it's the wrong thing to do. Even back in the very old days where there were two pieces of UI code, one for Windows and one for non-Windows, TILP wasn't a standalone executable. The libraries are separate from the main executable for a reason.

Quote:
and the program only allows for transferring programs to your calculator. I want CalcBucket to support setting the clock, backing up your calculator, and assisting with developing programs, too. TiLP's cli doesn't allow all that.

TILP's CLI sucks, that's a fact. There are other libti*-based projects with better CLI capabilities, though, e.g. titools, or nowadays, simply libticalcs' own test_ticalcs_2 semi-scriptable front-end.
The level you need to integrate with is the libraries' API, not the CLI of any of the library front-ends.

You're writing that you want to target non-technical users, and it's a laudable goal, which is shared by other people. But the thing is, the approach of requiring such users to install a program on their computers is fundamentally wrong, although it forces them to follow a procedure and level their computer skills slightly up, which is a very good thing.
In this day and age, if you really want to make life (slightly) easier for non-technical users, what you need to do is a web site which uses computer <-> calculator communication code based on WebUSB. Windows' driver annoyances will already prove enough of a roadblock for these users.

Rewriting most of the capabilities of libti* in JS/TS on top of WebUSB - while of course keeping pretty much the same layers in libti*, which have been designed for a reason and evolved over time to something reasonable which makes sense (if you remove any of the layers, at least one more or less significant use case suffers) - or refactoring libti* into an asynchronous API and replacing the Glib bits, are both major undertakings, though the former has already been (barely) started by other people.

And then, there's the matter of interacting with the community sites' file archives (downloads). It's already been done before. Despite the respective authors' hard work, AFAICT, none of these efforts saw any kind of even remotely widespread usage, sadly. I'm not sure how a new variant thereof, even made as a web site, would be immensely more popular.
One thing you might not have thought of yet is the overlap between different file archives. For example, Doors CS 7 can be found on Cemetech, as well as on TiCalc.
Well Debroux makes a good point. After careful consideration, I realized that I just don't have the knowledge or motivation to keep going. My goals would just make everything too complicated, with little to no payoff. Also, I am going through a particularly tough time in my life at the moment. I'd rather work on things a little easier.

Sorry to disappoint. I might come back to this, when life gets a little easier (like, when the pandemic is over, and my mental health improves). I promise I'm not abandoning it forever, though. And I promise to keep things updated when I go back to it.

As you may or may not know, I have ADHD, so my attention shifts a lot. I can't see myself working on a project to completion unless I can see a practical use for it. As Debroux pointed out, it's unlikely to get any widespread usage outside of this community.
Note that TI Connect for ChromeOS not only targets a small market (chromebooks), but only came out a few months ago. And yet it has over 30k downloads: https://chrome.google.com/webstore/detail/ti-connect-ce-app-for-chr/aokihcpccmdjjkebakdanncddpdnkfla?hl=en-US

So yes, it's definitely possible to make a web-based transfer app.
Would be nice if TI made their open-source too Razz

(PS: their ChromeOS version of the TI-84 Plus CE emulator, SmartView, has half a million users...
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 1 of 1
» All times are UTC - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement