Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: KnightOS – An open-source OS for calculators (knightos.org)
180 points by ddevault on Aug 25, 2016 | hide | past | favorite | 34 comments



I'd never really considered this till now but all those "you must wipe the calculator's memory before the exam" rules are totally owned by installing a sufficiently deceptive custom OS.

Like another commenter, I wrote some of my first programs on a TI-84, amazing that the school encouraged us to buy them and then completely failed to teach anyone how to use any of the features :'D


> that the school encouraged us to buy them and then completely failed to teach anyone how to use any of the features :'D

This is exactly the kind of thing Seymour Papert warned against; just like handing out tablets and then stopping the students from learning how to unlock them for their own uses defeats the whole point.


I don't think they actively tried to prevent it but I don't think they understood the power it contained. They were amazed when I showed them the in-built functions to solve many of the problems we were apparently learning to solve as well as the programs I wrote myself to automate tedious homework exercises.


I would say that for future hackers putting a calculator/tablet/whatever in one's hands and then trying to limit it's use just adds to the fun.


That's good for finding the natural crypto people who like to break out of such crippleware restrictions, but I can't think of anywhere else in the industry where that is useful selection bias.


Senior sysadmins? SW developers above CRUD level?


I dunno, the HP-50g was the pinnacle of calculator OSs for me. RPN, stack based programming, lisp. It really was wonderful.


Why is RPN good?

My gripe is:

- Why should a person doing difficult mathematics also have to struggle with a different notation?


Basically, when you're using a calculator, you're calculating, not notating. With RPN, you have a data stack, and everything you do is an action you perform on this stack (like entering a number or doing an operator). You can see your calculation in progress. It can be somewhat natural to put verbs at the end ("3 and 4's sum" for instance), and you don't have to think ahead to figure out whether you'll need parentheses.

If the expression gets to complicated, though, traditional notation is nice because it's easier to verify you calculated what you intended to, I feel.

But let me deconstruct your gripe. A good part of mathematics has been about finding the right notation to express particular ideas. RPN, in my experience, makes it easier to express certain calculations to a machine. But: why is there 'should' and 'have to' in your gripe? No one is forcing anyone to use RPN. You struggle with it to learn the notation, and maybe it makes the "difficult mathematics" easier to deal with. It's not like people make RPN calculators to be intentionally difficult and alien.

Your gripe could equally apply to modern algebraic notation vs. the old latin longhand, or arabic numerals vs. roman. I'm sure it was a struggle for people to learn the new notation in either case.


This is technically OT from this post, but let me try to field your question more satisfactorily than the web pages I'm able to find with DDG:

I think the initial struggle will be getting used to an RPN calculator if you've never used one before. (Some of them are a bit idiosyncratic.) But RPN notation itself is probably closer to how you actually solve many problems on paper. Long division is a good example.

In most modern "algebraic" calculators, the style often encouraged is to key in complete equations chock full of parens and notation (often represented graphically) from left to right with the expectation that calculator is smart enough to do the right thing when given your input values and the crank is turned (push ENTER). But there are sometimes surprising evaluation order gotchas even between different calculator models, even those made by the same manufacturer!

RPN is somewhat more rudimentary, making the user generally responsible for the order of evaluation by solving equations piecemeal. But as a result, you are rewarded with more consistency, fewer WTF moments with unexpected answers (since you're typically calculating intermediate values as you go), fewer keystrokes needed for solving most problems you'd typically use a handheld calculator for nowadays, intermediate values that can be efficiently (re)used on the stack as many times as needed (removing most of the need for additional registers), is more intuitive for making very compact and memory efficient algorithms (not the perk it was back in the day, arguably), and a keystroke programming model that closely corresponds to the way a user normally solves problems with the calculator manually. A simple but effective demonstration of the above features is solving a polynomial with an RPN calculator and a typical TI.

So I'd say difficult mathematics will remain difficult. But the analogy that comes to my mind would be the difference for the driver of an automatic transmission versus a manual transmission. Or a black box that does too much, leaving the user unsure of the full breadth of its function. RPN prevents the user from becoming too distant from what (s)he is calculating, while still providing all the power and abstraction needed not to be bogged down (too much) by the mechanics of the calculation itself.


It still is really wonderful! I use mine almost every day for little calculations I need to do. IMO a physical calculator beats using your computer as one in many cases.


I've long wanted to try the 50g, but haven't been able to forgive HP for ignoring longstanding bugs in the 35s and for outsourcing the design of the RPN calculators that they were rightfully renowned for. I ended up replacing my 35s with the "open source" WP 34s, which is based on the HP 30b calculator platform: https://sourceforge.net/projects/wp34s/


Wow OP, this is a ton of amazing work (in the GitHub organization). Your blog is great too. Do you have any advice for being so prolific? My butt can't take the sitting and my shoulders can't take the typing posture for the amount of time it seems to take to churn out so much (not being sarcastic in the least).


Thanks! I just spend a lot of time working. Maybe you can look into more novel keyboard designs and nicer or novel chairs? I use a mechanical keyboard with cherry MX blue switches and an above-average desk chair.


The above-average desk chair has made a huge difference but I've been using a cheapo keyboard for ages now, will have to get on that. Do you use a keyboard tray?


No.


I hear Drew's done some great work with this. I'd look at it myself, but flashing my calculator firmware is a bit risky for such an overpriced device.

Thank you, College Board.


FWIW it's very difficult to brick a calculator without doing so intentionally. The boot sector has a recovery mode built in for reflashing in case of the worst and the boot sector itself is write protected except in some very exceptional circumstances.


Ah, good. Thanks Drew. By the way, I didn't see any actually, you know, graphing applications in the repos. Those exist, right?


They don't - KOS currently doesn't have FP support (although the C library[1] does provide FP, it's not too accurate or fast)

[1] https://www.github.com/KnightOS/libc


FP?? I was asking about using the calculator as a calculator.

EDIT: Oh, floating point! Now it makes sense!


There are a lot of used ones on eBay. The devices for all those graduated kids has to go somewhere.

Looks like ~$20 for a TI-73, vs. $70 on Amazon, and ~$40 for a TI-83+, vs. ~$80 on Amazon.


Ah. I always forget to check ebay. Although pre 84+ calculators were a pain to flash...


Way back in the day I built a parallel port to 3.5mm jack flasher for my 83


Yeah, but USB to 3.5 is a bit harder, IIRC...


Surely arduino's these day would make that pretty simple


Yeah, but I don't know how do do it :-(.

I'm not so good at hardware...


Anyone looking to have a play without finding their TI link cable - works on Andiegraph TI emulator from F Droid


This deserves all the upvotes. You saved me a trip to eBay.


When I was in school (10+ years ago) we already had elaborate mods for the TI83+ used for cheating our way through the final exams. Also we overclocked the hell out of them. Those were the days.


I've still got my trusty TI-85 sitting next to me at the desk here, from twenty years ago!


Ah, TI-83! I wrote my first-ever programs on this thing.

The 'getting started with assembly' guide is really good; the whole thing is really inviting to tinker. Excellent work!


No install guide in the wiki. Humm.





Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: