Hacker News

Top stories

Live mirror
30 storiesupdated just nowView source snapshot
  1. Laya the open source version of Jev(convaiinnovations.com ↗)
    128comments
  2. A graphical desktop for the ZX Spectrum(github.com/mindbox77 ↗)
    44comments
  3. Tin: full-text search for Postgres(planetscale.com ↗)
    30comments
  4. AI-generated posters don’t have to be horrible(john.hartnup.uk ↗)
    437comments
  5. Human brain is two separate organs, Stanford Medicine-led research finds(stanford.edu ↗)
    176comments
  6. “The Secret Life of Circuits” is here(coredump.cx ↗)
    50comments
  7. Black Holes or Black Hole Stars? Astronomers Spar over 'Little Red Dots'(quantamagazine.org ↗)
    11comments
  8. Asking Authors About Their Own Papers(medium.com/tmlrorg ↗)
    30comments
  9. Agreement between the USA and Denmark (1951,2004) [pdf](state.gov ↗)
    5comments
  10. Android 17 is the first since 3.x to add new APIs without releasing to the AOSP(grapheneos.social ↗)
    544comments
  11. I built the fastest PHP webserver in the world(qbixserver.com ↗)
    20comments
  12. What Zig felt like, coming from Rust(besok.github.io ↗)
    101comments
  13. San Francisco Onion Futures Company(onionfutures.com ↗)
    108comments
  14. GPT-6 Astra Solves a WWI German Radio Cipher(prinzai.com ↗)
    129comments
  15. If math is more than proof, we need to better celebrate the rest of it(terrytao.wordpress.com ↗)
    186comments
  16. New evidence for hidden chambers beyond Tutankhamun's tomb(nature.com ↗)
    3comments
  17. Learning Another Language May Be One of the Best Ways to Keep Your Brain Healthy(theconversation.com ↗)
    37comments
  18. Cloudflare Quick Tunnels(cloudflare.com ↗)
    301comments
  19. How to Write with an LLM(sockpuppet.org ↗)
    360comments
  20. You can run Git on object storage if you re-make packfiles(tigrisdata.com ↗)
    23comments
  21. Saving another 100TB of RAM(cloudflare.com ↗)
    89comments
  22. Communication by means of modulated Johnson noise(pnas.org ↗)
    18comments
  23. SDCC – Small Device C Compiler(sourceforge.net ↗)
    23comments
  24. Science Is Open Software(jepedersen.dk ↗)
    50comments
  25. Ray Ozzie and the Optimism of Being Early(reproof.app ↗)
    9comments
  26. From Stonemasons to Carpenters(thelastsoftwareengineer.substack.com ↗)
    4comments
  27. Why building a Rust LSP is hard(rust-glancer.github.io ↗)
    44comments
  28. Ctenophores: Wonders of Biology(quantamagazine.org ↗)
    7comments
  29. OpenJev(openjev.com ↗)
    278comments
  30. The first new cat species discovered in 100 years(nationalgeographic.com ↗)
    122comments

Epsilon: Graphing calculator operating system

106 pointsby 9y agogithub.com
64 comments
9y agoHN ↗

Your build status icon says 'failing' but Travis shows passing builds.

9y agoHN ↗

probably the github camo image proxy being out of date

9y agoHN ↗

Happy to see this. TI's newer stuff isn't intuitive unless you grew up using their weird interfaces on the TI-8x series. Somebody needs to move the needle on usability, and I appreciate having physical, dedicated calculator hardware for some problems. Sometimes I need a Mathematica project, sometimes I just want a pad of paper and a decent calculator.

9y agoHN ↗

This looks really nice, but what is the advantage of a dedicated graphing calculator in a world full of smart phones?

9y agoHN ↗

Presumably: that you are allowed to use it during exams in the USA. That's what has kept TI's offerings competitive.

The hardware has an "exam mode" that it is non-trivial to get out of (https://www.numworks.com/resources/faq/)

I do expect that to be hacked, though. The FAQ says:

"How to exit the exam mode?

Simply plug your device to a computer using the supplied USB cable. you will then be prompted to exit the exam mode."

It wouldn't surprised if one could fake that computer by powering a USB plug with a small battery. If not, the OS source is available, so a backdoor for leaving exam mode likely isn't far away.

9y agoHN ↗

Hacked TIs with "fake memory clear" and other clever tricks were/are pretty common too.

But the most impressive I've seen were some calculators I saw in Shenzhen a few years ago which looked like simple solar-powered 4-function ones, but were actually programmable and had several tens of KB of memory. Trying to use that functionality with a 8-digit 7-segment display, however, was quite challenging.

9y agoHN ↗

If you ever stumble on old or further information about these 4-function calculators, I would love to learn more. That sounds amazing.

Did the solar panel actually power it, or was there a hidden battery?

9y agoHN ↗

heh, i remember writing a fake "memory clear" program on my TI back in 1994/1995 (i don't remember the exact model).

9y agoHN ↗

I wonder if this use case is what motivated the choice of a license that does not allow distribution of derivatives.

9y agoHN ↗

Presumably: that you are allowed to use it during exams in the USA.

Nope, this calculator is not allowed on any of the major standardized tests.

https://collegereadiness.collegeboard.org/sat/taking-the-tes...

https://apstudent.collegeboard.org/takingtheexam/exam-polici...

http://www.act.org/content/dam/act/unsecured/documents/ACT-c...

And many -- perhaps most -- high school teachers have a similar "white list based" policy because they're unable or unwilling to a) admit that any graphing calculator makes cheating basically impossible to prevent without extremely careful proctoring; and/or b) emphasize learning even at the expense of weakening the signaling value of credentials.

IMO tests should be designed sot that calculators aren't necessary. I can't ever remember using a calculator in university, and that's really the only place I actually learned any mathematics in a classroom setting.

9y agoHN ↗

From the website¹:

The NumWorks Graphing Calculator matches all the requirements of the ACT calculator policy and is permitted for use on that test. It is currently under review by the College Board for use on the SAT.

¹https://www.numworks.com

9y agoHN ↗

Until this calculator is listed on the ACT website, I wouldn't risk using it. You will be turned away if you show up with an unapproved calculator.

9y agoHN ↗

This looks really nice, but what is the advantage of a dedicated graphing calculator in a world full of smart phones?

Specialized UIs and a physical keyboard means a user who has mastered a graphing calculator along with its associated CAS, can be far more efficient than someone poking on a virtual touch screen.

TI-89, as maligned as it is, has a UI that is designed to do one thing, and one thing only, a lot of math, as fast as its little CPU can chug through. Presumably this calculator is the same.

That said, there documentation is seriously underwhelming, with many (most) pages being a brief summary and nothing else.

9y agoHN ↗

Wow, for roughly the same price that the TI-8X series has been selling at for decades, you can get an actual modern computing device. Nice.

9y agoHN ↗

You can get a 10" dual-core Windows or quad-core Android 2-in-1 tablet with 2GB of RAM for $100.

Not exactly the same window as a calculator (eg, size/weight), but I think it serves to show TI calcs are ridiculously expensive for what they are. (My $50 phone runs Android and can pretend to be a TI for instance.)

9y agoHN ↗

20 hour battery life? One thing TIs still have going for them is that their battery life is measured in months.

9y agoHN ↗

Battery life is measured in months... when turned off. Just like this one. And I like that this one is rechargeable.

9y agoHN ↗

I somehow fail to find the ACTUAL hardware, say electronics...

9y agoHN ↗

CC-BY-NC-ND is a very strange choice of licenses, especially with "contributions welcome".

9y agoHN ↗

NC-ND makes the whole project a non-starter... it's not Open Source.

9y agoHN ↗

Right. For anyone who doesn't know these abbreviations, NC means "Non-Commercial" and ND means "No Derivatives", which means you can't take the code and release a modified version. NC by itself is contrary to the Open Source Definition, but ND is completely opposed to what Open Source is trying to accomplish.

https://opensource.org/osd-annotated

9y agoHN ↗

Indeed, as it is licensed as such, it's no better than shareware.

9y agoHN ↗

What's really annoying is that it only stifles those who care about licensing.

9y agoHN ↗

That's no different from any other license :)

9y agoHN ↗

Doesn't that make every single person who has forked it and modified it on github (16 as of now) a violator of the license?

9y agoHN ↗

And the Creative Commons people recommend you not use their licenses for software:

Can I apply a Creative Commons license to software?

We recommend against using Creative Commons licenses for software. Instead, we strongly encourage you to use one of the very good software licenses which are already available. We recommend considering licenses made available by the Free Software Foundation or listed as “open source” by the Open Source Initiative.

Unlike software-specific licenses, CC licenses do not contain specific terms about the distribution of source code, which is often important to ensuring the free reuse and modifiability of software. Many software licenses also address patent rights, which are important to software but may not be applicable to other copyrightable works. Additionally, our licenses are currently not compatible with the major software licenses, so it would be difficult to integrate CC-licensed work with other free software. Existing software licenses were designed specifically for use with software and offer a similar set of rights to the Creative Commons licenses.

Version 4.0 of CC's Attribution-ShareAlike (BY-SA) license is one-way compatible with the GNU General Public License version 3.0 (GPLv3). This compatibility mechanism is designed for situations in which content is integrated into software code in a way that makes it difficult or impossible to distinguish the two. There are special considerations required before using this compatibility mechanism. Read more about it here.

Also, the CC0 Public Domain Dedication is GPL-compatible and acceptable for software. For details, see the relevant CC0 FAQ entry.

While we recommend against using a CC license on software itself, CC licenses may be used for software documentation, as well as for separate artistic elements such as game art or music.

https://creativecommons.org/faq/#can-i-apply-a-creative-comm...

9y agoHN ↗

Someone pointed out in another thread that this calculator is intended to be usable in exams and has an "exam mode" (which presumably provides only a very specific set of functionality) that cannot be exited without plugging into a computer. I wonder if the choice of a "no derivatives" license was motivated by the need for a legal tool to prevent distribution of altered firmware that can break out of exam mode without a computer.

Funny side story: when I entered high school, the school recommended that everyone buy a Ti-83. Somehow my parents accidentally bought a Ti-89 instead. Unlike the Ti-83, the Ti-89 supports, out of the box: simplifying symbolic expressions (e.g. evaluating 2/4 to 1/2 instead of 0.5), solving arbitrary equations, solving systems of multiple equations and multiple unknowns, computing derivatives and definite/indefinite integrals of functions symbolically, and a lot more. I was never asked not to use the Ti-89 on any test, either in math class or on a standardized test. I don't think anyone administering the tests was aware that this calculator could basically do the entire test on its own if only it had something to write with. For what it's worth, I never cheated with it, not least because typing a complicated problem into the calculator generally took longer than just solving it by hand. I mostly used these fancy features just to see if the calculator knew how to solve whatever new problem we'd just learned in class. It almost always did.

9y agoHN ↗

IANAL, but my understanding is that the exam mode could be fully protected by the trademark; the ND clause is not needed. Just like non-official builds of Firefox are limited in their use of the Firefox trademarks (thus iceweasel).

9y agoHN ↗

The TI-89 was itself created as a new version of the TI-92, but without a qwerty keyboard, since the standardized tests banned all devices with a qwerty keyboard.

9y agoHN ↗

I bought one at a time when schools and tests hadn't quite figured that out yet :)

9y agoHN ↗

... I'm not sure that's possible because the 89 was created specifically in response to the college board (and those that followed their lead) banning QWERTY keyboarded calculators.

9y agoHN ↗

Simple solution: codesign the “official” builds. Have a “test mode” LED on the device, and have the firmware refuse to turn the light on when running an unsigned build. Bonus points if you allow dual booting into the standard build for testing.

9y agoHN ↗

I've been pondering a similar problem to this - secure state verification - and it seems fundamentally hard.

In the case of the LED, it would be simple to open the case and cut the trace to the LED. Now you have to put every single calculator into test mode to verify the LED lights up before you can start the test. That won't work.

9y agoHN ↗

You seem to be suffering from a rather common affliction in tech circles. Normal people do not care in the slightest if someone could open the calculator and cut the LED trace.

9y agoHN ↗

Yeah, this should be pretty clear from the parent post talking about the TI-89. It's almost impressive how little effort actually goes into preventing cheating. It's basically honor system + harsh threats

9y agoHN ↗

For what it's worth, I'm actually trying to solve the problem of creating a verifiably secure device based on a tamper-resistant design at the moment, so that bias crept in a bit.

I fully realize that what I'm trying to do (build a trustable boot path that's also hackable) is impossible to 100% achieve; I'm instead trying to see if I can build a super cheap design that's irritatingly expensive to circumvent (for a known value of "expensive", with hopefully 5 or 6 zeroes).

It's a thought experiment at this point; I guess I'm practicing hammering every nail in sight with my ideas to test if my mindset is actually sane or not :P

9y agoHN ↗

Wouldn’t you need to put everybody in test mode anyway for, you know, the test?

9y agoHN ↗

Would love to use myself, except the NC-ND license means I won't even be looking at it. Please consider changing licenses.

9y agoHN ↗

Given the stasis of the TI lineup and the regression of the HP one this would be very welcome, but it seems intentionally crippled to cater to standardized testing (and I'm not going to be able to port a real CAS to it in my spare time).

9y agoHN ↗

but it seems intentionally crippled to cater to standardized testing (and I'm not going to be able to port a real CAS to it in my spare time).

Ugh, sadly it seems you are right. It doesn't look like it has all the power than a TI-89 does. Very unfortunate, I was excited, now, not so much.

:(

9y agoHN ↗

I have a swissmicro HP16C equivalent. I also have two real ones! the swissmicro is a bit disappointing I have say -- I hoped to be able to replace my real ones to 'save' them on wear and tear, but I moved back to the good 'ol ones with a sight a relief.

Mostly the 'titanium' back is ever so slightly warped that it just nags at my OCD (enough that I CNC'ed myself a replacement back using plex [0]) and the membrane keyboard is rather poor.

[0]: https://goo.gl/photos/mGZ76ArA5HFgLyAC6

9y agoHN ↗

It's a pity that HP's RPN didn't win over TI.

9y agoHN ↗

I'd like to throw something out that I'd love to see in an (open) calculator like this that I've only ever seen implemented in some software calculators. I'd love to have a physical hardware dedicated calculator that would understand units and boast an easy to use multiple-variable solver.

I'd love to be able to ask my calculator questions like this: We have a sensor attached to a device that moves at 100 feet/second. Our sensor can be configured to sample it's location at a frequency in GHz. What frequency do we need to sample at to make sure that no to samples are further than 12 U (rack units) apart.

   (100 feet/second) / (x GHz) = (12 U) [0]

I'd like to also be able to have user programmable units by allowing users to create a file that looks like this. I'd hopefully be able to create this on my desktop and push it to my calculator.

On the multivariable solver-front I'd like to be able to define constraints and get a sensible answer. Something like...

    solve(x, y, z, min(x), y=10, z > .3, min(f(x)), max(g(z)))

Something like that... I haven't thought it through.

[0] - My answer: http://i.imgur.com/pimZnwq.png

9y agoHN ↗

HP's graphical calculators have always supported units, including in the interactive numerical solver. Support in the symbolic CAS is more limited. Custom units can be defined in terms of built-in units. In your example, you'd simply store 1.75 inches or 44.45 mm to the variable 'U'.

9y agoHN ↗

The TI-Nspire and Nspire CX both come in CAS variants that can also do that.

9y agoHN ↗

Assuming each github fork has modified the code, I see 16 violators of this project's license. (If you're not familiar with creative commons the ND stands for "no derivatives" and means it's a license violation to publicly distribute adapted works)

9y agoHN ↗

I just learned that the ND license exists. It probably shouldn't.

9y agoHN ↗

CC itself recommends against using these licenses for software. It was designed for things like artwork and literature.

9y agoHN ↗

why they even put it on github with this license?

9y agoHN ↗

If it's not RPN, you can count me out. After switching in college, I'll never go back. RPN is just too much better for one-off calculations (and anything super-complex goes on my computer anyway).

EDIT: to be clear, by one-off I meant throw-away calculations of whatever you have something that needs solving, but you won't be solving that particular problem enough to warrant a full-blown program. I didn't mean super-simple a + b type calculations.

9y agoHN ↗

Can you elaborate on this? What kinds of one-off calculations is RPN better for and why?

9y agoHN ↗

It isn't about about one off calcs but really about how the stack works over multiple operations. So you enter number 1, verify it, enter number 2, verify it, then do the operation. If you mess up, fix it now and go on. You can even go back and fix things on the stack if you notice a typo later.

Multi step complex operations is where RPN really shines. Do multi step operation 1, then 2, then 3 as independent operations. When it comes time to combine the results of the 3 operations, they are just there on the stack waiting to be used. Without RPN you had to think about saving them to memory at the end of each operation, then remember were you saved them at the end.

I had to switch from a std graph calc to RPN half way through collage and the first test I took with the 48G was a bit of a struggle. After the first 4 part question where the 4th step ended up being just combining the results from parts 1-3 that I had absentmindedly left on the stack I was sold. Just pressing + and * was SO much better then typing everything back in and verifying 3 numbers and hoping I didn't mess up a number.

9y agoHN ↗

For anything more complex than a + b, I find RPN to be superior. I'll speak specifically about a calculator like the HP50g. Pardon my rambling.

The first advantage is that you calculate in the same order you'd do it by hand. Not only is that more natural, but it also encourages understanding the problem because you don't just blindly copy/paste some convoluted formula.

Saving intermediate results is not only incredibly easy, but can be very organic and spontaneous. As I'm solving the problem, I can recognize an interesting sub-problem and simply run off a copy (pick or dup then rotate the stack).

The infix issue is that you generally don't know what parts are interesting until you're mid-calculation. By that point, you'll be scrolling side-to-side to strip the outer parts and then doing a bunch of paren balancing. Even worse, because there's the temptation to just write everything and mash enter, you may not even recognize that it's of interest.

Integrating new functions is also seamless. Functions are just small forth programs that manipulate the stack. Once I add a function to my function row, it's a single button press to execute it.

For a simple example, let's say that I'm doing parallel/series resistor calculations. I would add a rule (lets call it para) for calculating parallel resistors that would be something like `inv swap inv + inv` assuming I just entered the two resistors (swap flips the position of the bottom two stack items and inv is inverse).

Now, to calculate a circuit with two sets of parallel resistors in series with each other and in parallel to another resistor, we do `r1 ent r2 para r3 ent r4 para + r5 para` (ent is the enter key). That reads "enter the first two resistors and find the parallel. Enter the second two and find the parallel. Add those results. Enter the last resistor and find the parallel." That is exactly how you'd think through the problem if you didn't have a calculator.

In infix that would be `para(r1, r2) = 1 / ((1 / r1) + (1 / r2))` and then `para((para(r1, r2) + para(r3, r4)), r5)`

From a mechanical perspective though, the RPN version has 5 keypresses to program the function and is very short while the infix version is much more complex. For the final calculation, only 6 non-number keypresses are needed in RPN. For infix, if you had the complete foresight to predict every single paren, you'd need 20 keypresses, 25 if you want sane spacing, and many more if you missed something. As this illustrates, RPN is generally faster and easier.

I'd finally note that RPN and forth tend to become confusing for complex reusable functions, but I'm generally going to do those on my desktop and input/output from a file anyway.

tl;dr RPN calculates in the order your brain does. It's faster and less error prone than infix (due to fewer keypresses). It encourages comprehension of the material and makes recognizing/saving partial solutions organic and easy.

9y agoHN ↗

Thanks for writing this. It sounds like something I would like to learn. I'm not calculating parallel resistances much these days but I'm a sucker for efficiency, even if it's just a few keystrokes on a calculator.

9y agoHN ↗

This gets me thinking, if you were to design the perfect calculator, what would it look like?

(The best calculator that I've seen is running Mathematica on a standard pc, but is there really no way to improve on that interface, assuming that you're making a special purpose device?)

9y agoHN ↗

I've often wished I could use my HP50g as a keypad for entering mathematical expressions on my PC. The calculator on its own is great for short to intermediate length problems, but a Mathematica/Jupyter style notebook interface running on a PC is far better when plotting is involved or when the problem gets too complex or the data set too large. But a standard PC keyboard is pretty inefficient for math input beyond what the number pad can handle, and I'd prefer to build expressions in the calculator's RPN environment and then send them over the USB port.

9y agoHN ↗

I went into their simulator and asked it for the square root of 2. Answer: 1.414214 (yup, just 6dp). Then I asked for the square of that: Ans^2. Answer: 2.000001.

So it's not just that it's only displaying a small number of digits. Its actual working precision is really bad too.

For many applications it doesn't matter -- often just a few significant figures are more than enough. But I'd consider this level of inaccuracy to disqualify the calculator for serious use.

9y agoHN ↗

That's good, I suppose, but the fact that anything like this was ever in there kinda suggests something fundamentally wrong in their approach. But I haven't looked at the actual code, and maybe I'm being too pessimistic.