News for hackers. Stuff that matters.
Re:TI-84 Plus CE Python Graphing Calculator by don-code on Saturday May 08, 2021 @08:20PM (#27092016)
The thing I appreciate the most about a device like this is that it's largely self-contained. I can program my phone in Python, sure, but I largely can't program my phone in Python on the phone. There are tools which do this, but the device isn't optimized for it, and the usage metaphor isn't really compatible - coding UI applications with a soft keyboard doesn't sound fun or useful.

On the other hand, getting a text-based REPL that I can quickly enter some commands on is great - that was why I really loved TI-BASIC on my TI-83. In college it made it easy to write a small program, roughly when I needed that program. In one extreme example, my girlfriend and I took ours to the grocery store every week, and used a BASIC app I wrote for meal planning for the week (this was pre-smartphone era).

I'd hope that this is _something_ of an answer to the concern that computing is getting too complicated and detached. Just thinking about the near-ubiquity of the TI-83 when I was in high school, giving kids the ability to code out of their pockets without having to worry about UI mechanics, publishing to an app store, or _threads_ even (AFAIK Android throws exceptions if you do certain things on the main thread), sounds pretty powerful.

Re:TI-84 Plus CE Python Graphing Calculator by ndiddy on Saturday May 08, 2021 @10:43PM (#27092725)
The new TI calculators are still Z80 based, so the Python interpreter runs on a separate ARM CPU that communicates with the Z80 over SPI. This creates such a large bottleneck for performance that in most cases TI-BASIC is much faster than Python (and due to TI banning assembly programs, that means that kids wanting to get anything resembling decent performance still get to program in TI-BASIC just like you remember doing). As far as I can tell the Python support is a toy feature mainly included to meet curriculum requirements in certain European countries. Additionally it's a calculator so text entry is very cumbersome, personally I would much rather write code on a smartphone than one of these.

https://www.cemetech.net/forum/viewtopic.php?p=285843#285843 for more information on the Python performance

Re:TI-84 Plus CE Python Graphing Calculator by isoprophlex on Sunday May 09, 2021 @01:15AM (#27093410)
It seems inexcusable that TI is still running their calculators on a Z80... what an absolutely glacial pace of innovation.

Are they just lazy monopolists or am I missing something crucial?

Re:TI-84 Plus CE Python Graphing Calculator by aqfamnzc on Sunday May 09, 2021 @05:43AM (#27094598)
They are absolutely lazy monopolists in my view. They are still selling the TI-83, a device released in 1996, for $112 at major retailers.
Re:TI-84 Plus CE Python Graphing Calculator by saagarjha on Sunday May 09, 2021 @03:33AM (#27094013)
TI's newer calculators actually use the eZ80, which is pipelined and generally much faster than the similarly-clocked Z80 processors in the older devices.
Re:TI-84 Plus CE Python Graphing Calculator by don-code on Monday May 10, 2021 @07:58PM (#27112490)
I don't see the TI-series graphing calculators as a general purpose computing device. If I need more horsepower than an old Z80 for some specific use case, TI actually has me covered, in the 68k-powered TI-89 and the ARM-powered TI nSpire.

What _is_ inexcusable to me is that the calculator still costs as much as it does. I'd bet the bill of materials for a TI-84 is cheaper than that of a Raspberry Pi at this point. A few years ago I had to take apart my -83 and discovered from references online that there were revisions A through at least K of the hardware, with many cost cutting measures made along the way. And while there's something to be said for the supply chain for a 20+ year old device probably having dried up several times over, none of those cost savings seem to have been passed onto the consumer.

Re:TI-84 Plus CE Python Graphing Calculator by phinnaeus on Sunday May 09, 2021 @01:54AM (#27093585)
Do they have any competition? Those chips are probably effectively free for them. R&D isn't.
Re:TI-84 Plus CE Python Graphing Calculator by mbirth on Sunday May 09, 2021 @07:12AM (#27095057)
Technically, yes, there's competition from Casio and HP.

However, all US textbooks contain examples specifically for TI calculators, all teachers get TI calculators for free and thus they don't recommend getting anything else but a TI calc.

Re:TI-84 Plus CE Python Graphing Calculator by nl on Sunday May 09, 2021 @02:22AM (#27093707)
Casio makes very popular and we'll supported graphics calculators.
Re:TI-84 Plus CE Python Graphing Calculator by watersb on Monday May 10, 2021 @10:08PM (#27113379)
Casio made the first graphing calculator.

I got one, so great. Statistical Student's T at the lab bench for advanced freshman chemistry. In 1987.

Re:TI-84 Plus CE Python Graphing Calculator by qq4 on Sunday May 09, 2021 @03:30AM (#27093997)
Agreed. Casio got me through my beginning of undergrad with a wonderful calculator. TI always seemed liked too little for the money.
Re:TI-84 Plus CE Python Graphing Calculator by TchoBeer on Tuesday May 11, 2021 @05:10PM (#27123568)
iirc Casio's offerings aren't any cheaper.
Re:TI-84 Plus CE Python Graphing Calculator by luke2m on Sunday May 09, 2021 @08:09AM (#27095329)
My school requires the TI
Re:TI-84 Plus CE Python Graphing Calculator by saagarjha on Sunday May 09, 2021 @03:30AM (#27093994)
TI does not ban assembly programming on their calculators. In fact, the AsmPrgm directive lets you punch in machine code in hex right on the device itself. I actually used this as the basis for a CTF challenge once: https://github.com/saagarjha/ictf-carprey
Re:TI-84 Plus CE Python Graphing Calculator by TD-Linux on Sunday May 09, 2021 @03:59AM (#27094137)
They removed the ability on some of their newer calculators, after you made that repository. E.g. the TI-84 Plus CE: https://www.theverge.com/2020/5/27/21271625/texas-instrument...
Re:TI-84 Plus CE Python Graphing Calculator by saagarjha on Sunday May 09, 2021 @04:03AM (#27094157)
:o, did not know about that. This sucks–but I guess you can skip the update for now…
Re:TI-84 Plus CE Python Graphing Calculator by uyjulian on Sunday May 09, 2021 @09:25PM (#27101682)
There is an exploit that allows you to run assembly programs on newer OS versions called arTIfiCE…
Re:TI-84 Plus CE Python Graphing Calculator by TchoBeer on Tuesday May 11, 2021 @05:11PM (#27123583)
I'm not generally a fan of puns, but that's a solid pun.
Re:TI-84 Plus CE Python Graphing Calculator by TchoBeer on Tuesday May 11, 2021 @05:06PM (#27123525)
>due to TI banning assembly programs

they did _what?!_ I recall TI-Basic programs running at a snail's pace on my TI-8whatever, without assembly nothing of any scale can be done, even numerical analysis.

Re:TI-84 Plus CE Python Graphing Calculator by andrepd on Saturday May 08, 2021 @08:31PM (#27092067)
> In one extreme example, my girlfriend and I took ours to the grocery store every week, and used a BASIC app I wrote for meal planning for the week (this was pre-smartphone era).

Ironically, in the smartphone era, devices aren't even supposed to be programmable anymore (to the end user). They're simply means of consuming content (and a way to be surveilled). The idea that a computer is a programmable machine has all but disappeared from the mainstream.

Re:TI-84 Plus CE Python Graphing Calculator by mitjam on Sunday May 09, 2021 @01:36AM (#27093521)
With Pythonista you can develop small Python programs on iOS.
Re:TI-84 Plus CE Python Graphing Calculator by pjmlp on Sunday May 09, 2021 @04:41AM (#27094336)
There are several programming environments to chose from in both stores.

Surely any 10 year old is savvy enough to find them.

Re:TI-84 Plus CE Python Graphing Calculator by andrepd on Sunday May 09, 2021 @05:36AM (#27094559)
Can you give examples? To be clear I don't mean programming environments that a tech-minded 10 year old can learn on if he doesn't have a PC, I mean tools to let non-technical users program their devices (hypercard probably the best example I can think of)
Re:TI-84 Plus CE Python Graphing Calculator by pjmlp on Sunday May 09, 2021 @10:38AM (#27096243)
The ones I care about are for Python, C#, F#, Swift, GLSL shaders, Java, C, C++.

Maybe Pocket Code fits your idea.

https://share.catrob.at/app/

Re:TI-84 Plus CE Python Graphing Calculator by II2II on Saturday May 08, 2021 @08:59PM (#27092222)
Both Google and Apple invest heavily in development tools for their respective platforms. These tools may not be as accessible to end users as BASIC, but that is because these tools support much more than basic math and graphics. Android also has a number of development tools that are vastly easier for end users to use (and, from my meager understanding, the same is true for modern iOS).

The reason why you don't see this advertised for mobile devices is for much the same reason that you don't see programmability advertised for modern computers: it is a feature that only appeals to a tiny subset of the market. The reason why you see programmability advertised in a calculator is due to its utility for the target market (e.g. programming is often introduced in math class).

Re:TI-84 Plus CE Python Graphing Calculator by andrepd on Saturday May 08, 2021 @09:11PM (#27092283)
I disagree. There was a big push at some point in the development of personal computers to make programming something that even nontechnical persons could do. Think hypercard, or even smalltalk. A way for regular users to program their computer to do something else.

That's long gone. There's no such tools (that I'm aware of) in the mainstream for smartphones or even computers. You say two things: "they support so much more than TI-basic", well yes and that's the problem. They are developer's tools, not user-programmer tools. If you want to write a quick program to help you in some task you don't have a quick BASIC-like tool to do that. And you also say "a feature that appeals only to a tiny subset of the market", again a self-fulfilling prophecy. There are no tools for non-technical users to program their devices, so only a minority of users do want to program their devices (or even realise that they can do so!)

Re:TI-84 Plus CE Python Graphing Calculator by defterGoose on Saturday May 08, 2021 @09:33PM (#27092375)
Which is funny, because I bet Apple could re-engineer hypercard for iOS and people would absolutely love it. Would probably attract more power users even, if they gave more more granular control (I realize this is anathema to Apple at this point). There are definitely ways to let users choose how "dangerous" to make themselves.
Re:TI-84 Plus CE Python Graphing Calculator by moth-fuzz on Saturday May 08, 2021 @11:43PM (#27093038)
It's very interesting that you make the distinction between a 'developer' and a 'user-programmer'. I've never thought of it that way before, but I've come to the realization that all the programs I write are not written specifically for my computer, my computer is simply one of many compile targets and platforms which they can run on. It would be incredible if I could actually program the normal operations of my computer from user space, instead of writing programs for an abstract x86_64 device which, at runtime, happens to be my computer.
Re:TI-84 Plus CE Python Graphing Calculator by II2II on Sunday May 09, 2021 @08:35AM (#27095467)
I suspect the biggest hurdle in this discussion is agreeing upon what we mean by a programming language for end users, or even what qualifies as a programming language.

Some examples that I can think of: Automator, AppleScript, Swift Playgrounds are all intended to be accessible to end users. Spreadsheets typically provide programming-like constructs (without resorting to lower level scripting). There are versions of BASIC for most platforms (including Android and the Nintendo Switch). The last time I looked into it Smalltalk (via Squeak) was still being maintained for computers and it looks like there are Smalltalk implementations available for Android.

While it can legitimately be pointed out that most of these options have to be sought out, they are a subset of what is available. While I agree that people not realizing that their devices can be programmed is a hurdle, a large number of people do realize that it is actually software that controls the operation of their devices yet have very little interest in writing their own programs.

Re:TI-84 Plus CE Python Graphing Calculator by watersb on Monday May 10, 2021 @10:13PM (#27113417)
While web based single page applications (SPA) are hardly a "sweet solution ", any kid can view source and take one apart.

I believe that devices are at least as accessible today as they were in 1981. Today's systems are phenomenally complicated, but you can start making them do stuff with virtually no extra parts. The web browsers are free. Tutorials online are free. Way better resources these days.

Re:TI-84 Plus CE Python Graphing Calculator by nl on Sunday May 09, 2021 @02:26AM (#27093724)
Apple's Shortcuts app brings up a "scripting" option in the "new action" menu. It's rather capable.
Re:TI-84 Plus CE Python Graphing Calculator by pjmlp on Sunday May 09, 2021 @04:44AM (#27094344)
Yeah, the programming apps I have installed are a fruit of my imagination.

Do they expose everything? No.

Are they good enough for learning purposes and basic coding on the go?

More than enough.

Re:TI-84 Plus CE Python Graphing Calculator by yjftsjthsd-h on Saturday May 08, 2021 @10:09PM (#27092549)
> These tools may not be as accessible to end users as BASIC, but that is because these tools support much more than basic math and graphics.

Okay, so where are the options that only support basic math and graphics?

Re:TI-84 Plus CE Python Graphing Calculator by krapht on Sunday May 09, 2021 @12:43AM (#27093296)
Excel and Google sheets? First thing any of my non-technical friends reach for when they need to do some basic sums and calculations.
Re:TI-84 Plus CE Python Graphing Calculator by tolidano on Saturday May 08, 2021 @11:25PM (#27092963)
Matlab Wolfram alpha Mathematica
Re:TI-84 Plus CE Python Graphing Calculator by pgn674 on Saturday May 08, 2021 @08:38PM (#27092105)
Those are some good points that reflect my own experience. My first language was TI-BASIC, self-taught during high school study halls on the TI-83 Plus. My second language was Z80 assembly on that calculator. I think the self contained nature of the programming and running environment in a portable device, along with limited features and power, is really what got me started.

And it ended up helping me choose Computer Science as my college degree and put me on the career path I'm on now. TI has its faults, but I'll be ever thankful for their roll in my job satisfaction.

Re:TI-84 Plus CE Python Graphing Calculator by ivan_ah on Saturday May 08, 2021 @09:37PM (#27092389)
Same here. I was programming "demos" with animations in class all the time. They were running really slow, so I even learned a bit of z80 assembler, and had to learn how to solder together diode + resitor to create a SERIAL cable to transfer programs (didn't have the budget to buy an official one). Good times.
Re:TI-84 Plus CE Python Graphing Calculator by bradrn on Saturday May 08, 2021 @10:30PM (#27092662)
I’ve recently been thinking of learning assembly, but I’m struggling to find resources. For those of us who don’t have an old TI calculator lying around, can you recommend anything?

(Honestly, what everyone’s saying about programming with the TI calculators sounds amazing… I wasn’t alive then, and it’s a pity I never got to have that experience.)

Re:TI-84 Plus CE Python Graphing Calculator by ivan_ah on Saturday May 08, 2021 @11:00PM (#27092832)
First off I want to note TI calculators are not anything special when it comes to assembler. It was more of a limitation of the platform (in order to get games that are fast, you had to write them in assembler because TI-BASIC was too slow).

Note also that assembly code is different for each CPU architecture. The TI calculator I had contained a z80 chip, so it was z80 assembler (Motorola assembler?). The x86 assembly language is a more complicated, but probably more useful to learn (can look at any program on your computer). Or maybe you could learn ARM assembly (e.g. this would allow you to write simple programs that blink lights on a Raspberri PI).

> [...] can you recommend anything?

I looked through my bookmarks and found some links you might want to check out:

1. Example of Comparing C to x86 assembly: https://www.youtube.com/watch?v=yOyaJXpAYZQ

2. The assembler project part of nand2tetris computing-from-first-principles course: https://www.nand2tetris.org/project04 I haven't gone thought this course, but I've heard many things about it.

Re:TI-84 Plus CE Python Graphing Calculator by bradrn on Saturday May 08, 2021 @11:20PM (#27092938)
> First off I want to note TI calculators are not anything special when it comes to assembler. It was more of a limitation of the platform (in order to get games that are fast, you had to write them in assembler because TI-BASIC was too slow).

> Note also that assembly code is different for each CPU architecture. The TI calculator I had contained a z80 chip, so it was z80 assembler (Motorola assembler?). The x86 assembly language is a more complicated, but probably more useful to learn (can look at any program on your computer). Or maybe you could learn ARM assembly (e.g. this would allow you to write simple programs that blink lights on a Raspberri PI).

Sure, I understand all this already. I suspect that x86 assembly might be most useful for me, but I also have access to an Arduino, so I might try writing assembly for that as well.

> 1. Example of Comparing C to x86 assembly: https://www.youtube.com/watch?v=yOyaJXpAYZQ

Thank you! Added to my reading list.

> 2. The assembler project part of nand2tetris computing-from-first-principles course: https://www.nand2tetris.org/project04 I haven't gone thought this course, but I've heard many things about it.

As it happens, I’ve already gone through nand2tetris. I can’t say it helped me that much: sure, it’s good for getting a conceptual understanding of how assembly works generally, but it doesn’t give me any idea about e.g. how to write a program for x86 or ARM.

Re:TI-84 Plus CE Python Graphing Calculator by saagarjha on Sunday May 09, 2021 @03:35AM (#27094022)
Note that TI calculators do not run x86 assembly, if that is what you're trying to do.
Re:TI-84 Plus CE Python Graphing Calculator by bradrn on Sunday May 09, 2021 @03:52AM (#27094104)
Of course I understand TI calculators don’t run x86 assembly! That’s not what I want to do — I just want to get a better understanding of assembly, preferably x86 so I can run it on my own Windows computer. (I don’t even have a TI calculator.)
Re:TI-84 Plus CE Python Graphing Calculator by saagarjha on Sunday May 09, 2021 @04:05AM (#27094175)
Ha, just making sure :P I do have one suggestion, though: try WSL, because it will give you access to Linux, where you can actually write programs entirely in assembly because the system call API is stable. The ABI matches with macOS's too, which is another plus.
Re:TI-84 Plus CE Python Graphing Calculator by bradrn on Sunday May 09, 2021 @09:22AM (#27095722)
I already have WSL installed, so maybe I will give this a try if I get time.

> Linux, where you can actually write programs entirely in assembly because the system call API is stable

I didn’t know this — is it not stable on Windows?

Re:TI-84 Plus CE Python Graphing Calculator by Ivoah on Saturday May 08, 2021 @10:42PM (#27092722)
Learn Assembly in 28 Days[0] is what I remember going through when I first started messing with assembly on TI calculators. Another great resource is Cemetech[1], a forum/community dedicated to (mostly TI) graphing calculators and hacking/programming them.

[0] https://tutorials.eeems.ca/ASMin28Days/welcome.html [1] https://www.cemetech.net/

Re:TI-84 Plus CE Python Graphing Calculator by bradrn on Saturday May 08, 2021 @11:04PM (#27092848)
Hmm… but how useful will these be if I don’t have a TI calculator?
Re:TI-84 Plus CE Python Graphing Calculator by Ivoah on Saturday May 08, 2021 @11:14PM (#27092905)
Ahh maybe I should read the entire comment before replying :P. Sorry. I only saw the wanting to learn assembly and asking for resources. Honestly though I think this could still be a great way to get into assembly. There's a myriad of emulators out there for TI calculators, so you could still use the links I posted.
Re:TI-84 Plus CE Python Graphing Calculator by bradrn on Saturday May 08, 2021 @11:22PM (#27092949)
> Honestly though I think this could still be a great way to get into assembly. There's a myriad of emulators out there for TI calculators, so you could still use the links I posted.

Good points — I’ll save those articles for future reference. Thanks for the recommendations!

Re:TI-84 Plus CE Python Graphing Calculator by ineedasername on Saturday May 08, 2021 @08:26PM (#27092047)
Wouldn't it be even harder to code on this using its limited keyboard? On a phone the soft keyboard may take up half the screen, but that's still at the same size or larger that this calculator, with a higher resolution. That's not to say programming on a phone is a pleasant experience, just that it seems at least a little easier, with much higher cpu/ram/storage resources.
Re:TI-84 Plus CE Python Graphing Calculator by don-code on Saturday May 08, 2021 @09:11PM (#27092281)
Yes and no - something that TI-BASIC on the TI-83 series has going for it is that it's tokenized, so directives like `While` or `ClrHome` are actually options, rather than full words. So I don't have to type "While" on the TI-83's cumbersome keyboard, but rather just hit Prgm+5.

I'm making a big assumption that the Python implementation is similar. I don't know this, but where this is a big feature of TI-BASIC, I'd hope it carried forward.

Re:TI-84 Plus CE Python Graphing Calculator by zozbot234 on Saturday May 08, 2021 @08:35PM (#27092090)
Typing on a soft keyboard sucks. Typing computer code, that has to be absolutely typo free, is totally unworkable. Even a chiclet keyboard like what was featured on the lowest-build-quality home computers from the 1970s and 1980s (e.g. early ZX Spectrum) is miles better than trying to input code on a phone touch screen.

(In fact a bare-membrane keyboard, that was only ever used on extremely-low-specced home computers where only trivial programs would ever be written, arguably provides a better feel than what you'd get from a touchscreen.)

Re:TI-84 Plus CE Python Graphing Calculator by thinkmassive on Saturday May 08, 2021 @08:48PM (#27092161)
I agree a physical keyboard is better for preventing typos, although one huge advantage of an on-screen keyboard is it can change based on context.

Especially considering the topic of a Python IDE, that seems like an application where predictive text and/or contextual menus could be a huge benefit for many users.

Re:TI-84 Plus CE Python Graphing Calculator by zozbot234 on Saturday May 08, 2021 @08:53PM (#27092183)
Python is a thoroughly dynamic language, so the scope for "predictive" coding just isn't there. The best language for that is actually something as strict as Agda, where you can build out your code step-by-step by picking your operands from a well-defined list of in-scope bindings, with powerful type constraints guiding your choice at all times. Python is the polar opposite of that, even with the newfangled 'gradual' typing systems that are now being suggested.
Re:TI-84 Plus CE Python Graphing Calculator by ineedasername on Sunday May 09, 2021 @03:03AM (#27093872)
I agree even bad keyboards are often better than soft ones, but this calculator isn't qwerty which for my preferences would be too large a disadvantage even over a phone's soft keyboard.

Now, if you could attach a USB keyboard to the calculator, that would be perfect.

Re:TI-84 Plus CE Python Graphing Calculator by uyjulian on Sunday May 09, 2021 @09:24PM (#27101675)
It is possible to attach a USB keyboard using a USB-A to USB mini-A adapter. This feature was added to OS 5.1.5.
Re:TI-84 Plus CE Python Graphing Calculator by twobitshifter on Saturday May 08, 2021 @09:09PM (#27092272)
Pythonista is a great option on the iPhone (Don’t understand how Apple allows it), but like you said, coding in python on a soft keyboard is not fun.
Re:TI-84 Plus CE Python Graphing Calculator by qsort on Saturday May 08, 2021 @09:14PM (#27092297)
You can install iSH and stock CPython inside it. I have it on my phone right now and it's usable, but the soft keyboard is indeed not fun.
Re:TI-84 Plus CE Python Graphing Calculator by pjmlp on Sunday May 09, 2021 @04:48AM (#27094354)
Because it is interpreted and you can't really make full apps with 100% to everything unless exposed as interpreter API.

There are several other languages as well, including .NET.