text:
# 22 Sept 2020

## 02a

Alice: meta-PR is here: https://github.com/w3ctag/design-principles/pull/230

### Readability edits: Cascading Style Sheets section https://github.com/w3ctag/design-principles/pull/221

Alice: this one is new since I joined the TAG; I can't remember when it was added.

Sangwhan: I don't think I'm the best person to review this one.

Alice: I might bring it up with Tess.

### Readbility edits: JavaScript Language section https://github.com/w3ctag/design-principles/pull/222

Sangwhan: Some subtlety was lost from an implementer perspective in "js-rtc", but I think that part is ok.

... For js-gc, I think the summary comment might not be quite accurate to the original.

### Readability edits: Event Design section https://github.com/w3ctag/design-principles/pull/223

Sangwhan: Dropping dont-invent-event-like misses some useful guidance.

... and events-vs-observers is absurdly long.

Alice: For events-vs-observers, I wondered whether it might be its own document.

Sangwhan: I think dont-invent-event-like could be reinstated, but with some much briefer text.

... At the point where the spec author has already decided to use one or the other, they'll be looking at events-vs-observers. This is not intended for that audience.

### Readability edits: Types and Units section https://github.com/w3ctag/design-principles/pull/224

### Readability edits: Other API Design Considerations section https://github.com/w3ctag/design-principles/pull/226

### Readability edits: Writing good specifications section https://github.com/w3ctag/design-principles/pull/227

### Readability edits: JavaScript API Surface Concerns section https://github.com/w3ctag/design-principles/pull/228

## 03a (Rossen and Tess)

### [Overall review of features which enable/disable subframe or subresource capabilities](https://github.com/w3ctag/design-reviews/issues/525)

Rossen: We already spent some time dicsussing the issue and creating a spreadsheet of all features that interact with subframe/subresource. This is a good topic to remind everyone at the planery to take a look and start engaging on the spreadsheet.

### [Scroll-linked Animations](https://github.com/w3ctag/design-reviews/issues/521)

Rossen: This issue is already on the radar of the CSSWG. It was scheduled for a group discussion with Alice present in the first Wed of Oct.

### [Navigation to Unsigned Web Bundles (Web Packaging)](https://github.com/w3ctag/design-reviews/issues/509)

Tess: Little Dan started discussion on the webkit slack about unsigned bundles. Most likely as an action from TC39 discussions.

... Questions put to the room are mostly about cross-origin cases and can we separate features and concerns based on signed/unsigned?
... Ex. navigating to an unsigned same-origin bundle then there should be no problem.

... The rest of the issues that apply to the cross-origin case, like what goes in the address bar in the case of cross-origin unsigned bundle etc. Again, repeating lots of things that have been said, if the bundles are signed you do at least have some reason to believe the publisher had a hand in creating it.

Rossen: So there has been a lot of discussion on the issue and we have commented a number of times without success (last two comments handing for over a month). How about with propose the following at the planery in order to make progress?

... 1. There seems to be a good support by use cases and some of the community about the capabilities unsigned same-origin enables.
... 2. Some concerns with cross-origin will be lessened if the budnles are at signed.

... Based on 1 and 2 we should propose splitting this design review into two parts in order to separate concerns. One for unsigned same-oring and one for unsigned cross-origin.

### [High level or low-level APIs?](https://github.com/w3ctag/design-principles/issues/117)

Tess: Looking at the minutes of our last discussion it should be rather easy to distill a PR against the principles doc. (summarizes notes).
... Happy to take a first crack at this week between breakouts and go from there.

## 04a

Yves, Dan, Peter

### discussing miniapp work

Yves: they are exploring the differences between minuapps and regular webapps... to figure out what they shoild work on in W3C. Talked about URL scheme - we should avoid to use a miniapp URI/URL scheme. If there is another way to do it then they are fine with - it - so URI scheme may be moot.

... Packaging ... some features of budles/etc.. may not be required for niniapp.

... Manifest - the goal is to avoid creating a new manifest and to get what is needed for miniapp ion the manifest.

... lifecycle - they want to sync as close as possible .. but may need something special for miniapps.

Dan: looks good!

### role of director

Yves: TAG taking a technical review role...

Peter: we talked as part of the blink shipping process discussion - having TAG review triggered by something moving into WICG....

# 23 Sept 2020

## 05a

### [add a section describing what should be in html versus css versus javascript (the separation of concerns) (HTML Design Principle 3.4)](https://github.com/w3ctag/design-principles/issues/169)

Tess: We've talked about this a few times in breakouts, but the minutes weren't linked. I think we had some interesting conversations.

Alice: There is a misconception that the accessibility tree is based off the "vanilla" DOM, which seems very pervasive.

... Previously talked about the capabilities, characteristics of each of those layers.

Tess: Rephrasing... there is a historical thing here, some context we could give around what the original intent was. The reality is more muddled than that, but the rough design still holds.

... e.g. when we're talking to authors, we advise avoiding `style=` on the element, but instead suggest using the class name.

... Partly this intellectual idea about what belongs in each layer... also maintainability/engineering aspect, having clean interfaces. Class attribute, class selector syntax are an interface between markup and styling. Similarly with the ID attribute, ID selector.

... less likely to run into specificity confusion if avoiding `style=`.

... From a technical perspective, if you stick roughly to that ideology your code will be more maintainable.

... That's all author advice, though. Like using the right semantic element means you get keyboard events etc. for free. But we're in the business of giving spec authors advice, not web authors.

... Some sort of positive guidance is useful. Design overview, capability breakdown of different layers. Also some negative advice, pointing to negative examples.

... e.g. `dir` in CSS. Weird interaction between content and style. If text is right-to-left, and you change what styles are applying, you should probably still be able to read the text.

Alice: HTML `dir`...?

Tess: Right, that's one of the ones where it's an input into the CSS property.

... What are the layers we need to describe? Markup, Styling, Accessibility,

Alice: JavaScript for interaction, dynamic content...

Tess: What about things like replaced elements - images, media, embed/object? Markup with extra behaviour.

Alice: accessibility is more of an output, like rendering is an output.

Tess: I'd be tempted to replace markup with DOM, or Structure.

Alice: what about `hidden`?

Tess: A lot of arguing about it has been a bit noisy. It's an attribute in markup, the reason you use it is for the default styling. If hidden didn't exist, you'd do it with a classname. It's a bit of a pave the cowpaths kind of thing.

Alice: `pointer-events` in CSS is probably a good negative example. Can we dig into why it's bad?

... the cascade has become a popular way to solve problems beyond appearance, which is beyond the original scope of CSS.

Tess: The temptation for adding features that change behavior (as opposed to appearance) to CSS was partly because selectors are a convenient way to find the things whose behavior you want to change. But these days we have `querySelector` and `querySelectorAll`; CSS and JavaScript have equivalently-convenient ways of finding the things you want to muck with.

Alice: An imperative API for animation didn't have an integration with the prefers reduced motion preference, and suggested `matchMedia` was the right solution. I disagree.

Tess: I think `matchMedia` is the right solution. `matchMedia` is the interface that scripting has to that preference. Timing matters - if CSS and JS have different views on that preference simultaneously because the underlying preference changes by style recalc hasn't happened... using `matchMedia` means you have a consistent state of the world.

... e.g. you might have an animation in CSS, and script is checking for the preference and adding/removing the classname.

Alice: Adding the classname will trigger style recalc...

Tess: Hm. If you add something to the web platform that exposes something that's already exposed via a media query, the timing shouldn't differ.

Alice: Providing something via a string based API sends a signal that it's the wrong layer.

Tess: `matchMedia` isn't reaching into CSS, it's interacting with the same underlying data that `@media` interacts with.

... layers are structure (DOM), style (CSS), behaviour (JS).

Alice: Outputs are appearance (rendered view), accessibility, interaction.

Tess: We can write a guide that starts something like "you're trying to add a feature that does X, here's where it should go".

... layers within layers, e.g. `input` element. That involved a lot of mistakes. Attributes shouldn't fundamentally change *what* the element is. So saying "this should be in markup" isn't enough.

Alice: We talked about extensible web... our (TAG) guidance was that we should focus on primitives. That seems to essentially deprecate HTML.

Tess: ... high level vs low level features... we found an earlier discussion that we can base a PR on.

Alice: We wanted `inert` to be in HTML for 2 reasons: it should inherit via the tree rather than via the cascade, and it affects behaviour but not appearance.

Tess: Part of what we often encourage authors to do... your markup is your "default"; when you load script afterward, you can change some of those defaults depending on browser state etc. `inert` should be in HTML... before my script loads, but after my initial document has loaded, the stuff that should be inert should already be `inert`.

Alice: `display: none`?

Tess: Right, which is why we have `hidden`. I can add script that reasons about the state of the world and adds/removes those attributes.

Alice: So we're getting back to SSR/progressive enhancement. There's a reasonable argument with `inert` that for things like moving things into overflow menus when the screen size changes, that `inert` should go along with that.

Tess: My intuition is that that kind of responsive design shouldn't change the functionality of the page, but just the appearance. If I wanted some behaviour to change on some breakpoint, I'd use `matchMedia` rather than the stylesheet. Unfortunately that entails duplicating the breakpoints.

... If I'm mucking with e.g. `pointer-events` in `@media` blocks, that doesn't seem right either. But that gets back to discomfort with `pointer-events`.

Tess: Perhaps we need to acknowledge the trade-offs. If it's a sufficiently interesting feature, the result might not be perfect. I think `inert` is in the right place, even though as a result you might need to duplicate breakpoints in script.

Alice: we might also need to address the misconception that "everything" should be in CSS, and that if it requires writing JS then it's broken somehow.

Tess: Right, some places don't allow designers to write JS. That might be behind trying to cram everything into CSS... they think people don't want to write script, or can't.

### [How do we balance concerns between interoperability and implementability?](https://github.com/w3ctag/design-principles/issues/142)

Ran out of time before we got to this.

### [☂ Incorporate a generalization of the "HTML Design Principles" document into our principles](https://github.com/w3ctag/design-principles/issues/160)

Ran out of time before we got to this.

### [Review the HTML spec's treatment of focus](https://github.com/w3ctag/design-reviews/issues/468)

Ran out of time before we got to this.

## 06a (Tess and David)

### [Storage Pressure Event](https://github.com/w3ctag/design-reviews/issues/533)

David: A lot of security/privacy issues already discussed in the explainer.

Tess: Example in explainer saying that `quotachange` event firing implies that there is storge pressure seems odd.  Presumably the quota could become larger too?  Especially given the name `quotachange`.  Isn't this example bad?  Should it look at some property of the event?

Tess: found issue for that already, linked it.

Tess: Seems reasonable.  I'm all for helping well-behaved sites be well-behaved, but what about less-well-behaved sites?  Often a lot of misinformation and cargo-culting around performance-related things.  What will sites do in rseponse to storage pressure?  Seems like this could help well-behaved sites.

David: There's been a lot of thought that's gone into this.

Tess: Propose close?

David: Sure, so long as we don't give them the impression that they can stop worrying about the things that they're already worrying about.

### [navigator.scheduling.isFramePending](https://github.com/w3ctag/design-reviews/issues/415)

David: We looked at this in Cupertino and it's been pending external feedback ever since.

Tess: Maybe we should close unsatisfied?

David: Let's poke them one more time.

Tess: Okay. ... Nothing has changed in the repository in 13 months. Is this abandoned?

### [IFrame Execution Pausing](https://github.com/w3ctag/design-reviews/issues/369)

Tess: This was waiting on [#397](https://github.com/w3ctag/design-reviews/issues/397), but that's closed now.  We should poke this issue.

### [Don't monkey patch](https://github.com/w3ctag/design-principles/issues/184)

Tess: maybe the positive framing of the principle is about asking for extension points and also thinking about what extension points you need to provide

David: I'm worried about premature extensibility.

Tess: agreed

David: and agree we should also include the positive framing around extension points.

David: "don't do X, do Y instead is useful"

Tess: I'll try to draft a PR for this "soon"

### [review HTML event loop and how things fit into it](https://github.com/w3ctag/design-reviews/issues/489)

Not enough time to give this one a go.

## 08a

Alice & Dan

### [MathML Core](https://github.com/w3ctag/design-reviews/issues/438)

[reviewing state of issue]

Alice: Oh no, links. ... We had that discussion with Brian which made it clear that the links issue
was not as straightforward... there's an existing solution for links in MathML... One implementation (Moz) supports: any mathml element can take an href.  Question is: do we be pragmatic and say it's a backwards compat issue and people expect this to work even though it messes up the semantics - once something is a link it's not allowed to take a shadow root.   If you add a href into a mthml element that makes it a link but if it's a link it can't have a shadow-root.  Maybe that's OK.

Dan: mostly this will be an issue for existing content for which shadow root will be less of an issue?  Feels to me like not so much of an issue.

Alice: Sangwhan had a point : if you're linking a variable to a definition of the variable you might need a different approach anyway. Seems like. I can live with any of the solutions proposed.  Introducing the limnitation of not being able to attach a shadow root shouldn't be too limiting or surprising. Not sure about implementability.

Dan: yes that seems logical.

Alice: which should take precedence.

Dan: So maybe we should just replay this back to the MathML folks and say we don't have a preference.

Alice: the question is: if you attach a shadow root and then you try to attach an HREF, does the HREF just not do anything or does the shadow root drop off?

Dan: Right.  Then I think we should close this in the summary section.

Alice: [left comment](https://github.com/w3ctag/design-reviews/issues/438#issuecomment-697208609)

### [WebXR Device API](https://github.com/w3ctag/design-reviews/issues/545)

Dan: So in your [comment from a year ago](https://github.com/w3ctag/design-reviews/issues/403#issuecomment-527299905) you mention accessibility as one of the areas of concern. It seems from the spec like no work has been done in this area - there is no mention of accessibility in the spec. I seem to remember a separate accessibility requirements document being worked on but there is no mention of this or sign of this in the top level repo. Maybe we should mention this, since the group has asked us for a new review?

Alice: I think we should because it is in the previous review and Brandon specifically said "I think it would be more productive for us to outline our current thinking about accessibility in a separate doc which we'll link here." And that was a year ago and the doc hasn't been linked. And in particular I had some specific questions that weren't answered.

- *Could the Web Audio, Vibration and Gamepad APIs make use of XRViewerPose to provide this immersive experience? How does that work with the frame-based mechanism for updating the XRViewerPose? Could the explainer (or another document) provide some example code for linking these things together?*
- *For users who require magnification, might it make sense to have an option on the viewport to perform appropriate scaling automatically?*

... Meta point. this is a new technology - the very best time to think about accessibility is when things are being designed.  Not to do so now is a missed opportunity that they maight regret later.

Dan: Agreed. They could at least have a non-normative section in the spec pointing at a requirements doc indicating where this work is ongoing. I know accessibility was one of the work items in the working group, so that work should be surfaced here.

[left a comment](https://github.com/w3ctag/design-reviews/issues/545#issuecomment-697219461)

### [WebXR Depth API](https://github.com/w3ctag/design-reviews/issues/550)

Alice: One initial bit of feedback: would be good to see some non-visual use cases, such as realistic sound effects taking the room geometry into account. This might be useful for low vision and blind people in particular. In general, it would be good to see more use cases which take disabilities into account.

## 09a

Taking a look at Ethical Web Principles pulls, issues and "Dark Patterns"

### Issue 25

Dan: should it be here or in the design principles... etc...

Hadley: who's responsibility is where?  We have to think about how is this going to be used... we ask them to wargame out different scenarios.

Definition of a dark pattern

Hadley: example of ui elements in title bar... reason it would come to us is that this standard is being developed... we would come back to the standards author and raise those issues. Do we have something in the EWP document to back up our argument?

Hadley: in "control and power" we could put in a reference to misleading UI elements or dark patterns...  A dark pattern in the context of misleading text is complely legit in the sense of application of technology, it's just really bad for users.

Torgo: Permission requests. When we saw an example of a web developer gaming the request, asking the user to click okay to prove you're not a robot and then using that click as a permission for push notifications, when the user hasn't requested that and doesn't want it... What could we have done differently when we developed the permissions model?

The developer can paint what ever content they want on that webpage. The request itself only says "Are you sure you want this website to send you notifications?" the develioper can make bigger text on the page below it, saying "This is to prove you're not a robot!"

Could the spec be developed in a way that doesn't lend itself to that misuse?

Maybe it's a matter for the user agent developer?

We could add something into one of the existing statements that reinforces that point?

Hadley: could it be something for the security & privacy questionnaire - security & privacy & abuse. Add a question : could this technology be used to trick the user?

Torgo: this is relevant:

2.11. Does this specification allow an origin some measure of control over a user agent’s native UI?

https://www.w3.org/TR/security-privacy-questionnaire/#native-ui

Hadley: i think there should be another question in the questionnaire aout this..

### Issue 19 - explicit examples

Dan: I'd like to keep this document short and succinct.

Dan: should we instead reference more external docs / work?  Practically, should we put more effort into the design principles?

Hadley: we in the TAG do not have that much experience in ethics but we have experience in what works well on the web and what causes trouble if it's done badly. We have the most impact when we refer to where our authority comes from.  That's the agrument for grounding it in our experience.

Torgo: When we're takling about hte misuse of web technologies, we could reference this incident that happened when web technologies were misused, as reported in the press.

...If someone tried to get an

... so for example, in the bit about state surveilance we could refer back to the proceedings of the STRINT workshop - pervasive monitoring considered harmful.

Dan: we could reference workshop proceedings, RFCs, academic papers, etc... but keep the text concise.

Hadley: We might need to add some additional text in the footnote, to tie it all togehter — but I'm generally in favour.

Dan: so use this issue to collect some of these references and then we can make a PR to add them...

Hadley: The distinguishing thing is : is it coming from our community?  Includes some RFCs, papers... but has to be "our community."

### The PR from Tess on pervasive monitoring

Dan: Let's wait for the summary session to merge the PR so we can discuss with Tess. Support but just want to make sure we're doing the right thing in the context of all of the other references.

Hadley: ok.

## 10a

Tess & Dan

### [geolocation](https://github.com/w3ctag/design-reviews/issues/529)

Tess: just a review of changes since last rec - change to only expose it in secure context. That's fine.

Dan: Agreed.

Tess: fixed a bug for callback interface. Adopted some updated webidl. Great.  interesting change: controlled by permissionspolicy.  That seems like a good thing.  4 changes all of which are either cleanup or incremental.

Dan: sounds good to me.  What's the implementation story?

Tess: on permission policy, chromium and gekko both to that. fixing the callbacks: everyone. Fixing the names...

Dan: Secure contexts?  Are all UAs doing it at this point?

Dan: let's propose to close with a "satisfied" in the summary session.

Draft closing statement:

*Hi, @torgo and I looked at this during our virtual F2F this week. The four substantive changes since you last went to REC strike us as reasonable, incremental improvements. Thanks for bringing this to us for review!*

### [WebXR Hit Test](https://github.com/w3ctag/design-reviews/issues/463)

Dan: [left a comment](https://github.com/w3ctag/design-reviews/issues/463#issuecomment-697604819)

Tess: Not many changes since April...

[we pinged to find current status]

### [WebXR DOM Overlay Module](https://github.com/w3ctag/design-reviews/issues/470)

Tess: In July dbaron commented on the explainer...  "Given today's discussion, I think it's likely that the TAG wouldn't review this proposal with the explainer in its current state."

... no update on the explainer yet.

... I'll write a comment.

### [XR Anchors](https://github.com/w3ctag/design-reviews/issues/479)

Tess: we commented in may and july - and no replies.

### Ethical Web Principles

Let's talk about this in the summary session.

### Security & Privacy Questionnaire

[we progressed PRs]

## 11a (Sangwhan & Tess)

### [Constant bitrate audio encoding with MediaRecorder](https://github.com/w3ctag/design-reviews/issues/540)

Tess pinged the OP re: her comments from August

[Propose close; Sangwhan to file an issue so we don't lose track of the naming thing]

### [Review different cross-domain import mechanisms and their security models](https://github.com/w3ctag/design-principles/issues/157)

[Tess left a comment on the issue, pointing at things that have changed since the laast time we looked at this.]

Sangwhan: We don't have enough examples, both positive and negative examples, to write a principle about.

Tess: Yeah, I agree. Propose close?

Sangwhan: Okay, I'll leave a comment.

## 12a (Alice, Sangwhan, Tess)

### [EditContext API](https://github.com/w3ctag/design-reviews/issues/416)

[We all read the updated explainer]

Tess: re: https://github.com/w3c/editing/blob/gh-pages/docs/EditContext/explainer.md#native-selection-and-caret this seems unfortunate.

Tess: given what the explainer says [about Undo](https://github.com/w3c/editing/blob/gh-pages/docs/EditContext/explainer.md#undo), I suspect they'd benefit from integration with the [UndoManager API](https://github.com/whsieh/UndoManager) (another proposal in the Editing TF IIRC).

Alice: This looks promising, but it's a very complex API and the explainer is quite terse and seems to omit a lot of detail, so it's hard to review the details of the API.

For example:

> Additionally, the layout bounds of selection and conceptual location of the `EditContext` in the view should be provided by calling `updateLayout`.

```js
window.requestAnimationFrame(() => {
    editContext.updateLayout(editContainer.getBoundingClientRect(),
                             computeSelectionBoundingRect());
});
```

I'm not quite sure what this is doing. Update the layout of what? Why does it take these two rectangles?

In general, it would be helpful at least if the IDL had extensive comments explaining the purpose of each enum, object and method.

Sangwhan: It's a bit unclear how this would work with RTL languages, since it involves selection and selection behaves differently there. Do you have any thoughts on this?

### [To fulfill or to resolve](https://github.com/w3ctag/design-principles/issues/135)

Sangwhan: Background is that we don't have clear guidance... what to do when a promise successfully "completes".

Tess: This seems like it should be an issue on the promises guide.

All: Go ahead and move it...

Tess: Doing it ... there is also already a similar issue on the promises guide. I'll link the two.

Sangwhan: I'm also interested whether we're referring to the Promises guide in the right places in the design principles.

Alice: So do we pretty much want to pull [states-and-fates.md](https://github.com/domenic/promises-unwrapping/blob/master/docs/states-and-fates.md), plus code examples for each of the states and fates, directly into the Promises guide, as a guide on terminology?

Tess: Sure.

[everyone makes Promise puns]

Sangwhan: I think the main cause here is confusion between all the terminologies.

Tess: Right, it seems like there needs to be all these extra terms because of promise chaining.

### ["Cheat sheet" for reference during design reviews?](https://github.com/w3ctag/design-principles/issues/154)

Alice: Could use the first sentence of each principle once all the rewrites land.

Tess: I could take my script for the S&P questionnaire and try adapting it to the design principles to see how hard it would be.

Alice: Probably want heading, first sentence, link to design principle.

Tess: I'll take that action. Assigning myself.

## 13a

Sangwhan & Dan

### [Miniapp Lifecycle](https://github.com/w3ctag/design-reviews/issues/523)

[reviewing progress]

Sangwhan: not much has changed recently...

Dan: is the "Worker" a ServiceWorker?

Sanfwhan: no doesn't look like it [leaves a comment]

Dan: [asks for a general update]

### [MiniApp Manifest](https://github.com/w3ctag/design-reviews/issues/524)

Dan: If they are going to give input into Web App Manifest as an extension...

Sangwhan: We should say "we would like to close this - for now we have provided our feedback. When you want us to take a look at the next revision / Miniapp extension, we can re-open."

Dan: should we close or not?

Sangwhan: there's no way dor the requsster to reopen...

Dan: so maybe leave open but "pending editor update", "pending external feedback"

### [adding new media formats](https://github.com/w3ctag/design-principles/issues/171)

Sangwhan: 2 things here - [new ways of fetching](https://github.com/w3ctag/design-principles/issues/171#issuecomment-617779337) ... related to https://github.com/w3ctag/design-principles/issues/157 issue Tantek brought up...

Sangwhan: best course of action is to draft some text:

--

#### New Data Formats

Always define a corresponding MIME type and extend existing APIs to support this type for any new data format.

There are cases when a new capability on the web involves adding a new data format. This can be an image, video, audio, or any other type of data that a browser is expected to ingest. New formats should have a standardized MIME type, which are strictly validated. While legacy media formats do not always have strict enforcement for MIME types (and sometimes rely on peeking at headers, to workaround this), this is mostly for legacy compatibility reasons and should not be expected or implemented for new formats.

It is expected that spec authors also integrate the new format to existing APIs, so that they are whitelisted in both ingress (e.g. decoding from a ReadableStream) and egress (e.g. encoding to a WriteableStream) points from a browser's perspective.

For example. if you are to add an image format to the web platform, not only do you need to add a decoder (and presumably an encoder) for said image format to support HTMLImageElements, but you are also expected to add support to egress points such as HTMLCanvasElement.toBlob() and HTMLCanvasElement.toDataURL().

--

[new text written and new design principles issue created]

## 15a (Hadley & Tess)

### [guidance on use of JSON-LD?](https://github.com/w3ctag/design-principles/issues/128)

Tess: This is like polyglot HTML, where you can process it as HTML or XHTML. It leads to interop problems. Authors may test this with one kind of processor, and miss that the other one may not like it.

In practice, neither processing model is the real one that needs to be used if you encounter these things in the wild. We end oup having to write a new processing model that says, "If you see soemthing that looks kind of like this, then do this..."

Specific worry here: processing JSON-LD as JSON or JSON-LD is htat the resolution of nanmes is different. JSON you'll get the global names, and JSON-LD you want. Clain is it's okya, but I don't think so.

A lot of people will add stuff to make it JSON-LD, use the JSON processor, and forget it. And then that boilerplate gets out of date. Downstream from them, consumers of hte document they've written will start encountering bugs. They'll report it upstream, and that person will say "still works in my software".

So I think that's what David's point boils down to. Not about JSON-LD specifically.

Hadley: That was my initial impression too. And then the issue went on to other things.

Tess: That's fine, and maybe we should talk about webIDL somewhere else. But I want to talk about polyglot formats.

Hadley: And it's not realistic to ask a developer to keep an eye on stuff that is irrelevant to whether their site works.

Tess: I'm sympathetic with David's conclusion. You release a new browser, and that new browser has direct support for new kidn of JSON-LD document, and the new browser processes it as JSON-LD, not JSON.

The website serving those things will have to work with older browsers too.

So... you could do feature detection, see the browser doesn't ahve support for this, and you just fail. "This website works best in $namedBrowser"

Another option: write a polyfill in JS, and serve that to older browsers. Now you're doing a lot more work, maintaining that. Or keeping a 3rd party library... your site is more complex.

Third option: you could say "whatever. Older browsers still have json.parse. So I'll just write for ordinary json processing when that happens."

Agreed: move the webIDL conversation to https://github.com/w3ctag/design-principles/issues/216, so we can investigate whether we think webIDL needs updating.

We'll create a new, broader issue on to recommend not creating polyglot parsing, more broadly.

And we propose to close this issue.

### [Referrer handling - default policy and capping](https://github.com/w3ctag/design-reviews/issues/538)

Ran out of time before we got to this.

### [HR review of IMSC 1.2 FPWD](https://github.com/w3ctag/design-reviews/issues/474)

Ran out of time before we got to this.

### [Pointer Events Azimuth Angle and Altitude Angle](https://github.com/w3ctag/design-reviews/issues/537)

Ran out of time before we got to this.

## 17a (Peter, Tess, and special guest Pete Snyder from PING)

### Front-to-back revision effort

#### PR [Revise 2.6 for clarity](https://github.com/w3ctag/security-questionnaire/pull/98)

Tess: I think we can just merge this.

Pete: Yup!

[Merged]

#### PR [merge questions 2.1 and 2.8](https://github.com/w3ctag/security-questionnaire/pull/100) fixes [Consider merging or retitling questions 2.1 and 2.8](https://github.com/w3ctag/security-questionnaire/issues/97)

Pete: Isn't this the one that Sam looked at the other day? He wanted us to instead work this into the introduction.

Tess: Oh right, good point. Let's hold off on merging this.

Pete: I'll mention this on the issue.

#### PR [editorial + sec/priv sections rewrite + howto rewrite](https://github.com/w3ctag/security-questionnaire/pull/103)

Tess: Dan and I reviewed and approved; WDYT?

Pete: LGTM. Let's merge.

[Tess resolves conflicts and merges.]

#### ["feature" or "specification"?](https://github.com/w3ctag/security-questionnaire/issues/105)

Pete: I can do this while I'm working my way through the whole document anyway.

Tess: Okay, great!

#### [2.9 (script loading) needs wrapper text](https://github.com/w3ctag/security-questionnaire/issues/104)

Tess: I'll fix this when I get to it in my rewrite. Assigning to self.

#### [2.16 (relaxed-sop) what are the bullet items?](https://github.com/w3ctag/security-questionnaire/issues/102)

Tess: I'll fix this when I get to it in my rewrite. Assigning to self.

### New content

#### PR [WIP: Initial attempt at addressing issue #96](https://github.com/w3ctag/security-questionnaire/pull/99) fixes [Lessons from sharing URLs](https://github.com/w3ctag/security-questionnaire/issues/96)

Tess: Please review this PR & pay particular attention to mt's comment.

Pete: Okay!

## 18a

David & Sangwhan

### [CSS page-orientation descriptor](https://github.com/w3ctag/design-reviews/issues/515)

David explained the rationale for the feature, that it's small, etc.  I don't think this needs a bunch of TAG time; I think it's fine and we can close this issue.

### [should provide advice on when it's good to return the same object again](https://github.com/w3ctag/design-principles/issues/46)

Sangwhan: This is related to #70, which I already have some text for.  I could add some text for this to that PR.

(some discussion of the existing comments in both #46 and #70)

(editing of proposed text for addressing both of these, which Sangwhan will put in #70)

### [Document when to use allow- attributes vs. extend the sandbox attribute value set for iframes](https://github.com/w3ctag/design-principles/issues/41)

Didn't get to this

branch_name: refs/heads/gh-pages

gha_language: HTML


text:
## Last Week's Accomplishments

> Last week, I worked on the module we will use to find the covariances
between each column of data. I also began integrating that module with
the code Dan wrote to calculate best fits for the columns.

## This Week's Plan

> This week I will finish all components of the model building tool and
integrate them.

## Anything Blocking?

> I have no external blockers to the work I intend to do this week.

## Notes

> N/A

license: MIT

repository: joshlebed/rcos-status-updates

branch_name: refs/heads/master

extension: md

gha_license_id: MIT

license_type: permissive

repo_name: joshlebed/rcos-status-updates


text:
# SysMed
SysMed is a research project made with the ComBi Team of the LINA.
It's a tool helping people to create CSV of the mass and energy of elements contained in a SMBL file.

## Usage
1) Download the zip of the project or take a clone
2) Go to the jar folder
3) Make the command : java -r SysMed.jar -h to know the options

## Tools used
* SPARQL Language
* SPARQL Endpoint : Corese
* Java Language

## Librairies used
* LibSbml
* Corese API
* Opencsv
* Apache Commons CLI

repository: JulienOuvrard/SysMed

repo_name: JulienOuvrard/SysMed


text:
funcserialize
=============

A module to take a function and convert it into an object. And then, with the
same object, convert it back into a function. The object is suitable for
conversion to JSON via `JSON.stringify`.

Why? Until we have `Function.toSource`, to serialize and then deserialize a
function, you need to:

1. Create a String representation with `Function.toString`
2. Parse the argument names and the code from the string representation
3. Use new function in a closure that returns `Function.apply(inst, array)`

The 2nd and 3rd steps are a bit tricky, so I created this
module. If you find yourself in the unusual situation where you need to
communicate code, this will help.

## Installation

    $ npm install funcserialize

## API

### toObj(func)

Given an input, describing a task for a worker, create an object that can be
serialized to JSON and sent to the worker.

#### Params:

* **Object** *func* A function to be converted into an object.

#### Return:

* **Boolean|Object** False on failure, and a serialized object on success.

### toFunc(obj)

Given an object that describes a function, convert the object into a
function.

#### Params:

* **Object** *obj* The object describing the function.

#### Return:

* **Boolean|Function** False on failure and a function object on success.

## Example

    function test(a,b,c) {
      console.log('%s+%s=%s',a,b,a+b);
      return a+b+c;
    }

    var funcserialize = require('funcserialize');
    var obj = funcserialize.toObj(test);
    console.log(JSON.stringify(obj));
    var func = funcserialize.toFunc(obj);
    console.log(func(1,2,4));

The output from the above code is:

    $ node example.js
    {"name":"test","params":["a","b","c"],"code":"\n  console.log('%s+%s=%s',a,b,a+b);\n  return a+b+c;\n"}
    1+2=3
    7

## LICENSE

The MIT License (MIT)

Copyright (c) 2013 Edmond Meinfelder

Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

 IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

repository: stdarg/funcserialize

gha_language: JavaScript

repo_name: stdarg/funcserialize


text:
# Tannenbaum
This is a simple program to print a variety of patterns to the console.

## How To
1. Start the Program
2. Pick the number of the pattern
3. Describe additional settings
4. Print it

repository: smovo/Tannenbaum

gha_language: Kotlin

repo_name: smovo/Tannenbaum


text:
### [CVE-2016-6210](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-6210)
![](https://img.shields.io/static/v1?label=Product&message=n%2Fa&color=blue)
![](https://img.shields.io/static/v1?label=Version&message=n%2Fa&color=blue)
![](https://img.shields.io/static/v1?label=Vulnerability&message=n%2Fa&color=brighgreen)

### Description

sshd in OpenSSH before 7.3, when SHA256 or SHA512 are used for user password hashing, uses BLOWFISH hashing on a static password when the username does not exist, which allows remote attackers to enumerate users by leveraging the timing difference between responses when a large password is provided.

### POC

#### Reference
- https://www.exploit-db.com/exploits/40113/
- https://www.exploit-db.com/exploits/40136/

#### Github
- https://github.com/ARPSyndicate/cvemon
- https://github.com/ARPSyndicate/kenzer-templates
- https://github.com/Live-Hack-CVE/CVE-2016-6210
- https://github.com/bioly230/THM_Skynet
- https://github.com/cocomelonc/vulnexipy
- https://github.com/eric-conrad/enumer8
- https://github.com/justlce/CVE-2016-6210-Exploit
- https://github.com/lnick2023/nicenice
- https://github.com/phx/cvescan
- https://github.com/qazbnm456/awesome-cve-poc
- https://github.com/scmanjarrez/CVEScannerV2
- https://github.com/sh4rknado/SSH-ULTIMATE
- https://github.com/vshaliii/Basic-Pentesting-2-Vulnhub-Walkthrough
- https://github.com/xbl3/awesome-cve-poc_qazbnm456

repository: trickest/cve

branch_name: refs/heads/main

repo_name: trickest/cve


text:
# RPGHelper

### Motivation

Avoiding to use a bunch of paper during playing RPG. For instance, I spend a lot of paper sheets for managing inventory.

[Screens scheme](https://drive.google.com/open?id=17VVIkQc9Faqs70d7z52fXVIJxappuPzw)

[Data model](https://drive.google.com/open?id=12223u7eIvZH3-IYAuOt96JWf3vLR6cP_)

repository: AlekseiIvshin/RPGHelper

repo_name: AlekseiIvshin/RPGHelper


text:
**1. New features in Java 8**
- Lambda expression
- Method reference
- Optional
- Functional Interfaces
- Default methods
- Stream API
- Date API

**2. Lambda expression**

**3.Method reference**
- It is used for referencing a method without invoking it
- used for treating methods as Lambda Expressions.
- `(o) -> o.toString();` can become `Object::toString();`

**4. Explain Optional**
- Optional is a new class in Java 8 that encapsulates an optional value i.e. a value that is either there or not. It is a wrapper around an object, and you can think of it as a container of zero or one element.

1. Diamond Problem

repository: JahagirdarAmey/interview

repo_name: JahagirdarAmey/interview


text:
---
layout: post
title: LeetCode 24 Swap nodes in pairs
tags:
- algorithm
excerpt: All about leetCode 24 Swap Nodes in Pairs
---

### the question describe

The question is Given a linked list, swap every two adjacent nodes and return its head. You must solve the problem without modifying the values in the list's nodes (i.e., only nodes themselves may be changed.)

LeetCode will give you a link, you need swap it exactly, like follow pic

![given link list and final link list](/images/swappingNodes/givenAndFinal.jpg)

### Let's understand the **approach**

1. First, we will place a `dummy node` before a `head node` so that the code we write can be applicable to the head node also, and we don't have to specifically write different conditions for the head node.

![add dummy node before head node](/images/swappingNodes/addDummyNode.jpg)

2. Now, let the head be our `n1 node` and next be `n2 node`, that means `node with value 1` is `n1` and `node with value 2` is `n2`, and we have to swap `n1` and `n2`. So for this, we will also have to keep track of the node previous to `n1 node`, let it be `prev`, as it's next pointer value will have to change after we swap the `n1 node` and `n2 node`
![add prev node and n1 node and n2 node](/images/swappingNodes/prevNodeAndN1andN2.jpg)

3. Now the very first thing to do is change the `next pointer of prev node to point to n2 node`. Why?? Because in the answer we want the `n2 node after dummy node`. Right? So we will have to connect `dummy node`(now is prev node) to the `node with value 2`(`n2 node`). The means
```javascript
prev.next = n2
```
![prev node point to n2 node](/images/swappingNodes/prevToN2.jpg)

4. Now in our final answer the `node with value 1` should be at the place of `node with value 2`. So the next pointer of `node with value 1` should point to whatever the `node with value 2` is pointing to originally. That means we will have to change `n1 next` to `n2 next`
```javascript
n1.next = n2.next
```
![n1 node link to n3 node](/images/swappingNodes/N1ToN3.jpg)

5. Now as in the answer the `node with value 2` should point to `node with value 1`. That means
```javascript
n2.next = n1
```
![N2 node link to N1 node](/images/swappingNodes/N2ToN1.jpg)

6. After this iteration, Nodes 1 and 2 will get swapped and our linked list will look like this
![After iteration](/images/swappingNodes/AfterIteration.jpg)

7. Now for the next iteration, we have to swap `node with values 3 and 4`. For that the `prev node` should point to `node with value 1` and the `head node` should point to `node with value 3`. This means
```javascript
prev = n1
head = n1.next
```
![for next iteration](/images/swappingNodes/forNextIteration.jpg)

8. We should stop this procedure when either there is no nodes left to swap or there is only one node left which cannot be swapped with any node.
9. At the end, as we can see that our head of the list has been misplaced in the procedure of swapping, so we can return `dummy.next` to return the swapped linked list.

### code
```javascript
var swapPairs = function(head) {
    // build a dummy nodes link to head, like [-1,1,2,3,4]
    let dummy = new ListNode(-1)
    dummy.next = head
    // assign dummy to prev because prev will change to  forward nodes, but dummy always link to first node, in this example is link to [2...]
    let prev = dummy

    // loop when head and head.next is not null
    while(head && head.next) {
        // cur node
        let n1 = head
        // next node
        let n2 = head.next

        // link to next node, first time is [2...]
        prev.next = n2
        // swap
        n1.next = n2.next
        n2.next = n1

        // make prev move to forward node for next loop use, for example, first time prev assign to n1, when next loop prev.next like n1.next [1,3,4]
        prev = n1
        // change head is n1.next
        head = n1.next
    }

    return dummy.next
};
```

Complexity:
TC = O(n)
SC = O(1)

### Another solution: recursion
1. First, we set some rules to stop recursion, if no current node or next node, stop recursion
```javascript
if(!head || !head.next) return head
```

2. Now we make three variables that `v1` represent current node and `v2` is next node and `v3` is node next the `v2` for recursion
```javascript
let v1 = head
let v2 = v1.next
let v3 = v2.next
```
![first recursion](/images/swappingNodes/firstRecursion.jpg)

3. Now we change `v2` link to `v1`. And we assign recursion `v3` to `v1`. That means
```javascript
v1.next = recursionFn(v3)
```
![second recursion](/images/swappingNodes/secondRecursion.jpg)

4. Why do we always return `v2`? Because after swap nodes, v2 represent the first node in the list, the first time is `node with value 2`, the second time is `node with value 4`

### code
```javascript
var swapPairs = function(head) {
    // recursion terminator
    if(!head || !head.next) return head
    // process logic in current level
    let v1 = head
    let v2 = v1.next
    let v3 = v2.next
    v2.next = v1
    // drill down
    v1.next = swapPairs(v3)
    return  v2
}
```

Complexity
TC = O(N)
SC = O(1)

### reference
[24. Swap Nodes in Pairs](https://leetcode.com/problems/swap-nodes-in-pairs/)


text:
# mop4js
A toy project motivated by implementing [MOP](https://en.wikipedia.org/wiki/Metaobject) (_Meta Object Protocol_) for Javascript ES6.

A "learn by doing" prototype of MOP for Javascript. This project follows my quest of an _Interface class_ for Javascript (see [mixin-interface-api](https://www.npmjs.com/package/mixin-interface-api)).

I now think that using _mixins_ is more a workaround than a "nice piece of cOOPcake". Recently, I remembered the _Meta Object Protocol_ and sought if it was applied / applicable to Javascript. I found [JOOSE](https://www.npmjs.com/package/joose) and [JOOP](https://github.com/pylover/joop), there is also a reference MOP for PERL: [MOOSE](https://metacpan.org/pod/distribution/Moose/lib/Moose/Manual.pod).

Regarding MOP (Meta Object Protocol), this paradigm is there for a while, since 1991 at least in the ["The Art of the Metaobject Protocol"](https://en.wikipedia.org/wiki/The_Art_of_the_Metaobject_Protocol) book which describes [CLOS](https://en.wikipedia.org/wiki/Common_Lisp_Object_System), a MOP for [LISP](https://en.wikipedia.org/wiki/Lisp_(programming_language)) (CLOS is the acronym of _Common Lisp Object System_).

My intent in this toy project is two-fold:
* First: _"Give it a try"_ and share a naive implementation.
* Second: promote the usage and knowledge of MOP among Javascript developers.

## Release 0.0.10 changelog
* Documentation update.

## Release 0.0.9 changelog
* First Prototype (_"Proof of concept"_) at a very early stage (the implementation is clumsy ATM).

Please find below a code sample:

```javascript
const $$MetaClass = require('./src/mop4js.js').$$MetaClass;

var $$Interface = new $$MetaClass({ 'name': "$$Interface" }); // MetaClass Factory
console.log($$Interface + "\n");

var $ILogger = new $$Interface({ 'name': "$ILogger"}); // Class Factory
console.log($ILogger + "\n");

var logger = new $ILogger(); // Object instantiation and numbering
console.log(logger + "\n");
```

## References
* The Art of the Metaobject Protocol
  https://en.wikipedia.org/wiki/The_Art_of_the_Metaobject_Protocol
* GOOPS Manual: Metaobjects and the Metaobject Protocol
  https://www.gnu.org/software/guile/docs/goops/Metaobjects-and-the-Metaobject-Protocol.html
* JOOSE
  https://www.npmjs.com/package/joose
* MOOSE
  https://metacpan.org/pod/distribution/Moose/lib/Moose/Manual.pod
* What's wrong with extending the DOM
  http://perfectionkills.com/whats-wrong-with-extending-the-dom/


text:
# Evercity dApp

## Quick Start

Run command `yarn && yarn start` for starting webpack dev server. You also need to install polkadot extension for your browser for using this project

App connects to `ws://node.tryevercity.com` address by default.
You can specify the address via `WS_PROVIDER_URL` environment variable if you want to check your own node.

## Deploy

1. Install Heroku CLI https://devcenter.heroku.com/articles/heroku-cli
2. Run command `heroku login` and log in in opened browser window
3. Run command `bash desploy.sh`


text:
---
id: 3898
title: Honoring Chancellor George Blumenthal
subtitle: "Please help honor Chancellor George Blumenthal on his retirement with your gift to the Chancellor's Undergraduate Internships."
date: 2019-03-28
layout: post
excerpt: During his time as head of UC Santa Cruz, Chancellor George Blumenthal has presided over a campus that has increasingly earned recognition as a research powerhouse. At the same time, UC Santa Cruz became a leader in educational access and support for students of all backgrounds.
pull_quote: false
pull_quote_author:
hero:
  use: true
  image: George-Blumenthal.jpg #best at 1000px by 450px
  alt_text: photo of George Blumenthal at the entrance to UC Santa Cruz
  vertical: bottom #options: top, bottom
  horizontal: left #options: left, right
# Is this a featured post? Applies to first two columns on Post Archive Page.
# If true, use: true; if false, use: false and order does not matter.
featured_post:
  use: false
  order: 1 # Options: 1 or 2
thumbnail_image: George-Blumenthal.jpg
thumbnail_alt_text: photo of George Blumenthal at the entrance to UC Santa Cruz
image: George-Blumenthal.jpg
category: "News"
---

**During his time as head of UC Santa Cruz, Chancellor George Blumenthal has presided over a campus that has increasingly earned recognition as a research powerhouse. At the same time, UC Santa Cruz became a leader in educational access and support for students of all backgrounds. Upon his retirement this June, [help honor this champion of knowledge and opportunity](https://secure.ucsc.edu/s/1069/bp18/interior.aspx?sid=1069&gid=1001&pgid=780&cid=1749&dids=984) by ensuring permanent funding for a program he treasures—the Chancellor’s Undergraduate Internships.**

## George Blumenthal, 10th chancellor of UC Santa Cruz

A towering presence with a stride to match, Chancellor Blumenthal was appointed following decades of distinguished work as a member of the astrophysics faculty. His work with UC Santa Cruz colleagues Joel Primack and Sandra Faber, along with Martin Rees of Cambridge University, remains the standard explanation of the formation of galaxies and galaxy clusters.

During his tenure as chancellor, UC Santa Cruz faculty have risen to the ranks of some of the world’s most influential. The campus was named a Hispanic Serving Institution and was recognized as a top school for social mobility—more than 40 percent of graduating classes are first in their families to earn a bachelor’s degree.

Chancellor Blumenthal’s encouragement and personal outreach were integral to the overwhelming success of the Campaign for UC Santa Cruz. The campus’s first comprehensive campaign raised more than $335 million, expanding capacity for research and opening doors of opportunity for students to reach for their dreams.

And under his leadership, the university forged a historic agreement with the city and county of Santa Cruz that has become a model for resolving town-gown challenges nationwide.

{% asset cuip.png magick:resize=900 alt='photo of Chancellor’s Undergraduate Internship Program participants'  %}

Chancellor’s Undergraduate Internship Program participants

## The George R. Blumenthal Fund for the Chancellor’s Undergraduate Internship Program

To honor and thank Chancellor Blumenthal for his years of service and significant achievements, a group of friends and admirers is raising a fund to be presented in June—[the George R. Blumenthal Fund for CUIP](https://secure.ucsc.edu/s/1069/bp18/interior.aspx?sid=1069&gid=1001&pgid=780&cid=1749&dids=984), which will support the [Chancellor’s Undergraduate Internship Program (CUIP)](https://careers.ucsc.edu/intern/cuip/). This is a program with which Chancellor Blumenthal feels strongly connected, and that he valued, championed, and nurtured.

## What is CUIP

CUIP complements undergraduate degrees with career-launching experience. Interns earn $8,000 toward academic expenses while planning and completing high-priority campus projects, such as:

* Marketing planning for the Career and Women’s centers
* Establishing student recruitment programs for Oakes College and Student Organization Advising and Resources
* Creating a tree inventory system for Landscape Management
* Designing and analyzing assessment surveys for the library, Campus Housing, and Instructional Computing

Students invited to the CUIP have demonstrated initiative by organizing campus programs and events. CUIP is an opportunity to build on that potential with team-building and decision-making practice, under the guidance of professionals in the administration. When they enter the workforce, program alumni rank among UC Santa Cruz’s most marketable graduates, able to list obstacles overcome and accomplishments completed.

Private giving supported significant growth in the CUIP in 2018. The program now includes 50 interns annually. Three-quarters of the most recent cohort are underrepresented minorities, and many of their projects specifically benefit diverse groups.

#### Securing and growing CUIP

The George R. Blumenthal Fund will enable expansion of the CUIP, including additional student stipends, additional staff time to administer the program effectively, and instructional resources for the two-unit leadership course. More students will be able to gain important professional and leadership experience, preparing for their careers while providing help with the important work of the university.

As Chancellor Blumenthal himself says about the program: “Thanks to our donors, we are able to offer students hands-on leadership experience and also get a tangible benefit for the university at the same time. It’s a winning combination.”

[Please join us in honoring Chancellor Blumenthal](https://secure.ucsc.edu/s/1069/bp18/interior.aspx?sid=1069&gid=1001&pgid=780&cid=1749&dids=984) with a gift to the George R. Blumenthal Fund for the Chancellor’s Undergraduate Internship Program.

For more information or to make a gift, please contact Jeff Shilling at<EMAIL_ADDRESS>or<PHONE_NUMBER>.

{% asset George-Blumenthal.jpg magick:resize=400 alt='George-Blumenthal-sign4-1' %}

repository: ucsc/site-giving

repo_name: ucsc/site-giving


text:
# buildLibrealsense2TX
Build librealsense 2.0 library on the NVIDIA Jetson TX Development kit. Jetson TX1 and Jetson TX2. Intel RealSense D400 series cameras.

- TX2 version L4T 28.2 / L4T 28.2.1 (JetPack 3.2.1)
- Librealsense v2.28.0

## Rebuilding the kernel
```bash
$ ./buildPatchedKernel.sh
```

By default, the kernel sources will be erased from the disk after the kernel has been compiled and installed. You will need >3GB of disk space to build the kernel in this manner. Please note that you should do this on a freshly flashed system. In the case when something goes wrong, it may make the system fail and become unresponsive; the only way to recover may be to use JetPack to reflash.

The script has an option to keep the kernel sources and build information:
```bash
$ ./buildPatchedKernel.sh --nocleanup
```

which may prove useful for debugging purposes.

The script is more provided as a guide on how to build a system that supports librealsense2 than as a practical method to generate a new system.

## Install librealsense
To install the librealsense library:
```bash
$ ./installLibrealsense.sh
```

The install script does the following:
 - Install dependencies
 - Applies Jetson specific patches
 - Sets up udev rules so the camera may be used in user space
 - Builds librealsense, tools and demos
 - Installs libraries and executables

## License
MIT License

Copyright (c) 2017-2018 Jetsonhacks
Portions Copyright (c) 2015-2018 Raffaello Bonghi (jetson_easy)
Portions Copyright (c) 2016 Mehran Maghoumi

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

 IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.


text:
# Build & Run
## Build:
```
make
# or
nim c -o=dijkstra main.nim
```

## Run:
```
./dijkstra
```

# Description

it will solve a path searching problem on grid map which has wall, start, and goal by dijkstra algorithm.

![sample image](images/sample.png "screen shot")

that's it.


text:
---
date: 2020-10-15
title: 'Generate Imports While Typing'
technologies: [go]
topics: [editing]
author: dlsniper
subtitle: 'Avoid interruption by letting GoLand generate your imports as you type.'
seealso:
  - title: 'Creating and Optimizing Imports'
    href: 'https://www.jetbrains.com/help/go/creating-and-optimizing-imports.html'
  - title: 'Basic Completion'
    href: 'https://www.jetbrains.com/help/go/auto-completing-code.html#basic_completion'
thumbnail: ./thumbnail.png
cardThumbnail: ./card.png
shortVideo:
  poster: ./thumbnail.png
  url: https://www.youtube.com/watch?v=-Y2D2ob2Yjo&list=PLM-t1Z4tbFfnXnghmtk6WVz10_pivOw25&index=17&t=0s
leadin: |
    *Tired of stopping your coding to go write an import?*

    Type what you want, let GoLand do the rest.

    You could scroll up, type your import, find where you were, and resume.
    Instead, just type your symbol and let Go make the import. No distractions.

    New in 2017.3
---


text:
jj
--

[![GoDoc](https://godoc.org/github.com/lukechampine/jj?status.svg)](https://godoc.org/github.com/lukechampine/jj)
[![Go Report Card](http://goreportcard.com/badge/github.com/lukechampine/jj)](https://goreportcard.com/report/github.com/lukechampine/jj)

```
go get github.com/lukechampine/jj
```

`jj` implements a JSON transaction journal. It enables efficient ACID
transactions on JSON objects. If your disk operations require something faster
than rewriting a whole file on each save, but you aren't ready to design a
full database schema, `jj` might be for you.

Each Journal represents a single JSON object. The object is serialized as an
"initial object" followed by a series of update sets, one per line. Each
update specifies a field and a modification. See the `Update` section for a
full specification.

During operation, the object is first loaded by reading the file and applying
each update to the initial object. It is subsequently modified by appending
update sets to the file, one per line. At any time, a "checkpoint" may be
created, which clears the Journal and starts over with a new initial object.
This allows for compaction of the Journal file.

In the event of power failure or other serious disruption, the most recent
update set may be only partially written. Partially written update sets are
simply ignored when reading the Journal. Individual updates may also be
ignored if they are malformed, though other updates in the set may be applied.
See the `Update` section for an explanation of malformed updates.

## Example ##

```go
// create initial object
var obj struct {
	Foo struct {
		Bar struct {
			Baz []int `json:"baz"`
		} `json:"bar"`
		Quux int `json:"quux"`
	} `json:"foo"`
}
obj.Foo.Bar.Baz = []int{1,2,3}
obj.Foo.Quux = 6

// create journal with initial object
// (error handling omitted)
j, _ := jj.OpenJournal("myjournal", obj)

// record a set of updates to the object
_ = j.Update([]jj.Update{
	jj.NewUpdate("foo.bar.baz.2", 7),
	jj.NewUpdate("foo.quux", 7),
})

// close and reopen the journal, applying the updates
_ = j.Close()
j, _ = jj.OpenJournal("myjournal", &obj)
println(obj.Foo.Bar.Baz[2]) // -> 7
println(obj.Foo.Quux)       // -> 7
```

## Updates ##

An Update is a modification of a path in a JSON object. A "path" in this
context means an object or array element. Syntactically, a path is a set of
accessors joined by the `.` character. An accessor is either an object key
or an array index. For example, given this object:

```json
{
	"foo": {
		"bars": [
			{"baz":3}
		]
	}
}
```

The following path accesses the value "3":

```
foo.bars.0.baz
```

The path is accompanied by a new object. Thus, to increment the value "3"
in the above object, we would use the following Update:

```json
{
	"p": "foo.bars.0.baz",
	"v": 4
}
```

All permutations of the Update object are legal. However, malformed updates
are ignored during application. An Update is considered malformed in three
circumstances:

- Its Path references an element that does not exist at application time.
  This includes out-of-bounds array indices.
- Its Path contains invalid characters (e.g. `"`). See the JSON spec.
- Value contains invalid JSON or is empty.

Other special cases are handled as follows:

- If Path is `""`, the entire object is replaced.
- If an object contains duplicate keys, the first key encountered is used.

Finally, to enable efficient array updates, the length of the array (at
application time) may be used as a special array index.  When this index is
the last accessor in Path, Value will be appended to the end of the array.
If the index is not the last accessor, the Update is considered malformed
(and thus is ignored).

## Caveats ##

An important aspect of `jj` is that you cannot "read" from the journal; you
can only apply updates. The only time you retrieve data from the journal is
when loading it from disk, usually during initialization. This means that you
must keep your in-memory copy of the data in sync with the journal.

repository: lukechampine/jj

repo_name: lukechampine/jj


text:
---
title: Connect to Raspberry Pi without knowing IP Address
image: https://yt3.ggpht.com/-2fDBlhe14zQ/AAAAAAAAAAI/AAAAAAAAAAA/DBU8ml1ysDA/s900-c-k-no-mo-rj-c0xffffff/photo.jpg
excerpt: Useful especially when you are travelling with your Pi
categories: linux, networking
---
If you don't know the IP address of your Raspberry Pi, how can you connect to it via SSH or VNC?

One way is to download a program like Advanced IP Scanner [here](http://filehippo.com/download_advanced_ip_scanner/)
and find the IP address.

![Advanced IP Scanner](https://raw.githubusercontent.com/raspberrypisig/raspberrypisig.github.io/master/assets/images/advancedipscanner.jpg)

(Remember to untick View->Show Dead Devices)

The other method relies on you knowing the hostname of the Pi. How do you do that? Open a terminal.

![Find hostname of Pi](https://raw.githubusercontent.com/raspberrypisig/raspberrypisig.github.io/master/assets/images/hostnamepi.jpg)

The default user name is pi but more importantly the default hostname is raspberrypi.

If you install a program called Bonjour Print Services [here](https://support.apple.com/kb/dl999?locale=en_US) (be careful in the installation) - then
you simply need to use **raspberrypi.local**  instead of the IP address.

If you have already had iTunes installed, you're all set and you don't need to install Bonjour Print Services.

The technology this is using is called zero-configuration networking or zeroconf. Mac devices have support for it out of the box, while linux also supports it through avahi.


text:
# Security Policy

## Reporting a Vulnerability

In the event that you discover a serious vulnerability, please disclose it as soon as possible. If the vulnerability is something minor, just creating a Github issue is perfect. If, however, this bug is potentially dangerous and could affect more users of the plugin, feel free to send me an email or message me on Discord at Eric#1100

repository: mkormendy/homebridge-display

repo_name: mkormendy/homebridge-display


text:
# Same Origin Policy Exercises

Consider the following aliases:

| Name | URL |
|------|-----|
| main | http://foo.com/index.html |
| iframe1 | http://foo.com/iframe1.html |
| iframe2 |	http://private.foo.com/iframe2.html |
| iframe3 | http://auth.foo.com/iframe3.html |
| iframe4 | http://bar.com/iframe4.html |
| iframes | All iframes above |
| mypopup |	http://foo.com/popup.html |
| notmypopup | http://bar.com/popup2.html |

## Exercises

### Group 1

Using the browser console, perform the following tasks:
1. Verify that `main`, `iframe1`, `iframe2`, `ìframe4` and `mypopup` all have different browsing contexts.

1. Check if `main` can change the body of the `iframes` and of the `mypopup`.

1. Check if any of the `iframes` can change the body of the `main`.

1. Check if `iframe2` can change the body of `iframe1`

1. Check if `mypopup` can change the body of `main`

1. Relax the origin in `iframe2` to `foo.com` and check if anything changed.

1. Can we do the same to `iframe4`? Why?

### Group 2

1. Using `notmypopup` navigate `main` to your favorite news site.

1. Change `main`to prevent `notmypopup` from navigating it away.

### Group 3

1. Add code to `iframe3` that allows it to receive messages from `ìframe4`. It should ignore messages from other origins other than `iframe4`'s. Now, try sending messages to it.

1. Experiment with the `targetOrigin` (2nd postMessage parameter). What happens when you specify a bogus origin?

repository: pfortuna/appsec-training

repo_name: pfortuna/appsec-training


text:
# junos_exporter
[![Go Report Card](https://goreportcard.com/badge/github.com/czerwonk/junos_exporter)](https://goreportcard.com/report/github.com/czerwonk/junos_exporter)

Exporter for metrics from devices running JunOS (via SSH) https://prometheus.io/

## Remarks
This project is an alternative approach for collecting metrics from Juniper devices.
The set of metrics is minimal to increase performance.
We (a few friends from the Freifunk community and myself) used the generic snmp_exporter before.
Since snmp_exporter is highly generic it comes with a lot of complexity at the cost of performance.
We wanted to have an KIS and vendor specific exporter instead.
This approach should allow us to scrape our metrics in a very time efficient way.
For this reason this project was started.

## Important notice for users of version < 0.10
In version 0.10 the ``config.ignore-targets`` flag was removed. The same beahior can be achieved by using an match all host pattern:
```
devices:
  - host: .*
    host_pattern: true
```

## Important notice for users of version < 0.7
In version 0.7 a typo in the prefix of all BGP related metrics was fixed. Please update your queries accordingly.

## Important notice for users of version < 0.5
In version 0.5 SNMP was replaced by SSH. This is was a breaking change (metric names were kept).
All SNMP related parameters were removed at this point.
Please have a look on the new SSH related parameters and update your service units accordingly.

## Features
The following metrics are supported by now:
* Interfaces (bytes transmitted/received, errors, drops, speed)
* Interface L1/L2 details (FEC, MAC statistics)
* L2 security (BPDU-block violations)
* Routes (per table, by protocol)
* Alarms (count)
* BGP (message count, prefix counts per peer, session state)
* OSPFv2, OSPFv3 (number of neighbors)
* Interface diagnostics (optical signals)
* ISIS (number of adjacencies, total number of routers)
* NAT (all available statistics from services nat)
* Environment (temperatures, fans and PEM power statistics)
* Routing engine statistics
* Storage (total, available and used blocks, used percentage)
* Firewall filters (counters and policers) - needs explicit rights beyond read-only
* Security policy (SRX) statistics
* Interface queue statistics
* Power (Power usage)
* License statistics (installed/used/needed)
* L2circuits (tunnel state, number of tunnels)
* LDP (number of neighbors, sessions and session states)
* VRRP (state per interface)

## Feature specific mappings
Some collected time series behave like enums - Integer values represent a certain state/meaning.

### L2circuits
```
0:EI -- encapsulation invalid
1:MM -- mtu mismatch
2:EM -- encapsulation mismatch
3:CM -- control-word mismatch
4:VM -- vlan id mismatch
5:OL -- no outgoing label
6:NC -- intf encaps not CCC/TCC
7:BK -- Backup Connection
8:CB -- rcvd cell-bundle size bad
9:LD -- local site signaled down
10:RD -- remote site signaled down
11:XX -- unknown
12:NP -- interface h/w not present
13:Dn -- down
14:VC-Dn -- Virtual circuit Down
15:Up -- operational
16:CF -- Call admission control failure
17:IB -- TDM incompatible bitrate
18:TM -- TDM misconfiguration
19:ST -- Standby Connection
20:SP -- Static Pseudowire
21:RS -- remote site standby
22:HS -- Hot-standby Connection
```

### LDP
```
0: "Nonexistant"
1: "Operational"
```

### RPKI
```
0 = "Down"
1 = "Up"
2 = "Connect"
3 = "Ex-Start"
4 = "Ex-Incr"
5 = "Ex-Full"
```

### VRRP
States map to human readable names like this:
```
1: "init"
2: "backup"
3: "master"
```

### License statistics
Expiry is either presented as number of days until expiry date or certain special values.
```
0 ... n = Days until expiry
     -1 = Expired
   +Inf = Permanent license
   -Inf = Invalid
```

## Install
```bash
go get -u github.com/czerwonk/junos_exporter@master
```

## Usage
In this example we want to scrape 3 hosts:
* Host 1 (DNS: host1.example.com, Port: 22)
* Host 2 (DNS: host2.example.com, Port: 2233)
* Host 3 (IP: <IP_ADDRESS>, Port: 22)

### Binary
```bash
./junos_exporter -ssh.targets="host1.example.com,host2.example.com:2233,<IP_ADDRESS>" -ssh.keyfile=junos_exporter
```

### Docker
```bash
docker run -d --restart unless-stopped -p 9326:9326 -e SSH_KEYFILE=/ssh-keyfile -v /opt/junos_exporter_keyfile:/ssh-keyfile:ro -v /opt/junos_exporter_config.yml:/config.yml:ro czerwonk/junos_exporter
```

### Authentication
junos_exporter supports SSH authentication via key or password based authentication.
`-ssh.keyfile=<file>` enables key based authentication. `-ssh.password=<password-string>` enables password based authenticaton, this can also be enabled via the config file in the form of a `password: <password-string>` entry.
Authentication order is ssh key, if none is found the cli flag is checked, the config file is checked last. If no valid auth method is specified junos_exporter exits with an error.
Specify the ssh username with the cli flag `-ssh.user`, with the `username` key under the configuration file or use the default username of `junos_exporter`.

### Target Parameter
By default, all configured targets will be scrapped when `/metrics` is hit. As an alternative, it is possible to scrape a specific target by passing the target's hostname/IP address to the target parameter - e.g. ` http://localhost:9326/metrics?target=<IP_ADDRESS>`. The specific target must be present in the configuration file or passed in with the ssh.targets flag, you can also specify the `-config.ignore-targets` flag if you don't want to specify targets in the config or commandline, if none of this matches the request will be denied. This can be used with the below example Prometheus config:

```yaml
scrape_configs:
  - job_name: 'junos'
    static_configs:
      - targets:
        - <IP_ADDRESS>  # Target device.
    relabel_configs:
      - source_labels: [__address__]
        target_label: __param_target
      - source_labels: [__param_target]
        target_label: instance
      - target_label: __address__
        replacement: <IP_ADDRESS>:9326  # The junos_exporter's real hostname:port.
```

## Config file

The exporter can be configured with a YAML based config file:

```yaml
devices:
  - host: router1
    key_file: /path/to/key
  - host: router2
    username: exporter
    password: secret
    # Optional
    # interface_description_regex: '\[([^=\]]+)(=[^\]]+)?\]'
    features:
      isis: true
  - host: switch\d+
    # Tell the exporter that this hostname should be used as a pattern when loading
    # device-specific configurations. This example would match against a hostname
    # like "switch123".
    host_pattern: true
    features:
      bgp: false

# Optional
# interface_description_regex: '\[([^=\]]+)(=[^\]]+)?\]'
features:
  alarm: true
  environment: true
  bgp: true
  ospf: true
  isis: false
  nat: true
  l2circuit: true
  ldp: true
  routes: true
  routing_engine: true
  firewall: false
  interfaces: true
  interface_diagnostic: true
  interface_queue: true
  storage: true
  accounting: true
  ipsec: true
  security: true
  fpc: true
  rpki: true
  rpm: false
  satellite: true
  system: true
  power: true
```

## Dynamic Interface Labels
Version 0.9.5 introduced dynamic labels retrieved from the interface descriptions. Flags are supported a well. The first part (label name) has to comply to the following rules:
* must not begin with a figure
* must only contain this charakters: A-Z,a-z,0-9,_
* is treated lower case
* must no conflict with label names used in junos_exporter

Values can contain arbitrary characters.

The complete feature can be disabled by setting ``-dynamic-interface-labels`` to false.

### Examples
Tags:
```
Description: XYZ [prod]
Label name: prod
Label value: 1
```

Label value pairs:
```
Description: XYZ [peer=202739]
Label name: peer
Label value: 202739
```

### Custom Label RegEx

To override the default behavior a `interface_description_regex` can be supplied. This parameter can be given at a global level or per device. To use per-device regexes the target devices need to be defined in the exporter config. Per-device regex cannot be used in combination with `-config.ignore-targets`.

#### Example
The default regex `\[([^=\]]+)(=[^\]]+)?\]` would match interface descriptions like `"Description [foo] [bar=123]"`.
If we use `[[\s]([^=\[\]]+)(=[^,\]]+)?[,\]]` we can now match for `"Description [foo, bar=123]"` instead.

### Grafana Dashboards

There is an example Grafana Dashboard included (grafana_dashboard.json), which has some basic variables to choose your device(s) / interface(s)

![screenshot](grafana_screenshot.png)

## Third Party Components
This software uses components of the following projects
* Prometheus Go client library (https://github.com/prometheus/client_golang)

## Contributers
for a full list of contributers have a look at https://github.com/czerwonk/junos_exporter/graphs/contributors

## License
(c) Daniel Czerwonk, 2017. Licensed under [MIT](LICENSE) license.

## Prometheus
see https://prometheus.io/

## JunOS
see https://www.juniper.net/us/en/products-services/nos/junos/

gha_language: Go


text:
# Change Log

All user visible changes to this project will be documented in this file.
This project adheres to [Semantic Versioning](http://semver.org/), as described
for Rust libraries in [RFC #1105](https://github.com/rust-lang/rfcs/blob/master/text/1105-api-evolution.md)

## 0.1.2 : 2017-11-07
* fix some mistakes in the documentation

## 0.1.1 : 2017-11-06 : First words
* Describe the basic building blocks (traits) defined in this crate.<br/>
  (documentation only, no code changes)

## 0.1.0 : 2017-10-26 : Newborn
First release

repository: ybyygu/genevo

repo_name: ybyygu/genevo


text:
> [Go to French version](/fr/Lois/Lois%20révisées%20du%20Canada/I/I-3.md)

# Importation of Intoxicating Liquors Act

**R.S.C. 1985, c. I-3**

----------

**Short title**

**1** This Act may be cited as the Importation of Intoxicating Liquors Act.
> R.S., c. I-4, s. 1

**Definitions**

**2** In this Act,

 ***beer*** has the same meaning as in section 4 of the [Excise Act](/en/Acts/Revised%20Statutes%20of%20Canada/E/E-14.md); (*bière*)

 ***bulk*** has the same meaning as in section 2 of the [Excise Act, 2001](/en/Acts/Statutes%20of%20Canada/2002/c.%2022.md); (*en vrac*)

***Chile*** has the same meaning as in subsection 2(1) of the [Customs Tariff](/en/Acts/Statutes%20of%20Canada/1997/c.%2036.md); (*Chili*)

***Costa Rica*** has the same meaning as in subsection 2(1) of the [Customs Tariff](/en/Acts/Statutes%20of%20Canada/1997/c.%2036.md); (*Costa Rica*)

 ***denature*** has the same meaning as in section 2 of the [Excise Act, 2001](/en/Acts/Statutes%20of%20Canada/2002/c.%2022.md); (*dénaturation*)

***EU country or other CETA beneficiary*** has the same meaning as in subsection 2(1) of the [Customs Tariff](/en/Acts/Statutes%20of%20Canada/1997/c.%2036.md); (*pays de l’Union européenne ou autre bénéficiaire de l’AÉCG*)

 ***excise warehouse*** has the same meaning as in section 2 of the [Excise Act, 2001](/en/Acts/Statutes%20of%20Canada/2002/c.%2022.md); (*entrepôt d'accise*)

***Honduras*** has the same meaning as in subsection 2(1) of the [Customs Tariff](/en/Acts/Statutes%20of%20Canada/1997/c.%2036.md); (*Honduras*)

***intoxicating liquor*** means any liquor that is, by the law of the province for the time being in force, deemed to be intoxicating liquor and that it is unlawful to sell or have in possession without a permit or other authority of the government of the province or any board, commission, officer or other governmental agency authorized to issue the permit or grant the authority; (*boisson enivrante*)

***Israel or another CIFTA beneficiary*** has the same meaning as in subsection 2(1) of the [Customs Tariff](/en/Acts/Statutes%20of%20Canada/1997/c.%2036.md); (*Israël ou autre bénéficiaire de l’ALÉCI*)

 ***licensed distiller*** means a person who holds a spirits licence under section 14 of the [Excise Act, 2001](/en/Acts/Statutes%20of%20Canada/2002/c.%2022.md); (*distillateur agréé*)

***NAFTA country*** has the meaning assigned to the expression NAFTA country by subsection 2(1) of the [North American Free Trade Agreement Implementation Act](/en/Acts/Statutes%20of%20Canada/1993/c.%2044.md); (*pays ALÉNA*)

 ***packaged*** has the same meaning as in section 2 of the [Excise Act, 2001](/en/Acts/Statutes%20of%20Canada/2002/c.%2022.md); (*emballé*)

***Panama*** has the same meaning as in subsection 2(1) of the [Customs Tariff](/en/Acts/Statutes%20of%20Canada/1997/c.%2036.md); (*Panama*)

***province*** means any province — other than Yukon, the Northwest Territories and Nunavut — in which there is in force an Act giving the government of the province or any board, commission, officer or other governmental agency control over the sale of intoxicating liquor in that province; (*province*)

***spirits*** has the same meaning as in section 2 of the [Excise Act, 2001](/en/Acts/Statutes%20of%20Canada/2002/c.%2022.md); (*spiritueux*)

***Ukraine*** has the same meaning as in subsection 2(1) of the [Customs Tariff](/en/Acts/Statutes%20of%20Canada/1997/c.%2036.md); (*Ukraine*)

 ***wine*** has the same meaning as in section 2 of the [Excise Act, 2001](/en/Acts/Statutes%20of%20Canada/2002/c.%2022.md). (*vin*)
> R.S., 1985, c. I-3, s. 2; 1993, c. 44, s. 159; 1997, c. 14, s. 80; 2001, c. 28, s. 52; 2002, c. 7, s. 182, c. 22, s. 394; 2012, c. 26, s. 57; 2014, c. 2, s. 12, c. 14, s. 21; 2017, c. 6, s. 28, c. 8, s. 182019, c. 6, s. 72019, c. 29, s. 185

**Prohibition**

**3**

- **(1)** Despite any other Act or law, other than the [Foreign Missions and International Organizations Act](/en/Acts/Statutes%20of%20Canada/1991/c.%2041.md), a person is not permitted to import, or cause to be imported, into a province from a place outside Canada any intoxicating liquor unless the intoxicating liquor has been purchased by or on behalf of, and is consigned to, Her Majesty or the executive government of a province, or any board, commission, officer or other governmental agency of the province that, by the law of that province, is authorized to sell intoxicating liquor.

**Suspension of paragraph (2)(f)**

- **(1.1)** The operation of paragraph (2)(f) is suspended during the period in which paragraph (2)(c) is in force.

**Exceptions**

- **(2)** The provisions of subsection (1) do not apply to
	- **(a)** the transportation of intoxicating liquor through a province to a territory or through Canada to a destination outside Canada, by the producer of the liquor or by a common carrier, if, during the time that the intoxicating liquor is being transported, its container is not opened or broken or any of the liquor is drunk or used;
	- **(b)** the importation of intoxicating liquor into a province by any person who is a licensed distiller or who is duly licensed by the Government of Canada to carry on the business or trade of a brewer if the liquor
		- **(i)** is imported solely for the purpose of being used for blending with or flavouring the products of the business or trade of a distiller or brewer carried on by the person in the province, and
		- **(ii)** is kept while in the province
			- **(A)** in the case of spirits or wine, in accordance with the [Excise Act, 2001](/en/Acts/Statutes%20of%20Canada/2002/c.%2022.md) and the laws of the province, and
			- **(B)** in the case of beer, by the person in a place or warehouse that conforms in all respects to the requirements of the law governing those places or warehouses;
	- **(b.01)** [Repealed, 2002, c. 22, s. 395]
	- **(b.02)** [Repealed, 2002, c. 22, s. 395]
	- **(b.03)** [Repealed, 2002, c. 22, s. 395]
	- **(b.1)** [Repealed, 2002, c. 22, s. 395]
	- **(c)** the importation of bulk spirits into a province from a NAFTA country by a licensed distiller for the purpose of being packaged by the distiller, if the spirits
		- **(i)** are entitled to the United States Tariff, the Mexico Tariff or the Mexico — United States Tariff in the List of Tariff Provisions set out in the schedule to the [Customs Tariff](/en/Acts/Statutes%20of%20Canada/1997/c.%2036.md), and
		- **(ii)** are kept while in the province in accordance with the [Excise Act, 2001](/en/Acts/Statutes%20of%20Canada/2002/c.%2022.md) and the laws of the province;
	- **(d)** the importation of bulk spirits into a province from Chile by a licensed distiller for the purpose of being packaged by the distiller, if the spirits
		- **(i)** are entitled to the benefit of the Chile Tariff in the List of Tariff Provisions set out in the schedule to the [Customs Tariff](/en/Acts/Statutes%20of%20Canada/1997/c.%2036.md), and
		- **(ii)** are kept while in the province in accordance with the [Excise Act, 2001](/en/Acts/Statutes%20of%20Canada/2002/c.%2022.md) and the laws of the province;
	- **(e)** the importation of bulk spirits into a province from Costa Rica by a licensed distiller for the purpose of being packaged by the distiller, if the spirits
		- **(i)** are entitled to the benefit of the Costa Rica Tariff in the List of Tariff Provisions set out in the schedule to the [Customs Tariff](/en/Acts/Statutes%20of%20Canada/1997/c.%2036.md), and
		- **(ii)** are kept while in the province in accordance with the [Excise Act, 2001](/en/Acts/Statutes%20of%20Canada/2002/c.%2022.md) and the laws of the province;
	- **(f)** the importation of bulk spirits into a province from the United States by a licensed distiller for the purpose of being packaged by the distiller, if the spirits
		- **(i)** are entitled to the United States Tariff in the List of Tariff Provisions set out in the schedule to the [Customs Tariff](/en/Acts/Statutes%20of%20Canada/1997/c.%2036.md), and
		- **(ii)** are kept while in the province in accordance with the [Excise Act, 2001](/en/Acts/Statutes%20of%20Canada/2002/c.%2022.md) and the laws of the province;
	- **(f.1)** the importation of bulk spirits into a province from a country or territory listed in column 1 of the schedule by a licensed distiller for the purpose of being packaged by the distiller, if the spirits
		- **(i)** are entitled to the benefit of a tariff set out in column 2, and
		- **(ii)** are kept while in the province in accordance with the [Excise Act, 2001](/en/Acts/Statutes%20of%20Canada/2002/c.%2022.md) and the laws of the province; and
	- **(g)** the transfer by a licensed distiller of any spirits produced or packaged in accordance with the [Excise Act, 2001](/en/Acts/Statutes%20of%20Canada/2002/c.%2022.md) that is permitted by any Act or regulation or by special permit of the Canada Revenue Agency, if the spirits
		- **(i)** in the case of packaged spirits, are kept in an excise warehouse of a licensed distiller and in accordance with the laws of the province in which they are kept, and
		- **(ii)** in the case of bulk spirits, are kept in accordance with the [Excise Act, 2001](/en/Acts/Statutes%20of%20Canada/2002/c.%2022.md) and the laws of the province in which they are kept.
	- **(h)** [Repealed, 2019, c. 29, s. 186]

- **(3)** [Repealed, 2002, c. 22, s. 411]
> R.S., 1985, c. I-3, s. 3; 1988, c. 65, s. 132; 1993, c. 44, s. 160; 1997, c. 14, s. 81, c. 36, s. 211; 1999, c. 17, s. 163; 2001, c. 28, s. 53; 2002, c. 22, ss. 395, 411; 2004, c. 16, s. 9; 2005, c. 38, s. 138; 2012, c. 14, s. 1, c. 26, s. 58; 2014, c. 20, s. 163; 2017, c. 6, s. 292019, c. 29, s. 186

**Burden of proof**

**4** The burden of proving the right to import, or to cause to be imported, any intoxicating liquor into a province is on the person accused.
> R.S., 1985, c. I-3, s. 42019, c. 29, s. 187

**Punishment**

**5** Every person who contravenes any of the provisions of this Act is guilty of an offence and liable on summary conviction
- **(a)** for a first offence, to a fine not exceeding two hundred dollars, and in default of payment to imprisonment for any term not exceeding three months;
- **(b)** for a second offence, to a fine of not less than two hundred dollars and not more than one thousand dollars, and in default of payment to imprisonment for any term not less than three months and not more than six months; and
- **(c)** for each subsequent offence, to imprisonment for any term not less than six months and not more than twelve months.
> R.S., c. I-4, s. 5

**Prosecution in place where liquor imported**

**6** A prosecution for any offence under this Act may be brought and carried on, and a conviction had, in the city, town or place into which any intoxicating liquor is unlawfully imported or in the place where the accused resides, but no prosecution shall be brought in any province against a person not within or residing in that province without the written approval of the attorney general of that province.
> R.S., 1985, c. I-3, s. 62019, c. 29, s. 188

**Search warrants**

**7**

- **(1)** If it is proved on oath before a recorder, two justices of the peace or a provincial court judge or, in the Province of Quebec, a judge of the Court of Quebec, that there are reasonable grounds to suspect that any intoxicating liquor is in any premises or place and that the intoxicating liquor is or has been dealt with contrary to this Act, that officer may grant a warrant to search the premises or place, including any Government railway, vehicle or steamship, for the intoxicating liquor, and, if the intoxicating liquor or any part thereof is found in the premises or place, to seize and bring it before him.

**Forfeiture**

- **(2)** Where any person is convicted of any offence against this Act, the officer or officers so convicting may adjudge and order, in addition to any other penalty, that the intoxicating liquor in respect of which the offence was committed and that has been seized under a search warrant granted under subsection (1), and all kegs, barrels, cases, boxes, bottles, packages and other receptacles of any kind whatever found containing the intoxicating liquor, be forfeited and destroyed, and the order shall thereupon be carried out by the constable or peace officer who executed the search warrant or by such other person as may be authorized to do so by the officer or officers who have made the conviction.
> R.S., 1985, c. I-3, s. 7; R.S., 1985, c. 40 (4th Supp.), s. 2

**Sacramental, medicinal and other purposes exempted**

**8** Nothing in this Act prohibits the importing, or the causing to be imported, into a province from a place outside Canada of an intoxicating liquor for sacramental or medicinal purposes or for manufacturing or commercial purposes other than for the manufacture or use of an intoxicating liquor as a beverage.
> R.S., 1985, c. I-3, s. 82019, c. 29, s. 189

### **SCHEDULE**
**(Paragraph 3(2)(f.1))**

Column 1
Column 2

Country or Territory
Tariff

EU country or other CETA beneficiary
Canada–European Union Tariff in the List of Tariff Provisions set out in the schedule to the [Customs Tariff](/en/Acts/Statutes%20of%20Canada/1997/c.%2036.md)

Honduras
Honduras Tariff in the List of Tariff Provisions set out in the schedule to the [Customs Tariff](/en/Acts/Statutes%20of%20Canada/1997/c.%2036.md)

Israel or another CIFTA beneficiary
Canada–Israel Agreement Tariff in the List of Tariff Provisions set out in the schedule to the [Customs Tariff](/en/Acts/Statutes%20of%20Canada/1997/c.%2036.md)

Panama
Panama Tariff in the List of Tariff Provisions set out in the schedule to the [Customs Tariff](/en/Acts/Statutes%20of%20Canada/1997/c.%2036.md)

Ukraine
Ukraine Tariff in the List of Tariff Provisions set out in the schedule to the [Customs Tariff](/en/Acts/Statutes%20of%20Canada/1997/c.%2036.md)

> 2012, c. 26, s. 59; 2014, c. 14, s. 22; 2017, c. 6, ss. 30, 31, c. 8, s. 192019, c. 6, s. 8

## RELATED PROVISIONS

######           — R.S., 1985, c. 40 (4th Supp.), s. 2(2)

**Transitional — proceedings**

**2**

- **(2)** Every proceeding commenced before the coming into force of this section under a provision amended by the schedule shall be taken up and continued under and in conformity with the amended provision without any further formality.

repository: TravisMadill/CanadianLaws

path: /en/Acts/Revised Statutes of Canada/I/I-3.md

repo_name: TravisMadill/CanadianLaws


text:
# riscv-rust

[![Build Status](https://travis-ci.org/takahirox/riscv-rust.svg?branch=master)](https://travis-ci.org/takahirox/riscv-rust)
[![Crate](https://img.shields.io/crates/v/riscv_emu_rust.svg)](https://crates.io/crates/riscv_emu_rust)
[![npm version](https://badge.fury.io/js/riscv_emu_rust_wasm.svg)](https://badge.fury.io/js/riscv_emu_rust_wasm)

riscv-rust is a [RISC-V](https://riscv.org/) processor and peripheral devices emulator project written in Rust and compiled to WebAssembly. You can import RISC-V emulator into your Rust or JavaScript project. Refer to the [Slides](https://docs.google.com/presentation/d/1qeR6KMSaJTR0ZSa2kLxgcBuc_zBo3l-kYbOpq1Wqmi0/edit?usp=sharing) for more detail.

## Online Demo

You can run Linux or xv6 on the emulator in your browser. [Online demo is here](https://takahirox.github.io/riscv-rust/wasm/web/index.html)

## Screenshots

![animation](./screenshots/animation.gif)
![debugger](./screenshots/debugger.gif)

## Documents

* [Document](https://docs.rs/riscv_emu_rust/0.2.0/riscv_emu_rust/)

## Features

- Emulate RISC-V processor and peripheral devices
- Stable as [Linux](https://risc-v-getting-started-guide.readthedocs.io/en/latest/linux-qemu.html) and [xv6-riscv](https://github.com/mit-pdos/xv6-riscv) run on it
- Runnable locally
- Also runnable in browser with WebAssembly
- Debugger
- You can import RISC-V emulator into your Rust or JavaScript project

## Instructions/Features support status

- [x] RV32/64I
- [x] RV32/64M
- [x] RV32/64F (almost)
- [x] RV32/64D (almost)
- [ ] RV32/64Q
- [x] RV32/64A (almost)
- [x] RV64C/32C (almost)
- [x] RV32/64Zifencei (almost)
- [x] RV32/64Zicsr (almost)
- [x] CSR (almost)
- [x] SV32/39
- [ ] SV48
- [x] Privileged instructions (almost)
- [ ] PMP

etc...

The emulator supports almost all instructions listed above but some instructions which are not used in Linux or xv6 are not implemented yet. Your contribution is very welcome.

## How to import into your Rust project

The emulator module is released at [crates.io](https://crates.io/crates/riscv_emu_rust
). Add the following line into Cargo.toml of your Rust project.

```
[dependencies]
riscv_emu_rust = "0.2.0"
```

Refer to [Document](https://docs.rs/riscv_emu_rust/0.2.0/riscv_emu_rust/struct.Emulator.html) for the API.

## How to build core library locally

```sh
$ git clone https://github.com/takahirox/riscv-rust.git
$ cd riscv-rust
$ cargo build --release
```

## How to run Linux or xv6 as desktop application

```sh
$ cd riscv-rust/cli
# Run Linux
$ cargo run --release ../resources/linux/opensbi/fw_payloag.elf -f ../resources/linux/rootfs.img
# Run xv6
$ cargo run --release ../resources/xv6/kernel -f ../resources/xv6/fs.img
```

## How to run riscv-tests

Prerequirements
- Install [riscv-gnu-toolchain](https://github.com/riscv/riscv-gnu-toolchain)
- Install [riscv-tests](https://github.com/riscv/riscv-tests)

```sh
$ cd riscv-rust/cli
$ cargo run $path_to_riscv_tets/isa/rv32ui-p-add -n
```

## How to import and use WebAssembly RISC-V emulator in a web browser

See [wasm/web](https://github.com/takahirox/riscv-rust/tree/master/wasm/web)

## How to install and use WebAssembly RISC-V emulator npm package

See [wasm/npm](https://github.com/takahirox/riscv-rust/tree/master/wasm/npm)

## Links

### Linux RISC-V port

[Running 64- and 32-bit RISC-V Linux on QEMU](https://risc-v-getting-started-guide.readthedocs.io/en/latest/linux-qemu.html)

### xv6-riscv

[xv6-riscv](https://github.com/mit-pdos/xv6-riscv) is the RISC-V port of [xv6](https://pdos.csail.mit.edu/6.828/2019/xv6.html) which is UNIX V6 rewritten by MIT for x86 in the current C language.

### Specifications

- [RISC-V ISA](https://riscv.org/specifications/)
- [Virtio Device](https://docs.oasis-open.org/virtio/virtio/v1.1/csprd01/virtio-v1.1-csprd01.html)
- [UART](http://www.ti.com/lit/ug/sprugp1/sprugp1.pdf)
- [CLINT, PLIC (SiFive E31 Manual)](https://sifive.cdn.prismic.io/sifive%2Fc89f6e5a-cf9e-44c3-a3db-04420702dcc1_sifive+e31+manual+v19.08.pdf)
- [SiFive Interrupt Cookbook](https://sifive.cdn.prismic.io/sifive/0d163928-2128-42be-a75a-464df65e04e0_sifive-interrupt-cookbook.pdf)

repository: Iwancof/SECR

repo_name: Iwancof/SECR


text:
### Project Overview

 This project is about Student Management System at a very very basic level.

### Learnings from the project

 This project required basics of Python like List, Dictionary, Operators etc. So, I learned use of the basics in a good manner.

### Approach taken to solve the problem

 The following approach was taken :
1. Make a student Register.
2. Find out who scored highest marks in Mathmematics.
3. Format the name of the topper according to format of the certificate.

### Challenges faced

 Since the project required extensive use of Dictionary, knowing all of its functions was bit hard in the beginning. I looked for some external sources and then tried different approaches and finally came up with this.

### Additional pointers

 Dictionary is a boon for Python Programmers.

repository: tathagatankit/ga-learner-dsb-repo

repo_name: tathagatankit/ga-learner-dsb-repo