Next video will be on embeddings and hopefully done soon-ish.
To answer your question:
EECS Major in college; 20 years of engineering and product management experience. I have given a few technical talks at conferences and I do enjoy the process of explaining things though it takes a surprising amount of work.
When I went to school ironically neural nets were the one thing they didn't cover in the intro to AI courses. I've basically learned modern AI from just filling my own curiosity over the years through online resources on nights and weekends. Learned a lot from Jeremy Howard's Fast.ai and Andrej Karpathy's stuff just like everyone else. I really wanted to know how every step of GPT worked, kind of like how you learn Computer Architecture in college: you learn how CPUs work in principle starting with circuits. Then I got a crazy idea the whole model could fit in a spreadsheet because well I just really like spreadsheets. Went down a 2-3 month rabbit hole in my non-existent sparetime to make it work.
While I created spreadsheet-are-all-you-need.ai as teaching tool, as I've been playing with it I've been having a growing suspicion the spreadsheet interface for AI might be useful beyond teaching, either as a power user control interface or for interpretability. For example, making simple changes to the architecture of GPT and observing how it changes the model behavior can be as simple as cloning a tab and a few spreadsheet functions. Of course, you can do the same in python as well so it remains to be seen.
A HUGE THANKS!
Cannot answer for parent post, but can share personal perspective. I love Atom / RSS because it allows me to aggregate all the information that I care about in one place. It greatly improves the signal to noise ratio and spares my communication channels for direct human interactions.
I'm so happy to hear that I had some part to play in inspiring such a marvellous project.
It's another reason to potentially port this thing to the browser one day... https://github.com/ianand/spreadsheets-are-all-you-need/issu...
Is RLHF even strictly necessary?
Even if URIAL works with GPT2 small, the really small context length in the Excel file as currently implemented will make it hard to leverage. I've considered a more flexible implementation to support a longer context length (e.g. using Macros to build the layout of the sheet) but have prioritized the teaching videos first.
[1] https://allenai.github.io/re-align/index.html [2] Summary https://twitter.com/intuitmachine/status/1732089266883141856
Holy color use, Batman! Someone take the crayons away from that web designer.
It was discussed here some time ago: https://news.ycombinator.com/item?id=38505211
Like spreadsheets, domain names are a bit of an obsession for me. One of the other AI side projects I'm working on is a CustomGPT to help come up with domain names (https://niftynamer.com) so I don't have to come-up-with-another-unwieldy-long-domain-name.again.
The introduction video on the page is very nice indeed to get a basic idea on the inner working of the Excel sheet.
A question for the author: will it be open sourced?
There's a GitHub link on the page: https://github.com/ianand/spreadsheets-are-all-you-need
It’s often true though. So many things I think “I could make an app for that” I wind up just using a spreadsheet for. At least it helps me explore the use cases more deeply for when I’d want to actually take it to the next level.
I hung out with a friend while they solved Advent of Code challenges in Excel, that was a trip to watch.
It sounds cool, but I'd hate to rely on it since Google will probably shut it down.
Requesting just "AppSheet" gives the right result.
You mention Excel, and a bunch of us do it Google Sheets, but at this point it's not about sheets of data anymore and more about the interface and runtime, and we have full applications running in it.
I remember a colleague running API tests inside his Excel sheet to more easily check for the different parameter combinations, but telling everyone he was still using Postman just to avoid discussing it.
https://news.ycombinator.com/item?id=26057530
https://www.cs.cmu.edu/~bam/papers/VLtax2-jvlc-1990.pdf
https://news.ycombinator.com/item?id=26061576
>Brad Myers' paper answers the age-old argument about whether or not spreadsheets are visual programming languages!
>Google sheets (and other google docs) can be programmed in "serverless" JavaScript that runs in the cloud somewhere. It's hellishly slow making sheets API calls, though. Feels like some kind of remote procedure call. (Slower than driving Excel via OLE Automation even, and that's saying something!) Then it times out on a wall clock (not cpu time) limit, and breaks if you take too long.
>A CS grad student friend of mine was in a programming language class, and the instructor was lecturing about visual programming languages, and claimed that there weren't any widely used visual programming languages. (This was in the late 80's, but some people are still under the same impression.)
>He raised his hand and pointed out that spreadsheets qualified as visual programming languages, and were pretty darn common.
>They're quite visual and popular because of their 2D spatial nature, relative and absolute 2D addressing modes, declarative functions and constraints, visual presentation of live directly manipulatable data, fonts, text attributes, background and foreground colors, lines, patterns, etc. Some even support procedural scripting languages whose statements are written in columns of cells.
>Maybe "real programmers" would have accepted spreadsheets more readily had Lotus named their product "Lotus 012"? (But then normal people would have hated it!)
>I Was Wrong About Spreadsheets And I'm Sorry:
https://www.reifyworks.com/writing/2017-01-25-i-was-wrong-ab...
Excerpt from "Taxonomies of Visual Programming and Program Visualization", by Brad A Myers, 1990/3/1, Journal of Visual Languages & Computing, Volume 1, Issue 1, pages 97-123:
Spreadsheets, such as those in VisiCalc or Lotus 1-2-3, were designed to help nonprogrammers manage finances. Spreadsheets incorporate programming features and can be made to do general purpose calculations [71] and therefore qualify as a very-high level Visual Programming Language. Some of the reasons that spreadsheets are so popular are (from [43] and [1]):
1. the graphics on the screen use familiar, concrete, and visible representation which directly maps to the user's natural model of the data,
2. they are nonmodal and interpretive and therefore provide immediate feedback,
3. they supply aggregate and high-level operations,
4. they avoid the notion of variables (all data is visible),
5. the inner world of computation is suppressed,
6. each cell typically has a single value throughout the computation,
7. they are nondeclarative and typeless,
8. consistency is automatically maintained, and
9. the order of evaluation (flow of control) is entirely derived from the declared cell dependencies.
The first point differentiates spreadsheets from many other Visual Programming Languages including flowcharts which are graphical representations derived from textual (linear) languages. With spreadsheets, the original representation in graphical and there is no natural textual language.
Action Graphics [41] uses ideas from spreadsheets to try to make it easier to program graphical animations. The 'Forms' system [43] uses a more conventional spreadsheet format, but adds sub-sheets (to provide procedural abstraction) which can have an unbounded size (to handle arbitrary parameters).
A different style of system is SIL-ICON [49], which allows the user to construct 'iconic sentences' consisting of graphics arranged in a meaningful two-dimensional fashion, as shown in Figure 5. The SIL-ICON interpreter then parses the picture to determine what it means. The interpreter itself is generated from a description of the legal pictures, in the same way that conventional compilers can be generated from BNF descriptions of the grammar.
10. Conclusions
Visual Programming and Program Visualization are interesting areas that show promise for improving the programming process, especially for non-programmers, but more work needs to be done. The success of spreadsheets demonstrates that if we find the appropriate paradigms, graphical techniques can revolutionize the way people interact with computers.
https://news.ycombinator.com/item?id=26061279
>By the way, something I always meant to ask you, Brad: How does "C32" fit into your acronym theme of gemstones and rocks? Is it a teeny tiny 4x4x2 carbon atom block of diamond? How many carats would that be?
>Brad Myers wrote several articles in that book about his work on PERIDOT and GARNET, and he also developed C32:
>C32: CMU's Clever and Compelling Contribution to Computer Science in CommonLisp which is Customizable and Characterized by a Complete Coverage of Code and Contains a Cornucopia of Creative Constructs, because it Can Create Complex, Correct Constraints that are Constructed Clearly and Concretely, and Communicated using Columns of Cells, that are Constantly Calculated so they Change Continuously, and Cancel Confusion
>Spreadsheet-like system that allows constraints on objects to be specified by demonstration. Intelligent cut and paste. Implemented using Garnet.
I run one for a financial services firm and often get "excel couldnt merge changes, want to save a copy or discard". We tested this out, 2 users make editing different sheets on a single excel workbook hosted on sharepoint and excel can't figure out how to merge. If someone is on VPN and connection drops this also often occurs.
I'm not recommending any of this, but it can go as far as you want...
- understanding that formulas can return arrays, not just single elements (easier in more recent versions of Excel which have made this more consistent for every formula), so you can e.g. AVERAGE(IF(A1:A100>100,A1:A100,FALSE)) get the average of the values between A1:A100 which are greater than 100. the FALSE parameter can be omitted there but I left it in for clarity. Interestingly this means AVERAGEIF() is just syntactic sugar, so I prefer to avoid it. it makes it easier to, say, change to MEDIAN(IF(...)) later, since MEDIANIF() doesn't exist
- if you combine the first two bullets above, you'll enter the fifth dimension
- don't ever hardcode a value if you can refer to it somewhere else. want to use INDEX(MATCH()) and AVERAGE to, say, take some average value over some time period? put the start and end dates into their own separate cells with no formulas, and then refer to those cells in your formula. if you later need to change the time period, you won't have to modify all your formulas, just those values
- LET() is strange at first but super powerful. most people still don't use it
- Separate data from presentation. This point can't be stressed enough. I care about it so much I'm literally building an Excel competitor to enforce this. If possible, separate raw data, data transformation and data presentation.
- most people know you can name cell ranges and refer to them in your formulas. most people don't know you can also name formulas and refer to them elsewhere. your "average value over time" calc doesn't even need to be in a cell anywhere, it can just exist as a defined value in a named range. now named ranges are hard to see (only visible if you open the name manager), harder to debug (you basically get just a #VALUE error most of the time, forcing you to copy-and-paste the named range into a cell to debug it) and they get copied to other workbooks when you copy-and-paste across workbooks, which makes them super messy.... but for short formulas they can be pretty nifty
- LAMBDA() is even more recent than LET() and basically makes named ranges more useful. even fewer people use it
That's how I do it and it works great. I've gained a new appreciation for Excel.
After those 10, they break them down by category, and have one for Financial Functions, which is going to be useful for you. Similarly, the Logical, Math & Trig, and Stats functions, will all be useful for looking at a Finance firm's spreadsheets.
[1] https://support.microsoft.com/en-gb/office/excel-functions-b...
Link from Reddit post: https://www.reddit.com/r/excel/comments/14zj5vz/you_suck_at_...
* Avoiding hardcoding numbers, making input cells a certain color, etc.
* Knowing the all powerful F4 key that alternates between A1, $A$1, $A1, and A$1 (and knowing what each of these mean)
* Inserting blank lines above and below a summed range and including those rows inside of the sum formula (prevents formula from breaking if you move rows around)
Other than that you can do a lot of productive things with a combination of index/match and dynamic named ranges via offset formula.
I find I learn best from (good) books because they actually explain things coherently, and you can leaf through them to discover features and things that look interesting.
That sounds wild. Do you or your friend have anything to share about this?
The content itself is about demonstrating how an LLM/Neural net works using a spreadsheet and is a play on the title "Attention is All You Need". It has nothing to do with using a spreadsheet for most of your use cases.
First, we partially switched to Airtable, but soon abandoned it in favour of our own internal node/python tools. The company is now a lot larger and the tools are more robust/capable/clean now, but at the same time, they are much less flexible than the old spreadsheets.
I have seen that several times while I was a consultant. People run their stuff on spreadsheets. It’s a big mess but things get done . IT comes in and starts producing “professional” systems. Months of requirements gathering, then they deliver something. It’s not 100% right so people need to write tickets. IT may or may not make the changes. If they make a change it takes forever. People still need to do their job so they go back to spreadsheets.
Thanks! There's a truth to the name beyond just the play on the transformers paper. Definitely have thought about how many SaaS apps could be a spreadsheet and vice versa and often use them to create mini-apps (often via apps script).
* https://github.com/InkboxSoftware/excelCPU
* https://www.youtube.com/watch?v=5rg7xvTJ8SU
A twenty-four instruction assembly language is also provided.
https://web.archive.org/web/20230831003431/https://www.portu...
He actually quit the company to build it; I should find out what came of that.
Funny thing is that excel can do such thing but cannot replace dates within the sheet. For example on Windows in Office 2021 if I want to replace text cell which has value 2023-10-10 with new value 2023-10-11 I have only two options as the result: 10/11/2023 or 45210.
I wonder if it would work in https://rowzero.io/home ?
Interestingly it could fit within Powerpoint for the web's limits (my guess is that's intended for images).
I have considered a pure browser implementation https://github.com/ianand/spreadsheets-are-all-you-need/issu...
other than that, I agree with the other poster and the only issue I can think of is due to having a different number of digits after the decimal point causing some rounding error when comparing floats
Gsheets intuited that I wanted to do this multiple times and offered this formula:
> =RIGHT(A7,LEN(A7) - (FIND(CHAR(160),SUBSTITUTE(A7," ",CHAR(160),2))))
How is that related to anything?
Was it, at least, the correct formula for your need?
Yes it was correct.
It gave me 43h0m from "08 Jan 43h0m". Obviously over a column. I was able to adjust that to give me time durations.
Being a proper geek, my first inclination was to build a web app to keep track of that and so the people I am loaning cash to can also view their balance, but I realized that would involve maintaining state and login creds and a bunch of other variables I haven’t even considered, and maintaining this app would become a second, unpaid job.
Then I thought “I could just use a Google sheet and share it”, which is what I ended up doing. It’s easy to set permissions, I don’t have to worry about hosting, I can have it do any amount of arithmetic and light programming that I might need, as well as being automatic and reactive as I add information. It will be slower than something I would write in C obviously, but realistically for something involving budgeting the time savings will be on the order of milliseconds.
I love spreadsheets. They provide a gateway to programming for non-programmers, and they provide a low-effort means of playing with data.
The hyper-interactive nature of spreadsheets makes them kind of genuinely fun to tinker with. You can see results immediately, and you have enough logic (even in just the vanilla cells, not even counting JS or VBA) to implement a lot of algo stuff.
In this case, I don't think anything I'd do is going to be revolutionary, and I don't think I would have learned at that much, so Google Sheets was great.
In regards to "not paying on time", these are friends and family, so it's not like I'm going to go break their kneecaps or anything; if they're a bit short on the payment date we just push it back.
So it would absolutely be a second unpaid job, but I'll admit that I didn't specify why.