[HN Gopher] SpeedCrunch
___________________________________________________________________
SpeedCrunch
Author : hkc
Score : 226 points
Date : 2021-12-23 13:10 UTC (9 hours ago)
(HTM) web link (speedcrunch.org)
(TXT) w3m dump (speedcrunch.org)
| Centigonal wrote:
| This seems really cool (esp. WRT unit conversions), but I'm
| already pretty entrenched in using Excel, R, or Python for
| calculations, since I usually already have one or more of those
| open. Is it worth learning another tool to pick up something like
| this?
| NathanielK wrote:
| I find SpeedCrunch can be very useful along side excel once you
| get a feel for it. Often I use SpeedCrunch's unit conversion
| and SI prefix features to distill all the magic numbers I need
| and double check my formula. After that, creating a formula in
| excell (or another language) to deal convert data in a strange
| format is easy.
|
| Learning SpeedCrunch is easy if you're already comfortable with
| single-line calculators. It has autocomplete that will help
| learn some of the SpeedCrunch specific units. For example,
| year_julian vs year_tropical, gallon_US vs gallon_UK are
| slightly different.
| unemphysbro wrote:
| echo "expression" | bc -l
|
| :)
| clockwork-dev wrote:
| I love _SpeedCrunch_ , especially for dealing with different
| bases. For back-of-the-napkin type math, _OpalCalc_ is my
| favorite.
|
| https://skytopia.com/software/opalcalc/
| QuadrupleA wrote:
| The Python repl / console also makes a great desk calculator (for
| those who haven't thought to use it that way) .
| l-p wrote:
| And with PYTHONSTARTUP you can get creative.
|
| I only use it to display numbers as hex and binary [1] but I'm
| sure it can be useful in many other ways.
|
| [1]:
| https://github.com/L-P/dotfiles/blob/39ac8d5849a593ef1633ed8...
| db65edfc7996 wrote:
| Ever since Windows released their embarrassing touch-friendly
| calculator app which takes 1+ seconds to start, SpeedCrunch has
| been my goto across platforms.
|
| I was recently doing some (silly) combinatorical math, where I
| wanted to know factorial(400_000) and SpeedCrunch happily
| produced the answer immediately. Incredibly satisfied.
| phoboslab wrote:
| After trying a lot of different calculators, I just settled on
| this little shell script to launch/raise a nodejs repl with
| FN+Backpspace: if [ $(xdotool search --name "calc
| repl") ]; then xdotool search --name "calc repl"
| windowraise else xfce4-terminal \
| --title="calc repl" \ --color-bg=#123 \ --color-
| text=#fec \ --hide-scrollbar \ --font="Deja Vu
| Sans Mono 14px" \ --geometry 40x14 \ --execute
| node -i -e "$JSREPL" fi
|
| ($JSREPL just contains some extra functions that I want in a
| calculator)
|
| I can easily go back to previous calculations and results, define
| vars, run loops whatevs. Having it on a key combo and launching
| the terminal with a distinct text/bg color really makes a
| difference. It also launches faster than most other calculators I
| tried. For my purposes (non-scientific, mostly programming
| stuff), it's been great.
| krylon wrote:
| I _LOVE_ SpeedCrunch. I do not need a calculator very often, but
| when I do, this is my calculator of choice. It doesn 't support
| graphing, but it understands units, which is both useful and
| cool.
|
| I like the UI, too, for being simple but very much functional
| without getting in my way. And it supports a persistent history
| across sessions, which I also like.
| netizen-936824 wrote:
| Yes, I absolutely _love_ being able to scroll back through my
| old calculations. It comes in handy so often
| unanimous wrote:
| SpeedCrunch looks very promising, and I've used it a lot in the
| past. I'm sad to see that they still haven't released the order
| of operations bug fix [0] they made in 2017.
|
| SpeedCrunch does some operations in an order most people wouldn't
| expect. For example, SpeedCrunch says 1/2(-9.8) =
| -0.05102040816326530612
|
| [0] -
| https://bitbucket.org/heldercorreia/speedcrunch/commits/ac49...
| seanw444 wrote:
| Is that not correct? I guess I should touch on my order of
| operations. I thought distributing was part of the parenthesis
| step, that came before MDAS.
| qsort wrote:
| According to the mainstream interpretation, a/b(c) parses to:
| (* (/ a b) c)
|
| and not: (/ a (* b c))
|
| It's very ambiguous, though. No scientist would ever write
| expressions like that.
| kstrauser wrote:
| The disconnect is that a lot of people mentally treat
| implicit multiplication with a higher priority than explicit,
| which is pretty understandable. For instance:
| 1/3x
|
| is likely to be understood as 1/(3*x), because otherwise it
| would've been written like x/3. If that's true, then so
| surely 1/3(x)
|
| should be the same, right?
|
| Smarter people than I have argued both sides of this, and I
| don't have a strong opinion except to use parentheses if
| there's any possible ambiguity. Just saying, I totally
| understand why you'd come to that conclusion, and I probably
| would too.
| commoner wrote:
| Yes, that answer is incorrect since it breaks with calculator
| conventions. The contents of the parentheses are calculated
| first (P in PEMDAS), and then the multiplication is done
| later (MD in PEMDAS). Implicit multiplication (which does not
| explicitly use a multiplication sign) has the same priority
| as any other multiplication: a/b(c) = a/b*c =
| (a/b)*c
|
| Since SpeedCrunch only accepts input in a single line, this
| would be the least unexpected way to interpret the
| expression, and consistent with how graphing calculators
| operate.
|
| A horizontal fraction bar, which SpeedCrunch does not support
| (since it only accepts single-line input), implies
| parentheses around the numerator and denominator. For
| example: ax -- = (ax)/(by) =
| (a*x)/(b*y) by
|
| compared to ax/by = a*x/b*y = ((a*x)/b)*y
|
| (If the above is not displayed correctly, please view this
| comment on the HN website.)
|
| Implicit multiplication is a point of frequent confusion:
|
| - https://www.nytimes.com/2019/08/05/science/math-equation-
| pem...
|
| - https://www.themathdoctors.org/order-of-operations-
| implicit-...
|
| To guarantee that the expression does not get misinterpreted,
| the person writing the expression should always add
| parentheses/brackets and explicit multiplication signs, or
| use horizontal division bars where possible, to make the
| expression unambiguous.
| Jerrrry wrote:
| / https://en.wikipedia.org/wiki/Division_sign
|
| avoids this entirely.
|
| or if you wanna be really fkn nerdy:
|
| /, instead of /
| teawrecks wrote:
| Almost every one of those Facebook reposts with an
| ambiguous math equation features an obelus. It only seems
| to create confusion.
| commoner wrote:
| You're right. The division sign is also unambigious.
| Unfortunately, it's not usually found on keyboards so
| many people are accustomed to using slashes.
|
| SpeedCrunch and other calculator apps still need to have
| an unambiguous way of interpreting the expression when
| the user types or pastes in a slash. The apps could
| convert slashes to division signs before displaying them
| on the screen, since that's how the symbols should be
| interpreted. This is how GNOME Calculator resolves the
| ambiguity.
| skyfaller wrote:
| I love SpeedCrunch, but lately I've been using Kalker on the
| command line: https://kalker.xyz/
|
| It's written in Rust ;-)
| paddim8 wrote:
| Wait... I made that! Nice
| jicka wrote:
| Speedcrunch is amazing.
|
| I often have to do many simple calculations (adding numbers from
| a pdf,...) and having full history and being able to keep
| speedcrunch over the other windows is perfect. I also increased
| font-size dramatically to improve readability on big screens.
|
| Sure, there are more advanced tools. But the simplicity and
| lightness on ressources is what makes it my go-to calculator.
| middleclick wrote:
| This is one of the tools that I use everyday but I don't
| appreciate it much because it always works for me and I don't
| think twice.
|
| Thank you to the authors for working on it. Time to send them a
| donation!
| msravi wrote:
| Somehow, it seems speedcrunch has a problem in dealing with big
| numbers. For example, I can do:
|
| (3(7^204+7^202+7^200)+7(3^204+3^200)-210) mod 10
|
| in the calculator that comes with linux and get the right result
| (which is 7), but speedcrunch overflows and outputs 0. I've set
| the result format to fixed decimal and precision to 50 digits,
| but that doesn't seem to make a difference.
|
| Edit: Just tried it with insect, which also gets it wrong.
| hatsuseno wrote:
| If you mean bc as the 'calculator that comes with linux', thats
| somewhat to be expected. Speedcrunch deals with a maximum
| integer size of 256 bits (~1.15e77), while bc is an arbitrary
| precision calculator.
| msravi wrote:
| Sorry, should have been more specific. I was referring to the
| gnome calculator: https://wiki.gnome.org/Apps/Calculator
| B-Con wrote:
| I've been using this as my Linux GUI calculator for a while
| (maybe a decade?). It's a good blend of functionality and
| simplicity and after I started using it I literally haven't
| looked for anything else.
| bjoli wrote:
| I believe it was default in kubuntu at some time. Or at least
| heavily pushed.
| yboris wrote:
| I _love_ SpeedCrunch on Windows, but for MacOS I prefer _Numi_
|
| https://numi.app/
| crispyalmond wrote:
| How does Numi compare to Soulver 3[0]?
|
| [0] https://soulver.app/
| tksb wrote:
| I have your exact question in mind. If the OP hasn't tried
| Soulver, they must! It's a gem of computing for me and I lean
| on it regularly.
| kstrauser wrote:
| I have a single, but major, complaint with Soulver: version 3
| for iOS/iPadOS doesn't exist yet. There are a lot of
| calculations I'd want to do both at my desk and out on the
| road, and I'd like them synced. Calca handles that pretty
| well and I've been using it over Soulver lately for that one
| specific reason. I like Soulver more than Calca, though, and
| the second Soulver 3 for iOS comes along I'll switch back.
| faffernot wrote:
| Am I a weirdo for using the console (F12) in my browser for
| calculating stuff like tips, rent/utilities for the month, and
| other such things? Lol.
| atdrummond wrote:
| Seeing as others in this thread use the bog standard console -
| and I've seen other developers do exactly what you're
| referencing - it seems such console usage isn't unique to you
| at the very least.
| taviso wrote:
| No, I always use gdb :)
|
| It also has a persistent history, variables, functions, base
| conversion, etc. I guess it doesn't have unit conversion or a
| math library, but it's a great programmers calculator.
| eichin wrote:
| Hah, I used gdb print expression for a calculator for decades
| (especially p/x for hex conversions.) I finally switched to
| "just fire up a python repl instead" around 2010...
| cyounkins wrote:
| Also in this space is insect: https://github.com/sharkdp/insect
| and https://www.insect.sh/
| nusaru wrote:
| This is from the same guy who made fd and bat!
| seanw444 wrote:
| I used to use this back when I mained Windows. Ever since moving
| primarily to Linux, and getting familiar with Emacs, Calc mode
| simply beats every calculator I've ever used in total
| functionality. However, there are certain cases where I also like
| to use https://insect.sh if lots of units are involved.
| CyberShadow wrote:
| Emacs Calc (not unlike much of the rest of Emacs) is a little
| ... special. By default, it calculates 4/2*2 as 1, because
| multiplication has a higher precedence than division.
|
| https://orgmode.org/manual/Formula-syntax-for-Calc.html
| bufferoverflow wrote:
| > _because multiplication has a higher precedence than
| division_
|
| Wow. That's actually quite bad.
| ezekg wrote:
| This may be slightly off topic, but what are some other small,
| lesser known websites like this one that people use regularly?
| For me, it'd be https://rubular.com and https://crontab.guru.
| I've used those 2 sites pretty regularly across my entire
| career.
| xwowsersx wrote:
| insect.sh is so cool!
|
| ``` (6 Mbit / s) x 1.5 h GB = 4.05 GB ```
|
| Love that. Thanks the recommendation.
| marcosdumay wrote:
| You may like qalc. It's an apt-get away and does all those
| units.
| widea wrote:
| One thing I do not like about Speedcrunch: there is a slight
| delay between pressing enter and showing the result, just enough
| to be noticed.
| jicka wrote:
| Try clearing your history. I notice the delay only when I have
| dozens / hundreds of steps in history.
| widea wrote:
| That solved it, thanks! :-) Now I have nothing but good words
| about Speedcrunch!
| hatsuseno wrote:
| Except maybe that long histories create noticeable lag,
| that is.
| crispyalmond wrote:
| I just installed it to try it out and I love the idea but this
| is the worst part about it. Even with no history as another
| said, it still has a delay.
| crispyalmond wrote:
| Looks like my delay happens when converting between units.
| It's almost like it prompts me to confirm when I press Enter
| so I end up having to hit it twice. Other than this it is
| really great.
| mpyne wrote:
| Fun fact about SpeedCrunch history, the software descends from an
| off-hand blog post by Roberto Alsina, a KDE developer,
| complaining about KCalc usability [1]. Back then developers were
| often just unthinkingly cloning 'skeuomorphic' interfaces like
| Apple used back then, designing user interfaces that resembled
| physical objects instead of taking advantage of the opportunities
| afforded by computers.
|
| His blog post elicited several rapid responses from developers
| taking his PyQt-based mockup and turning it into a 'real'
| application ([2], [3]). One of those was Ariya Hidayat's
| "SpeedCrunch", which has been actively maintained up to the
| present day. I can't find Ariya's original 2004 announcement, I
| think the original link was
| http://ariya.pandu.org/blog/archives/2004/10/calculator-feve...
| but that's dead now.
|
| But it's really neat to see how this all started from a day or
| two of hacking on a solution to a simple problem.
|
| [1] https://ralsina.me/stories/33.html [2]
| https://ralsina.me/weblog/posts/P245.html [3]
| https://ralsina.me/weblog/posts/P247.html
| driminicus wrote:
| This looks cool! I have been using qalculate
| (https://qalculate.github.io/) recently, which seems similar. Has
| anyone used both and can tell me how they compare?
| wiz21c wrote:
| SpeedCrunch is less powerful but I find its interface much
| easier to understand. SpeedCrunch is really nice. It'd be nice
| if it was a tad more powerful (for example, to plot quick
| graphs)
| ajot wrote:
| I've used it in the past, until one day they removed the
| buttons/skeuomorphic UI. A couple of years ago, I found it again
| and is now my daiky driver. It has a newer skeuomorphic
| interface, which I only use if I can't remember the name of a
| function.
|
| What I like the most is the seamless integration of different
| notation styles, mainly using commas and points as decimal
| separators.
| morpheuskafka wrote:
| I loved this on Windows but haven't used it since switching to
| macOS since it seems to not support Retina screens very well,
| anyone know of a workaround?
| Aaronmacaron wrote:
| Love it. Use it as my default calculator when I need one
| occasionally. I would love to see support for plotting graphs and
| solving equations. Also a more touch friendly UI would be nice
| when using my 2-in1 laptop in tablet mode when doing math
| excercises for uni.
| bitigchi wrote:
| Their macOS download link is broken. Oh well.
| gravypod wrote:
| This looks great but I wish it had some of the features that NaSC
| [0] has. It's a really amazing tool but it's awfully crashy to
| the point where it's barely usable. That being said being able to
| say `solve(... = 512 MiB)` and getting an answer is unbelievably
| amazing.
|
| [0] - https://appcenter.elementary.io/com.github.parnold-x.nasc/
| dan-robertson wrote:
| Their demo of their efficient interface compared to GNU Calc:
| SC: 5+8 Enter [4 keys, 1 shift] Calc: 5 RET 8 + [4 keys, 1
| shift] SC: 5*(113+23) Enter [11 keys, 3 shifts] Calc:
| 5 RET 113 RET 23 + * [10 keys, 1 shift] SC: 7*ans Enter [6
| keys, 1 shift] Calc: 7 * [2 keys, 1 shift] SC:
| sqrt(1231+41) Enter [14 keys, 3 shift] Calc: 1231 RET 41 +
| Q [9 keys, 1 shift]
|
| Maybe it's more efficient than clicking buttons with a mouse but
| it doesn't feel more efficient than the calculator I already use,
| nor does it seem to be better integrated with the software I use.
| It doesn't even seem more efficient than the scientific
| calculator I used in high school.
|
| I think I'm put off more by the lack of graphing and (as far as I
| could tell skimming their site) array/vector/matrix functions,
| which are the main things I do with Calc.
| atdrummond wrote:
| I don't have a horse in the race (I find myself still using the
| default of whatever OS I'm using more often than I specifically
| choose SC) but I will say that one can easily configure SC to
| operate with past calculated results and other references from
| previous operations, just as you did with your cited GNUCalc
| examples. If such shortcuts are utilised, one will find SC
| requires the same number keystrokes - or fewer.
| JoshTriplett wrote:
| You're comparing infix with RPN. There are more factors there
| than just number of keystrokes; not everyone enjoys working
| with RPN or finds it comfortable. RPN is a deliberate tradeoff
| in favor of speed/efficiency at the expense of other things.
| themodelplumber wrote:
| Whoa, I didn't realize it had color themes and font options on
| top of everything else. I just subbed it in for my normal
| calculator software shortcut, this is great. Thanks for posting
| op.
|
| (Edit: The HTML export feature even preserves the color theme.
| It's a web publishing tool now! Hahaha)
| [deleted]
| sillysaurusx wrote:
| A small plug for my own script: I'm proud to present the most
| useful, least-work script I've ever written: `math`
|
| https://github.com/shawwn/scrap/blob/master/math
| #!/bin/sh scale=4 # results will print to the 4th
| decimal echo "scale=$scale; $@" | bc -l
|
| It just yeets all its arguments into bc -l, so you can run math
| 1+2-3 or math '(1024 - 7)*10' or whatever else you want. I even
| use it in other shell scripts, since bash's math facilities are
| rather limited and inconsistent across sh vs bash.
| :~$ echo $(((3+4)*5)) 35 :~$ echo $(((3+4)*5/1024))
| 0 :~$ math '((3+4)*5/1024)' .0341
|
| It has all the precision you want, as long as you only want
| results up to the 4th decimal.
|
| It's surprising how much I use it. I find myself absentmindedly
| typing out math 220*1024*1024 while talking to people in meetings
| (what, you don't have meetings where it's crucial to know how
| quickly 220MB can be transferred?) and like thousands of other
| situations.
|
| Meanwhile, funny story: I bought an iPad recently, and discovered
| that it's a delightful way to pass the time while shopping. You
| can stick it in your cart and pull up 3blue1brown and zone out
| while getting your pineapples. So I was doing that, and I went to
| reach for the calculator app to figure something out, and
| discovered that there is no calculator on iPads.
|
| The punchline is that if you want a calculator on an iPad, it'll
| either cost you $5 or your soul: https://i.imgur.com/CJsDtB0.jpg
|
| Someone _please_ make SpeedCrunch, but MsPaint. I miss MsPaint
| every day. There 's an OS X app called Paintbrush which is
| similar, but unfortunately quite buggy and somehow even more
| limited in certain respects. Being able to just paste a
| screenshot and draw a red circle within 5 seconds is something
| that I wish we could do in 2022. Nay, I say that it's our right
| as programmers to be able to do that. </rallying cry>
|
| EDIT: formatting. TIL you can backslash-escape asterisks on HN.
| namanyayg wrote:
| I use Flameshot for screenshots. Onpaste (web) is good too.
| hk__2 wrote:
| > I miss MsPaint every day.
|
| I'm like you. On Linux there's KolourPaint that does the job,
| but on macOS I never found any desktop app that does what I
| want. In the browser, there's this clone [1] that mimicks all
| the features of the original one. You can "open" a file, "save"
| it, and everything in the meantime is saved in local storage.
|
| [1]: https://jspaint.app/
| parentheses wrote:
| `bc` would be great interactively
| granddave wrote:
| This is a great piece of software that's installed on all my
| machines!
| NathanielK wrote:
| That's one of my favourite parts of free software. No worries
| about licensing, any computer I pull out of a dumpster gets a
| full suite of powerful software I'm familiar with.
| [deleted]
| zokier wrote:
| It would be nice to know how numeric types are implemented,
| especially for something advertised as _high-precision_. Does it
| use some arbitrary precision floats or what?
| hatsuseno wrote:
| From the documentation: * However, only about 78 significant
| digits are stored at any point. * SpeedCrunch stores integers
| with a precision of up to 256 bits.
| NathanielK wrote:
| A little bit jank, but there is also a port for android
| available[0]. It still has SI prefixes and unit conversion, but
| you need to have a good keyboard to really take advantage of it.
| [0] https://github.com/mikkosyrja/speedcrunch-android
| TomGullen wrote:
| Is a decent scientific calculator simply a missing feature on
| Google?
| [deleted]
___________________________________________________________________
(page generated 2021-12-23 23:00 UTC)