HN user

elzr

503 karma
Posts14
Comments40
View on HN

Whoa, that catalog of oscillators is beautiful! Thanks for taking the time to arrange it with your son and for sharing it with us. Can definitely see the appeal of having a giant wall tapestry of it. :D

Seeing all 43 oscillators all at once took my breath away because it reminded me so much of some prime-factor flowers I've been playing with for years. Perhaps you or your son might find them interesting: https://twitter.com/elzr/status/1733007772181233681

Thanks for the kind words whacked_new!

I agree entirely with your prediction: spreadsheet programming is different from interactive "control flow" programming... and it should remain different! The spreadsheet model of programming is easier to grasp and incredibly flexible. I think the key is that spreadsheets are time-less & space-full, I hint at this in the talk & see also my root comment for more elaboration on this.

What's exciting to me about lambdas is that they can be used to enhance this time-less, space-based style, like in the examples I elaborate around 18m47s: the habit tracker, timesheets & a spatialized Game of Life.

I imagine/hope that in a few years we will have a culture of casually importing magical custom functions that will become polished through mass use and eventually become standard. These native functions are much safer than macros so you can be as casual with them as copy-pasting formulas. There's no permissions fuss to wade through, as there is for AppScript. (I even think there will soon be libraries of custom functions, I might even publish one myself in a couple of months.)

* * *

As to your question, I interpret it as: why are lambdas coming inside spreadsheets instead of spreadsheets becoming incorporated into programming languages, right?

I have come across many extensions of spreadsheets over the years. Spreadsheets are so ubiquitous there's many kinds of wrappers for them, many hybrids. Since the birth of spreadsheets in 1979 there has been a flood of drastic alternatives & variations that have been tried. The most famous variant so far has been pivot tables, which has become a useful, somewhat infamously intimidating feature of spreadsheets but not the revolution once expected. One of the more interesting extensions is TreeSheets https://strlen.com/treesheets/ But nothing yet has beaten the simplicity & power of a flexible grid sprinkled with formulas & references through the value rule.

To me the most important thing I learned researching this talk was that it crystallized in my mind that spreadsheets are not just a table, not just a grid. They have a key constraint, they intertwine code and data through the value rule that Kay pointed out 5 years after dynamic spreadsheets were invented (see http://worrydream.com/refs/Kay%20-%20Computer%20Software%20-... ).

So my answer to your question is that spreadsheets have been incorporated into programming languages, they have long grown scripting languages like VBA or Google AppScript. Those are massively useful for top-down extensions of the functionality of spreadsheets.

But the other direction, lambdas in spreadsheets, has been much slower & difficult, yet it offers the promise of a more bottom-up revolution in usage. It has taken us decades to evolve the model of spreadsheets towards lambdas in a way that works well with their true nature and to the ton of other features & culture they've grown over the years. (My personal favorite feature, btw, is the incredibly flexible formatting we can give to a sheet, specially conditional formatting.) As mentioned in the talk, spilled arrays are a recent, crucial step to make lambdas possible & useful.

Have you checked the interface that Google Sheets came up for custom functions? It's in the menu of every spreadsheet in Data > Named Functions. It's pretty good and encourages not only extensive naming but documentation & examples of the function and each argument. These descriptions are then displayed piece-meal as you edit a formula, just like native documentation.

I also love good names! I hated not being able to have names in formulas and the name part of Named Functions is alone a big quality of live improvement for me.

As to lambdas, perhaps calling them anonymous functions is giving the wrong impression here. What lambdas really are is a simple, native way to create a context with local names. They can be a great boon to clarity through naming!

Spreadsheets have been historically so limited that programmers have resorted to hacky ways to have names/comments. The N function for numerical values is used sometimes for this since N of a string defaults to 0: so N("Name/comment") = 0 and can be added to a formula without changing it.

As to the cultural practice of ultra-short, likely meaningless variable names, like single letters. I do agree it's a "mathy" thing and can quickly descend into maddening opaqueness. The trick though is that sometimes it's very useful to have as compact a symbolic representation as you can manage (such a process of abbreviation gave us algebra!). Naming things is hard, perhaps one of the truly hard things in thinking/programming as the saying goes :)

Hi all, I'm Eli Parra & I gave this talk at ReClojure 2022 in December 3, 2022. Very happy to see this here in HN!

A bit of personal background of the talk: my work over the years has involved making internal tools for fast-moving, small organizations and that's how I fell in love with spreadsheets. They are the best canvas I know of to whip up custom, user-friendly interfaces in a couple of hours. These prototypes often then go on to be intensely used for months and even years with organic growth & minimal maintenance.

Spreadsheets are often seen with condescension by technical people & they've grown a heavy patina of drudgery over the decades. But to me they represent creative freedom & the easiest interface to computation we've yet found, so successful it's nearly invisible. I gave this talk because I'm starting to find answers to what makes them so successful and have ideas of how they might evolve.

My key points in the talk:

* Spreadsheets matter. Used by billions of people, they're the main way to go beyond being a point-and-click user and start programming. I frame spreadsheets as level 2 in a scale for interfaces that Gordon Brander imagines in this essay: https://subconscious.substack.com/p/a-kardashev-scale-for-in...

* Spreadsheets are changing. In 2022 Excel & Google Sheet got lambdas and reached level 3 in Brander's scale. The talk is a stab at what a level-4 spreadsheet might be, how you could translate QUOTE & EVAL into spreadsheets.

* Spreadsheets have an essence, what Alan Kay described as "the value rule" back in 1984: a cell can read from any other but can only write to itself. This is the founding, simplifying constraint of spreadsheets, akin to how structured programming outlawed go-to’s in code.

* Spreadsheets are time-less. The consequence of the value rule is that there is no time in spreadsheets. There are no unfolding sequences or loops or conditionals, execution happens in a subjective instant after a user change and only then.

* Spreadsheets are easy because they're time-less & space-full. They do without the trickiest part of computation (invisible unfolding time) and include a native, idealized space, the biggest aid to computation we’ve found: an interactive grid you embody & reference through cells. As opposed to ”normal" control-flow programming that goes wild with time & has abstract data structures for space.

* Homoiconicity can be practical! When translated to spreadsheets, homoiconicity looks very related to copy-paste, links, transclusion & component/instances.

To sum up: Spreadsheets are old but they've never been "finished", they've keept evolving and they merit a new look.

Whoa, that IS neat. Thanks for sharing! A key part of his reformulation is π = α + β + γ (the sum of the internal angles of a triangle equal 2 right angles). That statement is, funny enough, equivalent to the parallel postulate.

Going on a tangent now: lately I've been thinking that the "dead horse" of the Pythagorean theorem is actually trying to tell us that flat (as opposed to fractal!) dimensions come from composable self-similarity (squares).

Have you read Mortimer J Adler's How to Read a Book? I just finished it a month ago and your mention of terms, propositions and arguments seems straight out of the book's theory of reading :)

Thanks for your review by the way, it motivated me to reread Euclid.

I didn't understand the very last part:

Another good contingency measure is for only the CEO to hold a board seat before a significant equity fundraise. That will prevent board disputes during tough decisions, such as in the unlikely event that the CEO has to fire a co-founder.

Can someone please unfurl what this means? Is it arguing for the founders NOT to have a board seat before significant equity changes so that the CEO can be the arbiter betwen them? (Btw, it's odd to assume the CEO is not a founder).

This is indeed beautiful. But the author limits itself to a low-level unpacking of the regex and running a few tests cases, all the while remaining mystified as to why this works.

A high-level description helps makes obvious what's happening:

  To check the primality of a number N with string matching,     
    repeat a string (say, "1") N times
    and declare N prime:
      UNLESS the repetitions match the string 0 or 1 times
      OR the repetitions can be EVENLY matched into groups of MORE than one string.

Yes! I guess I'm experiencing an awe at symbolic prowess comparable to that of only-functionally-literate people staring for the first time at the syntax-colored/indented walls of text used by programmers.

I had to download the audio example and lower the playback speed to a third of what it was before it started making sense! It is a reading of an earlier draft of the first bit of the post, btw, so there are several divergences which make it even harder to try to match text to speech.

how to deal conceptually with its immensity in time and space

Yes! Dimensions (not even the most objective, physical ones) are not absolutes but subject to changing, creative interpretation through the abilities of our tech.

Compare the meaning of a meter when squirming vs walking vs cycling vs driving vs flying... Modern computing makes a mockery of our past capabilities for information processing / storage / transmission.

Put another way, "there is no bad or good weather, only different gear requirements."

Same goes for everything, not only distance & information, but also scale, temperature, calories, food, output, wealth, energy, users, complexity, manufacturing effort, ... and time! Both time as speed (how much happens in a certain period) and time as something to traverse (need to wait for a result for decades or centuries). With Diaspora & Permutation City I first learned to imagine a future where we could treat centuries with the same amused detachment with which we now treat intercontinental distances as we jet over the oceans.

I have to second this. It took me years to thoroughly grasp some of its parts (and I have a math background) but Diaspora is without a doubt my favorite book of fiction.

The first chapter of the novel is particularly approachable & worthwhile. It's titled Orphanogenesis and is a beautiful, detailed (~30 page) account of the digital birth of a new AI consciousness, from embryo to newborn to gaining self-awareness.

Next year several Greg Egan's books will be reprinted. Diaspora comes out January 6, 2015!

http://www.amazon.com/Diaspora-A-Novel-Greg-Egan/dp/15978054...

* * *

If you want a softer approach to Egan's fiction, check out his short stories. Reasons to be Cheerful is my favorite one as well as Egan's. It's part of the Luminous collection, available as a $3 kindle ebook:

http://www.amazon.com/Luminous-Greg-Egan-ebook/dp/B00E84BABW...

I second Karl Schroeder as a worthwhile SF author! His novels can be challenging but his ideas are unique and worth the price of admission:

* Ventus, his first novel, is about a world that turns accidentally alive (think Gaia) via nanotechnology.

* Lady of Mazes turns around how we could use (very advanced) technology to preserve cultures instead of undermining them.

* Permanence is about a star-faring civilization so advanced it doesn't need technology, it is technology, having perfectly evolved itself to its niche.

* The Virga series is set in a wonderfully imaginative zero-gee bubble-of-gas world, heated by an artificial sun --think of it as space with air!

Besides being an SF author, Schroeder is also a professional futurist. I recommend his OSCON 2009 talk,The Rewilding: A Metaphor, as a good introduction to his thinking.

https://www.youtube.com/watch?v=qb7pkohj6wE

Thanks for pointing it out, you're right! I rewrote the summary (the original is still at the linked tweet). So it's ~1-to-1 (usually, that's what I mean with practical) when it's volatile. And I'm calling it ~n-to-n (again, usually, practically) when it's correlated: mapping ~n correlations in the source domain to ~n correlations in the destination.

To my mind, an ~n-to-1 mapping would actually be a bit more like idealistic Platonic classifying than Wittgensteinian perception (~"we spin perceptual threads by twisting n attributes like fiber on fiber. And the strength of the thread does not reside in the fact that some 1 fiber runs through its whole length, but in the overlapping of the fibers.").

What do you think? :)

Hash functions impose practical mappings between unlike domains. When volatile (~1-to-1) identifying (crypto), when correlated (~n-to-n) perceiving (AI).

(Tweet summary of the article. I'm becoming increasingly fascinated by hash functions. I'm finding all important this tension between abstraction/correlation/perception & groundedness/volatility/identification.)

https://twitter.com/elzr/status/497893639000190976

Yes, I noticed this a lot with Javascript: I would often have a trailing comma at the last element of an array or object. Most browsers would let it go unremarked but it was stupidly a halting error in some versions of IE.

Anyway, when I made my own Vim syntax highlighter for JSON, I spent a fair amount of effort in getting such a trailing comma highlighted as an error: https://github.com/elzr/vim-json

I'm also quite smitten with Pixelmator: it's full-featured, robust, cheap, fast & native! For my purposes, I honestly prefer it to the much clunkier and much more expensive Photoshop.

Have you tried using Pixelmator actions in Automator to replicate pixel-precise cropping? See http://imgur.com/nDTcxvS I recently processed hundreds of screenshots this way and it worked well.

This was surprisingly beautiful. As a geek in programming/computers/information/mathematics, but only a physics admirer from afar, it is very suggestive, even natural, to explain the deepest physical reality in terms of information:

"It was as though particles gradually lost their individual autonomy and became pawns of the collective state. Eventually, the correlations contained all the information, and the individual particles contained none. At that point, Lloyd discovered, particles arrived at a state of equilibrium, and their states stopped changing, like coffee that has cooled to room temperature."

“What’s really going on is things are becoming more correlated with each other,” Lloyd recalls realizing. “The arrow of time is an arrow of increasing correlations.”

“The present can be defined by the process of becoming correlated with our surroundings.”

Credit cards & banking are much less distributed outside the developed world. While in the US, 63% of the 15+ population has a credit card, in Mexico it's barely 13% (in Latin America in general it's only 18%). This is a HUGE obstacle for e-commerce and bitcoin's cash-like, informality (no requisites, no need to register or be approved by a central entity) might allow it to spread where banks have so far been unable to. (Source World Bank Financial Inclusion Data http://datatopics.worldbank.org/financialinclusion/)

On a completely different level of mundanity, here are 3 beautiful compliments:

Jon Stewart to SpaceX founder Elon Musk: You have invented a rocket, and a spaceship on the rocket, and you've launched this into orbit already, and brought it back. The four entities that have done that are: the United States, China, the Soviet Union, and Elon Musk.

Peter Forbes to physicist David Deutsch: To read him is to experience the thrill of the highest level of discourse available on this planet and to understand it.

Cicero to historian Thucydides: He so concentrates his copious material that he almost matches the number of his words with the number of his thoughts. In his words, further, he is so apposite and compressed that you do not know whether his matter is being illuminated by his diction or his words by his thoughts.

Thanks for your interest. I would love to sell this commercially as a side project but the market is entirely on the US while I'm in Mexico. Cross-country shipping and customs is too much of a pain.

The story of my life: I should be in the States. Only now it comes with an interesting twist: If I lived in the States I would very likely sell plenty of these desks, yet if I didn't live in Mexico I would very likely never have built this ultra cheap proof of concept in the first place. :)

For one thing, of course I would add a slot and back drawer, like my current desk ;) And I'm much more fond of wood than steel.

I'm guessing the sloping common in old standing desks [1] is a good idea. Legroom requirements are very different too and that would be interesting, I would probably continue the back drawer all the way to the front... keeping it open of course (I don't like lids or movable parts).

[1] http://en.wikipedia.org/wiki/File:031030-F-2828D-166_screen....

I also think some sort of (metal?) foot bar would be a good idea. Perhaps even have two foot bars? One for resting a leg when you're standing, one higher and further back for when you're sitting on a high stool, as if to simulate a higher floor?

The main perplexity I've been wrestling with is how to have it be both standing and sitting without moving parts. Total pipe dream... or maybe that second rest bar is part of the answer?

It also seems like displays need to be somewhat higher than on a sitting desk. But it's hard to have several levels and still keep it elegant...

Anyway, I'm getting excited already! Perhaps I'll sell this desk and make another one before the end of the year. :)

It's veneer, I guess. I'm not very familiar with carpentry vocabulary but here in Mexico they call the technique "tambor" (drum): sheets of cedar enclosing a simple skeleton of cheap wood. Solid wood would have been more expensive and too heavy (this one's heavy enough!).

Nothing yet that I would have done differently about this desk: it's barely my second day with it and I'm just happily overwhelmed by the response its getting from the interwebs.

That said, if I had to design a desk all over again, I would probably do a standing desk. That NYT article on sitting as a lethal activity was definitely the last straw for committing to a future with less sitting.

http://www.nytimes.com/2011/04/17/magazine/mag-17sitting-t.h...

The problem is that I haven't yet the slightest clue into how to make an elegant standing desk, all the designs I've seen are pretty terrible.

Thanks for your kind remark :)