3,534 Matching Annotations
  1. Last 7 days
  2. Jul 2019
    1. Sonoma County Conservation Action in 1991, a canvassing organization that mobilized local voters in support of urban growth boundaries.
    1. Coastwalk California, another organization he co-founded 31 years ago, is the nonprofit that advocates for the statewide California Coastal Trail (CCT)
    2. Sonoma County Conservation Action (SCCA) which he founded 25 years ago
    1. PHP:

        public function grant_token($username) {
          JWT::$leeway = 60;
          $now = new DateTime();
          $exp = new DateTime('now');
          $exp->add(new DateInterval('PT' . 10 . 'M'));
          $claims = array(
            "aud" => parse_url($this->service)['host'],
            "iss" => $this->jwt_client_id,
            "sub" => "acct:$username@$this->authority",
            "nbf" => $now->getTimestamp(),
            "exp" => $exp->getTimestamp(),
          $jwt = JWT::encode($claims, $this->jwt_client_secret, 'HS256');
          return $jwt;
    2. current time

      If your clock has drifted, you'll miss the window within which the service will allow the token.

      I had to do this in order to generate a valid token:

      ntpdate pool.ntp.org

    3. eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiI0QTJGQTNCNC1DMTYwLTQ0MzYtODJEMy0xNDhGNjAyQzlBQTgiLCJuYmYiOjE0Nzg2MDEzNDUsImF1ZCI6Imh5cG90aGVzLmlzIiwiZXhwIjoxNDc4NjAxOTQ1LCJzdWIiOiJhY2N0OnNhbWluYS5taWFuQGN1c3RvbXdpZGdldHMuY29tIn0.65-ZErbLu1q8LpT_K8FAOQO984hAyN1XFBe1rC3lgfk

      You can use https://jwt.io to parse the claims in these tokens.

  3. Jun 2019
    1. (docker inspect --format '{{ .NetworkSettings.IPAddress }}'

      Finding the IP address of a dockerized instance of MariaDB

    1. int.hist = function(x,ylab="Frequency",...) { barplot(table(factor(x,levels=min(x):max(x))),space=0,xaxt="n",ylab=ylab,...);axis(1) }
    1. So the question becomes, is there a way within the annotation spec to allow us to write simple HTML documents that blockquote portions of other texts in such a way that we can bring over the annotations of those other texts (or allow annotating them on our original page and have them pushed back to the original) within the blockquoted portions, yet still not interfere with annotating our own original document?

      There might be a way. My $0.02, based on what I've tried to codify in https://web.hypothes.is/help/how-hypothesis-interacts-with-document-metadata/, is that I'm not confident I could predict or control the outcomes.

    1. I’m certainly not the first person to observe that such national divisions exist. Kevin Phillips, a Republican Party campaign strategist, recognized the boundaries and values of several of these nations in 1969 and used them to correctly prophesy two decades of American political development in his politico cult classic The Emerging Republican Majority. Joel Garreau, a Washington Post editor, argued that our continent was divided into rival power blocs in The Nine Nations of North America, though his ahistorical approach undermined the identification of the nations. The Pulitzer Prize–winning historian David Hackett Fischer detailed the origins and early evolution of four of these nations in his magisterial Albion’s Seed and later added New France. Russell Shorto described the salient characteristics of New Netherland in The Island at the Center of the World. And the list goes on.
    1. require(...path...) imports a module.

      if require exists, as it doesn't by default in the browser

    2. what we use on the command line is different from what we use in the browser (for now).

      Here's another place where a fuller explanation of the possibilities in the browser (including script type="module") could help contextualize the node-oriented examples.

    3. Section H.3 explains why and how in more detail

      Is the discussion of prototypes there intended to explain a reluctance to use the function keyword?

    4. let element of pair

      I settled on forEach a while ago and never moved on to this idiom. Good to be reminded.

    5. let


    1. Node is an open source implementation of JavaScript that includes a command-line interpreter like those for languages such as Python and R. The command node on its own starts a read-evaluate-print loop that executes commands as they are typed in and displays their output.

      There is also, of course, the browser, with its own REPL, and with excellent networking and debugging. A lot can be accomplished in that environment nowadays!

      Maybe worth reviewing what's possible in the browser ) to contextualize what is also possible in node?

    1. open annotation layer for the web

      Meaning that this comment is "anchored" to the highlighted phrase in a standard way.

    2. This page tests an alternative way to embed the Hypothesis client, <script src="https:/jonudell.info/h/h-embed.js>, that adjusts the page to prevent the sidebar from overlapping it.

  4. May 2019
    1. Get a list of Groups

      A question to support:

      Is there a way to search for public groups? For example, by keyword? Thanks.

      My answer:

      https://hypothes.is/api/groups without authentication just returns world (i.e. Public).

      With authentication, it also returns private groups that the authenticated account belongs to.

      But neither https://hypothes.is/api/groups (unauthenticated) nor https://hypothes.is/api/groups?uri=https://www.windley.com returns the open group that's associated with Phil Windley's blog.

      So if you're question is: "Can I discover open groups by searching for words in their names?" then I think the answer is "No" but will run this by the developers of the API to make sure.

      /cc @lyzadanger

    1. From @hmstepanek:

      Starting a thread about what the sidebar-content does: Non-UI related things:

      • loads annotations/reloads when focused group, logged-in user or connected frames change
      • connects streamer when sidebar is opened/user changes
      • groupIDFromSelection - this should go in the store

      UI related things:

      • counts annotations within each tab (orphans, page notes, etc)
      • focuses annotation
      • scrolls to annotation in sidebar
      • when to show tabs
      • collapse/expand threads
      • determines whether to show selected ann/group error
      • determines whether to show logged out message
      • calcs number of replies

      Passing state on to other components:

      • passes thread expand state to threadlist
      • passes all ann visible state to search status bar
      • passes visible ann count to search status bar
      • passes clear func to search status bar (edited)
    1. "This document changed the course of my life."

      -- @bigbluehat

    1. In the 15 months since eLife introduced the system, more than 6,000 annotations have been posted on nearly 2,000 documents, although about half of those were made by eLife’s automated curation assistant, SciBot.
    1. The challenge with Hypothes.is is that it is a web extension compatible with a single browser. This means that students must all be using Google Chrome in order to participate in Hypothes.is annotations.

      The Chrome extension is required to annotate a page that does not otherwise embed the Hypothesis client. But there are other ways to bring the client to such a page. They include:

      In all these cases the Hypothesis client runs in a browser-agnostic way.

  5. Apr 2019
    1. paints a far more dire picture of the immediate consequences of climate change than previously thought

      This statement and similar statements would benefit from specific examples from the report or more context. Although I agree the problem is dire, I'm not sure which aspect of the problem is worse than previously thought. For example, the carbon budget (i.e., how much humans can emit and still warm less than 1.5 degrees C) has expanded from previous estimates.

    2. Description

    1. members of these communities are to a reasonably significant extent self-motivated and self-directed to solve their problems, and so the solutions are often bottom-up created with only a light level of coordination on top

      Here's a thing I've often wondered about with open source languages. Each is a community of effort, each expends considerable effort producing runtime and standard libraries, there is massive duplication of that effort across projects.

      A common runtime/library could have been the JVM, or .NET, that didn't happen. My current candidate for the role would be based on WASM (web assembly) and WASI (web assembly system interface) which could be a common home for all the C componentry that's separately wired into Python/R/Ruby/etc.

      But I'm not at all sure that will happen. How do you coordinate effort across communities of effort?

    1. id euismod malesuada. Etiam tempor risus at leo pulvinar ornare. Nulla vitae pellentesque lectus, et hendrerit ipsum



    1. Aspects of interest:

      • Build a temporary table that filters annotations down to just those matching a domain, and takes just the group ids from those annotations

      • Get the set of unique group ids from that result, and the user counts for each group

      • Show the group ids and counts

  6. Mar 2019
    1. The North Carolina Republican Party actually sent out a press release boasting about how its efforts drove down African-American turnout in this election.

      Language: "boasting"

    1. Page note

    2. This is my first hands-free annotation. Guess what? Even with the Chrome extension for Dragon, Dragon can't hear me in our annotation editor. So I have to use a separate Dragon tool called the dictation box to speak my text and then copy and paste it into the annotation.

    3. annotating http://example.com

    4. abc-def152726281185

    1. make

      A bare make now does:

      make help Show this help message
      make dev Run the app in the development server
      make lint Run the code linter(s) and print any warnings
      make test Run the unit tests
      make docs Build docs website and serve it locally
      make checkdocs Crash if building the docs website fails
      make clean Delete development artefacts (cached files, dependencies, etc)

      make dev does this:

      yarn run deps 2>>/dev/null || yarn install
      /bin/sh: 1: yarn: not found
      Makefile:48: recipe for target 'node_modules/.uptodate' failed

      On Ubuntu, I used this recipe: https://stackoverflow.com/questions/42606941/install-yarn-ubuntu-16-04-linux-mint-18-1

      Then make dev

    1. Open Review

      This is an open review.

    2. Open Review

      This is an open review.

    3. Our results point to an important role for genetically determined alternative polyadenylation in affecting predisposition to complex diseases, and suggest new ways to extract functional information from GWAS data.

      Targeted note 2.

    4. We propose a computational strategy to discover genetic variants affecting the relative expression of alternative 3' untranslated region (UTR) isoforms

      Targeted note.

    5. Our results point to an important role for genetically determined alternative polyadenylation in affecting predisposition to complex diseases, and suggest new ways to extract functional information from GWAS data.

      Targeted comment.

    1. Points of interest

      • Shows how to get the length of a column value that is a list of things

      • Shows how to convert the list to a string in order to pattern-match across all tags in the list

      • Shows how to use the || operator to wrap the wildcard characters around a variable

  7. Feb 2019
    1. The price I pay for this augmentation shows up in the time and energy involved in manipulating artifacts to manipulate symbols to give me this artificial memory and visualization of concepts and their manipulation.

      It feels to me that I spend a great deal of time and energy manipulating artifacts that aren't nearly as helpful as I want them to be. I imagine -- sometimes know -- they can be much more helpful.

      Surveillance capitalism is relevant here. I don't get the sense that he imagined the artifacts could have adversarial agendas.

    2. In the future systems, for instance, it should be possible to have computer processes provide direct and significant help in his processes at many levels.

      The Knowledge Navigator video came out in 1984, further in our past than it was in his future. But "in the future" still describes the realization of that vision.

    3. However, the "man-artifact interface" has existed for centuries, ever since humans began using artifacts and executing composite processes.

      A modern example is Wikipedia. It is an artifact, and the interface to it is a mix of social protocols and software tool idiosyncrasies.

    4. with needle-sort retrieval

      My dad, who was at the time into educational technology, used to show us that trick. You'd have a pile of punch cards, for which the notches would represent tags. To select the cards matching a tag, you'd stick a needle into the deck, spin it, then page through whatever didn't fall out onto your desk.

    1. The short answer is no, but let's have a closer look

      Anchoring "test"!

    1. SELECT substring(’Never gonna tell a lie’from’gonna(.*)lie’)

      Extract text from regex match

  8. Jan 2019
    1. A bare make now does this:

      make help              Show this help message
      make dev               Run the app in the development server
      make lint              Run the code linter(s) and print any warnings
      make test              Run the unit tests
      make docs              Build docs website and serve it locally
      make checkdocs         Crash if building the docs website fails
      make clean             Delete development artefacts (cached files,
                             dependencies, etc)

      make dev does this:

      yarn run deps 2>/dev/null || yarn install
      /bin/sh: 1: yarn: not found
      Makefile:48: recipe for target 'node_modules/.uptodate' failed

      On Ubuntu I used this recipe: https://stackoverflow.com/questions/42606941/install-yarn-ubuntu-16-04-linux-mint-18-1

      Then make dev

    1. sudo pip install

      Nowadays you evidently have to say:

      sudo pip2 instal ..

    2. These instructions say nothing about which Python to use. For now, it's still Python 2.7.

      Do we no longer recommend using a Python virtual environment (https://web.archive.org/web/20170311171529/https://h.readthedocs.io/en/latest/developing/install/)?

    1. it is likely that any but a general description would be difficult to express in today's terminology.

      Actually, you were spot on in almost every respect.

    2. thinking about the processes in a rather natural manner

      This remains the dream: Programming by thinking in a natural way. Paging Alan Kay, Adele Goldberg, Bret Victor.

    3. Such equipment may play an important role in the individual-augmentation systems of the future (but our feeling is that a very powerful augmentation system can be developed without them).

      Glad we didn't wait for speech recognition. It continues to take longer than (naively) expected.

    4. The limitation on the flexibility and power of any explicit "shorthand" system with which the human may wish to utilize these input devices is the human's ability to learn and to use them.

      Which turns out to be a huge limitation. How many keyboard shortcuts, in how many different applications, can you come up with without googling? Me: not many.

    5. one-thirtieth of a cent per symbol space

      Nowdays for a $1000, 8GB computer:


      0.00001 US cents per character

    6. both the data to be worked upon and the symbols which designate the processes to be executed upon that data are developed in list-structure form.

      We had to forget this principle (XML) in order to relearn it (JSON).

    7. occupy a formidable number of man hours, and be subject to a great many errors which would be very costly to find and correct

      We feel you. Still there. Sorry.

    8. The augmentation means employed today have generally evolved among large statistical populations, and no attempt has been made to fit them to individual needs and abilities. Each individual tends to evolve his own variations, but there is not enough mutation and selection activity, nor enough selection feedback, to permit very significant changes

      This remains a critical challenge and vast opportunity. We continue to be ill-served by our infotech for exactly this reason: Systems do not, in any substantial way, learn from and adapt to our (necessarily and properly) idiosyncratic workflows.

    9. makes no difference to the computer whether the symbols involved in the re-structuring represent part of the computer program or part of the information upon which the program is operating. The ability to have the computer modify its own process structure (program) has been a very important factor in the development of its power.

      The tangled loop is one of the ways our physical intuition fails us in the digital domain.

      Does understanding and use of self-modifying code need to be a "Methodology, in which he is Trained"? I'm not sure that it does, for most people, and I hope not because that bit of training can be a heavy lift.

    1. On Windows start cmd.exe as Administrator and run: mklink /D C:\Users\YOURNAME\AppData\Roaming\Code\User C:\Dropbox\CloudSettings\VSCode\User mklink /D C:\Users\YOURNAME\.vscode\extensions C:\Dropbox\CloudSettings\VSCode\extensions

      vs code sync to cloud

    1. These forms of encoding are acceptable but are no longer considered the preferred form. In general, any software applications that consume DC records embedded into HTML/XHTML Web pages should **ignore** the case of DC namespace prefixes, element names and element refinement names. I.e. all the following forms should be treated as being equivalent: <meta name="DC.date" content="2001-07-18" /> <meta name="DC.Date" content="2001-07-18" /> <meta name="dc.date" content="2001-07-18" /> as should: <meta name="DC.Date.modified" content="2001-07-18" /> <meta name="DCTERMS.modified" content="2001-07-18" />

      dcterms. vs dc.

    1. When you are the author of the annotation

      you can control what appears on the Twitter card.


    1. This code is for my own understanding and it might help others as well

      It has certainly helped me, thank you!

    1. But back in the early days of blogging it required an active effort to seek this out & so its impact on wider society was limited.

      Which. I'm starting to think, was a feature not a bug.

      The community here reminds me of the early days of Radio Userland. If/when it stops being that way, we can find another quiet neighborhood.


    1. Prior to Edit This Page,

      I just today dusted off contentEditable, https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Editable_content, which I have not  though about in many years.

    2. I reasoned that if data persisted automatically it would make programming easier.

      Indeed it does! This was the rationale for a long lineage of object databases that persist programming-language objects directly and transparently.

  9. Dec 2018
    1. you probably need to fix npm's permissions. See Fixing npm permissions.

      npm proposes using sudo to resolve this, but that seemed to dig me into an even deeper hole.

      I went with one of the solutions mentioned in the linked article: "Manually change npm’s default directory"

    2. make

      To talk to the production Hypothesis service:

      make SETTINGS_FILE=settings/chrome-prod.json

      See https://hyp.is/-eYCfAlXEemrPBvSmVOWVw/h.readthedocs.io/projects/client/en/latest/developers/developing/

    1. This is the currently easiest way to get your development client running in a browser. It sets you up to make changes to the client and to the Chrome extension itself, but not to h.

      This approach also makes it possible to build and use an extension wrapper around the development client that connects to the service running at https://hypothes.is.

      You can do that in https://github.com/hypothesis/browser-extension by running

      make SETTINGS_FILE=settings/chrome-prod.json

    1. The field by which annotations should be sorted.

      Chris Lott notes it would be nice to be able to sort by doc location.


      Meanwhile, to sort a set of targeted annotations, you'll need to scan the set, extract the start property from the selector of type TextPositionSelector, and sort by that property. Since target[0].selector is an array, you need to iterate through it to find which is the TextPositionSelector..

    1. we are unable to provide troubleshooting or support beyond these basic instructions

      Unofficially, Jon (that's me) is usually around and able to help.