This wasn't rocket science (at least my part). I cringe now to see the pixelated effects in this "algorithmic art". Unless I'm missing the point, and this retro effect is deliberate?
3,995 karma · joined July 17, 2016
This wasn't rocket science (at least my part). I cringe now to see the pixelated effects in this "algorithmic art". Unless I'm missing the point, and this retro effect is deliberate?
As an undergraduate at Swarthmore College, I took an elective in combinatorial algorithms that he had agreed to travel from U Penn to teach. Up to this point I had only experienced harsh lessons that math / computer science was either / or.
He mused early on that choosing k distinct elements from the integers 1 to n must be k log k in complexity, because "sorting" is k log k in complexity. I showed up at around 5pm at his office hours, looking like George Harrison post-Beatles, probably smelling of pot smoke. He was undoubtedly questioning his judgment in agreeing to teach this course, about to face awful traffic to get home. I suggested that one could divide the integers 1 to n into k bins, and sort any way one liked, because the average occupancy would be one. I asserted that this was a linear algorithm. He blew me off, and headed home.
Around 10pm the dorm hall phone rung, with a professor of mine relaying his apologies. I learned a lot from Herb Wilf, rest of the semester, now that I had his attention.
This idea was of course in Knuth (Art of Computer Programming volume ??). I was briefly disillusioned, still believing adults had time to read everything. Hey, Don Knuth had time to write everything?
When, instead of dropping out of grad school, I decided to stay and computerize algebraic geometry, I can thank Herb Wilf for the perspective that took.
Swift, perhaps. Chez Scheme? Haskell? Lean 4?
Doesn't HN have a policy mandating original sources?
I came out of the mechanical keyboard rabbit hole with multiple Leopold FC660C Topre switches (there's no going back to any mechanical switch) and Hasu replacement controllers that support QMK.
Here's an out-of-date version of my layout, heavily using tap-hold to access multiple layers:
https://raw.githubusercontent.com/Syzygies/log_folders/maste...
Chording never took for me, but one-finger-each-hand concentrated near home row is such an obvious way to quadratically expand the address space. The Matias space bar was certainly an inspiration for this, though everyone uses QMK tap-hold for purposes like this.
https://matias.store/products/half-keyboard
The Matias Half Keyboard is based on a theory that our minds mirror each hand, so by holding the space bar to access the missing half keyboard, we already know what to do. I was skeptical. Recognizing that we're modal (do we even recognize that telephone keypads and numeric keypads are different, or do we just use them without thinking?) I decided to learn Dvorak on the half keyboard while continuing to use QWERTY on my full keyboards.
One day, on a lark, I tried Dvorak on a full keyboard. I could, easily. The mirror theory holds.
RFK's last words were "Is everybody OK?"
I disagree. There's a migration from Haskell to Lean 4, which is influenced by HoTT, and is a credible general purpose programming language.
Arguably, _the_ credible general purpose programming language, if one believes that programming should feel like doing mathematics. Languages are shaped by their target tasks, and writing tactics for proofs subsumes any other task one might consider. Programming is recognizing pattern, and pattern runs deep in Lean.
When we're young, but past existential BS, we start to think that ten years of training will yield productive years that outstrip decades of muddling in ad hoc languages if we hadn't made the commitment. But soon, few want to make the commitment.
If programming is ever going to become far more advanced, it will take the form of successors to Haskell and Lean.
An obvious visual proof: Line up 101 marbles. Choose one to be the divider; to the left is red, to the right is green. Now draw two more marbles. Or just pick three, then decide which one is the divider.
I objected, and our lawyers came up with a statement I could instead sign to fulfill training.
A more troubling example of imposing this world view is decomposing 3-manifolds, where people like to think of S^1 x S^2 as prime. This only makes sense as a form of respect for one's elders.
One constructs 3-manifolds by gluing irreducible manifolds together after cutting out balls; one needs S^3 itself to express self-loops in this gluing graph, if there are no other pieces. S^1 x S^2 is S^3 with one self-loop. But the interest is in the pieces, not the graph (which can be freely reorganized), unless one aspires to be a number theorist.
I was part of a font consulting company during the Postscript / Truetype font wars, and we reconstructed fonts from scans or earlier digital formats. Most of the work was fixing bad data. This all should be easier now; think of Peter Jackson cleaning up the "Let It Be" sound, leading to the Beatles releasing one more track.
It baffles me that book images don't get this quality of attention. As a mathematician I spend a lot of time reading old journal articles that look terrible.
I was opening up the question of how different models for aggregating reviews would be naturally immune to review bombing, using Chess and Tennis ranking systems as inspiration. There's nothing about that style of aggregation that locks one into a particular kind of base signal.
While sites like Netflix use all the AI they can muster to tune and individualize their recommendation systems, the review systems we know best rely on straight democratic votes that can be gamed. Or worse, they rig the votes for profit.
The AI objective function should be to synthesize advice relevant to each user. As a component of this, treat each reviewer as a tennis tournament, to develop a tennis rating system summarizing reviews? One could apply weights tuned to each user for the relevance of each other user's reviews. If there was a shadow economy behind these uses, as if a hedge fund had to pay pennies to include each voter, the "review bomb" voter's inputs would quickly become useless, and be disregarded.
What we have instead is singularly dumb. Is there room for a startup here? Google page rank was obvious in hindsight. Won't this too be obvious in hindsight?
The first of two problems is a generalization to any dimension of finding a maximal non-set in the game of Set. That's lines over Z/3Z. Over R, for n > 1 the same question is obviously unbounded; any finite set of points in general position works. The writer just said "space" and didn't stop to think.
Both problems involve having the computer find interesting examples, not machine-checked proofs, in search spaces too large for brute force. Having AI guide such a search is a worthy endeavor, but it's not the same as a machine spewing out better Lean 4 proofs than people can produce. Soon, we'll be getting such help, but this isn't that. Misleading headline.
I'm a casual tourist, who likes to pick up some rudimentary language skills before travel. There are many of us; we understand the importance of smiling at our hosts and getting the words out while more formal learners are stalled in self-induced aphasia.
For us, the design of spaced-repetition systems misses a crucial point: We don't care about measurable process while stockpiling some language skills before a trip, and we certainly don't have time to sit around studying once we're on a trip. The goal is to ingest as much content as we can, in some form that sticks, to recall more flexibly as we struggle to speak in-country.
For this purpose, memorizing a radio play as if one is an actor is more effective than spaced repetition. For example, just the Pimsleur dialogs, edited from audio files one owns. The words are there, slow to access but quicker than opening up a phrase book. Within a week traveling, one's mind reorganizes access to the language one actually uses.
The dig on learning a radio play is one doesn't know the words out of sequence. Yeah, that's why one can learn them so efficiently. For those of us of a certain age, it's the "next song on the album" effect. What did Knuth say about premature optimization? Learn the words one actually needs out of sequence, on the ground, in use.
I've seen the poor performance of current phone apps. My point is that one could do better for less coding effort with access to a 3D model. Either a pair of photos, or a 3D camera.
As a mathematician I've long wanted to figure out the code to match up several photographs for a 3D model of an open book, to correctly flatten out the image of each page. Bonus points to use AI to clean up the image, or convert to source that faithfully represents the page layout.
There are apps that take one photo and then guess how to correct the distortion. They don't do as good a job as one could do with the actual 3D data.
Many of us don't want to dedicate the space or money for a professional book scanner, and can't find an affordable flatbed scanner that scans all the way to one edge to better support books. I'll sometimes slice a second used copy of a cookbook, to scan every page using a sheetfed scanner. Grabbing one's phone should win ease-of-use over any other solution, if it could match the quality of these other approaches. 3D cameras would help that.
Distilling, one wants to control extraction yield to isolate the best flavors. Done carefully, one makes armagnac. Maximizing extraction yield makes moonshine.
> you could also build a syntax tree, in which case the operands would be subtrees.
Like I said about Strassen and matrix multiplication. Great algorithm, but it takes a while to kick in for the lead.
They were concerned with the case where n could be absurdly large, and wanted no time or space dependence on n. They improved my idea to cut the multiple of k needed for space.
(Always check your assumptions. Sorting has an k log k lower bound if all you can do is compare elements. With integers 1..n, one can do much more.)
I showed up at 5pm at his office, as he was bracing himself for the drive from Swarthmore back to Philly, wondering why he ever took this gig. I proposed a linear algorithm: Break 1..n into k bins, and only sort to detect collisions within each bin. Bins would have an average occupancy of 1, so it didn't matter what sort you used.
(I found this idea later in Knuth, and was briefly disillusioned that adults didn't read everything.)
I looked like George Harrison post-Beatles, I probably smelled of pot smoke, and he dismissed my idea. Then my dorm hall phone rang at 10pm, a professor of mine relaying an apology. For that and other ideas, the second edition of his book opened with thanks to me.
I'm surprised now that I realized then that bubble sort actually had the least overhead, in such an application. People don't use Strassen to multiple matrices unless the matrices are really big. For sorting, "really big" is 2 or 3 elements.
I've written thousands of lines of Scheme using my own preprocessor, and it's my favorite code to look at. I prefer Haskell, for incredible ease of parallelism and a deeper mathematical foundation.
The two features I look for in a reduced parenthesis syntax (like looking for the bone marrow in a beef stew recipe) are:
1. Some constructions begin doubly parenthesized. One needs a symbol to represent the missing object one parenthesis in. I use $.
2. One can write more expressive lines with a flavor of open paren that autocloses at the end of the line. I use |.