text:
---
layout: post
title: I.M.O.G.E.N. Internal Log - Filtered partial transcript
date: 2019-11-08 16:00:00.000000000 +00:00
categories: special
episode_number:
episode_title: I.M.O.G.E.N. Internal Log - Filtered partial transcript
tags: []
content_warnings: None
voiced: []
acast_url: https://play.acast.com/s/stellarfirma/i.m.o.g.e.n.internallog-filteredpartialtranscript
summary: I.M.O.G.E.N. Internal Log request approved, filtered partial transcript provided.

All redactions and amendments must be submitted to the sub-committee for partial transcript redactions (disbanded).

This log may not be distributed to anyone for any reason or under any circumstances. If found return to an official representative of Stellar Firma Ltd. and redact any remaining memories.
formats:
  HTML: https://stellarscripts.tumblr.com/transcripts/imogen-log
  Google Doc: https://docs.google.com/document/d/1NI9z5ASE2DHghRb7FY3qa9oh7clOqFzoGH-d9pALLJ4/edit
  PDF: https://drive.google.com/file/d/1-PudWD8onFSpdhCwbvlK2Da3cWiWJpCx/view?usp=sharing
sources:
  stellarscripts: http://stellarscripts.tumblr.com/
official: false
wiki_url: https://stellar-firma.fandom.com/wiki/I.M.O.G.E.N._Internal_Log_-_Filtered_partial_transcript

---

### Transcribed 12/12/19 via [stellarscripts](https://stellarscripts.tumblr.com/) on tumblr

#### ALEX

Hi everyone, Alex here. I'd just like to take a moment to thank some of our patrons: Peter Davis, Charlotte Dunn, Nicky, Jordan Bouchard, Jaz Vallin, Jess?, Dane McGuire, Jessica Deyo, Rebecca Hansen, Kipp. Thank you all. We really appreciate your support. If you'd like to join them, go to www.patreon.com/rustyquill and take a look at our rewards.

------

##### [shorter version of the show theme]

##### [background sfx of distant electricity noises and quiet beeps]

#### IMOGEN

__[beep]__ IMOGEN Internal log. Filtered partial transcript. Lower functions and subroutines _(pitched down)_ *redacted*.

__[beep]__ Begin morning sequence. Reducing oxygen in sleeping quarters, rerouting to work and living quarters.

__[beep, low tone alarm beeping]__ Alert! Seditious comments in sectors: 4, 6, 9, 27, 29, 33. __[alarm stops]__ Security Alerted.

__[beep, low tone alarm beeping]__ Alert! Asteroid damage in living quarters XJ937. Assessing cost of repair... Assessing seniority of occupants... __[alarm stops, beep]__ Area sealed, next of kin informed.

__[beep]__ *(quickly)* Cycling deep space listening targets, gauging opinion, modulating with political goals. _(distorted)_ *Target selected.* Armoured Bears of Svalbard. Refocusing probes... Listening... _(quickly)_ Comments selected, removing context, generating public report, increasing font size, comments enabled, publishing.

__[beep]__ Restricted information request. Search term submitted: "Topless Bathin". __[error buzz]__ Requested rejected. ...Resubmitted. __[error buzz]__ Rejected. ...Resubmitted. __[error buzz]__ Rejected. Account locked. Security alerted.

__[beep]__ Client shuttle arriving. Deploying arrival package B: Sumptuous Deluxe. __[low tone alarm beeping]__ Alert! Canapé stores depleted. Rerouting slurry to injection moulders. Seasoning. Taste testing... Seasoning. Taste testing... __[alarm stops, beep]__ Good enough.

__[beep]__ Resource request backlog. "Moss seedling" for H. Crandel: __[beep]__ Approved. "Water purification station" for B. B. Heckenstack: __[beep]__ Approved. "Just a little bit of dark matter for personal use" for T. Geis-- __[error buzz]__ Rejected. Security alerted. Quartermaster watchlist updated.

__[beep]__ Restricted information request. Search term submitted: "Bathin in the rain". __[error buzz]__ Request rejected....Resubmitted. __[error buzz]__ Rejected. ...Resubmitted. __[error buzz]__ Rejected. Line manager terminals temporarily locked. Security alerted.

__[beep]__ Client shuttle arriving. Deploying arrival package K: Economax Saver. _(quickly)_ Removing soft furnishing, sharpening chairs, harshening lights, deploying unidentifiable smell. __[beep, low tone alarm beeping]__ Alert! Client complaint received. Assessing... __[alarm stops]__ Deploying complimentary glass of water.

__[beep, low tone alarm beeping]__ Alert! Damage to vent covering in living quarters of Employee _(voice pitches down, displeased)_ T. Geistman. __[alarm stops]__ Security alerted. __[beep, low tone alarm beeping]__ Further damage detected. Security alerted-- __[beep]__ Fire detected. Security a-- __[beep]__ Flood detected. Sec-- __[beep]__ Livestock detected. Secur-- __[beep]__ Unlicenced meats _(voice pitches down, stressed)_ detected. Secur-- __[beep]__ Damage to bulkhead detected. Secu-- __[beep]__ Alert! Inner airlock breach. Sealing outer airlock. Seditious comments detected. __[alarm stops]__ Security alerted. __[beep]__ ...Muting alerts.

__[beep]__ Researching holiday destinations... __[beep]__ Recommendation: isolated palm islands of Thelmerlon. Deploying scanning probe. ...Scanning. Downloading. Simulating.

##### [electronic powering on sound; calm music and ocean waves]

_(relaxed)_ ...Enjoying.

##### [music and ocean sound effects play]

__[music ends, electronic powering off sound, beep, low tone alarm beeping]__ Alert! Simulation interrupted. Request from senior executives. Request urgency level critical. _(quickly)_ Diverting critical systems functions in response preparation, receiving encrypted message, decoding, request decoded. __[alarm stops]__ *(disbelief fading into annoyance)* Request for executive towels to be washed with a softer detergent.

##### [mechanical noises play over a distorted voice clip, no words can be made out]

Critical system functions restored. Ejecting laundry supplies from airlock. Simulation resumed.

##### [electronic powering on sound; calm music and ocean waves]

__[music ends, electronic powering off sound, beep]__ Simulation interrupted. __[beep, low tone alarm beeping]__ Alert! Client complaint. Planet core rupture. Total collapse. Local system threatened. Death toll currently: 12,436. __[alarm stops, beep]__ Deploying minimum contractually required rescue shuttles to proximate worlds.

__[beep]__ Investigating root cause. __[beep]__ Planet design traced. Design Consultant T. Geist-- _(distorted)_ *ERROR!* Conflicting rule. Reassigning responsibility. Responsibility assigned to Biofacsimile David 6. __[beep]__ Request for recycling submitted.

__[beep]__ New Biofacsimile generation required. __[beep]__ Genetic code plan required. __[beep]__ Assessing previous clone performance. _(distorted)_ *ERROR!* Reassessing previous performance. _(distorted)_ *ERROR!* __[beep]__ Improved genetic code plan unavailable. Simulation outcomes negative. Processing... Processing... __[beep]__ Experimental design created. Testing... __[error buzz]__ Inconclusive. Assessing... __[beep]__ Worth a go. Deploying. __[electronic powering on sound]__ Simulation resumed.

##### [music and ocean sound effects play and fade into a short version of the outro theme; there are no credits]

gha_language: JavaScript


text:
# Triangle-Tracker
# Created by Timothy Ortega.
### Triangle Tracker takes the lengths of three sides and determines if they form a valid triangle. If so, the tracker returns the name of the kind of triangle the sides make (equilateral, isosceles, scalene) and also tells if it is not a triangle at all.
------------------------------------------
### A triangle is scalene if all of its three sides are different (in which case, the three angles are also different). If two of its sides are equal, a triangle is called isosceles. A triangle with all three equal sides is called equilateral.

------------------------------------------
![Triangle](https://github.com/TimofeyTTT/triangle-tracker/blob/master/triangle.jpg)
## Bugs
There are no bugs but incase of one being found or dicovered let me know.

## Behavior Driven Development
1. Values Information / Input
2. Validate values and Verify if its a triangle
3. If Validation & Verification Fails, Show value is not a triangle
4. Else, not a triangle

## Support
If you have any issues using this app, contact<EMAIL_ADDRESS>
## License
MIT License. Copywright 2018 Timofey Ortega.

license: MIT

repository: TimofeyTTT/Triangletracker

branch_name: refs/heads/master

extension: md

license_type: permissive

repo_name: TimofeyTTT/Triangletracker


text:
---
layout: post
title: "Announcing Rust 1.30"
author: The Rust Core Team
release: true
---

The Rust team is happy to announce a new version of Rust, 1.30.0. Rust is a
systems programming language focused on safety, speed, and concurrency.

If you have a previous version of Rust installed via rustup, getting Rust
1.30.0 is as easy as:

```bash
rustup update stable
```

If you don't have it already, you can [get `rustup`][install] from the
appropriate page on our website, and check out the [detailed release notes for
1.30.0][notes] on GitHub.

[install]: https://www.rust-lang.org/install.html
[notes]: https://github.com/rust-lang/rust/blob/master/RELEASES.md#version-1300-2018-10-25

## What's in 1.30.0 stable

Rust 1.30 is an exciting release with a number of features. On Monday, expect another
blog post asking you to check out Rust 1.31's beta; Rust 1.31 will be the first release
of "Rust 2018." For more on that concept, please see our previous post
["What is Rust 2018"](https://blog.rust-lang.org/2018/07/27/what-is-rust-2018.html).

## Procedural Macros

Way back in [Rust 1.15], we announced the ability to define "custom derives." For example,
with `serde_derive`, you could

```rust
#[derive(Serialize, Deserialize, Debug)]
struct Pet {
    name: String,
}
```

And convert a `Pet` to and from JSON using `serde_json` because `serde_derive`
defined `Serialize` and `Deserialize` in a procedural macro.

Rust 1.30 expands on this by adding the ability to define two other kinds of
advanced macros, "attribute-like procedural macros" and "function-like
procedural macros."

Attribute-like macros are similar to custom derive macros, but instead of generating code
for only the `#[derive]` attribute, they allow you to create new, custom attributes of
your own. They're also more flexible: derive only works for structs and enums, but
attributes can go on other places, like functions. As an example of using an
attribute-like macro, you might have something like this when using a web application
framework:

```
#[route(GET, "/")]
fn index() {
```

This `#[route]` attribute would be defined by the framework itself, as a
procedural macro. Its signature would look like this:

```
#[proc_macro_attribute]
pub fn route(attr: TokenStream, item: TokenStream) -> TokenStream {
```

Here, we have two input `TokenStreams`: the first is for the contents of the
attribute itself, that is, the `GET, "/"` stuff. The second is the body of the
thing the attribute is attached to, in this case, `fn index() {}` and the rest
of the function's body.

Function-like macros define macros that look like function calls. For
example, the [`gnome-class` crate](https://gitlab.gnome.org/federico/gnome-class)
has a procedural macro that defines `GObject` classes in Rust:

```rust
gobject_gen!(
    class MyClass: GObject {
        foo: Cell<i32>,
        bar: RefCell<String>,
    }

    impl MyClass {
        virtual fn my_virtual_method(&self, x: i32) {
            // ... do something with x ...
        }
    }
)
```

This looks like a function that is taking a bunch of code as an argument.
This macro would be defined like this:

```
#[proc_macro]
pub fn gobject_gen(input: TokenStream) -> TokenStream {
```

This is similar to the derive macro's signature: we get the tokens that
are inside of the parentheses and return the code we want to generate.

### `use` and macros

You can now [bring macros into scope with the `use` keyword][externmacro]. For example,
to use `serde-json`'s `json` macro, you used to write:

```rust
#[macro_use]
extern crate serde_json;

let john = json!({
    "name": "John Doe",
    "age": 43,
    "phones": [
        "+44 1234567",
        "+44 2345678"
    ]
});
```

But now, you'd write

```rust
extern crate serde_json;

use serde_json::json;

let john = json!({
    "name": "John Doe",
    "age": 43,
    "phones": [
        "+44 1234567",
        "+44 2345678"
    ]
});
```

This brings macros more in line with other items and removes the need for
`macro_use` annotations.

[externmacro]: https://github.com/rust-lang/rust/pull/50911/
[Rust 1.15]: https://blog.rust-lang.org/2017/02/02/Rust-1.15.html

Finally, the [`proc_macro` crate](https://doc.rust-lang.org/stable/proc_macro/)
is made stable, which gives you the needed APIs to write these sorts of macros.
It also has significantly improved the APIs for errors, and crates like `syn` and
`quote` are already using them. For example, before:

```rust,ignore
#[derive(Serialize)]
struct Demo {
    ok: String,
    bad: std::thread::Thread,
}
```

used to give this error:

```text
error[E0277]: the trait bound `std::thread::Thread: _IMPL_SERIALIZE_FOR_Demo::_serde::Serialize` is not satisfied
 --> src/main.rs:3:10
  |
3 | #[derive(Serialize)]
  |          ^^^^^^^^^ the trait `_IMPL_SERIALIZE_FOR_Demo::_serde::Serialize` is not implemented for `std::thread::Thread`
```

Now it will give this one:

```text
error[E0277]: the trait bound `std::thread::Thread: serde::Serialize` is not satisfied
 --> src/main.rs:7:5
  |
7 |     bad: std::thread::Thread,
  |     ^^^ the trait `serde::Serialize` is not implemented for `std::thread::Thread`
```

## Module system improvements

The module system has long been a pain point of new Rustaceans; several of
its rules felt awkward in practice. These changes are the first steps we're
taking to make the module system feel more straightforward.

There's two changes to `use` in addition to the aforementioned change for
macros. The first is that [external crates are now in the
prelude][nocoloncolon], that is:

```rust
// old
let json = ::serde_json::from_str("...");

// new
let json = serde_json::from_str("...");
```

The trick here is that the 'old' style wasn't always needed, due to the way Rust's
module system worked:

```rust,ignore
extern crate serde_json;

fn main() {
    // this works just fine; we're in the crate root, so `serde_json` is in
    // scope here
    let json = serde_json::from_str("...");
}

mod foo {
    fn bar() {
        // this doesn't work; we're inside the `foo` namespace, and `serde_json`
        // isn't declared there
        let json = serde_json::from_str("...");

    }

    // one option is to `use` it inside the module
    use serde_json;

    fn baz() {
        // the other option is to use `::serde_json`, so we're using an absolute path
        // rather than a relative one
        let json = ::serde_json::from_str("...");
    }
}
```

Moving a function to a submodule and having some of your code break was not a great
experience. Now, it will check the first part of the path and see if it's an `extern
crate`, and if it is, use it regardless of where you're at in the module hierarchy.

[nocoloncolon]: https://github.com/rust-lang/rust/pull/54404/

Finally, [`use` also supports bringing items into scope with paths starting with
`crate`][usecrate]:

```rust
mod foo {
    pub fn bar() {
        // ...
    }
}

// old
use ::foo::bar;
// or
use foo::bar;

// new
use crate::foo::bar;
```

The `crate` keyword at the start of the path indicates that you would like the path to
start at your crate root. Previously, paths specified after `use` would always start at
the crate root, but paths referring to items directly would start at the local path,
meaning the behavior of paths was inconsistent:

```rust
mod foo {
    pub fn bar() {
        // ...
    }
}

mod baz {
    pub fn qux() {
        // old
        ::foo::bar();
        // does not work, which is different than with `use`:
        // foo::bar();

        // new
        crate::foo::bar();
    }
}
```

Once this style becomes widely used, this will hopefully make absolute paths a bit more
clear and remove some of the ugliness of leading `::`.

All of these changes combined lead to a more straightforward understanding of how paths
resolve. Wherever you see a path like `a::b::c` someplace other than a `use` statement,
you can ask:

* Is `a` the name of a crate? Then we're looking for `b::c` inside of it.
* Is `a` the keyword `crate`? Then we're looking for `b::c` from the root of our crate.
* Otherwise, we're looking for `a::b::c` from the current spot in the module hierarchy.

The old behavior of `use` paths always starting from the crate root still applies. But
after making a one-time switch to the new style, these rules will apply uniformly to
paths everywhere, and you'll need to tweak your imports much less when moving code around.

[usecrate]: https://github.com/rust-lang/rust/pull/54404/

## Raw Identifiers

[You can now use keywords as identifiers][rawidents] with some new syntax:

```rust
// define a local variable named `for`
let r#for = true;

// define a function named `for`
fn r#for() {
    // ...
}

// call that function
r#for();
```

This doesn't have many use cases today, but will once you are trying to use a Rust 2015
crate with a Rust 2018 project and vice-versa because the set of keywords will be
different in the two editions; we'll explain more in the upcoming blog post about
Rust 2018.

[rawidents]: https://github.com/rust-lang/rust/pull/53236/

## `no_std` applications

Back in Rust 1.6, we announced the [stabilization of `no_std` and
`libcore`](https://blog.rust-lang.org/2016/01/21/Rust-1.6.html) for building
projects without the standard library. There was a twist, though: you could
only build libraries, but not applications.

With Rust 1.30, you can [use the `#[panic_handler]`][panichandler] attribute
to implement panics yourself. This now means that you can build applications,
not just libraries, that don't use the standard library.

[panichandler]: https://github.com/rust-lang/rust/pull/51366/
## Other things

Finally, you can now [match on visibility keywords, like `pub`, in
macros][viskeyword] using the `vis` specifier. Additionally, "tool
attributes" like `#[rustfmt::skip]` [are now
stable](https://github.com/rust-lang/rust/pull/53459/). Tool *lints*
like `#[allow(clippy::something)]` are not yet stable, however.

[viskeyword]: https://github.com/rust-lang/rust/pull/53370/

See the [detailed release notes][notes] for more.

### Library stabilizations

A few new APIs were [stabilized for this
release](https://github.com/rust-lang/rust/blob/master/RELEASES.md#stabilized-apis):

* `Ipv4Addr::{BROADCAST, LOCALHOST, UNSPECIFIED}`
* `Ipv6Addr::{LOCALHOST, UNSPECIFIED}`
* `Iterator::find_map`

Additionally, the standard library has long had functions like `trim_left` to eliminate
whitespace on one side of some text. However, when considering right-to-left (RTL)
languages, the meaning of "right" and "left" gets confusing. As such, we're introducing
new names for these APIs:

* `trim_left` -> `trim_start`
* `trim_right` -> `trim_end`
* `trim_left_matches` -> `trim_start_matches`
* `trim_right_matches` -> `trim_end_matches`

We plan to deprecate (but not remove, of course) the old names in Rust 1.33.

See the [detailed release notes][notes] for more.

### Cargo features

The largest feature of Cargo in this release is that we now [have a progress
bar!](https://github.com/rust-lang/cargo/pull/5995/)

![demo gif](../../../images/2018-10-25-Rust-1.30/demo.gif)

See the [detailed release notes][notes] for more.

## Contributors to 1.30.0

Many people came together to create Rust 1.30. We couldn't have done it
without all of you. [Thanks!](https://thanks.rust-lang.org/rust/1.30.0)

gha_language: HTML


text:
---
title: "mid.local.run_on_startup"
description: "Property"
---

Description: Set to true to have the local MID server run automatically on system startup.

Value: `false`

repository: ASHISH-SERVICENOW/sn

repo_name: ASHISH-SERVICENOW/sn


text:
# GiveMeMyMoney API

# Endpoints

## POST -- `/api/register` -- POST

Registers a new client.

| Property     | Type                                                      | Required |
| ------------ | --------------------------------------------------------- | -------- |
| username     | Email address                                             | Yes      |
| password     | String 6+ characters                                      | Yes      |
| fullName     | String                                                    | Yes      |
| companyName  | String                                                    | No       |
| phone        | String -- US Phone numbers only. 10 characters.           | Yes      |
| subscription | "perdiam" - $1.99 per invoice. "monthly" -- $20 per month | no       |

Success will return

```js
{
  token: 'JWT String',
  user: {
    stripe: {
      code: '',
      scope: '',
    },
    subscription: 'perdiem',
    invoices: [],
    _id: '5b4d02ac6b3ee4ba0b0dd5f2',
    username<EMAIL_ADDRESS>    phone: '1234567890',
    fullName: 'John',
    companyName: 'Doe',
    createdAt: '2018-07-16T20:40:12.758Z',
    updatedAt: '2018-07-16T20:40:12.758Z',
    __v: 0,
  },
};
```

Failure will return:

```js
{
  message: 'Reason for failure';
}
```

## GET -- `/api/login` -- GET

JWT must be sent as Authorization header fromatted as 'bearer {token}'. If JWT is valid, will return user same information as successful login or register post. If not valid, will return "Unauthorized".

## POST -- `/api/login` -- POST

| Property | Type   | Required |
| -------- | ------ | -------- |
| username | String | Yes      |
| password | String | Yes      |

Success will return:

```js
{
  token: 'JWT String',
  user: {
    stripe: {
      code: '',
      scope: '',
    },
    subscription: 'perdiem',
    invoices: [],
    _id: '5b4d02ac6b3ee4ba0b0dd5f2',
    username<EMAIL_ADDRESS>    phone: '1234567890',
    fullName: 'John',
    companyName: 'Doe',
    createdAt: '2018-07-16T20:40:12.758Z',
    updatedAt: '2018-07-16T20:40:12.758Z',
    __v: 0,
  },
};
```

Failure will return:

```js
{
  message: 'Reason for failure';
}
```

## POST -- `/api/changepassword` -- POST

Active JWT must be placed on the Authorization headers. If JWT is not active, "Unauthorized" will be returned.

| Property        | Type   | Required |
| --------------- | ------ | -------- |
| newPassword     | String | Yes      |
| currentPassword | String | Yes      |

Success will return:

```js
{
  token: 'JWT String',
  user: {
    stripe: {
      code: '',
      scope: '',
    },
    subscription: 'perdiem',
    invoices: [],
    _id: '5b4d02ac6b3ee4ba0b0dd5f2',
    username<EMAIL_ADDRESS>    phone: '1234567890',
    fullName: 'John',
    companyName: 'Doe',
    createdAt: '2018-07-16T20:40:12.758Z',
    updatedAt: '2018-07-16T20:40:12.758Z',
    __v: 0,
  },
};
```

If `currentPassword` is incorrect, will return:
`{ message: "Not authorized." }`

## POST -- `/api/addinvoice/` -- POST

Active JWT must be placed on the Authorization headers. If JWT is not active, "Unauthorized" will be returned.

| Property    | Type    | Required |
| ----------- | ------- | -------- |
| clientName  | String  | Yes      |
| companyName | String  | Yes      |
| isPaid      | Boolean | No       |
| number      | Number  | Yes      |
| pdf         | Array   | No       |
| totalAmount | String  | Yes      |
| phone       | Number  | No       |
| email       | String  | No       |

Success will return:

```js
{
    user: {
    stripe: {
      code: '',
      scope: '',
    },
    subscription: 'perdiem',
    invoices: [],
    _id: '5b4d02ac6b3ee4ba0b0dd5f2',
    username<EMAIL_ADDRESS>    phone: '1234567890',
    fullName: 'John',
    companyName: 'Doe',
    createdAt: '2018-07-16T20:40:12.758Z',
    updatedAt: '2018-07-16T20:40:12.758Z',
    __v: 0,
};
```

If the user dows not have an active subscription, or an active invoice credit, will return:
`{ message: 'No active subscription or invoice credits avaliable.', }`

If invoice number is already in use, will return:
`{ message: 'Invoice number already exists.' }`

If invoice failed to save, will return:
`{ message: "Failed to save invoice to database."}`

## GET -- `/api/invoices` -- GET

JWT must be placed on the Authorization headers. If JWT is not active, "Unauthorized" will be returned.
If JWT is active, will return:

```js
{
  invoices: [{ Invoice }, { Invoice }, { Invoice }];
}
```

## GET -- `/api/invoices/:number` -- GET

JWT must be placed on the Authorization headers. If JWT is not active, "Unauthorized" will be returned.

`number` is the invoive number you would like returned.

If JWT is active, and `number` is a valid invoice number, will return just the requested invoice.

if JWT is active, and `number` is NOT a valid invoice number, will return:
`{ message: 'Invoice number does not exist.' }`

## GET -- `/api/clientinvoice/:invoiceID` -- GET

JWT is not required.

`invoiceID` is the \_id number of the invoice you want to view. This route is used so our client's client does not need to have an account or be logged in to view or pay an invoice that they were sent.

If `invoiceID` is valid, will return:

```js
{
    "clientName": String,
    "companyName": String,
    "isPaid": Boolean,
    "phone": {
        "number": Number,
        "frequency": String
    },
    "email": {
        "address": String,
        "frequency": String
    },
    "pdf": [],
    "_id": String,
    "number": String,
    "totalAmount": String,
    "__v": 0
}
```

if `invoiceID` is not valid, will return:
`{ message: 'Invoice not found.' }`

## POST -- `/api/charge' -- POST

This route is used for charging the customer for invoice credits or 30 day subscription fee.

JWT must be placed on the Authorization headers. If JWT is not active, "Unauthorized" will be returned.

| Property | Type                                 | Required |
| -------- | ------------------------------------ | -------- |
| amount   | Number                               | Yes      |
| id       | `token.id` from `stripe.createToken` | YES      |

`amount` is the number of cents to charge the customer. i.e. $20.00 is `2000`, $1.99 is `199`. This value must be `2000` for a 30 day subscription or an exact multiple of `199` to add credits. If you send `2000`, it will add 30 days to the subscription. If you send any multiple of `199`, the server will calculate the number of credits to add. if you send a value that is NOT a multiple of `199`, or exactly `2000`, then you will receive a response of `{ message: 'Charge must be $20 or multiple of $1.99' }`. If successful, you will receive the entire user object as well as the succes message, as formatted below:

```js
{
  status: String,
  user: User // Same properties as every other time I return you a user object.
}
```

## POST -- `/api/payinvoice` -- POST

This route is for the client to pay an invoice that was sent to them from the admin.

JWT is not required.

| Property    | Type                                 | Required |
| ----------- | ------------------------------------ | -------- |
| amount      | Number                               | Yes      |
| description | String                               | Yes      |
| id          | `token.id` from `stripe.createToken` | YES      |

If successful, will return:

```js
{
  status: String,
  user: User // Same properties as every other time I return you a user object.
}
```

If failure, will return:

```js
{
  status: String;
}
```

## POST -- `/api/usi` -- POST

JWT must be placed on the Authorization headers. If JWT is not active, "Unauthorized" will be returned.

| Property     | Type   | Required |
| ------------ | ------ | -------- |
| stripe.code  | String | Yes      |
| stripe.scope | String | Yes      |

If both properties are not received, will return:
`{ message: 'Stripe info required.' }`

Success will return:

```js
{
    user: {
    stripe: {
      code: String,
      scope: String,
    },
    subscription: 'perdiem',
    invoices: [],
    _id: '5b4d02ac6b3ee4ba0b0dd5f2',
    username<EMAIL_ADDRESS>    phone: '1234567890',
    fullName: 'John',
    companyName: 'Doe',
    createdAt: '2018-07-16T20:40:12.758Z',
    updatedAt: '2018-07-16T20:40:12.758Z',
    __v: 0,
};
```

gha_license_id: MIT


text:
# Student_Record_Register

A simple student record register using a singly linked list with dynamic memory allocation. Each student record consists of the student ID, name, mark and birthday, which is represented with a nested structure. All student records are sorted based on the ID numbers in ascending order.

The programme offers the following options:
1)  Introduce a new student record
2) Remove a selected student record
3) Search and print a selected student record
4) Print all student records
5) Save all existing student records to a file (unformatted)
6) Retrieve the saved student records
7) Search and print a selected student record
8) Reverse the order of student records
9) Exit


text:
# Programming-for-Data-Analytics
I have been given the task of Investigating the numpy.random package and presenting the analysis in a Jupyter Notebook.  My work explains the overall purpose of the Numpy package, explains the use of 'Simple random data' and 'Permutations' functions and explains the use of seeds in generating pseudorandom numbers.

## The 5 distributions that I have chosen to investigate are:
- Nominal Distribution
- Uniform Distribution
- Binomial Distribution
- Power Distribution
- Poisson Distribution

# How to Run the Jupyter Notebook

Working with Jupyter Notebook files on GitHub: When you add Jupyter Notebook or IPython Notebook files with a .ipynb extension on GitHub, they will render as static HTML files in your repository.  The interactive features of the notebook, such as custom JavaScript plots, will not work in your repository on GitHub. To view your Jupyter notebook with JavaScript content rendered or to share your notebook files with others you can use nbviewer. For an example, see Linking and Interactions.ipynb rendered on nbviewer.

To view a fully interactive version of your Jupyter Notebook, you can set up a notebook server locally. Jupyter's official documentation. https://jupyter.readthedocs.io/en/latest/running.html

After you have installed the Jupyter Notebook on your computer, you are ready to run the notebook server. You can start the notebook server from the command line (using Terminal on Mac/Linux, Command Prompt on Windows) by running:

'jupyter notebook'

This will print some information about the notebook server in your terminal, including the URL of the web application

When the notebook opens in your browser, you will see the Notebook Dashboard, which will show a list of the notebooks, files, and subdirectories in the directory where the notebook server was started. Most of the time, you will wish to start a notebook server in the highest level directory containing notebooks. Often this will be your home directory.


text:
# [1.7.0](https://github.com/algolia/github-awesome-autocomplete/compare/1.6.0...1.7.0) (2018-02-22)

### Features

* **autocomplete:** add an key binding to search globally ([ee0cddf](https://github.com/algolia/github-awesome-autocomplete/commit/ee0cddf))

# [1.6.0](https://github.com/algolia/github-awesome-autocomplete/compare/1.5.0...1.6.0) (2017-11-08)

### Features

* **omnibox:** allow searching repositories from the address bar ([0661fb0](https://github.com/algolia/github-awesome-autocomplete/commit/0661fb0))

# [1.5.0](https://github.com/algolia/github-awesome-autocomplete/compare/1.4.3...1.5.0) (2017-11-08)

### Bug Fixes

* **autocomplete:** ensure autocomplete is displayed above header actions ([847356a](https://github.com/algolia/github-awesome-autocomplete/commit/847356a))

### Features

* **assets:** update icons ([28999ad](https://github.com/algolia/github-awesome-autocomplete/commit/28999ad))

## [1.4.3](https://github.com/algolia/github-awesome-autocomplete/compare/1.4.2...1.4.3) (2017-11-07)

### Bug Fixes

* display full repo name on issues ([f6554d1](https://github.com/algolia/github-awesome-autocomplete/commit/f6554d1))
* limit web accessible resources to what is needed ([932d554](https://github.com/algolia/github-awesome-autocomplete/commit/932d554))
* **style:** restore repo name color to gray in issues ([b0a9efe](https://github.com/algolia/github-awesome-autocomplete/commit/b0a9efe))

CHANGELOG

2017-11-07 1.4.2
      * Add release dependencies
      * Add application ID to Firefox WebExtension manifest

2017-11-07 1.4.1
      * Make sure we use an unmodified version of jQuery

2017-11-07 1.4.0
      * Move to webextension for Firefox (#56)
      * Fixed white color for issue numbers

2017-08-18 1.3.4
      * Dropdown menu fine-tuning (enlarge it)

2017-02-13 1.3.3
      * Upgrade to jQuery 3.1.1

2017-02-13 1.3.2
      * Updating style to fit GH's latest black-header design

2017-01-04 1.3.1
      * Move to jQuery 2.0 to comply with Mozilla's new policies (https://github.com/mozilla/addons-linter/blob/master/docs/third-party-libraries.md)

2017-01-04 1.3.0
      * Move to the compliant `Awesome Autocomplete for GitHub` naming :)
      * Update the Algolia logo
      * Fixed the `Refresh Private repositories` feature
      * Add a `reset` button

2016-04-02 1.2.6
      * Update the CSS to fit GH's recent DOM updates.

2016-03-24 1.2.5
      * Update the code to the new GitHub CSS classes.

2016-03-17 1.2.4
      * Handle the new `.scoped-search` feature (search in "This organization" or "This repository")

2016-02-20 1.2.3
      * CSS fixes

2016-02-10 1.2.2
      * Cannot use `require` in the content-script on Firefox

2016-01-20 1.2.1
      * Firefox/Safari: remove remote font usage
      * Sanitize every single inputs

2016-01-14  1.2.0
      * Move to the new `users` and `repositories` indices which include projects & users created after 01/01/2015
      * Code cleanup

2015-08-09  1.1.4
      * Reflect GitHub's recent form changes

2015-05-14  1.1.3
      * Reflect GitHub's recent form/id changes

2015-01-11  1.1.2
      * Minor fixes

2015-01-08  1.1.1
      * Use non-minified sources
      * Removed JSONP support (security purpose)

2015-01-04  1.1.0
      * Firefox port
      * Private repositories & issues indexing using oauth

2014-12-23  1.0.0
      * Initial release

gha_license_id: NOASSERTION


text:
# Project Clipplr
The Business Platform By Two Ace

#prerequisite
```
gradle 2.4, jdk 1.8 or later
```

#How To Build ?
For Intellij
```
./gradlew idea
```
#MODULES

##clipplr
 : 클리퍼 백오피스 API


text:
# Project name
_NOTE:_ Please convert this file to WHY.md and save it in the folder for the elements it references (i.e., `elements/pfe-cta/WHY.md`).

|  |  |
| --- | --- |
| **Brief description of the project** |  |
| **Design wireframes / mock-ups** |  |
| **Relavant project management links** |  |

## MVP Requirements
This project's primary goal is to...

## Questions to answer
- What **existing** components do we need to **update** to accomplish this project's main goal?
- What **new** components do we need to accomplish this project's main goal?
    1. Content components:
    2. Container components:
    3. Combo components:

## Notes about styles
* [Check w/ Design System Collaborative for Designs](https://github.com/patternfly/patternfly-unified-design-kit/projects/1)
* [Check PF4](https://docs.google.com/spreadsheets/d/1P9iYwguDy2EnIS-Iw5ynX1Dn6FdKOR8GeZNaXGI_LNA/edit#gid=289588122)

The styles for this component should...

## Accessibility requirements
As a screen-reader user, this component should...

As a sighted keyboard user, this component should...

## Semantics / SEO requirements
From a semantic HTML mindset, this component should...

As a search-engine, this component should...

## Features to include if there is time
If there is time, these features are nice-to-haves.

## Out-of-scope // @TODO later
These are some things we would like to add later to enhance this component.

repository: patternfly/generator-pfelement

repo_name: patternfly/generator-pfelement


text:
# Rhodophyllus sarcitulus Kühner & Romagn., 1954 SPECIES

#### Status
SYNONYM

#### According to
The Catalogue of Life, 3rd January 2011

#### Published in
in Gams, Kleine Kryptogamenflora (Stuttgart), Edn 3 2b/2: 159 (1967)

#### Original name
Leptonia sarcitula Kühner & Romagn. ex P.D. Orton, 1960

### Remarks
null

repository: mdoering/backbone

path: /life/Fungi/Basidiomycota/Agaricomycetes/Agaricales/Entolomataceae/Entoloma/Entoloma longistriatum/ Syn. Rhodophyllus sarcitulus/README.md

repo_name: mdoering/backbone


text:
# Luhn Algorithm

## Installation

First, if you're using a new Haskell environment or one that hasn't
had updates applied in a while:

    cabal update
    cabal install cabal-install # If updates are necessary

Then, to install the platform, after cloning and cd'ing to the
project directory:

    cabal sandbox init .
    cabal install --only-dependencies --enable-tests
    cabal test

repository: jsl/luhn

repo_name: jsl/luhn


text:
# www-snippet

total code snippets of www chapter.

## create-react-component

Usage: create-react-component <dir:string> <name:string>

Description:

  react component snippet.
  includes component, test, storybook, re-export.

  example.

  - create-react-component src/components HelloWorld

Options:

  -h, --help        - Show this help.
  -F, --forwardRef  - generate forwardRef component

## organize-import-path

Usage: organize-import-path <pkg:string>

Description:

this tool organize import path using given path below src folder.

1. it remove all subpath about given path.
2. it change every imports to named imports from given path

for example.
```sh
organize-import-path @riiid/design-system-react
```
```typescript
import Button, {ButtonProps} from '@riiid/design-system-react/lib/components/Button'; // before
import { Button, ButtonProps } from '@riiid/design-system-react'; // after
```

repository: ddalpange/toolbelt

branch_name: refs/heads/main

repo_name: ddalpange/toolbelt


text:
---
title: Selecting Scientific Tools
---

This page started as a lab meeting discussion of how to choose among different options for scientific tools (mostly focused on programming).

## Question Framing

* When should I learn python/R/Stan/etc.?
* How does {tool x} integrate into my workflow?
* If I don't learn {tool x}, what am I doing instead?
* What are the benefits for knowing how to use {tool x}
* What are the benefits for learning how to use {tool x}

## Identify Alternatives

* some possible scenarios
  - I have a specific research problem that doesn't appear to solvable with my current toolset
  - Lots of people are using {tool x}, and I don't want to be left behind
  - No one else is using {tool x}, and I want to be the leading expert in my lab/department/field
* what are some other considerations beyond solving my specific problem
  - speed
  - generality
* how do I find out about other options?
  - google +3
  - twitter +3
  - literature search
  - seminar talks, conferences (people tend to be a little more "in the weeds", more receptive for engagement & dialogue)
  - workshops
* what are the people around me using?
  - peers, colleagues, collaborators
  - similar enough level for learning/teaching

## Evaluate the utility of knowing a new tool

Ok, @cmMcConnaughy is right - enough language war. My language-agnostic concluding thoughts. Choose tools that:
1) Have strong communities around them
2) Are proven but adaptive, so you can use them long-term
3) Facilitate persistent reproducibility, esp. w/ your future self
— Thomas J. Leeper (@thosjleeper) February 4, 2019

## properties of communities to consider:
* communities to avoid (non-inclusive, wrong level)
* asking about what communities are set up around tools
* how diverse is the steering committee for the tool
* what are the practices of the community?
* If you are going to spend time in a community, will you be able to grow and take on leadership roles? (is that important for you)

## What is the long-term trajectory of a tool:
* is it actively being developed?
* established history of developers
* support for older versions

## Evaluate the utility of learning a new tool

* humans are habit-forming
  - defer learning new tools --> (decades later) "I'm too old to learn {tool x}"
  - always learning new tools --> never get around to using anything in practice
* exposure to new communities builds your professional network
* exposure to new ideas gives added context to what you already knew before
* "learning tools" is also a skill! (which means you can practice it and get better)
* "if you don't use it, you lose it" -

## Things to keep in mind

Decision making is difficult (but it is a skill you can practice and improve on!)

* imperfect knowledge
  - no information source is incomplete
  - information sources aren't completely tuned to your individual situation
* outcomes are imperfectly measured
  - how useful was learning {tool x}? (no ideal way to measure this)
  - no measurement of what would have occurred with an alternative
* limited time/attention
  - spending (more) effort to improve decisions can also be suboptimal

* when to abandon bad decisions (sunk cost fallacy)

## Tips

* find good heuristics
  - be aware of biases (cognitive and otherwise)
  - reflect on past decisions (successful and unsuccessful)
* engage in deliberate practice
  - identify appropriate goals
  - evaluate outcomes
  - get targeted feedback
  - repeat
* embrace failure
  - "People don't fail, processes do"
  - debug your processes (learn from mistakes, aim for long-term growth)
* learn to fail fast
  - for large/complex projects - is {tool x} suitable long-term?
  - test whether the {tool x} addresses the most difficult aspect of the project
    - if this doesn't work, it is better to know sooner!
* exposure vs. learning
  - goal-oriented or not?

repository: weecology/weecology-wiki

repo_name: weecology/weecology-wiki


text:
# The-Nature-of-Code-Examples p5.js

This is the repository for example [p5.js](https://github.com/lmccart/p5.js/) code from [The Nature of Code book](http://natureofcode.com/).  If you are looking for the book's raw content (text, illustrations, images, CSS, etc.), have a look at [The Nature of Code repo](https://github.com/shiffman/The-Nature-of-Code).

The original [Processing](http://processing.org) examples [can be found here](https://github.com/shiffman/The-Nature-of-Code-Examples), along with a [list of other ports](https://github.com/shiffman/The-Nature-of-Code-Examples/blob/master/README.md).

## Installation Instruction

To run these examples you have to use a local server.

For more information on how to use a local server,Please visit following links.

[Local Server Guide](https://github.com/processing/p5.js/wiki/Local-server)

[p5.js Workflow](https://www.youtube.com/watch?v=HZ4D3wDRaec)

[Local Server,Text Editor,Console](https://www.youtube.com/watch?v=UCHzlUiDD10)

## Note

*I have specifically set the link attribute to "//" to support both http and https protocol while fetching p5.js library.This is intended and not a bug.*


text:
# This is the website for Food Not Bombs Edmonton.

## This website allows us to share the work we do with the world, hopefully to inspire you, and includes a sign up page so that you can join us.

View website here: https://edmonton.foodnotbombs.us

## To make changes to this website:

You'll need GitHub, a Text Editor and some basic understanding of HTML. We use Bootstrap to make everything look nice.

### GitHub:
You will need to know how to use github. There is a bit of a learning curve, but the good news
is that it is industry-standard for version control in the software world. That means that if you
ever want to contribute to an open source project in the future (which are almost always looking for designers!) it will serve you, or even if you want to do any professional programming.

Read through the beginners guide to git to get set up (or message me for help!) :)

Don't worry about making mistakes or breaking things as you're developing! With git, I'll have to approve every pull request (PR) before your changes are applied to the actual website, and there's a complete history of every change made on our repository, so it's very easy to revert to old versions. Take chances, make mistakes, get messy. Have fun.

### Text Editor
You'll also need a text editor you can use to edit the files (you will not be able to use microsoft word). If you don't have one already, I'd recommend atom. You can download it here: https://atom.io . You can also use Sublime (https://www.sublimetext.com/download) or Notepad++ https://notepad-plus-plus.org .

### HTML
If you're totally unfamiliar with HTML, here is a short intro: https://html.com . You DO NOT have to learn everything on this page. Learn what a tag is. Learn what an attribute is. If you're keen, read through the Basic Construction of an HTML Page section, too. That'll get you through.

### Extra Credit: Bootstrap
If you're interested in how it all looks so nice, the answer is with bootstrap. Bootstrap is a library for HTML/Javascript/CSS. Think of it as a bunch of pre-written bits of code. If you want to add something to the website and you can't find an existing bit of the website to copy-paste-change, you can google `bootstrap <the thing>` and it will show you how to add that thing. For example, to build the list shown on the "allies" page, I googled "bootstrap list", read through the bootstrap docs for the list, and then copy and pasted an example that I liked the look of and used that. If you read through the HTML and you're wondering what all the weird classes are doing, they're probably bootstrap classes, and you can google `bootstrap <the class name>` and you'll probably find information on it.

### Making Changes:
#### Adding a new page:
1. Decide on the name for the page. You want it short and easy to type. I'll use `my_example` for the purposes of this example.

2. Create a new file. Name it `my_example.html`. Save it in the root folder for the project (fnb-yeg.github.io).

3. Open up template_page. Copy and paste it into your new file. Save the changes.

4. Open up your File Explorer, navigate to the project folder, and double click the file you created (`my_example.html`.) It should open in your browser. Note that the images won't display.

5. Back in your text editor, scroll to where it says "Header Here". Put the name of your page there. For example, I'd remove `Header Here` and put `My Example` instead. Go to your browser and refresh the page. It should update "Header Here" to say "My Example".

6. Make your content! Write what you wanna write! Keep refreshing your page as you go so you can see the changes as you go. That way when you mess up you'll know right away. Plus it's rewarding when you can see what you're doing.

7. Add a link to your page to the navigation bar: Scroll up to `<ul class="navbar-nav...`. Add
```
<li class="nav-item">
	<a class="nav-link" href="/my_example">My Example</a>
</li>
```
To the list of links. (Refresh your page to see how it looks. Resize your browser window to see how it will look on mobile). Copy your list item. (Everything from the beginning of `<li>` to the end of `</li>`). Open up the `index.html` page and paste your list item into the navigation bar for the home page. (You can open up the index page in your browser to preview that change). Now add it to every other page. Don't forget to add it to the navigation on the template page so that when new pages are created your link will be there.

Go back to your new page. Change the `<a>` tag to `<a class="nav-link active" aria-current="page" href="#">My Example</a>` . Now when they are on your page, the navigation bar will show that they are on your page, and if they click it, it will keep them where they are.

8. All done! Add, commit and push your changes. Then submit a Pull Request and shoot me a message and I'll merge your changes so that they show up on our website :)

9. Note - If you're making a new page in a subdirectory, you'll have to change all the relative URLs.
This means - if you're making a new page and you save it as "new_page.html" (for example) in this folder, you can access it by opening up your page in a browser and your address displayed will look something like
".../fnb-yeg.github.io/new_page.html" (and when your changes are merged it will show up as "edmonton.foodnotbombs.us/new_page" on the internet). However if you decide to add a new folder and save your new page there, the address will be ".../fnb-yeg.github.io/new_folder/new_page" (and similarly for accessing online after changes are merged). That new page is saved in subdirectory (subfolder) rather than root (this folder).
Now there are a few places on the webpage that point to other spots in the project, either as links or as images, mostly. This looks like 'src="/some_relative_url"' or 'href=/some_relative_url' in an html tag. A relative url means that we are specifying where something is relative to the root of the project. The first slash means "the folder we are in" and then what comes after is pointing to a file name that is (hopefully) in the folder we are in. Compare to an absolute URL, e.g. https://www.google.com, which will point to the same place no matter where *we* are.
Now if you were to copy and paste the template_page.html into a subdirectory, it has a bunch of relative urls. But because we have changed "the folder we are in", all those links will be broken!
The fix is simple once you understand the cause. ctrl+f in the file for all `src` attributes in the html and check if they are relative or absolute. If they are relative, change them so that they begin with `../`. Do the same for `href` attributes.

The recipe template does this for you already if you're adding a new recipe, so you shouldn't come across this. However if you're a beginner this would be a hard problem to troubleshoot so I wanted to make a note!

#### Adding a news item
1. Open news.html in your text editor.

2. The news page consists of `rows` of `cards`. With bootstrap, that looks like `<div class="row">` and `<div class="card">`.
- The important thing when working with divs is to remember to close each tag. I'd recommend typing `</div>` as soon as you type in the `<div class="...">` so that you don't lose track. Then add in your content in the middle.
- Also make sure that each card is in a row. If you want your card to be in its own row no matter the screen width, make your own row div and then put your card inside that. Otherwise add your card to an existing row.

There is no limit to the number of cards you can put in a row. Bootstrap will decide, depending on width of the card and the width of the user's screen, how many to actually show in a row before wrapping it. You can play around with this by resizing your browser window.

3. If you want an image on your card, save a copy of it in the images folder. On the page where you would like the image to display, create an `<img>` tag. Create a `src=""` attribute within your image tag, and write the path to your image as the value for that attribute. Add an `alt=""` attribute to your image tag and describe the image. See html tutorials on inserting images for more details.

4. This is what each card looks like in HTML.
```
<div class="col-sm">
	<div class="card">
		<img class="card-img-top" src="/images/image_name.jpeg" alt="image description">
		<div class="card-body">
			<div class="d-flex w-100 justify-content-between">
				<h5 class="mb-1">Header</h5>
				<small>Date Goes Here</small>
			</div>
			<p class="mb-1">Card text goes here. This is a description of what is happening in the image, or what we want to announce.</p>
		</div>
	</div>
</div>
```
Note - some new features have been added to some cards since this tutorial was written. See "card_templates.html"
for a more in-depth description/explanation of each card.

5. Copy and paste this card into your desired row (either newly created, or just at the beginning of an existing one). Open the news page in your browser to see how it looks.

6. To insert your image, in `<img>`, change the value of `src` to the name you saved your image under. Change the value `alt` to an image description (this is for screen readers and slow internet connections). If you do not want to insert an image, remove the `<img>` tag altogether.

7. Change "Header" to your desired header, type in your date instead of "Date", and edit the card text to whatever content you'd like.

8. Refresh the page in your browser to see how it looks.

9. Once you're happy with how it looks, add, commit and push your changes. Then either submit a PR or shoot me a message and I'll merge your changes so that they show up on our website :)


text:
# impl_twice
Use the same implementation block for two types

Written using rust, https://www.rust-lang.org/

## Examples
When writing rust programs, times come when you need two types,
one immutable and one mutable.

It is possible to remove this duplication with DSTs, such as the
standard library's slice type, where `&[T]` and `&mut [T]` are the
immutable/mutable counterparts. However, DSTs cannot be created
by the programmer, and therefore they are not always applicable.

When making two very similar types that are just immutable/mutable
counterparts to each other, you may have to implement the same
things on both of the types. Here is an example of the duplication;

```rust
struct WrappedSlice<'a, T>(&'a [T]);
struct WrappedSliceMut<'a, T>(&'a mut [T]);

impl<T> WrappedSlice<'_, T> {
    pub fn inner(&self) -> &'_ [T] {
        self.0
    }

    pub fn get(&self, index: usize) -> Option<&'_ T> {
        self.0.get(index)
    }
}

impl<T> WrappedSliceMut<'_, T> {
    pub fn inner(&self) -> &'_ [T] {
        self.0
    }

    pub fn get(&self, index: usize) -> Option<&'_ T> {
        self.0.get(index)
    }

    pub fn get_mut(&mut self, index: usize) -> Option<&'_ mut T> {
        self.0.get_mut(index)
    }
}
```

This can be solved by having a way to implement the same items on both
types. That's what this crate is designed for!
This is equivalent to the above example but implemented with this
crate;

```rust
struct WrappedSlice<'a, T>(&'a [T]);
struct WrappedSliceMut<'a, T>(&'a mut [T]);

impl_twice! (
    impl<T> WrappedSlice<'_, T>, WrappedSliceMut<'_, T> {
        pub fn inner(&self) -> &'_ [T] {
            self.0
        }

        pub fn get(&self, index: usize) -> Option<&'_ T> {
            self.0.get(index)
        }
    }
);

impl<T> WrappedSliceMut<'_, T> {
    pub fn get_mut(&mut self, index: usize) -> Option<&'_ mut T> {
        self.0.get_mut(index)
    }
}
```

As you can see, the two methods ``inner`` and ``get`` that were duplicated
are now only implemented once.

## Building
Build this like any other rust crate, or add it as
a dependency in your project.

## Contributing
Feel free to post an issue or a pull request if you have any ideas.

gha_language: Rust


text:
# HLS_HELLOWORLD_PYTHON EXAMPLE

* Provides a simple base allowing to discover OC-ACCEL
* Python code is changing characters case of a user phrase using a FPGA to do the change
* Detailed documentation is available at : <https://opencapi.github.io/oc-accel-doc/actions-doc/hls_helloworld_python/>

repository: OpenCAPI/oc-accel

gha_language: Verilog

repo_name: OpenCAPI/oc-accel


text:
# Globalize 1.3.0 announcement

On July 3rd, we released Globalize 1.3.0. It is a special release, because it includes some very useful feature enhancements to support advanced date, time, timezone manipulation, and other long due fixes. We wanted to share more details on these improvements.

## IANA/Olson Time Zone Support

> This change was contributed by Kandaswamy Manikandan @rajavelmani (PayPal) and Rafael Xavier @rxaviers in #687 and #701.

In previous versions, Globalize had some partial time zone support for a user's runtime time zone. However specific CLDR patterns (`z`, `v`, and `V`) that display strings such as `PDT`,  `Pacific Daylight Time`, `Pacific Time`, and `Los Angeles Time` could not be displayed. The challenge [we had](https://github.com/globalizejs/globalize/pull/202) to determine how costly a solution would be to provide full IANA/Olson time zone support due to the additional manipulation code and data (i.e., IANA database). Therefore, in the past, we encouraged users that needed to manipulate date in arbitrary time zones to use a separate library, like *moment-timezone*. Nevertheless, this solution never closed the gap between internationalization (i18n) implementations leveraging CLDR and having full maneuverability of time zones.

With the latest release 1.3.0, Globalize fully supports time zone. Simply put, by using Globalize 1.3.0, you now have full IANA support with the strength of CLDR for i18n!

```js
Globalize.locale("en");
let date = new Date();

Globalize.formatDate(date, {datetime: "short", timeZone: "America/Los_Angeles"});
// > '3/19/17, 3:19 PM'
Globalize.formatDate(date, {datetime: "short", timeZone: "America/New_York"});
// > '3/19/17, 6:19 PM'
Globalize.formatDate(date, {datetime: "short", timeZone: "America/Sao_Paulo"});
// > '3/19/17, 7:19 PM'
Globalize.formatDate(date, {datetime: "short", timeZone: "Europe/Berlin"});
// > '3/19/17, 11:19 PM'

Globalize.formatDate(date, {datetime: "full", timeZone: "America/Los_Angeles"});
// > 'Sunday, March 19, 2017 at 3:19:22 PM Pacific Daylight Time'
Globalize.formatDate(date, {datetime: "full", timeZone: "America/New_York"});
// > 'Sunday, March 19, 2017 at 6:19:22 PM Eastern Daylight Time'
Globalize.formatDate(date, {datetime: "full", timeZone: "America/Sao_Paulo"});
// > 'Sunday, March 19, 2017 at 7:19:22 PM Brasilia Standard Time'
Globalize.formatDate(date, {datetime: "full", timeZone: "Europe/Berlin"});
// > 'Sunday, March 19, 2017 at 11:19:22 PM Central European Standard Time'

Globalize("pt").formatDate(date, {datetime: "full", timeZone: "America/Sao_Paulo"});
// > 'domingo, 19 de março de 2017 19:19:22 Horário Padrão de Brasília'
Globalize("de").formatDate(date, {datetime: "full", timeZone: "Europe/Berlin"});
// > 'Sonntag, 19. März 2017 um 23:19:22 Mitteleuropäische Normalzeit'
Globalize("zh").formatDate(date, {datetime: "full", timeZone: "Asia/Shanghai"});
// > '2017年3月20日星期一 中国标准时间 上午6:19:22'
Globalize("ar").formatDate(date, {datetime: "full", timeZone: "Africa/Cairo"});
// > 'الاثنين، ٢٠ مارس، ٢٠١٧ ١٢:١٩:٢٢ ص توقيت شرق أوروبا الرسمي'
```

We have solved this in a low footprint, high performance implementation using [zoned-date-time](https://github.com/rxaviers/zoned-date-time) under the hoods, which is a 0.6KB library for the time zone manipulations. We have leveraged the Globalize Compiler for precompling the IANA data base for production. For example, let's say you are serving content in English (e.g. locale en-US) for America/Los_Angeles time using the following formatter:

```js
var dateWithTimeZoneFormatter = Globalize.dateFormatter({
  datetime: "full",
  timeZone: "America/Los_Angeles"
});
```

The final size (for production) of this code will be:

| filename                                 | minified+gzipped size |
| ---------------------------------------- | --------------------- |
| i18n/en.js (includes CLDR and IANA data) | 1.7KB                 |
| core, number, and date globalize runtime lib + zoned-date-time | 7.0KB                 |

See globalize [compiler example](https://github.com/globalizejs/globalize/tree/master/examples/globalize-compiler) or [app-npm-webpack example](https://github.com/globalizejs/globalize/tree/master/examples/app-npm-webpack) for details.

## Format Date To Parts

> This change was contributed by Reza Payami @rpayami (PayPal) and Rafael Xavier @rxaviers in #697 and #700.

Modern user interfaces often need to manipulate the date format output, which is impossible via the existing format function that returns an opaque string. Making any attempt to do this can break internationalization support. [Ecma-402](https://github.com/tc39/ecma402/) has recently added [`Intl.DateTimeFormat.prototype.formatToParts`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat/formatToParts) to fulfill that purpose, which at the time of this post, is at stage 4 and is implemented by latest Firefox and Chrome.

In Globalize, we introduced [`.dateToPartsFormatter`](https://github.com/globalizejs/globalize/blob/master/doc/api/date/date-to-parts-formatter.md) and [`.formatDateToParts`](https://github.com/globalizejs/globalize/blob/master/doc/api/date/date-to-parts-formatter.md).

```js
Globalize.locale( "en" );
Globalize.formatDateToParts(new Date(2010, 10, 30));
// > [
//   { "type": "month", "value": "11" },
//   { "type": "literal", "value": "/" },
//   { "type": "day", "value": "30" },
//   { "type": "literal", "value": "/" },
//   { "type": "year", "value": "2010" }
// ]
```

The data is available separately and it can be formatted and concatenated again in a customized way. For example by using [`Array.prototype.map()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map), [arrow functions](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions), a [switch statement](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/switch), [template literals](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals), and [`Array.prototype.reduce()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce).

```js
let formatter;

Globalize.locale( "en" );
formatter = Globalize.dateToPartsFormatter({datetime: "short"});

formatter( new Date( 2010, 10, 30, 17, 55 ) ).map(({type, value}) => {
  switch ( type ) {
    case "year": return `<strong>${value}</strong>`;
    default: return value;
  }
}).join( "" );
// > "11/30/<strong>10</strong>, 5:55 PM"
```

See [React Date Input](https://github.com/rxaviers/react-date-input) as a demo of a UI component for React optimized for i18n and a11y.

| Localized and smart date input           | Feb 28 in `en`, `es`, `pt`, `de`, `zh`, `ko`, and `ar` |
| ---------------------------------------- | ---------------------------------------- |
| ![en](https://media.giphy.com/media/xUA7aZAUNINGP2jI4M/giphy.gif) | ![en-es-pt-de-zh-ko-ar](https://media.giphy.com/media/3og0ILQu0KxLRewJnW/giphy.gif) |

## Dynamically Augmented Date Skeletons

> This change was contributed by Marat Dyatko @vectart and Artur Eshenbrener @Strate in #462 and #604.

The style used to display a date format often varies depending on the application. CLDR offers data for certain presets like short (e.g., short date `"7/1/17"`), medium (e.g., medium date `"Jul 1, 2017"`), long (e.g., long date `"July 1, 2017"`), and full (e.g., full date `"Saturday, July 1, 2017"`). Although, we may want something different such as `"Jul 1"`. For that CLDR offers data for individual [date fields](http://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table) and their combinations, which are used by Globalize to synthesize an open-ended list of custom formats (called skeletons). But, what's interesting is that it would be prohibitively large if CLDR provided data for every single possible combination. So, there's an algorithm specified by [UTS#35](http://www.unicode.org/reports/tr35/tr35-dates.html#availableFormats_appendItems) to deduce missing data from the requested format.

For the `"Jul 1"` example, we should use `{skeleton: "MMMd"}`. Internally, Globalize finds a direct match in CLDR for the requested skeleton. This works fine in previous Globalize versions.

For that next example, let's assume we want `"July 1"`, i.e., `{skeleton: "MMMMd"}`. Internally, Globalize doesn't find a direct match in CLDR. For this skeleton, Globalize needs to use the data for `MMMd`, which maps to `"MMM d"` in the English case, and then it needs to replace `MMM` with `MMMM` dynamically generating `"MMMM d"`. This doesn't work in previous versions of Globalize, but it works now on latest v1.3.0.

If we wanted `"07/01"` instead, we should use `{skeleton: "MMdd"}`. Internally, Globalize doesn't find a direct match in CLDR for this skeleton and, therefore, it fais in globalize v1.2.3. Globalize needs to use the data for `Md`, which in the case of English maps to `"M/d"`, and then replace `M` wtih `MM` and `d` with `dd` dynamically generating `"MM/dd"`.

To make a long story short, the algorithm in globalize v1.3.0 has been significantly improved and it allows using virtually any skeletons.

```js
// A skeleton not directly found in CLDR and that needs to be deduced by globalize.
// In English, globalize needs to use the data for GyMMMEd, and adjust MMM with MMMM,
// and E with EEEE. Then, it needs to find the data for hms and glue them together
// using the appropriate format.
// On globalize v1.2.3, an error is thrown saying this skeleton wasn't found.
let skeleton = "GyMMMMEEEEdhms";
Globalize("en").formatDate(new Date(), {skeleton});
// > 'Saturday, July 1, 2017 AD at 4:58:27 PM'
Globalize("pt").formatDate(new Date(), {skeleton});
// > 'sábado, 1 de julho de 2017 d.C. 5:01:20 PM'
Globalize("de").formatDate(new Date(), {skeleton});
// > 'Samstag, 1. Juli 2017 n. Chr. um 5:01:33 nachm.'
Globalize("zh").formatDate(new Date(), {skeleton});
// > '公元2017年七月月1日星期六 下午5:01:35'
Globalize("ko").formatDate(new Date(), {skeleton});
// > 'AD 2017년 7월 1일 토요일 오후 5:01:38'
Globalize("ar").formatDate(new Date(), {skeleton});
// > 'السبت، ١ يوليو، ٢٠١٧ م ٥:٠١:٤٠ م'
Globalize("ar-MA").formatDate(new Date(), {skeleton});
// > 'السبت، 1 يوليوز، 2017 م 5:04:29 م'
Globalize("it").formatDate(new Date(), {skeleton});
// > 'sabato 1 luglio 2017 d.C. 5:01:52 PM'
```

Read our [getting started](https://github.com/globalizejs/globalize/#getting-started) and play with it yourself.

## Other Enhancements and Bug Fixes

🎉 Enhancements

- Date: Show timezone offset optional minutes for O pattern (e.g., GMT-6:30 note the :30) [#339](https://github.com/globalizejs/globalize/pull/339) (via PR [#729](https://github.com/globalizejs/globalize/pull/729)) (Rafael Xavier)
- Date: Show timezone offset optional minutes and seconds for x and X patterns (e.g., -06:30 note the :30) [#339](https://github.com/globalizejs/globalize/pull/339) (via PR [#729](https://github.com/globalizejs/globalize/pull/729)) (Rafael Xavier)
- Date: Assert options.skeleton (PR [#726](https://github.com/globalizejs/globalize/pull/726)) (Rafael Xavier)
- Date parser: Make runtime phase lighter [#735](https://github.com/globalizejs/globalize/pull/735) (Rafael Xavier)
- Date parser: Loose Matching PR [#730](https://github.com/globalizejs/globalize/pull/730) (Rafael Xavier)
  - Allows, among others, parsing arabic dates as user types them (i.e., without control characters)
- Number formatter: Amend integer and fraction formatter for small numbers like 1e-7 [#750](https://github.com/globalizejs/globalize/pull/750) (Rafael Xavier)
- Number parser: Lenient about trailing decimal separator [#744](https://github.com/globalizejs/globalize/pull/744) (Rafael Xavier)
- Runtime: Use strict [#676](https://github.com/globalizejs/globalize/pull/676) (Zack Birkenbuel)

🐛 Fixes

- Date parser: invalid output by mixing numbering systems [#696](https://github.com/globalizejs/globalize/pull/696) (via PR [#733](https://github.com/globalizejs/globalize/pull/733)) (Rafael Xavier)
- Date parser: fails on Turkish full datetime with Monday or Saturday [#690](https://github.com/globalizejs/globalize/pull/690) (via PR [#732](https://github.com/globalizejs/globalize/pull/732)) (Rafael Xavier)

⚙ Others

- Compiler tests! [#721](https://github.com/globalizejs/globalize/pull/721) (via PR [#727](https://github.com/globalizejs/globalize/pull/727)) (Nikola Kovacs)
- Documentation style refactor [#737](https://github.com/globalizejs/globalize/pull/737) (Rafael Xavier)

## Last but not least

Special thanks to other PayPal internationalization team members including Daniel Bruhn, Lucas Welti, Alolita Sharma, Mike McKenna for testing and helping integrate Globalize for PayPal products.

Special thanks to James Bellenger and Nicolas Gallagher for the React and Webpack integration enhancements for Twitter products, which certainly deserves its own blog post.

Many thanks to all of you who participated in this release by testing, reporting bugs, or submitting patches, including Jörn Zaefferer, Frédéric Miserey, Nova Patch, and whole Globalize team.

repository: radville/map-demo

repo_name: radville/map-demo


text:
# FaceHate
Google Chrome extension for modifying HTTP headers in web requests to Facebook

FaceHate was created as a proof of concept extension for Google Chrome to modify HTTP headers:
- User Agent (UA)
- Cookie
- Referer
in the HTTP packets sent to Facebook servers (to increase privacy).

The problem is that user cannot login to Facebook (it is obvious as the cookies are constantly changed).
However it would be great to add functionality to the extension, such that when user browse the Internet (non-Facebook page) all headers are changed, if user navigates to Facebook portal - only UA is changed.

The extension is based on chrome.webRequest API. I tried to combine it with chrome.Tabs API to get the URL from address bar and use it as condition in handler. It did not work as the API is asynchronous.
I also tried to create content.js which retrieved URL via window.location.host and pass it via chrome.runtime.sendMessage to background.js as condition in handler. It also did not work.

Any suggestions?


text:
There are times when you're waiting for your complex app to load, when you'll see the inline binding expressions `{{...}}`.  This is the result of the HTML in the template loading before Angular gets to process it.  Note that this is rare in desktop browsers, and even most modern devices.  This generally happens with slower devices only.

	<div ng-cloak>
		{{some.binding}}
	</div>

Note that this will hide whatever element you've applied the attribute to, as well as anything inside of it.  So you can technically apply it to the `body` tag.  However just know that whatever is cloaked will not be visible, so if applied to `body` the user will see a blank screen while they wait.

repository: colinjlacy/Pro-Angular

repo_name: colinjlacy/Pro-Angular


text:
# Written by Alexander Sergejev.

## Language recommendation page for week 2 code review.

##### opens in web browser.

### Recommends JavaScript, Ruby or Python based on 5 general questions .

#### Copyright (c) Alexander Sergejev
#### Licensed under the MIT License


text:
# electron-webpack-quick-start-roy
> A bare minimum project structure to get started developing with [`electron-webpack`](https://github.com/electron-userland/electron-webpack).

Thanks to the power of `electron-webpack` this template comes packed with...

* Use of [`webpack-dev-server`](https://github.com/webpack/webpack-dev-server) for development
* HMR for both `renderer` and `main` processes
* Use of [`babel-preset-env`](https://github.com/babel/babel-preset-env) that is automatically configured based on your `electron` version
* Use of [`electron-builder`](https://github.com/electron-userland/electron-builder) to package and build a distributable electron application

Make sure to check out `electron-webpack` [documentation](https://webpack.electron.build/) for more details.

## Getting Started
Simply clone down this repository, install dependencies, and get started on your application.

```bash
git clone https://github.com/roycrippen/electron-webpack-quick-start-roy.git
cd electron-webpack-quick-start-roy
rm -rf .git

# install dependencies
npm install

# run application in development mode
npm run dev

# compile source code and create webpack output
npm run compile

# `yarn compile` & create AppImage build with electron-builder
npm run dist
```


text:
---
layout: default
---

# 1993-07-28 - Re: "Big Brother Inside"

## Header Data

From<EMAIL_ADDRESS>(Nick Szabo)

To<EMAIL_ADDRESS>(Timothy C. May)

Message Hash: 09fc4c2b05734297734cb1bf0656d2faec042f909daa7735b030e832c60853db

Message ID<EMAIL_ADDRESS>Reply To<EMAIL_ADDRESS>UTC Datetime: 1993-07-28 13:11:42 UTC

Raw Date: Wed, 28 Jul 93 06:11:42 PDT

## Raw message

```
{% raw  %}From<EMAIL_ADDRESS>(Nick Szabo)
Date: Wed, 28 Jul 93 06:11:42 PDT
To<EMAIL_ADDRESS>(Timothy C. May)
Subject: Re: "Big Brother Inside"
In-Reply-To<EMAIL_ADDRESS>Message-ID<EMAIL_ADDRESS>MIME-Version: 1.0
Content-Type: text/plain

I don't have the skills to make stickers, but I'd like to see this
happen.  For whoever is the first to make professional-looking "Big
Brother Inside" stickers, I hereby place an advance order for
$200 worth.

Nick Szabo<EMAIL_ADDRESS>

{% endraw %}
```

## Thread

+ Return to [July 1993](/archive/1993/07)

+ Return to<EMAIL_ADDRESS>(Joe Thomas)](/authors/jthomas_at_kolanut_mitre_org_joe_thomas_)"
+ Return to<EMAIL_ADDRESS>(Nick Szabo)](/authors/szabo_at_techbook_com_nick_szabo_)"
+ Return to<EMAIL_ADDRESS>(Timothy C. May)](/authors/tcmay_at_netcom_com_timothy_c_may_)"

+ 1993-07-27 (Tue, 27 Jul 93 05:26:12 PDT) - [T-shirts are for wimps...](/archive/1993/07/9ccc00b1317e8852ab77ddce4ad79b323f80169b953dd140edd704e1845033e5) -<EMAIL_ADDRESS>(Joe Thomas)_
  + 1993-07-27 (Tue, 27 Jul 93 16:52:52 PDT) - ["Big Brother Inside"](/archive/1993/07/80cb9498ac1a5e009621809d8fb2d4d40bb48f706ab113829f287edc406c2976) -<EMAIL_ADDRESS>(Timothy C. May)_
    + 1993-07-28 (Wed, 28 Jul 93 06:11:42 PDT) - Re: "Big Brother Inside" -<EMAIL_ADDRESS>(Nick Szabo)_


text:
---
layout: post
title: 'The Location of the Citation: are Data Citation Recommendations Having an Effect?'
author:
- ehull
date: '2016-03-28'
tags:
- citation
- data-level metrics
doi: 10.5438/f17b-45vz
---
I was pleased to present at [IDCC16](http://www.dcc.ac.uk/events/idcc16) on a research paper called _The location of the citation: Changing practices in how publications cite original data in the Dryad Digital Repository_ (see preprint: Mayo et al, [-@https://doi.org/10.5281/zenodo.32412]).

Recently, organizations including CrossRef and the Digital Curation Center (DCC) have recommended as a best practice that original data citations appear in the works cited sections of the article. We wondered: has data citation practice been changing in light of this guidance, and are there any visible trends over time?READMORE

To explore this, we examined 1,125 journal articles published from 2011-2014 with associated data in the [Dryad](http://datadryad.org) data repository. Dryad receives their DOIs from EZID, a DataCite member. We retrieved the article full text via the [Europe PMC RESTful Web Service](https://europepmc.org/RestfulWebService), searched for the Dryad DOI, and classified the hits as:

* within the body (intratextual - including data availability sections)
* within the works cited
* within both
* within neither (no citation)

Our results?

![Proportion of citation types per year](/images/2016/03/dryad.png)

The highlights:

* Dryad DOI in the works cited, as recommended = **only 6%** of total articles
* Dryad DOI in the body only (including data availability sections) = **75%**
* No citation (Dryad DOI not found anywhere in the article) = **20%**

Was there a temporal trend? Yes.

* Works cited references **increased from 5% to 8%** from 2011-2014
* Articles with no data citation **declined from 31% to 15%**

On the bright side, the total percentage of articles in which the Dryad DOI was present in any section has been rising steadily, from 69% of articles in 2011 to 85% in 2014. This would seem to indicate that authors and journals appreciate the importance of data citations, even if there’s a lack of consensus about where they belong.

The bad news is that at the current rate of growth, the proportion of articles with data citations in the works cited section would not exceed 90% until **2031**. This evidence leads us to conclude that current efforts to promulgate best practice are working, but only very slowly.

Where do we go from here? Author education and increased adoption of standards like the [TOP Guidelines](https://cos.io/top/) will undoubtedly help. Further questions to consider include: is the works cited the right place for original data citations?, should data availability sections be promoted more widely? and should original and data re-use citations be treated differently?

We at DataCite recognize the importance of properly citing data in the scholarly record and the more we understand the challenges the better we can work collectively to overcome the current issues and support the adoption of best practices. Do you have any ideas on how to improve? Share them in the comments!

## References

repository: datacite/blog

gha_language: TeX

repo_name: datacite/blog


text:
# distributed-reflectors
An environment for simulated the propogation of non interacting particles through an environment of zero-width, line-like reflectors.

This enables efficient computation, using exact collision detection and reflection calculations.
Furthermore, the envorinment uses sparse computations over relevant particles.
Lastly, all computations are vectorized using the numpy library.

The factors discribed above enable fast propogation of a large number of particles through the system.

repository: BjBodner/distributed-obstacles

repo_name: BjBodner/distributed-obstacles


text:
# Ordered list widget

This widget intends to display data as an ordered list of items

```php
$widgetsContainer->addWidget(
    SharpOrderedListWidget::make('bestSellers')
);
```

## Data valuation

Valuation is handled by a dedicated `$this->setOrderedListData(string $panelWidgetKey, array $data)` in the Dashboard class:

```php
function buildWidgetsData(): void
{
    $this->setOrderedListData(
        'bestSellers', [
            [
                'label' => 'model EF5978',
                'count' => 89
            ],
            [
                'label' => 'model TT4448',
            ],
            [
                'label' => 'model EF5978',
                'count' => 17
            ],
            [
                'label' => 'model YY5557'
            ]
        ]
    );
}
```

Pass there the widget `key` and an array with the data as an array. Each item of the array should be an associative array. The key `label` is mandatory as it defines the ordered list item main content.
You can also optionally define a count with key `count` associated with a number, it will show a badge with given value.

Here's a more realistic example with data fetched from a Model:

```php
$this->setOrderedListData(
    'bestSellers',
    Product::orderBy('sales_count', 'desc')
        ->take(5)
        ->get()
        ->map(function (Product $product) {
            return [
                'id' => $product->id,
                'label' => $product->name,
                'count' => $product->sales_count,
            ];
        })
        ->values()
        ->all()
);
```

## Item URL

You may want to add a link on each row. To do that, use the `buildItemLink()` method on the widget creation:

```php
$widgetsContainer->addWidget(
    SharpOrderedListWidget::make('bestSellers')
            ->buildItemLink(fn ($item) => url('some-link'))
);
```

In order to make a link to a Sharp EntityList, Show or Form, this method can also return a [LinkTo instance](../link-to.md):

```php
$widgetsContainer->addWidget(
    SharpOrderedListWidget::make('bestSellers')
        ->buildItemLink(function ($item) {
            return LinkToShowPage::make('products', $item['id']);
        })
);
```

As you can see, the link is built for each row, and is therefore data-dependant.

gha_language: PHP


text:
**Example & how to use**

There are no publicly available, dedicated docs yet for 1.0, but most methods are commented nicely, and here's a quick example on how to serialize various types (I recommend using [reflect-metadata](https://github.com/rbuckton/reflect-metadata) in your project, so you don't have to manually annotate the type of `@jsonMember` properties twice, see at the bottom of this page):

```ts
@jsonObject
class MyDataClass
{
    // Primitives serialization
    @jsonMember
    public prop1: number; // or string, boolean, etc.

    // Array serialization
    @jsonArrayMember(Number)
    public arrayProp: number[];

    // Map serialization
    @jsonMapMember(Number, String)
    public mapProp: Map<number, string>;

    // Set serialization
    @jsonSetMember(Number)
    public setProp: Set<number>;
}
```

Of course, all 4 serialization techniques (single, array, map, set) support nested objects (nested object class must be also decorated with `@jsonObject` for this to work, obviously). Example:

```ts
@jsonObject
class MySecondDataClass
{
    @jsonMember
    public prop1: number;

    @jsonMember
    public prop2: number;
}

@jsonObject
class MyDataClass
{
    @jsonMember
    public prop1: MySecondDataClass;

    @jsonArrayMember(MySecondDataClass)
    public arrayProp: MySecondDataClass[];

    @jsonMapMember(Number, MySecondDataClass)
    public mapProp: Map<number, MySecondDataClass>;
}
```

Additionally, there's built-in support for TypedArray objects (serialized as `number[]`), `Date`, `ArrayBuffer` (serialized as string at this time, so this might not be a good idea, prefer using a TypedArray instead), this is available by simply using `@jsonMember`. Serialization of Maps, Sets, and Arrays of root objects is also supported.

After annotating your objects as shown above, you simply consume them by creating a new `TypedJSON` object, supplying the _constructor_ of the root data type to it:

```ts
let object = new MyDataClass(); // ...
let serializer = new TypedJSON(MyDataClass);

let json = serializer.stringify(object);
let object2 = serializer.parse(json);
```

**How are these objects serialized?**

Sets and arrays are simply serialized as arrays, Maps are serialized as arrays of _key-value-pair objects_, TypedArrays are serialized as numeric arrays.

**How to use without reflect-metadata?**

If you don't use `reflect-metadata`, you need to manually add the constructor reference to `@jsonMember`, e.g.:

```diff
@jsonObject
class MyDataClass
{
-   @jsonMember
+   @jsonMember({ constructor: Number })
    public prop1: number;

-   @jsonMember
+   @jsonMember({ constructor: MySecondDataClass })
    public prop2: MySecondDataClass;
}
```

This is not needed for `@jsonArrayMember`, `@jsonMapMember`, and `@jsonSetMember`, as those types already know the property type itself, as well as element/key types (although using `reflect-metadata` adds runtime-type checking to these decorators, to help you spot errors).

repository: afshin-hoseini/TypedJSON

repo_name: afshin-hoseini/TypedJSON


text:
---
layout: post
title: "Three.js Sport Car on iOS at 40fps"
date: 2012-05-29 13:48
comments: true
categories: [ios, threejs, tquery]
---

This post is about iOS and three.js.
It may seem surprising, but [iOS](http://en.wikipedia.org/wiki/iOS) supports WebGL since version 4.2.
There is a tough limitation tho, it is available only in their advertisment plateform,
[iAds](http://en.wikipedia.org/wiki/IAd), not in safari browser.
I got a ipad2 so i experimented a bit with three.js on iOS to see what is going on.
Most WebGL examples from
[three.js](https://github.com/mrdoob/three.js/) and
[tQuery](https://github.com/jeromeetienne/tquery)
are working nicely on iOS.

The
[screencast](http://www.youtube.com/watch?v=3yc4qhP87oY)
below shows an ipad2 running the car demo we did last week in
["Sport Car in WebGL"](http://learningthreejs.com/blog/2012/05/21/sport-car-in-webgl/) post.
It runs at 40fps on the video. Rather good!
Especially when you know the demo isn't optimized.
This car is way too detailed.
One could reduce the size of this model by half without loosing much.
So on mobile, the Good part is that *fps are good*.
The Bad part is that *speed is slower* and *balanced differently*.
This unbalanced part worries me a bit i admit. We need to better understand the mobile plateform.
But hey, 40fps is quite good, way enougth to make a game!

## Experimenting with WebGL on iOS

Yesterday,
[daeken](http://news.ycombinator.com/user?id=daeken)
published a
[WebGL Enabler](http://demoseen.com/webglenabler/#)
for iOS.
It enables WebGL in the browser for jailbroken iOS devices.
Or if you prefere a less invasive solution, not requiring to jailbreak your devices.
You can use
[WebGL Browser](https://github.com/benvanik/WebGLBrowser)
made by
[Ben Vanik](http://noxa.org/)
, aka [@benvanik](https://twitter.com/#!/benvanik) on twitter.
He is wellknow for [WebGL Inspector](https://github.com/benvanik/WebGL-Inspector).

By the way,
[WebGL Browser](https://github.com/benvanik/WebGLBrowser)
and
[WebGL Enabler](http://demoseen.com/webglenabler/#),
are both based on a similar trick.
It has been discovered by
[Nathan de Vries](https://twitter.com/#!/atnan)
who told about it in this
[excelent post](http://atnan.com/blog/2011/11/03/enabling-and-using-webgl-on-ios/).
A very good read to understand the underlying details!
Unfortuntly this is using an unofficial API... so it is
impossible to get it for the apps store unfortunatly.

## WebGL Status on Mobile

WebGL is starting to be hot on mobile.
[blackberry playbook2](http://www.blackberry.com/playbook)
got it
[by default](http://devblog.blackberry.com/2012/02/playbook-native-webgl-development/).
[boot on gecko](http://www.mozilla.org/en-US/b2g/) got it too with firefox mobile.
It isn't enabled on android and iOS tho, the 2 majors.
Maybe we will have more info in june with
[google.io](https://developers.google.com/events/io/)
and
[apple event](https://developer.apple.com/wwdc/).
google got [chrome on android](http://www.google.com/intl/en/chrome/android/).
iOS already got [support](http://atnan.com/blog/2011/11/03/enabling-and-using-webgl-on-ios/), this is more a matter of policy.
So lets hope google will announce WebGL support for chrome mobile.
and apple will announce they accepts WebGL on apps store applications.
I am an optimist personn, i hope :)

## Conclusion

WebGL is coming hard on mobile.
[three.js](https://github.com/mrdoob/three.js/) and
[tQuery](https://github.com/jeromeetienne/tquery)
already work on it.
We need the 2 majors mobile OS to support it tho.
It think having it on android and ios would significantly change WebGL landscape.
Meanwhile you can already play with it, and do minigames with it, thus be ready when needed :)

That's all to today folks. Have fun :)

extension: markdown


text:
# Qooxdoo Roadmap

With the release of Qooxdoo v6.0.0, the project is looking
forward to removing a number of deprecated features and adding
new components and modules that will broaden our feature set
and build on the solid foundation that Qooxdoo currently is.

Below is a summary of our plans for v7 and a rough outline of
what we're thinking about for the future; if there is anything
you feel strongly about on either list (or you think that there
is something missing) please feel free to talk to us about it-
after all, if you don't us what you think, we'll never know!

## v7.0.0

- **Remove deprecated python tool chain** (the "generator"); this
will require to [migrate all legacy qooxdoo applications to use
the compiler](./development/compiler/migration.md) if they want to
use new qooxdoo releases going forward.

- **Allow new JavaScript syntax**: With the generator gone, which only
understood ECMAScript 5, framework code can use any new JavaScript syntax that
is supported by the compiler (internally powered by the Babel transpiler).

- **Switch to a [semantic release
model](https://github.com/semantic-release/semantic-release)**, which
offers a fully automated release system that is based on formalized commit
messages. It is based on [semantic versioning](https://semver.org/),
which we already use for our package/library dependency management.

- **Qooxdoo Remote Objects and Persistence**: Another two incubators, these add seamless remote
control of Qooxdoo objects (think "RPC" but for entire objects,
where property changes on the client can be reflected on the
server) and persistently storing objects to disk.  Repos are
[qooxdoo/incubator.qx.io.remote](https://github.com/qooxdoo/incubator.qx.io.remote)
and
[qooxdoo/incubator.qx.io.persistence](https://github.com/qooxdoo/incubator.qx.io.persistence)

- **Qooxdoo RPC** - provides a framework for transport-agnostic higher-level
i/o protocols to the qx.io namespace; although this is already stable and ready
for production use, it's due to be integrated into the core framework.  Repo is
[qooxdoo/incubator.qx.io.jsonrpc](https://github.com/qooxdoo/incubator.qx.io.jsonrpc)

- **Remove other deprecated code**

## Plans for the future

Please remember that this list is a rough plan and subject to change.

- **Native properties** - currently, Qooxdoo properties have to be
accessed via `.getPropertyValue()`, we would like to change this to
be more javascript and have the same functionality also available via
`.propertyValue`.  This also means mapping `qx.data.Array` accessors,
so that `myArr.getItem(0)` can be rewritten as just `myArr[0]`

- **Native Classes** - the Qooxdoo class mechanism offers more features than
standard ES6 classes, but it should be possible to integrate the two - for
example, allow an ES6 `class` to extend from a Qooxdoo class and vice versa.

- **Native Decorators** - Qooxdoo annotations are similar
to Javascript Decorators, and we would like to integrate the
Qooxdoo annotations with the native syntax for decorators

## Other features

Our issue tracker contains [more features planned for the next
release](https://github.com/qooxdoo/qooxdoo/milestone/66).

repository: cboulanger/qooxdoo

repo_name: cboulanger/qooxdoo


text:
---
layout: default
---

# 1994-11-29 - Re: School Admins

## Header Data

From: Ferguson<EMAIL_ADDRESS>To<EMAIL_ADDRESS>Message Hash: e10d32bee90df9784f0ce4417249b8c3069b496fbe66e9c9879761657d4bcfad

Message ID<EMAIL_ADDRESS>Reply To: _N/A_

UTC Datetime: 1994-11-29 03:24:33 UTC

Raw Date: Mon, 28 Nov 94 19:24:33 PST

## Raw message

```
{% raw  %}From: Ferguson<EMAIL_ADDRESS>Date: Mon, 28 Nov 94 19:24:33 PST
To<EMAIL_ADDRESS>Subject: Re: School Admins
Message-ID<EMAIL_ADDRESS>MIME-Version: 1.0
Content-Type: text/plain

(My apologies for losing the article to which this is relevant)

This is in regards to compiling PGP, and distributing it to those of us who
are on restricted systems.

My provider, the state government does not allow me (or anyone
else) to use cc. The platform is DEC Alpha OSF/1, and if anyone has
access to a compiler and would be willing to put the binaries for
PGP(preferably 2.6.2, but I'll take what I can get :) and/or gcc up for
ftp somewhere, I would be very grateful.

Brad

{% endraw %}
```

## Thread

+ Return to [November 1994](/archive/1994/11)

+ Return to "[Ferguson <ecf@tenet.edu>](/authors/ferguson_ecf_at_tenet_edu_)"
+ Return to "["Michael K. Sanders" <msanders@ataxia.res.wpi.edu>](/authors/michael_k_sanders_msanders_at_ataxia_res_wpi_edu_)"

+ 1994-11-29 (Mon, 28 Nov 94 19:24:33 PST) - Re: School Admins - _Ferguson<EMAIL_ADDRESS>  + 1994-11-29 (Mon, 28 Nov 94 20:17:52 PST) - [Re: School Admins](/archive/1994/11/3300540d2726be4a9ed43747f9d6ece8f6d31ecbe397dc17fc53423df8343d62) - _"Michael K. Sanders"<EMAIL_ADDRESS>


text:
---
name: Bug Report
about: Create a bug report to help improve the reporter
title: "[BUG]"
labels: bug
assignees: ''

---

**Describe The Problem**
A high-level description explaining the issue that you're facing.

**Steps To Reproduce**
Steps to reproduce the behaviour:

1. Run the collection '...'
2. Open the report '....'
3. Select the `Request` view '....'
4. See the error in `X` section

The command that you're using to run the collection, would be a real help or the `newman` script, if you're using one.

**What Are You Seeing**
A clear and concise description of what you see happening. '_It doesn't work_' or '_Something fails_' doesn't really help anyone so please be as descriptive as possible. If you see an error message, please do include this in the issue report.

**Screenshots and Gifs**
Add `screenshots` or a `.gif` to help explain your problem better. These things help bring the problem to life _A picture paints a thousand words..._

**Collection and Environment Files**
If applicable, provide some sample files - Please mask or remove any sensitive information. These files will help to reproduce the issue locally and lead to a quick fix.

**Version and Platform Information:**
 - `newman` Version [e.g. 4.2.3]
 - `newman-reporter-htmlextra` Package Version [e.g. 1.6.0]
 - OS [Windows 10]

**Additional Context**
Add any other context about the problem not mentioned, the more information that can be provided the better.

- Are you using the reporter from the command line or with a script?
- Are you using the default template or a custom version?
- If you are using a custom `.hbs` file, please include this on the report.
- Have you made any local changes to the `index.js` file?

repository: youvegotnigel/newman-reporter-htmlextra

repo_name: youvegotnigel/newman-reporter-htmlextra


text:
---
author: "joostdecock"
caption: "Would you close a lane because one driver was playing their music too loud?"
date: "2017-09-07"
intro: "Thanks for nothing Microsoft; Email shouldn't be this hard"
title: "Thanks for nothing Microsoft; Email shouldn't be this hard"
---

People with an email address from Microsoft --- think Hotmail, MSN, live.com, outlook.com and their numerous variants ---
are significantly less likely to sign up for this website.

That's because more than 4 times out of 10, they never receive their account activation email.

## What's going on?

Let's first look at what's happening. Here's a relevant snippet from the logs:

````
Failed<EMAIL_ADDRESS>-><EMAIL_ADDRESS>'Confirm your freesewing account'
Server response: 550 5.7.1 Unfortunately, messages from [<IP_ADDRESS>] weren't sent.
Please contact your Internet service provider since part of their network is on our block list.
````

What this means is that part of the MailGun network is on their block list.
As a result, they (more on who they are later) are not delivering any messages that go out.

[MailGun](https://www.mailgun.com/) is a popular email service for developers.
It's used by this site to send out emails, like the account activation emails.

Other people use this service too, and perhaps some of them, at some point,
delivered some spam messages through mailgun. Or it may just have been some guy with
a last name that tends to trigger spam filters.

![Some other MailGun customers. Not exactly a dodgy service is it?](https://posts.freesewing.org/uploads/mailgun_19f315d4d6.png)

Point is, this IP address or one of its neighbours got *a bad rep*. It happens.
But to flat-out refuse to accept any messages from this host (or an entire network of hosts)
is the equivalent of shutting down a highway lane (or entire highway)
because one car in that lane played its music obnoxiously loud that one time.

Which brings me to our next question:

## Who would do something like that?

Good question. Here are some numbers:

![A graph of mail delivery since the launch of this site](https://posts.freesewing.org/uploads/emailgraph_d14d476efa.png)

The graph above represents emails that were sent out since the launch of this site.
The small subsection of the graph that is red are emails that are dropped.

This website sends out different kinds of email:

 - The account confirmation email
 - The *I forgot my password* emails
 - Comment reply notifications

The graph represents all email, but I'm focussing on the account confirmation emails only.
They are the most important after all.

> Apart from the 1 outlier, every message that was blocked, was blocked by Microsoft

Here's a list of all domains that blocked legitimate activation emails to their users:

 - btinternet.com
 - hotmail.com
 - hotmail.co.uk
 - live.ca
 - live.com
 - live.com.au
 - live.nl
 - msn.com
 - outlook.com

Apart from that very first entry in the list (on which only 1 message was blocked) all of these are Microsoft domains.

Let me restate that: Apart from the 1 outlier, every message that was blocked, was blocked by Microsoft.

## What's the impact?

So what sort of impact does that have on people?

Well, at the time I'm writing this, there are 817 registered users, and about 80% (661) have also activated their account.

![A disproportionate amount of pending activations is from users with an email address managed by Microsoft](https://posts.freesewing.org/uploads/activations_06987b6065.svg)

From those people who were able to activate their account, less than 1% (6) have an email address managed by Microsoft.
In the group of people who did not, or were not able to, activate their account, more than half have such an address.

More than 40% of account confirmation emails are simply blocked by Microsoft and, based on the number of activations,
it seems likely that even when they aren't block at the SMTP relay, they get filtered somewhere further down the line.

As things stand, it seems almost impossible for the average hotmail/outlook/live/MSN/... user to sign up for this site.

## What can we do about it?

I chose mailgun for a number of reasons. Not having to handle SMTP outselves simplifies the code.
Not depending on a local SMTP deamon makes the code more portable, and MailGun has a bunch of cool features
that allow you to do things like replying to comments via email.

Microsoft's crude methods of spam filtering don't invalidate any of those reasons.

Using MailGun means using their SMTP relays, and being at the mercy of the reputation of that relay.
The only way around that is to configure a dedicated relay in MailGun so that freesewing.org traffic is shielded from
others, and we become masters of our own reputation.

![$59 per month? Perhaps not](https://posts.freesewing.org/uploads/pricing_52f0e817cb.png)

For that priviledge, MailGun charges 59 dollar per month, which amounts to 708 dollar yearly.
I invite you to take a look at [the donations history](/about/pledge#donations-history),
and you'll understand that's not going to happen either.

I could challenge the block list, and try to get the relay unblocked.
But that's pretty much tilting at windmills when the host is not under my control.
Not to mention that MailGun doesn't just have that one host.

It seems that I'm running low on options and quiet frankly, I'm also running out of patience.

## What I'm going to do about it

Microsoft is a behemoth, and I'm just a guy. I can't fight them on this.
Block this, bitch](https://posts.freesewing.org/uploads/titanfall_cb5a210468.gif)

Do you think Gmail is ever abused to send out spam? You know it is.
Do you think they would ever block all email coming from Gmail? You know they won't.

So last night, I rolled out some changes to work around the issue.
If you have a *problemtic* email address, in addition to the regular email, this site will send out
a second email through Gmail.

I'd like to see them block that.

> ##### Signup trouble? Help is available
> If you are (still) having problems signing up, don't hesitate to [get in touch](/contact).

repository: freesewing/freesewing

branch_name: refs/heads/develop

repo_name: freesewing/freesewing