580 Matching Annotations
  1. Apr 2022
  2. Mar 2022
  3. Feb 2022
    1. Zeigarnik effect: Open tasks tend to occupy our short-term memory –until they are done. That is why we get so easily distracted bythoughts of unfinished tasks, regardless of their importance. Butthanks to Zeigarnik’s follow-up research, we also know that we don’tactually have to finish tasks to convince our brains to stop thinkingabout them. All we have to do is to write them down in a way thatconvinces us that it will be taken care of.

      The Zeigarnik effect is the idea that open or pending tasks tend to occupy our short-term memory until they are done or our brain is otherwise convinced that they're "finished". This is why note taking can be valuable. By writing down small things, we can free up our short-term or working memories to focus or work on other potentially more important tasks. It is named for Soviet psychologist Bluma Zeigarnik.

      The Zeigarnik effect is some of the value behind David Allen's "Getting Things Done" system. Writing down to do lists tricks our mind into freeing up space from things we need to take care of. If they're really important, we've got a list and can then take care of them. Meanwhile our working memories are freed up for other tasks.

    2. A good structure is something you can trust. It relieves you fromthe burden of remembering and keeping track of everything. If youcan trust the system, you can let go of the attempt to hold everythingtogether in your head and you can start focusing on what isimportant:

      Whether it's for writing, to do lists, or other productivity spaces, a well designed system is something that one can put their absolute trust into. This allows one to free themselves from the burden of tracking and dealing with minutiae so they can get serious work done.

    1. The strengths, resources, and strategies that HBCC providers use to support children and families in their care. Many studies include HBCC providers across diverse community contexts and racial, ethnic, and linguistic groups. However, fewer studies look within groups to unpack how community context or the intersection of community, race, and language may shape experiences, resources, and strategies. For example, although many studies have included HBCC providers of color, few studies have addressed the specific experiences of Black women who offer HBCC and the strategies they use to support racial healing amid systemic inequities. Some older research looked at the experiences of FFN providers who were recent immigrants or refugees, as well as those from Indigenous communities (Emarita 2008), yet more research is needed to understand the experiences of these providers and the children and families they support

      THIS - we want to do THIS; hard to do this in a large data set, but we can look for resources and strengths; we can look for profiles - combinations of factors that together mean more than individual factors alone (e.g., education despite poverty; having a support network). We need to identify the questions in the NSECE that asked about these and then look for differences in who offers what services and for whom

    2. examine the relationship of providers’ personal and professional characteristics to potential predictors of HBCC quality, including a provider’s flexibility to meet a family’s needs for nontraditional hour and affordable care, or a provider’s use of different learning activities

      We can look at this

    3. Descriptive comparisons of the data can reveal changes in selected characteristics of both providers and their settings, illuminating differences in the cultural, racial, ethnic, and linguistic backgrounds of providers, as well as in their payment sources, if any; the number and ages of the children in care; whether children with disabilities are served; the child care schedule; and participation in ECE systems

      We can look at this

  4. Jan 2022
    1. What an awesome little site. Sadly no RSS to make it easy to follow, so bookmarking here.

      I like that she's titled her posts feed as a "notebook": https://telepathics.xyz/notebook. There's not enough content here (yet) to make a determination that they're using it as a commonplace book though.

      Someone in the IndieWeb chat pointed out an awesome implementation of "stories" she's got on her personal site: https://telepathics.xyz/notes/2020/new-york-city-friends-food-sights/

      I particularly also like the layout and presentation of her Social Media Links page which has tags for the types of content as well as indicators for which are no longer active.

      This makes me wonder if I could use tags on some of my links to provide CSS styling on them to do the same thing for inactive services?

  5. Dec 2021
    1. to be capable of always remembering and instantly recalling information
      • idea: how WE use Google: searching
      • AND filtering with details" and "sensations" to LOCATE the "specific" memory recall

      • The UI "must" search in DIFFERENT "repositories" (local or online)

    1. YaYaTurre June 4, 2018 edited June 4, 2018 I want to produce footnotes and bibliographical references for citations i.e. newspaper articles, reports, manuscripts, etc. that are in the DD MM YYYY format. Preferably like DD/MM YYYY. (26/4 1998).So this: "Nobelpristagaren Alfvén Kämpar Med Centern Mot Kärnkraftsamhället,” Norrköpings Tidningar, June 10, 1976, 8.Becomes this: "Nobelpristagaren Alfvén Kämpar Med Centern Mot Kärnkraftsamhället,” Norrköpings Tidningar, 10/6 1976, 8.Please let me know if you need any additional info. Thank you! damnation June 4, 2018 edited June 4, 2018 1. go here: https://raw.githubusercontent.com/citation-style-language/styles/master/chicago-fullnote-bibliography.csl2. Copy all that code3. Go here: http://editor.citationstyles.org/codeEditor/4. Paste all the code in the box in the bottom over the code in there5. Switch to the visual editor (on top)6. Top right: click on "Example citations"7. Untick anything and tick the "article-newspaper" one8. You should now see "Lisa W. Foderaro, “Rooftop Greenhouse Will Boost City Farming,” New York Times, April 6, 2012."9. click on the "April 6, 2012" part10. .... follow the video I made for you: https://www.youtube.com/watch?v=TOor64T4RvY&feature=youtu.be (note I'm using a different style as the chicago note style is huge and is lame; you just need to wait though!)make sure to change the file ID, self link and filename all to the same new name (like in the video). otherwise your new style will get overwritten with the next update. YaYaTurre June 4, 2018 Whoa! Thank you so much! You have really saved my hide. Thanks again!

      SEE

    1. emilianoeheyns September 27, 2021 I didn't account for spaces in the key field; the current version of BBT would have picked up keys without spaces like [extra=ADSBibcode], the next version of BBT will also support [extra=ADS\ Bibcode]

      plugin BBT;

    2. jspilker September 22, 2021 Thanks so much for this, very much appreciated!If any astros from the future find this thread, you can use Better Bibtex to swipe the ADS Bibcode from the Extra field and use that as your cite key. This assumes that the format in the Extra field remains as "ADS Bibcode: xxxxxx", but you can also alter it if things change in the future. Go to Zotero -> Preferences -> Better Bibtex -> Citation keys (tab), and in the Citation key format box, enter:[Extra:transliterate:select=3] | [auth:lower:alphanum][shortyear]To break that down:- the [Extra:transliterate:select=3] part will search the Extra field, remove any unsafe characters ('transliterate'), and return all words starting with the 3rd. This removes the first two words, "ADS Bibcode:", from the full string so only the bibcode itself is used for the citekey.- In case there is no text in the Extra field, the cite key will revert by default to lastnameYY, which is what the [auth:lower:alphanum][shortyear] produces.

      HERE!!! HOWTO use Extra fields in Citation

    1. Library Catalog The catalog or database an item was imported from. This field is used, for example, in the MLA citation style. Uses of this field are broader than actual library catalogs. Call Number The call number of an item in a library. For citing archival sources, also include the Call Number in Loc. in Archive (if applicable).

      Entender utilidad

    2. Archive Mainly for archival resources, the archive where an item was found. Also used for repositories, such as government report databases, institutional repositories, or subject repositories. Loc. in Archive The location of an item in an archive, such as a box and folder number or other relevant location information from the finding aid. Include the subcollection/call number, box number, and folder number together in this field. For additional tips on citing archival sources in Zotero, see here.

      Entender utilidad

    1. Books G. Grynberg, A. Aspect, C. Fabre, “An Introduction to Quantum Optics: From the Semi-classical Approach to Quantized Light” (revised with help of F.Bretenaker and A. Browaeys), 2010, Cambridge University Press.F. Bardou, J.-P. Bouchaud, A. Aspect and C. Cohen-Tannoudji, « Lévy Statistics and Laser Cooling: How Rare Events Bring Atoms to Rest », Cambridge University Press (2002).Aspect, author of the chapter “Bell’s theorem: the naïve view of an experimentalist”, in “Quantum [un]speakables, from Bell to Quantum information”, R.A. Bertlmann and A. Zeilinger edit. (Springer 2002). Available at http://arxiv.org/abs/quant-ph/0402001Aspect, “John Bell and the second quantum revolution”: introduction to the second edition of “Speakable and Unspeakable in Quantum Mechanics”, J.S. Bell, Cambridge University Press (2004).Aspect, co-author of “Demain la Physique”, (ed. O. Jacob 2004; revised 2009), and in particular of the chapter: « Une nouvelle révolution quantique ».Aspect and P. Grangier, « De l’article d’Einstein Podolsky et Rosen à l’information quantique » in « Einstein aujourd’hui », CNRS EDITIONS-EDP Sciences (2005).

      see

    Tags

    Annotators

    URL

    1. The full, long version is one minute longer than the Making the Video version, while the cut version omits the scenes in which she leaves the airport and is sleepy and in which she fills out the questionnaire. The short version begins with Stefani practicing on the piano and her finding the watch just seconds after that.

      1-full; 2-cut; 3-short; 4-???

    1. Poe no pretende valerse de un método científico en este ensayo sino que escribe basándose en la más pura intuición.[312]​ Por esta razón consideraba la pieza como una «obra de arte», no científica,[312]​ insistiendo en que, a pesar de ello, su contenido era veraz[313]​ y la juzgaba su obra maestra.[314]​

      Eureka

  6. Nov 2021
    1. Sponges are animals and have all animal characteristics. As they have no tissue (parazoans) they are considered the simplest animal phyla. 

      Add text and images on parazoa (no true tissue because of no irreversible specialization.)

    2. Unique Feature: Choanocytes: Sponges show a common characteristic with common ancestors shared with Protists. 

      Add images and text associated with Choanocyte to Choanoflagellate connection

  7. Oct 2021
  8. Sep 2021
  9. Aug 2021
    1. Always use the word ‘Africa’ or ‘Darkness’ or ‘Safari’ in your title.

      I love the style in which this is written. While it appears to be a "how-to" guide, the author is doing nothing more than addressing the stereotypes that surround Africa. Turning this piece into a " how NOT to " guide.

    1. Now consider we want to handle numbers in our known value set: const KNOWN_VALUES = Object.freeze(['a', 'b', 'c', 1, 2, 3]) function isKnownValue(input?: string | number) { return typeof(input) === 'string' && KNOWN_VALUES.includes(input) } Uh oh! This TypeScript compiles without errors, but it's not correct. Where as our original "naive" approach would have worked just fine. Why is that? Where is the breakdown here? It's because TypeScript's type system got in the way of the developer's initial intent. It caused us to change our code from what we intended to what it allowed. It was never the developer's intention to check that input was a string and a known value; the developer simply wanted to check whether input was a known value - but wasn't permitted to do so.

    Tags

    Annotators

  10. Jul 2021
  11. Jun 2021
    1. "Many North American music education programs exclude in vast numbers students who do not embody Euroamerican ideals. One way to begin making music education programs more socially just is to make them more inclusive. For that to happen, we need to develop programs that actively take the standpoint of the least advantaged, and work toward a common good that seeks to undermine hierarchies of advantage and disadvantage. And that, inturn, requires the ability to discuss race directly and meaningfully. Such discussions afford valuable opportunities to confront and evaluate the practical consequences of our actions as music educators. It is only through such conversations, Connell argues, that we come to understand “the real relationships and processes that generate advantage and disadvantage”(p. 125). Unfortunately, these are also conversations many white educators find uncomfortable and prefer to avoid."

  12. May 2021
    1. Collecting per-second measurements of CPU load might yield interesting data, but such frequent measurements may be very expensive to collect, store, and analyze.

      Revisit the log files on our production server.

    1. With over 16 million pulls per month, Google’s `distroless` base images are widely used and depended on by large projects like Kubernetes and Istio. These minimal images don’t include common tools like shells or package managers, making their attack surface (and download size!) smaller than traditional base images such as `ubuntu` or `alpine`.

      I need to check these out.

  13. Apr 2021
    1. There's nothing to stop you from doing initializer code in a file that lives in app/models. for example class MyClass def self.run_me_when_the_class_is_loaded end end MyClass.run_me_when_the_class_is_loaded MyClass.run_me... will run when the class is loaded .... which is what we want, right? Not sure if its the Rails way.... but its extremely straightforward, and does not depend on the shifting winds of Rails.

      does not depend on the shifting winds of Rails.

    1. Of course you must not use plain-text passwords and place them directly into scripts. You even must not use telnet protocol at all. And avoid ftp, too. I needn’t say why you should use ssh, instead, need I? And you also must not plug your fingers into 220 voltage AC-output. Telnet was chosen for examples as less harmless alternative, because it’s getting rare in real life, but it can show all basic functions of expect-like tools, even abilities to send passwords. BUT, you can use “Expect and Co” to do other things, I just show the direction.
    2. But in all this incongruous abundance you'll certanly find the links to expect It's just what is wanted: the tool, which is traditionally used to communicate automatically with interactive programs. And as it always occurs, there is unfortunately a little fault in it: expect needs the programming language TCL to be present. Nevertheless if it doesn't discourage you to install and learn one more, though very powerful language, then you can stop your search, because expect and TCL with or without TK have everything and even more for you to write scripts.
    1. “Who cares? Let’s just go with the style-guide” — to which my response is that caring about the details is in the heart of much of our doings. Yes, this is not a major issue; def self.method is not even a code smell. Actually, that whole debate is on the verge of being incidental. Yet the learning process and the gained knowledge involved in understanding each choice is alone worth the discussion. Furthermore, I believe that the class << self notation echoes a better, more stable understanding of Ruby and Object Orientation in Ruby. Lastly, remember that style-guides may change or be altered (carefully, though!).
  14. Mar 2021
    1. (Not answered on this stub article)

      What, precisely, is the distinction/difference between a semantic class and a semantic field? At the very least, you would say that they are themselves both very much within the same semantic field.

      So, is a semantic class distinct from a semantic field in that semantic class is a more well-defined/clear-cut semantic field? And a semantic field is a more fluid, nebulous, not well-defined field (in the same sense as a magnetic field, which has no distinct boundary whatsoever, only a decay as you move further away from its source) ("semantic fields are constantly flowing into each other")?

      If so, could you even say that a semantic class is a kind of (hyponym) of semantic field?

      Maybe I should pose this question on a semantics forum.

    1. a Docker container running a very simple NodeJS web server with the Graphile library (and some additional Netflix internal components for security, logging, metrics, and monitoring) could provide a “better REST than REST” or “REST++” platform for rapid development efforts

      Give this a try.

  15. Feb 2021
    1. URI::MailTo::EMAIL_REGEXP

      First time I've seen someone create a validator by simply matching against URI::MailTo::EMAIL_REGEXP from std lib. More often you see people copying and pasting some really long regex that they don't understand and is probably not loose enough. It's much better, though, to simply reuse a standard one from a library — by reference, rather than copying and pasting!!

    1. For branching out a separate path in an activity, use the Path() macro. It’s a convenient, simple way to declare alternative routes

      Seems like this would be a very common need: once you switch to a custom failure track, you want it to stay on that track until the end!!!

      The problem is that in a Railway, everything automatically has 2 outputs. But we really only need one (which is exactly what Path gives us). And you end up fighting the defaults when there are the automatic 2 outputs, because you have to remember to explicitly/verbosely redirect all of those outputs or they may end up going somewhere you don't want them to go.

      The default behavior of everything going to the next defined step is not helpful for doing that, and in fact is quite frustrating because you don't want unrelated steps to accidentally end up on one of the tasks in your custom failure track.

      And you can't use fail for custom-track steps becase that breaks magnetic_to for some reason.

      I was finding myself very in need of something like this, and was about to write my own DSL, but then I discovered this. I still think it needs a better DSL than this, but at least they provided a way to do this. Much needed.

      For this example, I might write something like this:

      step :decide_type, Output(Activity::Left, :credit_card) => Track(:with_credit_card)
      
      # Create the track, which would automatically create an implicit End with the same id.
      Track(:with_credit_card) do
          step :authorize
          step :charge
      end
      

      I guess that's not much different than theirs. Main improvement is it avoids ugly need to specify end_id/end_task.

      But that wouldn't actually be enough either in this example, because you would actually want to have a failure track there and a path doesn't have one ... so it sounds like Subprocess and a new self-contained ProcessCreditCard Railway would be the best solution for this particular example... Subprocess is the ultimate in flexibility and gives us all the flexibility we need)


      But what if you had a path that you needed to direct to from 2 different tasks' outputs?

      Example: I came up with this, but it takes a lot of effort to keep my custom path/track hidden/"isolated" and prevent other tasks from automatically/implicitly going into those steps:

      class Example::ValidationErrorTrack < Trailblazer::Activity::Railway
        step :validate_model, Output(:failure) => Track(:validation_error)
        step :save,           Output(:failure) => Track(:validation_error)
      
        # Can't use fail here or the magnetic_to won't work and  Track(:validation_error) won't work
        step :log_validation_error, magnetic_to: :validation_error,
          Output(:success) => End(:validation_error), 
          Output(:failure) => End(:validation_error) 
      end
      
      puts Trailblazer::Developer.render o
      Reloading...
      
      #<Start/:default>
       {Trailblazer::Activity::Right} => #<Trailblazer::Activity::TaskBuilder::Task user_proc=validate_model>
      #<Trailblazer::Activity::TaskBuilder::Task user_proc=validate_model>
       {Trailblazer::Activity::Left} => #<Trailblazer::Activity::TaskBuilder::Task user_proc=log_validation_error>
       {Trailblazer::Activity::Right} => #<Trailblazer::Activity::TaskBuilder::Task user_proc=save>
      #<Trailblazer::Activity::TaskBuilder::Task user_proc=save>
       {Trailblazer::Activity::Left} => #<Trailblazer::Activity::TaskBuilder::Task user_proc=log_validation_error>
       {Trailblazer::Activity::Right} => #<End/:success>
      #<Trailblazer::Activity::TaskBuilder::Task user_proc=log_validation_error>
       {Trailblazer::Activity::Left} => #<End/:validation_error>
       {Trailblazer::Activity::Right} => #<End/:validation_error>
      #<End/:success>
      
      #<End/:validation_error>
      
      #<End/:failure>
      

      Now attempt to do it with Path... Does the Path() have an ID we can reference? Or maybe we just keep a reference to the object and use it directly in 2 different places?

      class Example::ValidationErrorTrack::VPathHelper1 < Trailblazer::Activity::Railway
         validation_error_path = Path(end_id: "End.validation_error", end_task: End(:validation_error)) do
          step :log_validation_error
        end
        step :validate_model, Output(:failure) => validation_error_path
        step :save,           Output(:failure) => validation_error_path
      end
      
      o=Example::ValidationErrorTrack::VPathHelper1; puts Trailblazer::Developer.render o
      Reloading...
      
      #<Start/:default>
       {Trailblazer::Activity::Right} => #<Trailblazer::Activity::TaskBuilder::Task user_proc=validate_model>
      #<Trailblazer::Activity::TaskBuilder::Task user_proc=validate_model>
       {Trailblazer::Activity::Left} => #<Trailblazer::Activity::TaskBuilder::Task user_proc=log_validation_error>
       {Trailblazer::Activity::Right} => #<Trailblazer::Activity::TaskBuilder::Task user_proc=save>
      #<Trailblazer::Activity::TaskBuilder::Task user_proc=log_validation_error>
       {Trailblazer::Activity::Right} => #<End/:validation_error>
      #<Trailblazer::Activity::TaskBuilder::Task user_proc=save>
       {Trailblazer::Activity::Left} => #<Trailblazer::Activity::TaskBuilder::Task user_proc=log_validation_error>
       {Trailblazer::Activity::Right} => #<End/:success>
      #<End/:success>
      
      #<End/:validation_error>
      
      #<End/:failure>
      

      It's just too bad that:

      • there's not a Railway helper in case you want multiple outputs, though we could probably create one pretty easily using Path as our template
      • we can't "inline" a separate Railway acitivity (Subprocess "nests" it rather than "inlines")
    2. step :direct_debit

      I don't think we would/should really want to make this the "success" (Right) path and :credit_card be the "failure" (Left) track.

      Maybe it's okay to repurpose Left and Right for something other than failure/success ... but only if we can actually change the default semantic of those signals/outputs. Is that possible? Maybe there's a way to override or delete the default outputs?

    1. While Trailblazer offers you abstraction layers for all aspects of Ruby On Rails, it does not missionize you. Wherever you want, you may fall back to the "Rails Way" with fat models, monolithic controllers, global helpers, etc. This is not a bad thing, but allows you to step-wise introduce Trailblazer's encapsulation in your app without having to rewrite it.
    1. Personal todo lists don’t depend on others using the same system (no network effects)

      They don't unless you're building a wiki or commonplace book that can interact with those of others. (Roam research isn't doing this---yet, but they should.) Ideally small building block pieces will allow it to dovetail with other systems that could potentially do the same thing.

    1. {a: 1, b: 2, c: 3, d: 4} => {a:, b:, **rest} # a == 1, b == 2, rest == {:c=>3, :d=>4}

      equivalent in javascript:

      {a, b, ...rest} = {a: 1, b: 2, c: 3, d: 4}
      

      Not a bad replacement for that! I still find javascript's syntax a little more easily readable and natural, but given that we can't use the same syntax (probably because it would be incompatible with existing syntax rules that we can't break for compatibility reasons, unfortunately), this is a pretty good compromise/solution that they've come up with.

    1. The reason Reform does updating attributes and validation in the same step is because I wanna reduce public methods. This is to save users from having to remember state.

      I see what he means, but what would you call this (tag)? "have to remember state"? maybe "have to remember" is close enough

      Or maybe order is important / do things in the right order is all we need to describe the problem/need.

    1. p. 217:

      We also keep a higher percentage of our assets in cash than most financial advisors would recommend --- something around 20% of the value of our assets outside the value of our house.

      Compare this to my current allotment.

  16. Jan 2021
    1. Moving DOM elements around made me anxious and I wanted to preserve natural tab order without resorting to setting tabindex, so I also made a flexbox version that never moves DOM elements around. I think it's the superior solution, at least for the layouts I was going for. https://github.com/wickning1/svelte-components/blob/master/src/FlexCardLayout.svelte
    1. Popper for Svelte with actions, no wrapper components or component bindings required! Other Popper libraries for Svelte (including the official @popperjs/svelte library) use a wrapper component that takes the required DOM elements as props. Not only does this require multiple bind:this, you also have to pollute your script tag with multiple DOM references. We can do better with Svelte actions!
  17. Dec 2020
    1. No more waiting around for pull requests to be merged and published. No more forking repos just to fix that one tiny thing preventing your app from working.

      This could be both good and bad.

      potential downside: If people only fix things locally, then they may be less inclined/likely to actually/also submit a merge request, and therefore it may be less likely that this actually (ever) gets fixed upstream. Which is kind of ironic, considering the stated goal "No more waiting around for pull requests to be merged and published." But if this obviates the need to create a pull request (does it), then this could backfire / work against that goal.

      Requiring someone to fork a repo and push up a fix commit -- although a little extra work compared to just fixing locally -- is actually a good thing overall, for the community/ecosystem.

      Ah, good, I see they touched on some of these points in the sections:

      • Benefits of patching over forking
      • When to fork instead
    1. Some devs prefer Svelte’s minimal approach that defers problems to userland, encouraging more innovation, choice, and fragmentation, and other devs prefer a more fully integrated toolkit with a well-supported happy path.

      tag?: what scope of provided features / recommended happy path is needed?

    2. It’s worth mentioning that Svelte limits its scope to being only a UI component framework. Like React, it provides the view layer, but it has more batteries included with its component-scoped CSS and extensible stores for state management. Others like Angular and Vue provide a more all-in-one solution with official routers, opinionated state management, CLIs, and more. Sapper is Svelte’s official app framework that adds routing, server-side rendering, code splitting, and some other essential app features, but it has no opinions about state management and beyond. Some devs prefer Svelte’s minimal approach that defers problems to userland, encouraging more innovation, choice, and fragmentation, and other devs prefer a more fully integrated toolkit with a well-supported happy path.

      tag?: what scope of provided features / recommended happy path is needed?

    1. p. 198:

      Given any five points on a sphere, show that some four of them lie on a hemisphere that includes its boundary.

      I'll admit, I already looked at the hint for this problem, and yes, my initial approach did indeed consist of trying to find the 'worst' configuration.

      I can think of two ways to determine whether or not two points on a sphere lie within the same hemisphere:

      • First off, since any two points on a sphere may be connected by a great circle, they're in the same hemisphere if they're separated by no more than \(\frac{\tau}{2}\) radians along this shortest path.
      • Equivalently, the length of the line segment connecting them must be less than or equal to \(2r\), where \(r\) is the radius of the sphere.

      One other note:

      • It's always possible to divide the sphere in half in such a way that any two points lie within the same hemisphere. (This is a corollary of the first point, above. Note that two antipodal points must necessarily fall on the boundary of such a division.)

      So, I have a picture in my mind of the sphere divided into eight regions of equal area by way of three great circles which intersect one another at right angles. (Think the Equator, the Prime Meridian, and a third great circle drawn through the poles at 90 degrees longitude.) My thinking now tends more toward combinatorics and the pigeonhole principle than geometry proper.

  18. Nov 2020