4,474 karma · joined September 28, 2012
I hope the spam filter will respect it!
The first one covers the lowest level of how logic gates are physically wired to produce a Turing-equivalent computing machine. For that purpose, having the simplest possible instruction set is a pedagogical must. It may also cover more advanced topics like parallel and/or segmented instruction pipelines, but they're described in the abstract, not as current state-of-the-art industry practice.
Then, for actually learning how modern computers work you have another separate one-term course for whole machine architecture. There you learn about data and control buses, memory level abstractions, caching, networking, parallel processing... taking for granted a previous understanding of how the underlying electronics can be abstracted away.
1) commercial hardware pipelinea being improved for decades in handling 3D polygons, and
2) graphical AI models are trained on understanding natural language in addition to rendering.
I can imagine a new breed of specialized generative graphical AI that entirely skips language and is trained on stock 3D objects as input, which could potentially perform much better.
And even if it converges, different initial functions could guide to totally different final results. That would make it hard to call any chosen function as "strictly better than any other".
>Yes - this seems like a major philosophical reach
On the contrary, I see as containing a trivial contradiction or paradox.
To evaluate what function is 'strictly better' than the rest, you need to use a ground preference function that defines 'better'; therefore, your whole search process is itself biased by the comparison method you choose to use for starters.
It's not aliens but humans, and it's not an 8-loop geometry, but without spoiling it too much it's safe to say that discovering how hyperspace works is the central concept guiding the story.
It's true that the metrics used in this story could lead to being exploited. But the value of the initiative is not in the specific method used to donate, but in the idea of finding worthy yet non-obvious projects to donate and in leading by example.
If the initiative catches on, the community can find better, harder-to-exploit methods to find deserving targets, as for example it has happend with NGOs. This idea could create a healthy ecosystem that supports FLOSS software, just like the idea of a stock exchange supported the emergence of public traded corporations in the XVIII and XIX centuries.
That's what an art form does.
The problem with astrology is that it's framed as a science giving answers to questions, not as an artistic performance giving insight into life patterns. It as painful as seeing people watch wrestling believing it is a real competitive sport.
That's very different from a spatial layout, where you can juxtapose related code elements near each other, and they remain in those places for as long as you're using them, and then get rid of all them together by closing their common container.
There have been attempts to create new, more spatial work styles on window managers, but the industry is too set in their ways on how windows should be managed, and WMs are complex beasts with many moving parts. So it's usually better to keep those experimental tools self-contained within their own window or app.
Some invariants that are too complex to express purely in code, requiring numerous separate low level bookkeeping functions throughout the system, can be concisely expressed as a high level idea in natural language (wether as comments or at an external technical document).
Make sure that your developers are exposed to those documents, throw in a few tests for the most obvious cases to ensure that newcomers are learning the invariants by heart, and if they're competent you should not have problems but in the most obscure cases (that could appear anyway even if you try to formalize everything in code).
Modern IDEs have lots of visual features, specially tailored to support production languages. Inspection panels, tooltips with variable values and function definitions...
Surely we could add more spatial visualization tools to them. But the step up from printf to a debugging inspector panel was on its own a great advance in building a mental model of the program state and making sense of its behaviour, which is what visual programming is all about.
For programmers interested in advanced visual tools tailored to software creation, see Bret Victor's essays on notations:
It's very useful to have a complete 'getting started' page that get you from zero to working, without assuming that the reader understands what every intermediate step means. But as you said, the parts that are dependencies for other products can be encapsulated so that savvy users can skip them easily.
As a relativist myself, I'd say that this description misrepresents Relativism, out of a misunderstanding. It's not that there are no facts to discover, but that whatever you discover is a mental construct that is mediated by how you think about it. This "nihilism" is popular because it's rationally sound.
"Whether or not there is such a thing as a chair is simply a matter of convention", true, but that's because _being_ is not an essential property of the universe that you can get to know, but a metaphysical concept that you think about; as such, the facts you get to assert about it are dependent on how you define the concept. As different schools of philosophy have their own ways to think about the concept, they'll arrive at different conclusions about its characteristics.
In the end, all philosophical enquiry is a mental exercise that produces knowledge in the minds of us fellow humans, and it's mediated by the capabilities and limitations of our brains.
In the same way, all rational discourse takes the form of discovering new facts that are derived from some stated axioms and following defined rules of interference. There are no metaphysical axioms and rules of interference existing outside our brains, so rational thought necessarily depends on the shape of -and the consequences implied by- the particular principles you chose to use. Choose different ones, and the shape of your reasoning will vary (even though, as you said, it is often possible to translate between different initial perspectives).
When it interferes with the main functionality of the page, namely reading the content, they break accessibility, distract over understanding the difficult topic, make the content brittle against changes in the platform (different browsers or future standard updates), and as others pointed out make it difficult or impossible to use alternative presentations.
With most comments commenting on the presentation and not on the content, I think it makes clear that it detracts from the experience more than helps.
It would be better for all if, in Open Source fashion, this software had a FLOSS easy-to-install packaging that provided for basic use cases, and developers made money by adapting it to more specific use cases and toolchains.
(This one is not FLOSS in the classic sense, of course. The above would be valid for MIT-licensed or GPL models).
I'd love to hear it ;-)
I just hate reading the resulting code written by others. What information is expected to come in, and exactly what data passes from one step to the next, and in what position? Data type signatures only go so far.
Point-free means you have all that wiring in your head, without assistance from the notation.
That's a really sad viewpoint, believing that being paid to do a job is the only thing that matters, and that it compensates everything about what that job means and how it impacts the world. It's the same thinking justifying "if I don't do this terrible thing at work, someone else will do it for the same money", which is anything but decent.
There's such thing as pride in what one does; double so in artistic endeavours, where the only value is in being seen by spectators.
Unlikely. The problem of that view is that, when you're handling large uncertainty, you don't know which projects are the ones you should cancel and which ones to nurture. Past performance is a terrible indicator for lucky shots.
See the Talent-Luck simulation for instance.[1] You measure a population of projects affected affected by random events and profiting proportionally to talent, and the projects that end better off are the ones that chain multiple beneficial lucky strikes, with talent having little influence past a minimum level.
And the way to maximise gains over the whole population is setting a small flat subsidy for all, allowing everybody to explore their talent even after a wrong turn.
1 https://www.inc.com/chris-matyszczyk/so-youre-smart-but-your...
Unfortunately, it's much less known and there is much less software support for it.
As the article says, if you don't use it regularly you'll never learn it by heart, and Vi doesn't have any affordances that will remind you of what you learned by recognition instead of recall.
The web browser gives you a full package with standardized commands to control all those aspects, which is also portable between different implementations.
If your rendering needs are limited to a few buttons and a canvas on a fixed size, sure, go native GUI. But if you need to support multiple devices and resolutions, on-the-fly resizing, and layout of multiple complex screen sections, the browser is an unbeatable platform.
It's less than ideal, but it would allow youto see and understand their workflows