5 ms·
Tamgucalc: A spreadsheet in character mode with Lisp formulas
- ComputerGuru 6y agoSeems interesting. I was curious about how mouse support was retrofitted into the app but discovered that the commit messages are unfortunately absolutely useless for seeing recent changes. They’re all “update xxx.cpp” or just “bug” [sic].
- clauderoux 6y agoplease accept my apologies, I should be more verbose in my comments. The whole implementation is in tamgusys.cxx. See inmouse and outmouse for more details. Basically, inmouse activates the mouse catching events, which are sent through getchar. Once, the mouse has been activated, you can use some primitives mouedown1 our mouseup, which takes as input the string returned by getchar and returns the x,y coordinates
- ComputerGuru 6y agoNo worries, thanks for taking the time to explain! I find commit messages help “future me” more than anyone else, I never regret the time it takes to flesh them out (and tend to regret when I don’t).
- clauderoux 6y agoActually, I have another private GitHub, where I do most of my experiments and which is bit more informative. When my code executes, I then push it on the official one, hence the lack of comments.
- clauderoux 6y agoBy the way, I have updated tamgusys.h to integrate mouse support in Windows consoles...
- smabie 6y agoAt first glance, it seems like Lisp is inappropriate for spreadsheets: the syntax is simply too verbose and heavy. But cool project, I've always wanted to make a terminal spreadsheet app. Maybe with some custom APL-like language. Now that would be cool!
- the-dude 6y agoThe 'first' spreadsheet was a terminal app, and also the 'killer app' for the PC : Lotus 1-2-3. https://en.wikipedia.org/wiki/Lotus_1-2-3 https://en.wikipedia.org/wiki/Lotus_1-2-3
- deleted 6y ago[deleted]
- mayoff 6y agoThe first spreadsheet app was VisiCalc.
- cardiffspaceman 6y agoIronically the second, and quite visible paragraph of the 1-2-3 article mentions VisiCalc as first.
- artsyca 6y agoI may disagree with what you have to say, but I shall defend, to the death, your right to say it. -- Ok all drama aside I can't help feeling like LISP is the best language you could have in this context because it's verbose, unambiguous, highly encapsulated and old school not to mention hardcore. Anyone using a spreadsheet in emacs would be well versed in this sort of paradigm and I personally love lisp because it's how we cut our teeth in functional programming in university. Not to mention it's perfectly suited to list processing..
- clauderoux 6y agoI fully agree with you. When you see how cumbersome Excel formulas can be when you want to mix different operators together, with their "(",";" and so on and so forth. I wonder how you can say that Lisp is too verbose for this task.
- joseph8th 6y agoCool project for sure, but it does provoke the obligatory Emacs org-mode as a spreadsheet plug. [1] I use it often, mostly for my D&D character sheet, but occasionally for work. Works the same in terminal or GUI, with elisp formula evaluation (including Emacs calc functions), column types, table relationships, and, with org-babel, access to other languages and their libraries (for plotting, etc.) Can even read from DB into an org table and then manipulate data and write back. [1] https://orgmode.org/worg/org-tutorials/org-spreadsheet-intro.html https://orgmode.org/worg/org-tutorials/org-spreadsheet-intro...
- dig1 6y agoBeside Calc and elisp, you can use almost any other programming language for formula calculations as well [1], which makes it extremely powerful. [1] https://orgmode.org/worg/org-contrib/babel/intro.html#spreadsheet https://orgmode.org/worg/org-contrib/babel/intro.html#spread...
- imglorp 6y agoHeh, not just calc and org, there's several dedicated spreadsheet modes, too. https://www.emacswiki.org/emacs/SpreadSheet https://www.emacswiki.org/emacs/SpreadSheet
- clauderoux 6y agoOf course, you are right. However, tamgucalc launches instantly in your terminal, which is not always the case for emacs, which is sometimes a bit to slow.
- joseph8th 6y agoNot so. Emacsen run server-client. Instantaneous.
- e12e 6y agoInteresting. On a somewhat related note, I wonder how much work it would be to port scheme in a grid to racket, or somehow get it working on modern distros/os' (it's been abandoned for a while, and uses a ui toolkit that's been abandoned too): http://siag.nu/siag/ http://siag.nu/siag/
- inetsee 6y agoThe ftp link on the front page for the sources is unresponsive (at least on Firefox). The sources can be found at http://siag.nu/pub/siag/ http://siag.nu/pub/siag/
- e12e 6y agoRight, for the adventurous - I did manage to build it at one time or another - possibly on Debian 4 or 5 or so. Part of the problem is libXawM (Athena widgets): http://siag.nu/pub/siag/binaries/linux/siag-ldd http://siag.nu/pub/siag/binaries/linux/siag-ldd I'm not sure if libXawM is a variant of libXaw or an extension... But apparently libXaw lives at: https://gitlab.freedesktop.org/xorg/lib/libxaw https://gitlab.freedesktop.org/xorg/lib/libxaw