73 Matching Annotations
1. Dec 2023
1. How to fold and cut a Christmas star<br /> Christian Lawson-Perfect https://www.youtube.com/watch?v=S90WPkgxvas

What a great simple example with some interesting complexity.

For teachers trying this with students, when one is done making some five pointed stars, the next questions a curious mathematician might ask are: how might I generalize this new knowledge to make a 6 pointed star? A 7 pointed star? a 1,729 pointed star? Is there a maximum number of points possible? Is there a minimum? Can any star be made without a cut? What happens if we make more than one cut? Are there certain numbers for which a star can't be made? Is there a relationship between the number of folds made and the number of points? What does all this have to do with our basic definition of what a paper star might look like? What other questions might we ask to extend this little idea of cutting paper stars?

Recalling some results from my third grade origami days, based on the thickness of most standard office paper, a typical sheet of paper can only be folded in half at most 7 times. This number can go up a bit if the thickness of the paper is reduced, but having a maximum number of potential folds suggests there is an upper bound for how many points a star might have using this method of construction.

#### URL

3. Jun 2023
4. stackoverflow.com stackoverflow.com
1. Certainly you could adapt the code to round rather than truncate should you need to; often I find truncation feels more natural as that is effectively how clocks behave.

What do you mean exactly? Compared clocks, or at least reading of them. What's a good example of this? If it's 3:55, we would say 3:55, or "5 to 4:00", but wouldn't probably say that it's "3".

#### URL

5. May 2023
6. dl.acm.org dl.acm.org
1. Web sites often design their APIs to optimize performance forcommon cases. Their main object-reading methods may return onlycertain “basic” properties of objects, with other methods availablefor fetching other properties. ShapirJS hides this performanceoptimization complexity from the user.

In other words, it risks undermining the intent of the API design.

#### URL

7. Mar 2023
8. www.nybooks.com www.nybooks.com
1. Primary care physician Gavin Francis reviews two books on the importance of forgetting, as part of a larger reflection on memory.

#### URL

9. Jan 2023
10. www.cambridge.org www.cambridge.org
1. Bacon, Bennett, Azadeh Khatiri, James Palmer, Tony Freeth, Paul Pettitt, and Robert Kentridge. “An Upper Palaeolithic Proto-Writing System and Phenological Calendar.” Cambridge Archaeological Journal, January 5, 2023, 1–19. https://doi.org/10.1017/S0959774322000415.

There may be questions as to whether or not this represents written language, but, if true, this certainly represents one of the oldest examples of annotation in human history!

cc: @remikalir

2. The value of <Y>, the position of which varies in the sequences, may be the precursor of place value, in which, for example, 5, 50 and 500 represent different values according to their position, thought to have been a Sumerian invention (d'Errico et al. Reference d'Errico, Doyon and Colage2017).

The idea of place value is thought to have been a Sumerian invention (d'Errico et al., 2017), but the example of <Y> in the work of B. Bacon, et al (2023) may push the date of the idea of place value back significantly.

3. We believe that we have demonstrated the use of abstract marks to convey meaning about the behaviour of the animals with which they are associated, on European Upper Palaeolithic material culture spanning the period from ~37,000 to ~13,000 bp. In our reading, the animals integral to our analytical modules do not depict a specific individual animal, but all animals of that species, at least as experienced by the images’ creators. This synthesis of image, mathematical syntax (the ordinal/linear sequences) and signs functioning as words formed an efficient means of recording and communicating information that has at its heart the core intellectual achievement of abstraction.

#### URL

11. Dec 2022
12. plato.stanford.edu plato.stanford.edu
1. I came to this page after reading the "About the Author (The Second Right Answer)" page of Roger von Oech's "A Whack on the Side of the Head: How You Can Be More Creative" which was mentioned by Kevin Bowers in his discussion with John Vervaeke titled "Principles & Methods for Achieving a Flow State | Voices w/ Vervaeke | John Vervaeke & Kevin Bowers".

von Oech stated that

I wrote my doctoral dissertation on the twentieth century German philosopher Ernst Cassirer, the last man to know everything. From him, I learned that it's good to be a generalist, and that looking at the Big Picture helps to keep you flexible.

This was a surprising reference since Bowers stated that the book was written for helping entrepreneurs become more creative; the book seems more widely applicable based on the examples and exercises given in the first 20 pages.

Cassirer appears to bridge between the continental and analytic traditions in philosophy. Cassirer's touching on mathematics, aesthetics, and ethics reminds me of - John Vervaeke's work - ie, the process of relevance realization and his neo platonic, transformational reading of ancient texts - Forrest Landry work - ie, his magnum opus "An Immanent Metaphysics" which he purports to be pointing to a foundation between ontology, epistemology, and ethics. Recently, IDM (Immanent Domain Metaphysics) made more sense to me when I attempted to translat the 3 axioms and 3 modalities into language from category theory

The following seem important and related somehow: 1. the symbolic process 2. the process of abstraction 3. the process of representation

Maybe these are related to the means by which one can can transcend their current self? ie, is it through particular symbolic practices that one can more easily shed one identity and acquire another?

Also, are 1., 2., and 3. different aspects of the same thing/event?

#### URL

13. Nov 2022
14. www.rubydoc.info www.rubydoc.info
1. subject { described_class.do_something }

#### URL

15. github.com github.com
1. Testing frameworks often introduce their own abstractions for e.g. evaluation order, data validation, reporting, scope, code reuse, state, and lifecycle. In my experience, these abstractions are always needlessly different from (and inferior to) related abstractions provided by the language itself.

#### URL

16. Oct 2022
17. catgirl.ai catgirl.ai
1. before that the support for parsing JSON in C was essential for using LSP servers

NB: the requirement wasn't actually "parsing JSON in C"; it's that for the JSON parsing the machine ultimately executes the same (or similar) instructions that it does when the JSON parsing is written in C and that C is compiled with GCC.

#### URL

18. Local file Local file
1. here are several ways I havefound useful to invite the sociological imagination:

C. Wright Mills delineates a rough definition of "sociological imagination" which could be thought of as a framework within tools for thought: 1. Combinatorial creativity<br /> 2. Diffuse thinking, flâneur<br /> 3. Changing perspective (how would x see this?) Writing dialogues is a useful method to accomplish this. (He doesn't state it, but acting as a devil's advocate is a useful technique here as well.)<br /> 4. Collecting and lay out all the multiple viewpoints and arguments on a topic. (This might presume the method of devil's advocate I mentioned above 😀)<br /> 5. Play and exploration with words and terms<br /> 6. Watching levels of generality and breaking things down into smaller constituent parts or building blocks. (This also might benefit of abstracting ideas from one space to another.)<br /> 7. Categorization or casting ideas into types 8. Cross-tabulating and creation of charts, tables, and diagrams or other visualizations 9. Comparative cases and examples - finding examples of an idea in other contexts and time settings for comparison and contrast 10. Extreme types and opposites (or polar types) - coming up with the most extreme examples of comparative cases or opposites of one's idea. (cross reference: Compass Points https://hypothes.is/a/Di4hzvftEeyY9EOsxaOg7w and thinking routines). This includes creating dimensions of study on an object - what axes define it? What indices can one find data or statistics on? 11. Create historical depth - examples may be limited in number, so what might exist in the historical record to provide depth.

#### Annotators

19. Sep 2022
20. rubystyle.guide rubystyle.guide
1. Prefer alias when aliasing methods in lexical class scope as the resolution of self in this context is also lexical, and it communicates clearly to the user that the indirection of your alias will not be altered at runtime or by any subclass unless made explicit.

reassurance of lack of possibility for run-time shenanigans

#### URL

21. Aug 2022
22. Local file Local file
1. Whitehead once described the mentality of modern science as having beenforged through “the union of passionate interest in the detailed facts with equaldevotion to abstract generalization.”
2. And just a fewyears later, it was jubilantly discovered that machine translation and automaticabstracting were also just around the corner.

HA!

#### Annotators

23. dercuano.github.io dercuano.github.io
1. The idea here is to emulate the hardware platform WordPerfect ran on

That seems like unnecessarily tight coupling. Surely there's a better level of abstraction that's higher than "emulate the hardware platform".

#### URL

24. news.ycombinator.com news.ycombinator.com
1. I avoided using languages that I don't know how to bootstrap like node.js

There's a weird (read: "weirdly obvious") category error here. NodeJS is not a language. (This wouldn't be so notable if the comment didn't go on to say "The key point is writing to an interface and not an implementation.")

The puzzle piece that fits the shape of the hole here is "JS". JS is the language, NodeJS is one of its implementations—and chubot knew both of these things already, so it's odd that it was expressed this way. Plus, there's a lot more diversity of JS implementations than exist for e.g. Python...

#### URL

25. sbp.io sbp.io
1. Typography in HTML is awful

A similar mistake is being made here as the one that precedes the reminder that there is no such thing as a fast programming language—only a given implementation can be called fast.

#### URL

26. Jul 2022
27. docdrop.org docdrop.org
1. Even physicists,when they leave equations behind and try to describetheir discoveries to the rest of us in plain English, findthemselves employing analogies, metaphors, and theother language tools we all use

Within mathematical contexts one of the major factors often at play is the idea of abstraction: how can one use a basic idea and then abstract it to other situations to see what results.

The idea of abstraction in mathematics is analogous to analogy and metaphor in literature.

#### URL

28. May 2022
29. Local file Local file
1. Principles of Shaping

When we shape the work, we need to do it at the right level of abstraction: not too vague and not too concrete. Product managers often err on one of these two extremes.

#### Annotators

30. Apr 2022
31. www.cs.utexas.edu www.cs.utexas.edu
1. it might be worth-while to point out that the purpose of abstracting is not to be vague, but to create a new semantic level in which one can be absolutely precise

#### URL

32. subconscious.substack.com subconscious.substack.com
1. This is possible because the internet isn’t designed around telephone networking hardware. It isn’t designed around any hardware at all. Instead, the internet runs on ideas, a set of shared protocols. You can implement these protocols over a telephone, over a fiberoptic cable, or over two tin cans connected with string.

#### URL

33. Feb 2022
34. Local file Local file
1. And the best ideas are usually the ones we haven’t anticipatedanyway.

If the best ideas are the ones we haven't anticipated, how are we defining "best"? Most surprising from an information theoretic perspective? One which creates new frontiers of change? One which subsumes or abstracts prior ideas within it? Others?

#### Annotators

35. Jan 2022
36. www.nytimes.com www.nytimes.com
1. Consider, as well, the extent to which the tools of abstraction are themselves tied up in the history of the trans-Atlantic slave trade. As the historian Jennifer L. Morgan notes in “Reckoning With Slavery: Gender, Kinship, and Capitalism in the Early Black Atlantic,” the fathers of modern demography, the 17th-century English writers and mathematicians William Petty and John Graunt, were “thinking through problems of population and mobility at precisely the moment when England had solidified its commitment to the slave trade.”Their questions were ones of statecraft: How could England increase its wealth? How could it handle its surplus population? And what would it do with “excessive populations that did not consume” in the formal market? Petty was concerned with Ireland — Britain’s first colony, of sorts — and the Irish. He thought that if they could be forcibly transferred to England, then they could, in Morgan’s words, become “something valuable because of their ability to augment the population and labor power of the English.”This conceptual breakthrough, Morgan told me in an interview, cannot be disentangled from the slave trade. The English, she said, “are learning to think about people as ‘abstractable.’

This deserves to be delved into more deeply. This sounds like a bizarre stop on the creation of institutional racism.

How do these sorts of abstraction hurt the move towards equality?

#### URL

37. Nov 2021
38. github.com github.com
1. If you're looking for a slightly higher level API built on the same technology, you may want to check out watir or capybara.

#### URL

39. Oct 2021
40. benpickles.github.io benpickles.github.io

#### URL

41. Sep 2021
42. www.joelonsoftware.com www.joelonsoftware.com
1. This is what I call a leaky abstraction. TCP attempts to provide a complete abstraction of an underlying unreliable network, but sometimes, the network leaks through the abstraction and you feel the things that the abstraction can’t quite protect you from. This is but one example of what I’ve dubbed the Law of Leaky Abstractions:

#### URL

43. github.com github.com
1. Webpacker has become a slimmer wrapper around Webpack

#### URL

44. Jul 2021
45. datatracker.ietf.org datatracker.ietf.org

#### URL

46. arxiv.org arxiv.org
1. <small><cite class='h-cite via'> <span class='p-author h-card'>John Pavlus </span> in Melanie Mitchell Trains AI to Think With Analogies | Quanta Magazine (<time class='dt-published'>07/24/2021 17:19:52</time>)</cite></small>

#### URL

47. Jun 2021
48. formidable.com formidable.com
1. When we use a GraphQL API there are two kinds of errors we may encounter: Network Errors and GraphQL Errors from the API. Since it's common to encounter either of them, there's a CombinedError class that can hold and abstract either.

#### URL

49. docs.gitlab.com docs.gitlab.com
1. A class adds a layer of abstraction, which makes the component API and its inner workings less clear.

#### URL

50. www.theatlantic.com www.theatlantic.com
1. The Internet, an immeasurably powerful computing system, is subsuming most of our other intellectual technologies. It’s becoming our map and our clock, our printing press and our typewriter, our calculator and our telephone, and our radio and TV.

An example of technological progress subsuming broader things and abstracting them into something larger.

Most good mathematical and physical theories exhibit this sort of behaviour. Cross reference Simon Singh's The Big Bang.

#### URL

51. May 2021
52. documentation.mjml.io documentation.mjml.io
1. Components are the core of MJML. A component is an abstraction of a more complex email-responsive HTML layout. It exposes attributes, enabling you to interact with the final component visual aspect.
2. MJML has been designed with responsiveness in mind. The abstraction it offers guarantee you to always be up-to-date with the industry practices and responsive. Email clients update their specs and requirements regularly, but we geek about that stuff - we’ll stay on top of it so you can spend less time reading up on latest email client updates and more time designing beautiful email.

#### URL

53. Mar 2021
54. tobeagile.com tobeagile.com
1. I’m proposing that writing those tests from the perspective of specifying the behaviors that we want to create is a highly valuable way of writing tests because it drives us to think at the right level of abstraction for creating behavioral tests and that allow us the freedom to refactor our code without breaking it
2. I am a big advocate of having a complete test base and even erring on the side of caution when it comes to quality engineering and software validation but that is not what we’re talking about here. What we’re talking about here are the tests that we write when we’re doing test-first development and I’m proposing that writing those tests from the perspective of specifying the behaviors that we want to create is a highly valuable way of writing tests because it drives us to think at the right level of abstraction for creating behavioral tests and that allow us the freedom to refactor our code without breaking it.

#### URL

55. trailblazer.to trailblazer.to
1. Having an understanding of higher level abstractions, such as tasks, activities and the historical code path taken, its debugging trace is much closer to how you, as an engineer, think about your code.

#### URL

56. Feb 2021
57. trailblazer.to trailblazer.to
1. Please note that this is a higher-level debugging tool that does not confront you with a 200-lines stack trace the way Ruby does it, but pinpoints the exceptional code and locates the problem on a task level. This is possible due to you structuring code into higher abstractions, tasks and activities.

#### URL

58. trailblazer.to trailblazer.to
1. While you could nest an activity into another manually, the Subprocess macro will come in handy.
2. The Track() function will snap the output to the next task that is “magnetic to” the track’s semantic.

#### URL

59. trailblazer.to trailblazer.to
1. The entire framework is based on small, clean Ruby structures that can be executed programmatically.

#### URL

60. trailblazer.to trailblazer.to
1. While you could program this little piece of logic and flow yourself using a bunch of Ruby methods along with a considerable amount of ifs and elses, and maybe elsif, if you’re feeling fancy, a Trailblazer activity provides you a simple API for creating such flow without having to write and maintain any control code. It is an abstraction.

#### URL

61. dry-rb.org dry-rb.org
1. However, some people think these solutions are hacks and the problem reveals a missing abstraction.

#### URL

62. en.wikipedia.org en.wikipedia.org
1. Each of the programming language generations aims to provide a higher level of abstraction of the internal computer hardware details, making the language more programmer-friendly, powerful, and versatile.

#### URL

63. trailblazer.to trailblazer.to
1. The adapter is where authentication, policy checks, and eventually your domain logic happen. All termini of the protocol’s activity are standardized end events - that’s how protocol and adapter communicate.
2. An endpoint links your routing with your business code. The idea is that your controllers are pure HTTP routers, calling the respective endpoint for each action. From there, the endpoint takes over, handles authentication, policies, executing the domain code, interpreting the result, and providing hooks to render a response.

#### URL

64. github.com github.com
1. Trailblazer extends the conventional MVC stack in Rails. Keep in mind that adding layers doesn't necessarily mean adding more code and complexity. The opposite is the case: Controller, view and model become lean endpoints for HTTP, rendering and persistence. Redundant code gets eliminated by putting very little application code into the right layer.
2. Trailblazer is no "complex web of objects and indirection". It solves many problems that have been around for years with a cleanly layered architecture.

#### URL

65. Dec 2020
66. github.com github.com
1. Svelte components are a thin layer over the DOM and naturally expose the web platform. Coding in Svelte feels like I’m moving with the grain of the web.

#### URL

67. Nov 2020
68. marcin-piela.github.io marcin-piela.github.io
1. Do we need such a big abstraction for this? Many would just use `fetch` directly. Why not just use `fetch` directly? In Svelte, for example, you would probably never see something like this ... right?

#### URL

69. news.ycombinator.com news.ycombinator.com
1. Stores are such an amazing abstraction.

#### URL

70. Oct 2020
71. www.zachgollwitzer.com www.zachgollwitzer.com
1. Declarative programming is an enabler of abstraction. Imperative programming is an inhibitor of abstraction. Declarative programming allows you to say “I want this and I don’t care how I get it” while imperative programming requires you to define each and every step.

Declarative programming, i.e. "build me a house, I don't care how", is an enabler of abstraction.

Imperative programming, i.e. "build walls, windows, a roof.", is an inhibitor of abstraction.

#### URL

72. medium.com medium.com
1. but the design pattern is so simple that it takes hardly any effort to implement it on any existing reducer, so I rejected abstraction for abstraction's sake.

#### URL

73. github.com github.com
1. virtual-dom exposes a set of objects designed for representing DOM nodes. A "Document Object Model Model" might seem like a strange term, but it is exactly that. It's a native JavaScript tree structure that represents a native DOM node tree.

#### URL

74. github.com github.com
1. Generating engine-specific code from a DSL (HTML in this case) seems like the right abstraction.

#### URL

75. 2ality.com 2ality.com
1. To suggest template literals cover the level of abstraction that JSX has to offer is just dumb. They're great and all, but c'mon now...

#### URL

76. en.wikipedia.org en.wikipedia.org
1. Alfred Korzybski remarked that "the map is not the territory" and that "the word is not the thing", encapsulating his view that an abstraction derived from something, or a reaction to it, is not the thing itself.
2. The map–territory relation describes the relationship between an object and a representation of that object, as in the relation between a geographical territory and a map of it.

#### URL

77. github.com github.com
1. "All non-trivial abstractions, to some degree, are leaky" —Joel Spolsky

#### URL

78. dev.to dev.to
1. I used them a bit and realized almost immediately they felt like a leaky abstraction.

#### URL

79. github.com github.com
1. Transparent debugging: a <div> is just a div.

#### URL

80. Sep 2020
1. Now of course we know how React handles this conflict: it takes the new nodes in your virtual DOM tree — the waters in your flowing river — and maps them onto existing nodes in the DOM. In other words React is a functional abstraction over a decidedly non-functional substrate.

To me this is a warning sign, because in my experience, the bigger the gap between an abstraction and the thing it abstracts, the more likely you are to suffer what programmers like to call ‘impedance mismatches’, and I think we do experience that in React.

#### URL

82. Nov 2019
83. github.com github.com
1. There is no reason material-ui can't create a better abstraction on top of the one provided by React itself though.

#### URL

84. Oct 2019
1. It is an append-only, totally-ordered sequence of records ordered by time.

#### URL

86. Aug 2019
87. material-ui.com material-ui.com
1. As Sebastian Markbage pointed out, no abstraction is superior to wrong abstractions. We are providing low-level components to maximize composition capabilities.

#### URL

88. 2014.jsconf.eu 2014.jsconf.eu
1. It's much easier to recover from no abstraction than the wrong abstraction.

#### URL

89. Jan 2019
90. educatorinnovator.org educatorinnovator.org
1. investigates

#### URL

91. Jan 2017
92. resilientwebdesign.com resilientwebdesign.com
1. It is far better to grasp the universe as it really is than to persist in delusion, however satisfying and reassuring.

I would amend this to say that we never grasp the universe as it really is, but that some of our delusions are startlingly accurate (by design).

#### URL

93. Jun 2016
94. Local file Local file
1. Civilization advances by extending the number of important operations we can perform without thinking about them.

This sounds really similar to the concept of "abstraction".

#### Annotators

95. Feb 2015
96. www.cs.odu.edu www.cs.odu.edu
1. Week 3 (Jan 27) - Tasks - Ch 3 Discuss the strengths and limitations of vis tools that are for a specific purpose and those that are general. Distinguish among the three levels of actions in the task abstraction framework. Given a visualization, identify the actions the vis allows and the targets of those actions. Transform domain-specific tasks into the task abstraction framework.

Important chapter for why a vis tool is being used.

#### URL

97. Feb 2014
98. pythonpracticeprojects.com pythonpracticeprojects.com
1. The hard part is teaching the consequences of each choice.

Once you get the syntax and basic language idioms out of the way this is the real problem that faces us no matter what language we pick.

#### URL

99. Nov 2013
100. caseyboyle.net caseyboyle.net
1. As a "rational" being, he now places his behavior under the control of abstractions.

Law as abstraction.