How should we implement large programs/apps?
Patch out the app signature check with a heavily obfuscated patcher
 91%  [ 11 ]
Use a series of migraine-inducing workarounds to run code from the archive
 8%  [ 1 ]
Total Votes : 12

I've been staring at this topic for the last few days and mulling what to say in response, because it's a delicate issue. As DrDnar's thinly-veiled reference implies, in my privileged position as one of if not the ambassador of the community to TI Education-USA, heard opinions from several individuals within TI about opinions on the various development efforts within the community. Different people have different personal opinions, as would be true of all individuals, but of course people's opinions carry different weight. However, long before I had the chance to try to fight to get the community more acceptance within TI, and to get more support for our ongoing quest to use calculators as powerful programming tools, I would have been able to guess exactly what would probably happen with an effort like this. You don't need privileged information, clandestine meetings, a crystal ball, or a business relationship to look at what happened with Ndless and the TI-Nspire and extrapolate what could happen to the TI-84 Plus CE.

Right now, we have a great situation: we have a color-screen, ASM and C programmable calculator, with programs that can run quickly in RAM and be up to 64KB. We can store giant chunks of data in Archive, and make some pretty cool games. Porting C programs and games is becoming increasingly feasible with the available toolchain and libraries, which our AGPLv2 proponents (that's a joke, lest anyone have an itch to argue GPL vs. AGPL) can trumpet as open-source. Purely as a long-time hacker of TI's graphing calculators (ie, not a cracker), and separate from anything I've heard from individuals at TI, we have nothing to gain and everything to lose. From a technical standpoint, Flash-stored Apps would be slower. We already have at least one published shell and at least one nearly-completed shell capable of running Archived ASM and BASIC programs, so we can't make an argument about Apps surviving RAM clears. Most importantly, in order to patch support for unsigned Apps into the OS, the members of the community who do so are unequivocably saying "I am willing to modify TI's OS to get what I want." It starts with Apps, but there's a precipitous slope of (1) making the Exact Math engine on the TI-83 Premium CE run on the TI-84 Plus CE, and (2) patching out testing LED-related security features. I'm not ignorant: I know people have already privately succeeded in finding the exploits necessary to do so. I applaud their reverse-engineering skills and their knowledge of the hardware. And as long as they keep those impressive feats to themselves, no harm is done. However, once general knowledge of such exploits is out there, those who have those skills are crossing the line from "I am good at this, but I recognize the dangers of applying my skills to the general public's devices" to "I am willing to accept whatever fallout results from my actions as the price for getting what I want."

I personally feel we've matured past that stage. The TI-Nspire is now a very locked-down platform, with Ndless constantly blocked and updated, and sufficiently controversial that the primary French TI site both denies any involvement in it and has a dedicated section for. Even while I individually don't support the mindset that it embodies (we do what we must to get what we want), I agree that the lack of native (C) programmability is a fatal flaw of the TI-Nspire and something that I don't understand. But we already have full native programmability of the TI-84 Plus CE, so why do something that would endanger that? The weasel-word distinctions of "unofficial" vs. "official", "public" vs. "private", and so on all stinks to me of attempts to justify things that we know deep down are going to cause a backlash.

Finally, to address that last point, I will do what I can to get something official on this, although I'm sure my "enemies" (I use the word jokingly, for those humor- or subtlety-impaired individuals) think I have far more connection with and inside information from TI than I actually do. Above all, the tl;dr of my individual opinion is: be mature.

Edit: I'd like to lobby for a third option in that poll, "Do neither and keep making awesome programs and games with our existing tools and abilities.", to remove the false dichotomy that that poll and its heavily-biasing language forces on its voters.
KermMartian wrote:
You don't need privileged information, clandestine meetings, a crystal ball, or a business relationship to look at what happened with Ndless and the TI-Nspire and extrapolate what could happen to the TI-84 Plus CE.
Indeed, this is the premise of my own position. The outcomes I feel are worth considering are either that there is no response or a technical response targeting unintended functionality (to wit: exploits).

Quote:
we have nothing to gain and everything to lose.
I disagree with this characterization. We have some useful abilities to gain, and loss of "everything" (which I interpret as the ability to run native code on the device) would be a move without precedent, which is why I dismiss it as "extremely unlikely."

Quote:
It starts with Apps, but there's a precipitous slope of
This slippery slope you posit exists whether or not the ability to do these things is public. To date, there has been no indication that those with the ability to do these things wish to actually do so. Making such things available in binary or obfuscated (or otherwise "not clearly documented") form does lower the bar, but I don't think this is a major concern.
Some clarifications Kerm:

-There are actually two published TI-84 Plus CE shells: PHASM and Cesium. One is nearing completion (Doors CE) and there's a fourth, unnamed one currently under production.

-The second link you posted about TI-Planet's involvement with Ndless are actually tutorials on how to install Ndless 3.1, 3.6, 3.9, 3.9.1, 4.0 and 4.2 on your calculator. Just because they host Ndless installing tutorials doesn't mean they are the main authors of Ndless (which is open-source, so anyone can contribute and various contributors are not from TI-Planet)

-Regarding tools or tutorials solely dedicated to install a Premium CE OS on a TI-84 Plus CE, those tools would most likely be considered as "intended to facilitate cheating" by Omnimaga and CodeWalrus forum rules and maybe Lionel or Adriweb can confirm if that's the case on TI-Planet too. Cemetech and ticalc.org also have strong policies against cheating. In other words, there should be no danger of seeing such tool landing on the main community forums. The main danger would be Github, Reddit and other general purpose sites where those tools cannot easily be censored.

CodeWalrus rules wrote:
Discussing or sharing advice or files dedicated for cheating on tests and exams, as well as the sharing of malicious content, private information (including responding to private messages in public without the sender's permission), illegal (ROMs, warez, etc) and adult material is strictly prohibited. Such content or links to it will be removed from your posts.
Omnimaga rules wrote:
Discussions or tools intended to facilitate cheating, be it for classes, standardised tests, or any other situation in which academic dishonesty is possible.
Ticalc rules wrote:
Programs made exclusively for cheating (e.g. fake memory-clearing programs)
Quote:
and loss of "everything" (which I interpret as the ability to run native code on the device) would be a move without precedent

An OS update removing the ability to run native code originally provided by earlier OS versions would indeed be a move without precedent, one which would generate a lot of backlash. Several years ago, I spent a day of my free time writing some text (turned presentation) to try and explain this kind of things, through select notes on the history of computing, to TI's top-level management.
However, sadly, brand-new TI graphing calculator models derived from existing models which provide the ability to run native code, but are crippled not to provide such functionality, recently became a reality...

Quote:
The second link you posted about TI-Planet's involvement with Ndless are actually tutorials on how to install Ndless 3.1, 3.6, 3.9, 3.9.1, 4.0 and 4.2 on your calculator. Just because they host Ndless installing tutorials doesn't mean they are the main authors of Ndless (which is open-source, so anyone can contribute and various contributors are not from TI-Planet)

Exactly. Kerm has already disrespected both the actual Ndless authors (by not crediting the work to whom it belongs) and the TI-Planet staff (trying to smear the latter's reputation in the eyes of we know who by stating information which can be seen as false in a matter of minutes), multiple times. But that's off-topic.

Quote:
those tools would most likely be considered as "intended to facilitate cheating" by Omnimaga and CodeWalrus forum rules and maybe Lionel or Adriweb can confirm if that's the case on TI-Planet too

On TI-Planet as well, tools whose sole purpose is to tamper with the PTT on the Nspire are considered a no-no, and at least admins and gmods are supposed to enforce this.

For the TI-eZ80 series, two app signing keys (one for apps which should stay in PTT mode and one for apps which shouldn't), a web-based interface for signing requests, etc. were already suggested to TI.
The 64 KB limit for ASM programs is a large improvement over the TI-Z80 series, but there are several programs which cannot easily be modularized to fit in 64 KB. For those, especially, despite the fact that Flash execution is slower because of those many silly wait states (many of us hope that TI fixes this in the TI-84 More Plus CE / TI-83 More Premium CE), > 64 KB apps would make sense.
I'd like to reiterate that I think there may be a lawyer telling TI's employees not to speak with us. And, I think TI should consider whether this policy helps fulfill their mission of technology in education. It seems especially counter-productive in the modern Internet era.

TI EULA wrote:
You agree that you will not reverse-assemble or reverse-compile the software program portion of the Program.
Um . . . the lawyer that wrote this does not seem to understand technology. I'm guessing the same lawyer that wrote this is the one that is unwilling to consider the value that the community may add to TI's products in today's Internet era.

Also, good news! Although we're not allowed to disassemble the OS, nor decompile it, we are still allowed to reverse-engineer their software! We can use any other form of static analysis we see fit. For example, memorizing the eZ80 opcode table and directly reading the binary in a hex editor is perfectly legal reverse-engineering.

. . . That is possibly not what their lawyer intended. But it's what s/he wrote. And, should a court become involved, the EULA will be judged for what it says, not what the author intended. Again, TI's lawyer does not seem to understand technology and the Internet era very well.

Given that many of TI's own employees seem to be frustrated with being barred from being able to speak candidly with us, and that their counsel seems to have a poor understanding of technology, and that a policy of slience may be at odds with their mission, I think TI should consider hiring new counsel.

Tari wrote:
[His entire post]
I agree completely on everything.

KermMartian wrote:
I've been staring at this topic for the last few days and mulling what to say in response, because it's a delicate issue.
I'm glad you finally found time to post in this topic!

KermMartian wrote:
As DrDnar's thinly-veiled reference implies
There were also the Detached Solutions folks, and there are also the TI-Planet folks. It's not directed just at you. I would have mentioned you by name if it were.

KermMartian wrote:
You don't need privileged information, clandestine meetings, a crystal ball, or a business relationship to look at what happened with Ndless and the TI-Nspire and extrapolate what could happen to the TI-84 Plus CE.
KermMartian wrote:
The TI-Nspire is now a very locked-down platform
It was intended to be a locked-down platform from the start. Ndless is a bug, and they've published a series of bugfixes.

KermMartian wrote:
The weasel-word distinctions of "unofficial" vs. "official", "public" vs. "private", and so on all stinks to me of attempts to justify things that we know deep down are going to cause a backlash.
When I asked Margot Mankus about TI's reticence, er . . . she said she couldn't comment. But, when I asked if the possibility of programs that enable cheating was the reason for their reluctance to open up their platforms more, she said it was part of the reason. Part. There is something else going on that we are not aware of. I don't think she was trying to brush me off. I really think that they are under a gag order, one which she seemed to find annoying, because it meant that we could not have a candid discussion on how to address whatever issues might be at stake.

KermMartian wrote:
Most importantly, in order to patch support for unsigned Apps into the OS, the members of the community who do so are unequivocably saying "I am willing to modify TI's OS to get what I want."
Wait . . . when did zStart become programma non grata? Have you also been told that patches for the decades-unfixed ERR:BAD ADDRESS bug are as bad as a patch to kill testing mode?

KermMartian wrote:
It starts with Apps, but there's a precipitous slope of (1) making the Exact Math engine on the TI-83 Premium CE run on the TI-84 Plus CE, and (2) patching out testing LED-related security features.
I find this slippery slope argument to be a red herring. Coming from TI, it would not only be a red herring, but likely a post-hoc justification [see above]. I can trust myself not release such a patch, and sufficiently obfuscated, I can trust that nobody will adapt the patcher to do anything else. Also, I've not seen a lot of people asking about the exact math engine of the TI-83 Premium CE. I suspect that will continue to be the case as long as France still speaks French.

KermMartian wrote:
I'm not ignorant: I know people have already privately succeeded in finding the exploits necessary to do so.
Even if nobody in the community ever releases anything that bypasses the hardware protections, TI shouldn't be under the illusion that somebody outside the community won't. If you're going to make the slippery slope argument that releasing one patch might lead to other objectionable patches, then I'm going to make the argument that if it's possible to make a patch that enables cheating, then necessarily eventually somebody will, no matter what we in the community do. The onus is on TI to address that, not us.

KermMartian wrote:
I personally feel we've matured past that stage.
I'd also like to think that TI feels we're mature enough to be worthy of allowing their employees to engage directly with the community. However, this does not appear to be the case.

KermMartian wrote:
Finally, to address that last point, I will do what I can to get something official on this
Indeed, everybody with contacts of any kind should do what they can to get the whole story on TI's reticence.

KermMartian wrote:
[You] think I have far more connection with and inside information from TI than I actually do.
Knowing the right people is half the battle here!

KermMartian wrote:
Above all, the tl;dr of my individual opinion is: be mature.
Posting a forum thread and planning for two weeks of discussion is pretty mature, right?

KermMartian wrote:
Edit: I'd like to lobby for a third option in that poll, "Do neither and keep making awesome programs and games with our existing tools and abilities.", to remove the false dichotomy that that poll and its heavily-biasing language forces on its voters.
I had the same thought a few hours after my initial post, but editing my initial post doesn't show me a UI for editing the poll :(

Lionel Debroux wrote:
However, sadly, brand-new TI graphing calculator models derived from existing models which provide the ability to run native code, but are crippled not to provide such functionality, recently became a reality...
Actually, that's not the case. The original TI-83 Plus also required apps to be signed, and TI did not provide the signing key for several years. The signing keys were intended to enforce a sort of copy protection on TI's pay-only applications, bought from their app store. Personally, I'd like to know why they continue to require signing keys on models released after the app store was closed. They're clearly not thinking of re-opening it, because the eZ80 OSes lack a critical feature needed for pay apps: they cannot accept certificate updates with new, per-calculator app signing keys. (Oddly, however, they can still accept certificate updates with new, per-calculator OS signing keys. Hooloovoo created a proof-of-concept program that lets the calculator accept 3rd-party-signed OSes, which is not publicly available. However, such OSes would not pass TestGuard validation.)

Lionel Debroux wrote:
On TI-Planet as well, tools whose sole purpose is to tamper with the PTT on the Nspire are considered a no-no, and at least admins and gmods are supposed to enforce this.
I'm happy to hear that, and apologize for my previous, unfair characterization of TI-Planet.

Lionel Debroux wrote:
For the TI-eZ80 series, two app signing keys (one for apps which should stay in PTT mode and one for apps which shouldn't), a web-based interface for signing requests, etc. were already suggested to TI.
As I've said before, I'm unclear on why signatures for apps are useful in the first place. We need to make finding out a priority.

Lionel Debroux wrote:
The 64 KB limit for ASM programs is a large improvement over the TI-Z80 series, but there are several programs which cannot easily be modularized to fit in 64 KB. For those, especially, despite the fact that Flash execution is slower because of those many silly wait states (many of us hope that TI fixes this in the TI-84 More Plus CE / TI-83 More Premium CE), > 64 KB apps would make sense.
If your program can still fit in RAM, your linker could easily split your program into 64 K subprograms, and your shell could combine them at runtime. This would actually be very easy to implement. However, it wouldn't work for fake apps running in the archive.
DrDnar wrote:
Lionel Debroux wrote:
However, sadly, brand-new TI graphing calculator models derived from existing models which provide the ability to run native code, but are crippled not to provide such functionality, recently became a reality...
Actually, that's not the case. The original TI-83 Plus also required apps to be signed, and TI did not provide the signing key for several years. The signing keys were intended to enforce a sort of copy protection on TI's pay-only applications, bought from their app store. Personally, I'd like to know why they continue to require signing keys on models released after the app store was closed. They're clearly not thinking of re-opening it, because the eZ80 OSes lack a critical feature needed for pay apps: they cannot accept certificate updates with new, per-calculator app signing keys. (Oddly, however, they can still accept certificate updates with new, per-calculator OS signing keys. Hooloovoo created a proof-of-concept program that lets the calculator accept 3rd-party-signed OSes, which is not publicly available. However, such OSes would not pass TestGuard validation.)

Here, Lionel was referring to the TI-82 Advanced and TI-84 Plus T, which are stripped from Asm related features as well as Apps (which are, IIRC, hardcoded into the OS, period, you can't add one for instance).
I, for one, will not be creating apps. I simply have no interest in it. There's way to much work that would have to be done to even begin to do this correctly, and I feel the cons way outweigh the pros, both technically and with regard to TI's possible consequences. That is all.
Adriweb wrote:
Here, Lionel was referring to the TI-82 Advanced and TI-84 Plus T, which are stripped from Asm related features as well as Apps (which are, IIRC, hardcoded into the OS, period, you can't add one for instance).
Ah, well, at least for the TI-84 Plus T, they're just doing what the exam board ordered. Don't blame TI. Blame the entity actually responsible, the exam board.
Oh definitely (same for the 82A) - the exam boards are the cause of most of the headache in all of this.
So many times during this conversation, it has been said that we are lucky. How about now? No ASM, no c, a crappy python implementation, and no way to go back.

We were warned not to piss off TI, but they reacted anyway.
  
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 2 of 2
» 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