271 Matching Annotations
  1. Last 7 days
    1. Dictionary. A dictionary is a list of associations between a key and an object. Of course a key is an object, but it must respond to equality tests. Most of the time, symbols are used as keys.

      I don't think that -> was introduced before as a shorthand for association pairs. For example: Smalltalk Association key: #red value: Color red can be rewritten as: ```Smalltalk

      red -> Color red


    2. Observe how pi is the first element of the set:

      Observe how pi which was added last, is shown first, because of how Set >> #add: is implemented.

    3.   How to add ’Orange’ after ’Apple’ in coll1?

      How to add ’Orange’ after ’Apple’ and before 2@1 in coll1?

      or alternatively:

      How to insert ’Orange’ between ’Apple’ and 2@1 in coll1?

    1. When searching perfect cubic roots, it is useful to know about some cubes:

      Consider removal or rephrasing. Maybe rewiting ”For example, when searching...”, etc.

    2.   Select the odd number between -20 and 45.


      Select the odds number between -20 and 45.

    3. and block of code

      Missing article

      and a block of code

    4. Comparing objects deserves its own section.

      This looks more like a comment by the author.

    1. Therefore, to declare a method variable we just name it at the beginning of the script and surround it by pipe characters “|”.

      Why start with “Therefore”?

    1. to two or only one object depending computational history

      Unclear choice of words. Maybe: “to two different or to a single object”.

      “depending computational history” is also unclear.

    1. These two overriding methods are more efficient as they avoid unnecessary checks and ifTrue/ifFalse branches. Polymorphism is often used to avoid unnecessary checks and code branches.

      The goal is not efficiency but flexibility, scalability, even beauty.

    2. LargePositiveInteger LargeNegativeInteger

      Cuis and Squeak share this same design but other dialects make LargePositiveInteger and LargeNegativeInteger suclassify `LargeInteger.

      Ask Juan?

    3. These are the messages an object instance responds to.

      These are the messages an object knows how to respond to.

  2. Dec 2023
    1. If I give you something that you can play with and extend, even a piece of paper with a paragraph and I say it’s not written well, rewrite it, that’s easier than giving you nothing and say make something; you know, giving a blank sheet of paper and starting to write. So the lovely part that has proven true for professional programmers as well as kids is when you start with something, an object that does something, and then you put many objects like those together and have them interact, and then you extend and make them behave a little differently, you can take a very incremental approach to learning how to control a computer system. — Adele Goldberg

      Look for the source

    1. Tip. In the workspace Ctrl-b (Browse) on the class name will open a Browser on the named class:


      Using “that”

      Tip. In the workspace Ctrl-b (Browse) on the class name will open a Browser on that class:

      using “named”

      Tip. In the workspace Ctrl-b (Browse) on the class name will open a Browser on the class named so:

    2. Tip. In the workspace Ctrl-b (Browse) on the class name will open a Browser on the named class:



      Tip. In the workspace Ctrl-b (Browse) on the class name will open a Browser on that class:

      Tip. In the workspace Ctrl-b (Browse) on the class name will open a Browser on the class named so:

    1. Like #shuffled, all collections answer to the message #sorted, which answers a sorted collection.

      The original reads kind of funny. Besides that, #shuffled is a message, not a collection. This paragraph could be rewritten as follows:

      Similarly as with #shuffled, all collections know how to answer #sorted with a sorted copy of themselves.

  3. Nov 2023
    1. In the Spacewar! code snippet below, the parentheses make it more clear that the addition happens first:

      In the Spacewar! code snippet below, the parentheses aren't necessary but clarify that the addition happens first:

    1.   Because you are not using the base image but one used to teach classes, you will likely see a much larger number.

      Proposed change:

      When you are not using the base image...

    2. ProtoObject

      TODO inquire about ProtoObject. See post by Christoph Tiede entitled [Bug & design issue] Messages understood or not understood by ProtoObject on squeak-dev

      However, the crucial question is: What special messages should an instance of ProtoObject understand? On the one hand, the idea of ProtoObjects is to work as total proxies with a maximum amount of forwarding potential, which implies a minimum number of methods. On the other hand, certain aspects such as accessing instvars or executing messages are really identity-related. Looking forward to your comments :-)

    1. https://superuser.com/questions/1683607/how-do-i-fix-audio-video-sync-in-ffmpeg#comment2856481_1683607

      you can also pass an integer fraction to atempo: atempo=23980/24000

      Check the frame rate for both, check the audio sampling frequency for both. Make sure they're the same or you'll have to include that in your calculations.

      in my experience, only the video framerate matters, the audio sampling frequency has no effect on audio/video sync

  4. Oct 2023
  5. Jul 2023
    1. The problem is that the OUnit library hasn’t been loaded into utop yet. It can be with the following directive

      What's the difference between load and require directives?

      "Load" uses .cmo files built from those of your directory. "Require" get them from libraries, is that right? But where from?

  6. Jun 2023
    1. click “Submit”

      This is always grayed out for me. I've tried different sizes and types. Eventually trying a 711x711 .webp, which I took from another avatar (#palnet). But nothing works. So I'll investigate further.

  7. May 2023
    1. (** [fact_aux n acc] is [n! * acc]. *)

      Shouldn't the doc string be:

      (* [fact_aux n acc] is [(n - 1)! * acc]. )


      Given definition is valid for acc = 1, but for recursive cases where acc = (n - m)! the definition above seems clearer for me.

    1. A perhaps surprising result from the Gilbert paper is that no implementation of an atomic register in an asynchronous network can be available at all times, and consistent only when no messages are lost. This result depends upon the asynchronous network property, the idea being that it is impossible to tell if a message has been dropped and therefore a node cannot wait indefinitely for a response while still maintaining availability, however if it responds too early it might be inconsistent.


    1. However the quorum is only used to detect the failure. In order to actually perform a failover, one of the Sentinels need to be elected leader for the failover and be authorized to proceed. This only happens with the vote of the majority of the Sentinel processes.


  8. Apr 2023
    1. Holder is lying to us: even though we instantiate a HolderFactory, the singleton is already initialized, and just sits there in a static field. The performance data for this idiom is unreliable.


    1. solution to list max exn, above

      See my comments for the question above.

    2. list max exn string [★★] Write a function list_max_string

      Perhaps the heading referred to a description similar to the body of this exercise, but where an exception was raised when the list is empty. Relates to my reversed observation in the following exercise.

    3. but a function that says that January 100, 2013 comes after February 34, 2013 is also valid

      Miswriting here? Perhaps the meaning was the respective tuples, (2013, 1, 100) and (2013, 2, 34) are valid (considering arbitrary date-like triples, without validation). As is seems a contradiction to previous statement: "because any date in January comes before any date in February".

  9. Mar 2023
    1. Let q1..qn be that subsequence of patterns (without the exception keyword), and let r1..rm be the subsequence of non-exception patterns

      The indices ranges are swapped - it should be 1..m for try clause and 1..n for non exception patterns, using match clause.

  10. Feb 2023
    1. 在你开始之前,你应当了解一些 OVPs (在线视频提供商) 例如 YouTube 、Dailymotion 、Vimeo、Bilibili等,以及在线音频提供商例如 Soundcloud。这些公司提供方便、简单的方式来支持视频,所以你不必担心庞大的带宽消耗。OVPS 甚至提供现成的代码用于为你的 web 网页嵌入视频/音频。如果你使用这样的服务,你便可以避免在这篇文章中我们将讨论的一些难题。在下一篇文章中,我们将会再讨论这样的服务。
  11. Dec 2022
    1. Other authors found other angles on this question: the first book in Hannu Rajaniemi's Jean Le Flambeur trilogy (The Quantum Thief starts with the exact opposite—a thief sentenced to spend a subjective eternity in an escape-proof prison, as a punishment of sorts.
    2. Which leads me to ask: in a transhumanist society—go read Accelerando, or Glasshouse, or The Rapture of the Nerds
    1. ConvertSaveload

      It would be good to describe why ConvertSaveload is used here, as well as how to configure it in Cargo.toml.

      [dependencies] changes I needed in Cargo.toml:

      serde = { version = "1.0.148", features = ["derive"]} specs = { version = "0.18.0", features = ["serde"]}

      and imports:

      ``` use serde::{Deserialize, Serialize}; use specs::{ prelude::*, saveload::{ConvertSaveload, Marker}, Entity, };

      use specs_derive::{Component, ConvertSaveload}; use std::convert::Infallible;

      // NoError alias is deprecated in specs ... but specs_derive needs it pub type NoError = Infallible; ```

  12. Nov 2022
    1. Stockage d’eau chaude

      ajouter le stockage DHW

    2. !! les données sont pas ds l’ordre (selon ordre de tableau)

      Correction à apporter



    1. context

      should introduce the context earlier, as well as the main function's BError type.

    2. You can find the glyphs available here.

      Link is dead, maybe use wikipedia instead.

    3. In our tick function

      Need to introduce the tick function and GameState here.

  13. Oct 2022
    1. how sophisticated modern systems of Internet censorship would become.

      I want to look into examples of this

    1. The app will take care of setting up the proxy address, you don’t have to do anything. 
    2. Share WiFi from Android to Windows 1. Open up your Windows PC, and connect to the WiFi hotspot that says – DIRECT-Android and enters the password that you saw on the app in step 2. If you open up the browser now, you won’t see get internet access even though you are connected to the network. To fix that, you need to set up a proxy IP.


    3. And the app called NetShare no root tethering works smartly around this restriction. It first creates a workgroup, which takes the other devices on the same network. Do note, that as of now, the other device doesn’t have access to the internet.  Now, in order to share the internet, the app creates a VPN in Android, which you’ll have to
  14. Jul 2022
  15. Jun 2022
    1. The great irony of science is that as we’ve learned more about the world around us, we have forgotten the world within.

      Find example of this in fiction. GTP3 or whatever language model we use to develop the AI from westworld should be able to find all examples of this in all of fiction PLUS create a map/ontology of them

  16. May 2022
  17. Mar 2022
    1. subcortical structures, which also undergo significant development, were not available from the official ABCD data release
    2. longitudinal component of ABCD is essential to begin to delineate causal longitudinal pathways
  18. Feb 2022
    1. But.... what I found was a morass of academic philosophy, sketchy anthropology, even sketchier archeology and ancient history, all woven into some kind of a discourse around the details of Marx's particular view.

      If this is true, this is a serious problem. Maybe someone has already written a good review of the sources [[Kōjin Karatani]] has used?

    1. В Кройдоне стоит зайти в известный среди рэперов чикен-шоп "Morleys", рекомендую куриные крылышки и местный бургер.
  19. Jan 2022
    1. It has been speculated that the ‘placebo’ response in antidepressant trials has been increasing during recent years

      why is this?

    2. Montgomery-Asberg Depression Rating Scale

      look this up

    3. Hamilton Depression Rating

      note to self, research what this means

    1. I think it sounds kinda [[cute]] and slightly [[quirky]]. At least, that's the [[tone]] I wanted to achieve. At the very least that's how I want myself to be: kinda cute and slightly quirky.

      I like it, thank you for writing it!

      I'll fix the pulls :)

  20. Dec 2021
  21. Nov 2021
    1. raise issues if something in the instructions is unclear.

      File bug after having configured [[promensia]]:

      • twitter-archive cannot work alone (without twint).
    1. Merging distribute knowledge is an excersize on the abstractness of ontologies vs the practicality of schema-less graph knowledge.

      Maybe a bit vague (the article), maybe re-read it. But i really appreciate the boldness [[agora]] try to solve the same problem.

    1. You have to interpret your sources and then rely on your own thoughts henceforth to get the maximum benefit. Collecting information does not increase your knowledge.

      Useful tip about personal notes.

  22. Oct 2021
  23. Aug 2021
    1. All rights reserved © Wireframes Corporation 2021 About Company Services Testimonials Get in Touch

      Make these Footer Links Work

    2. Sign up to our newsletter

      Create a General List in Mautic and setup a Broadcast Email Segment. Create a Mautic form for the broadcast list and link form data in here

    3. I Teach Men To Expand Their Limits.

      What is your mission statement?

    4. You're amazing. Start Acting Like It. Live a limitless life of your own design. Step up and answer a few questions on the form to connect!

      What text should I put here?

    5. Live your best life. In a collaboration with Rooz Yavari of Boundless Embodiment, this weeklong event will get you over your fears, inner demons, and push you to step up to the next level of your potential.

      Put a button below this that Links to the Advanced Seminar Landing Page

    6. Come for the weekend in a city near you and work with David and his coaches to crush inner doubts and fears, releasing you to the next level.

      Put a button below to link to the schedule page

    7. David Sekera is a Veteran Dating coach with 4 years experience in the field.

      What test should I put here?

    8. Come get the limitless experience live.

      Put a button below this that leads to the Week Long Advanced Landing Page. See Github Issue #4

  24. Jul 2021
  25. arxiv.org arxiv.org
    1. a general science of systems and processes

      canonical link missing?

      https://en.wikipedia.org/wiki/Systems_science does not mention category theory. Perhaps this paper could be added as a reference and the page could be enriched?

    1. Es besteht eine Pflicht zur Mund-Nasen-Bedeckung in allen Schulräumen.
    2. Die jeweils gültigen Hygienevorschriften sind einzuhalten. Die Musterhygienepläne werden fortgeschrieben.
    3. Für die ersten Unterrichtswochen nach den Sommerferien gelten besondere Infektionsschutzmaßnahmen, um eine erneute Ausbreitung des Coronavirus zu verhindern.
    4. Die Testpflicht für Schülerinnen und Schüler und pädagogisches Personal wird bis auf Weiteres beibehalten.
    5. Präsenzpflicht für Schülerinnen und Schüler.
    6. Vollständiger Präsenzunterricht in allen Jahrgangsstufen und Schularten.
    7. Die ergänzende Förderung und Betreuung (Hortbetreuung) wird ebenfalls wieder ab dem 09.06 2021 angeboten.
    8. Die Präsenzpflicht bleibt ausgesetzt.
    9. Lüften und Testungen (wie bisher zwei Mal wöchentlich).
    10. Tragen einer medizinischen Mund-Nasen-Bedeckung im Schulgebäude. Auf dem Schulhof wird die Maskenpflicht hingegen aufgehoben.
    11. Jeder ab zwölf Jahre darf sich impfen lassen, wenn er das möchte.
    12. Die Impfreihenfolge ist aufgehoben worden.
    13. Für die Corona-Schutzimpfung gilt seit Montag (07.06.2021) keine Beschränkung auf bestimmte Risikogruppen mehr.
  26. Jun 2021
    1. Die Innenbereiche von Zoo, Tierpark und Botanischem Garten dürfen öffnen, allerdings besteht Reservierungs- und Testpflicht.

      § 21 (4) 2. InfSchMV

    1. But I like Zendegi for almost the opposite reasons; it’s full of lots of serendipitous things that could easily have been different
    1. Wer seine Wohnung „ohne glaubhaften Grund“ verlässt, begeht eine Ordnungswidrigkeit.
    2. Wer an unzulässigen Veranstaltungen teilnimmt oder einen Betrieb geöffnet hält, macht sich strafbar.

      § 75 (1) IfSG i.V.m. § 32 S. 1 IfSG i.V.m. § 2 (1) SARS-CoV-2-EindmaßnV i.V.m. § 1 (1) SARS-CoV-2-EindmaßnV

    1. Η βραβευμένη στο Σάντανς ταινία του «Γιάλντα, η νύχτα της συγχώρεσης» βγαίνει την επόμενη εβδομάδα στα θερινά.

      Του Μασούντ Μπακσί, 2020, ριαλιτυ οπου οι καταδικασμενοι σε θανατο ζητουν συγχωρεση απο την οικογενεια του θυματος, "live".

  27. May 2021
    1. As Sirianni documents, in the first months of the revolution hundreds of firms were taken over spontaneously from below by groups of workers forming factory committees. But as he also documents, the Bolshevik leadership sought very strenuously to hold back and reverse this wave of spontaneous expropriations

      Interesting book of Carmen Siriani about the factory soviets.

    2. Indeed, as T. H. Rigby demonstrates in his study of the formation of the ‘Soviet’ system of government in Russia

      Must be interesting study to read about soviet Russia.

    1. TED CHIANG: So there’s this computer programmer named Steve Grand. And he wrote a book called “Creation,” which is partly about artificial intelligence, but I guess partly about artificial life. That book, I think, sort of made the most convincing case, I thought, for if we’re going to actually create something that merits the term of being a living thing in software, I feel like sort of the ideas in that book are the ones that I think are most promising. So I guess I’d recommend that.
    1. This point is made beautifully in another favorite book of mine, A Computer Scientist’s Guide to Cell Biology, by William W. Cohen:
    2. One of my favorite books is called The Machinery of Life, by David Goodsell.
    1. The command nix-shell will build the dependencies of the specified derivation, but not the derivation itself. It will then start an interactive shell in which all environment variables defined by the derivation path have been set to their corresponding values, and the script $stdenv/setup has been sourced. This is useful for reproducing the environment of a derivation for development.

      QUESTION: What exactly does nix-shell execute from the Nix expression (i.e., shell.nix, default.nix, etc.)?

      ANSWER: Based on my current understanding, the answer is everything. It calls $stdenv/setup (see annotation below) to set up the most basic environment variables (TODO: expand on this), and "injects" the most common tools (e.g., gcc, sed) into it.

      It also defines the phases (TODO: verify this) and builder functions, such as genericBuilder. For example, the default builder is just two lines:

      source $stdenv/setup

      TODO: pkgs/stdenv/generic/builder.sh is a mystery though.

      QUESTION: Once dropping into nix-shell, how do I know what phases to execute by looking at a default.nix? (E.g., [..]freeswitch/default.nix)

      ANSWER: As far as I can tell, one can override the phases in their Nix build expression (to build the derivation, see at the bottom), but they won't get executed as only the $stdenv/setup (see above) will get sourced, and no builders are called that, in return, invoke the phases (again, see above).

      So if one is using nix-shell

      • to create/hack on a package, the person has to manually invoke the builder or phases (TODO: still fuzzy on this subject)

      • to set up an environment, then one doesn't even have to worry about builders/phases because we just use nix-shell to clear the environment and to inject tools that we need for a given task

      QUESTION: When dropping into nix-shell, is this Nix expression (i.e., freeswitch/default.nix) executed? Or just parts of it?

      ANSWER: As stated above, all of the input Nix expression is evaluated, but no builders and build phases are called; although, nothing prevents one to override the phases, in case they are creating/hacking on a package.


      The command nix-shell will build the dependencies of the specified derivation, but not the derivation itself.

      What is the "derivation" here exactly? I know that it is a build expression, but does that mean the default.nix (or other Nix expression) nix-shell is invoked with?

      <sup>This statement also seems like a contradiction with how `nix-shell` works (i.e., if one issues `nix-shell -p curl`, then `curl` will be available in that sub-shell), but `-p` acts like a shortcut to as if `curl` had been listed in `buildInputs` so this is not the case.</sup>

      ANSWER: I have the feeling my confusion comes from the fact that the term "derivation" is used ambiguously in the manuals, sometimes to mean multiple things (see list below).

      TODO: Substantiate this claim, and make sure that it not coming from my misunderstanding certain topics.

      • Nix build expression (such as default.nix) whose output is going to become the store derivation itself (see last item at the bottom about the Nix manual's glossary definition)

      • store derivation.

      Had multiple cracks at unambiguously define what a derivation is, and here's a list of these:

      QUESTION: What is the difference between nix-shell -p and nix-shell invoked with a Nix expression of mkShell (or other that achieves the similar effect)?

      QUESTION: nix-shell does not create a sub-shell, so what does it do? (clarification: so nix-shell indeed does it; I confused it with nix shell)

  28. Apr 2021
    1. Όποιος δεν θέλει έναν στενό ορισμό του gaslighting τον παραπέμπω στην ταινία του Netflix “Death to 2020” και στον εξαιρετικό ρόλο της Λίζα Κούντροου (η Φοίβη από τα Φιλαράκια) όπου ενσαρκώνει εξαιρετικά την Αριστοτελία Πελώνη του Τράμπ.

      Documentary: Death to 2020

  29. Mar 2021
  30. Feb 2021
    1. ότι δήθεν ο Δ. Κουφοντίνας πήγε σε αγροτική φυλακή λόγω κάποιου ευνοϊκού νόμου του Σύριζα

      Δεν είναι έτσι??

    1. φωτογραφία της νεκροτομής του 33χρονου Χόγκερ Μάινς, μέλους της δυτικογερμανικής ένοπλης ακροαριστερής οργάνωσης «Φράξια Κόκκινος Στρατός» (RAF), μετά το θάνατό του στις φυλακές Βίτλιχ (9/11/1974) ύστερα από απεργία πείνας 58 ημερών.

      Εχουν κι οι Γερμανοί νεκρούς από απεργία πείνας. Η φωτό δεν υπαρχει στην wikipedia.

    1. A Nix expression describes everything that goes into a package build action (a “derivation”)

      Come up with an ultimate definition for what a "derivation" is.

      So round up all the places where it is mentioned across Nix* manuals, and check out these:

      From Nix Pills section 6.1. The derivation function (see annotation):

      A derivation from a Nix language view point is simply a set, with some attributes. Therefore you can pass the derivation around with variables like anything else.

      So there is clearly an ambiguity between what derivations are perceived to be and what is stated in the Eelco Dolstra's PhD thesis. Or maybe I'm having issues with reading comprehension again...

    2. substitute

      this is another key topic. Also:

      • substitute vs. substituter => this (I think)

      See annotations with the substitute tag

    3. garbage collector roots

      Definitely avoid this, when a term is used but only introduced formally way later. (There is also a reference to "garbage collector roots" almost at the beginning as well.)

    4. user environment
    5. 4.3.1. Change the Nix store path prefix

      There is a lot of place in this manual (and probably in the others as well) where the prefix is referred to (usually with italics, such as "prefix/store"), so in the book

      • this should be linked to this section (or the one in the book), and

      • establish a clear and well-communicated notation to convey this

    6. You can uninstall Nix simply by running: $ rm -rf /nix
    7. $ mkdir /nix $ chown alice /nix

      Traditionally, when a command should be invoked with sudo, it is either included in the example, or the shell indicator is # instead of $.

    8. To explicitly select a single-user installation on your system:

      It should be noted in this section also that since nix 2.1.0, single user install is the default.

    9. since packages aren’t overwritten, the old versions are still there after an upgrade. This means that you can roll back to the old version:

      Wouldn't hurt to tell folks that this is a convenience layer, and one could also just use the old package from the /nix/store, even though that path would be long and obscure; one could use symlinks of course.

      Or, onc could just use nix-shell -p that specifies a specific version (that's already in the store), but, of course, it's not that simple...


    1. Сбор актуальных новостей с учётом фильтров.Просмотр отфильтрованных новостей.


      • Establish the number of Rubik's cube combinations.
      • Establish "algorithm" capabilities based on the x12 "impossible" cubes.
      • "Signmaster notation" for describing algorithm moves.
      • x2 links to youtube tutorials.
    1. 18.6. Patches Patches available online should be retrieved using fetchpatch. patches = [ (fetchpatch { name = "fix-check-for-using-shared-freetype-lib.patch"; url = "http://git.ghostscript.com/?p=ghostpdl.git;a=patch;h=8f5d285"; sha256 = "1f0k043rng7f0rfl9hhb89qzvvksqmkrikmm38p61yfx51l325xr"; }) ];

      ... and from Chapter 11:

      fetchpatch works very similarly to fetchurl with the same arguments expected. It expects patch files as a source and and performs normalization on them before computing the checksum. For example it will remove comments or other unstable parts that are sometimes added by version control systems and can change over time.

      ... and also adding highlight of 19.3. Submitting security fixes

      because these are the only places I've seen fetchpatch mentioned.

      From the wild in freeswitch/default.nix in Nixpkgs:

      stdenv.mkDerivation rec {
        pname = "freeswitch";
        version = "1.10.5";
        src = fetchFromGitHub {
          owner = "signalwire";
          repo = pname;
          rev = "v${version}";
          sha256 = "18dhyb19k28dcm1i8mhqvvgm2phsrmrwyjmfn79glk8pdlalvcha";
        patches = [
          # https://github.com/signalwire/freeswitch/pull/812 fix mod_spandsp, mod_gsmopen build, drop when updating from 1.10.5
          (fetchpatch {
            url = "https://github.com/signalwire/freeswitch/commit/51fba83ed3ed2d9753d8e6b13e13001aca50b493.patch";
            sha256 = "0h2bmifsyyasxjka3pczbmqym1chvz91fmb589njrdbwpkjyvqh3";
        postPatch = ''
          patchShebangs     libs/libvpx/build/make/rtcd.pl
          substituteInPlace libs/libvpx/build/make/configure.sh \
            --replace AS=\''${AS} AS=yasm
          # Disable advertisement banners
          for f in src/include/cc.h libs/esl/src/include/cc.h; do
              echo 'const char *cc = "";'
              echo 'const char *cc_s = "";'
            } > $f
    2. 6.5. Phases

      Not sure why this isn't called build phases... See also.

    1. Hypothesis client doesn’t load automatically on PDFs,

      You may upload and annotate local files using the "docdrop" service, which works for many kinds of files, word docs, exce & epub. They are all converted to PDF or CSV.

  31. medium.com medium.com