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.

  2. Jun 2023
    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".

  3. May 2023
    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.

  4. Mar 2023
  5. Jan 2023
    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.

      https://www.cambridge.org/core/journals/cambridge-archaeological-journal/article/an-upper-palaeolithic-protowriting-system-and-phenological-calendar/6F2AD8A705888F2226FE857840B4FE19

      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.
  6. Dec 2022
    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?

  7. Nov 2022
    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.
  8. Oct 2022
    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.

    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.

  9. Sep 2022
  10. Aug 2022
    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!

    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".

    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...

    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.

  11. Jul 2022
    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.

  12. May 2022
    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.

    Tags

    Annotators

  13. Apr 2022
    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
    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.
  14. Feb 2022
    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?

  15. Jan 2022
    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?

  16. Nov 2021
  17. Oct 2021
  18. Sep 2021
    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:
  19. Jul 2021
  20. datatracker.ietf.org datatracker.ietf.org
    1. The WebSocket Protocol is designed on the principle that there should be minimal framing (the only framing that exists is to make the protocol frame-based instead of stream-based and to support a distinction between Unicode text and binary frames). It is expected that metadata would be layered on top of WebSocket by the application Fette & Melnikov Standards Track [Page 9] RFC 6455 The WebSocket Protocol December 2011 layer, in the same way that metadata is layered on top of TCP by the application layer (e.g., HTTP). Conceptually, WebSocket is really just a layer on top of TCP that does the following: o adds a web origin-based security model for browsers o adds an addressing and protocol naming mechanism to support multiple services on one port and multiple host names on one IP address o layers a framing mechanism on top of TCP to get back to the IP packet mechanism that TCP is built on, but without length limits o includes an additional closing handshake in-band that is designed to work in the presence of proxies and other intermediaries Other than that, WebSocket adds nothing. Basically it is intended to be as close to just exposing raw TCP to script as possible given the constraints of the Web. It's also designed in such a way that its servers can share a port with HTTP servers, by having its handshake be a valid HTTP Upgrade request. One could conceptually use other protocols to establish client-server messaging, but the intent of WebSockets is to provide a relatively simple protocol that can coexist with HTTP and deployed HTTP infrastructure (such as proxies) and that is as close to TCP as is safe for use with such infrastructure given security considerations, with targeted additions to simplify usage and keep simple things simple (such as the addition of message semantics).
  21. Jun 2021
    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.
    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.

  22. May 2021
    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.
  23. Mar 2021
    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.
    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.
  24. Feb 2021
    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.
    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.
    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.
    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.
    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.
  25. Dec 2020
    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.
  26. Nov 2020
    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?

  27. Oct 2020
    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.

    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.
    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.
  28. 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.

  29. Nov 2019
  30. Oct 2019
  31. Aug 2019
    1. As Sebastian Markbage pointed out, no abstraction is superior to wrong abstractions. We are providing low-level components to maximize composition capabilities.
  32. Jan 2019
  33. Jan 2017
    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).

  34. Jun 2016
    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".

    Tags

    Annotators

  35. Feb 2015
    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.

  36. Feb 2014
    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.

  37. Nov 2013