text:
# Humane Tech

![https://www.savagechickens.com/2018/03/ice-cream-fever.html](../.gitbook/assets/chickennficecream.jpg)

[Center for Humane Technology](https://humanetech.com/) - "Our mission is to reverse human downgrading by inspiring a new race to the top and realigning technology with humanity."

[Digital Minimalism - with Dr. Cal Newport](https://www.stitcher.com/podcast/paula-pant-and-j-money/money-103/e/58555559?refid=asa\&autoplay=true) #podcast - "Cal Newport created a philosophy called digital minimalism, which is idea of reducing your digital life down to only the most important core essentials. Remove the apps from your phone, then slowly re-introduce only the ones that are the most useful and beneficial. Take control of your smartphone, rather than letting it control you."

[Experiments with Google: Digital Wellbeing](https://experiments.withgoogle.com/collection/digitalwellbeing) - "A collection of ideas and tools that help people find a better balance with technology. We hope these experiments inspire developers and designers to consider digital wellbeing in everything they design and make. All the code is open sourced and helpful guides and tips are available to kick start new ideas. Try the experiments and create new ones. The more people that get involved the more we can all learn about building better technology for everyone."

[f.lux](https://justgetflux.com/) #software - "f.lux ... makes the color of your computer's display adapt to the time of day, warm at night and like sunlight during the day."

[HOW I REPLACED FACEBOOK WITH "NICEBOOK"](https://elgan.com/blog/how-i-replaced-facebook-with-google-photos) #article - "I’m replacing Facebook with a single shared folder in Google Photos I’m calling “Nicebook” — it’s all the nice features of Facebook, without the exploitative, racist, disinformation, censoring, advertising and other not-so-nice features of Facebook."

[Humane Tech Community](https://humanetech.community/) - "We are building the Pyramids of Humane Technology. We envision a future where we have unobtrusive technology that is empowering us and that allows humans to flourish and humanity to thrive. Where the digital world is a natural extension of the real one and a reflection of ourselves."

[iDramaLab](https://idrama.science/) - "The iDRAMA Lab is an international group of researchers interested in a variety of modern computing and socio-technical concerns. Collectively, we have published work ranging from genomic privacy, to cryptography and Web security, to distributed systems, and even video games. More recently, we have worked on understanding and mitigating modern socio-technological issues such as online harassment campaigns, hate speech and political radicalization, and understanding the subtle ways in which web communities influence each other."

[Intention](https://www.getintention.com/) #extension - Chrome & Firefox. "Build the habit of focus. **Intention pauses distractions so you can scroll less and do more."**

[IRL Glasses](https://www.kickstarter.com/projects/ivancash/irl-glasses-glasses-that-block-screens/faqs) - "Glasses that Block Screens." Made by [IRL Labs](https://www.irl-labs.co/).

[LeftBlank.co](http://www.leftblank.co/) - "This page intentionally left blank."

[Mighty](https://bemighty.com/) #hardware - "Mighty plays music from Spotify and Amazon Music without a phone, screen, or connection."

[Pi-hole](https://pi-hole.net/) - "A black hole for Internet advertisements"

[Pomy](https://vanejung.com/pomy/) #software - "Focus timer app for your eye health." Mac and Windows.

[Spend More Time Alone](http://www.calnewport.com/blog/2017/09/24/spend-more-time-alone/) #article - by Cal Newport. "The right way to define “solitude” is as a subjective state in which you’re isolated from input from other minds. ... Regular doses of solitude are crucial for the effective and resilient functioning of your brain."

[Why The Web Is Such A Mess](https://www.youtube.com/watch?v=OFRjZtYs3wY) #video - "Tim Berners-Lee envisioned a "universal information system". What went wrong?"

![https://xkcd.com/2473/](<../.gitbook/assets/image (24).png>)

## Decentralization

[Beaker](https://beakerbrowser.com/) - "A browser for the
 next-generation Web
. Beaker is an experimental browser for exploring and building the peer-to-peer Web."

[Dat Protocol](https://www.datprotocol.com/) - "Dat is a new p2p hypermedia protocol. It provides public-key-addressed file archives which can be synced securely and browsed on-demand."

[Dat Protocol Foundation](https://dat.foundation/) - "Supporting the adoption and development of The Dat Protocol."

[Decentralised system - Wikipedia](https://en.wikipedia.org/wiki/Decentralised\_system) #article - "A **decentralised system** in [systems theory](https://en.wikipedia.org/wiki/Systems\_theory) is a system in which lower level components operate on local information to accomplish global goals. The global pattern of behaviour is an [emergent property](https://en.wikipedia.org/wiki/Emergent\_property) of dynamical mechanisms that act upon local components, such as indirect communication, rather than the result of a central ordering influence of a [centralised system](https://en.wikipedia.org/wiki/Centralised\_system)."

[Imagine This: A Web Without Servers - Tara Vancil - JSConf EU 2018 - YouTube](https://www.youtube.com/watch?v=rJ\_WvfF3FN8\&feature=youtu.be) #video - "The Web was envisioned as an open platform for publishing and sharing information, but that vision has been lost: most people will never publish independently on the Web. What went wrong?"

## Internet Surfing

{% embed url="https://www.youtube.com/watch?v=ve37Bg4-hPc" %}
https://www.youtube.com/watch?v=ve37Bg4-hPc
{% endembed %}

[How to Prevent the Internet From Taking Over Your Life: Digital Minimalism 06](https://www.youtube.com/watch?v=jEps2fnwL-0\&feature=youtu.be) #video - "It's way too easy now to let the internet be a part of every aspect of our lives. This was starting to have a really negative effect on me, so I decided to do something about it."

[r/nosurf](https://www.reddit.com/r/nosurf/) - "NoSurf is a community of people who are focused on becoming more productive and wasting less time mindlessly surfing the internet. [https://nosurf.org/](https://nosurf.org/)." [Wiki](https://www.reddit.com/r/nosurf/wiki/index). [Website](https://nosurf.net/).

## Online Video

[DF Tube (Distraction Free for YouTube™) - Chrome Web Store](https://chrome.google.com/webstore/detail/df-tube-distraction-free/mjdepdfccjgcndkmemponafgioodelna) - "Allow yourself to focus while using YouTube™ for work, recreation or education."

[FreeTube](https://freetubeapp.io/) #software - YouTube client that lets you turn off recommended videos, comments. [GitHub](https://github.com/FreeTubeApp/FreeTube)

[Invidious](https://invidio.us/) - Alternative portal to YouTube

{% embed url="https://twitter.com/stubbornella/status/1341514431751094272" %}

[NewPipe](https://newpipe.schabi.org/) #app - "the lightweight
 YouTube experience
 for Android"

[PeerTube](https://peertube.cpy.re/) #webapp

[SkyTube](https://skytube-app.com/) #app - "An open-source YouTube™ app for Android™."

![https://www.savagechickens.com/2021/05/interrupted.html](<../.gitbook/assets/image (8).png>)

## Privacy

[The Privacy Project](https://www.nytimes.com/series/new-york-times-privacy-project) #blog - The New York Times.

[SecurityCheckli.st](https://securitycheckli.st/) - "An open source checklist of resources designed to improve your online privacy and security. Check things off to keep track as you go."

## Security

[LastPass](https://www.lastpass.com/) - "The best way to manage passwords. Just remember your master password and LastPass remembers the rest. See for yourself how easy password management can be."

[SecurityCheckli.st](https://securitycheckli.st/) - "An open source checklist of resources designed to improve your online privacy and security. Check things off to keep track as you go."

## Social Networking

![https://www.savagechickens.com/2021/05/social-media.html](<../.gitbook/assets/image (15).png>)

[Calm Twitter](https://chrome.google.com/webstore/detail/calm-twitter/cknklikacoaeledfaldmhabmldkldocj/related) #extension - Chrome. "This extension hides trending information from twitter timelines to make your mind calm."

[Fabriq](https://www.ourfabriq.com/?utm\_source=Iterable\&utm\_medium=email\&utm\_campaign=newsletter\_4.9) #app - "Get Intentional About Your Relationships"

[Houseparty](https://houseparty.com/?utm\_source=Iterable\&utm\_medium=email\&utm\_campaign=newsletter\_4.9) - "Houseparty
 is a
 face to face
 social
 network."

[Marco Polo](https://www.marcopolo.me/?utm\_source=Iterable\&utm\_medium=email\&utm\_campaign=newsletter\_4.9) #app - "Unlike social media, there is no wasted time, no social comparisons and no likes! Connect with the most important people in your life, not the entire world."

[SLOWLY](https://slowly.app/en/) #app - "SLOWLY lets you meet pen pals from your smartphone! Match with someone that shares your passion, write a letter and collect stamps from around the world. Speak your mind – one letter at a time!"

repository: narthur/knowledge

repo_name: narthur/knowledge


text:
# Bitcoin Vault Api

A simple public JSON API written in Python and Flask. Includes a proposed production deployment system using Docker, NGINX and uWSGI. Deployed under http://api.bitcoinvault.global

#### RPC Configuration
RPC server parameters are provided in ```blockchain_analyzer.py``` file:
```python
url = "http://user:password@bitcoind:8332"
```

#### Build and deployment using docker-compose
```sh
cp -r src/* docker/flask/
cd docker
docker-compose build
docker-compose up
```

license: MIT

repository: litegenx/api

branch_name: refs/heads/master

extension: md

license_type: permissive

repo_name: litegenx/api


text:
# ai-notebook
Experiments with A.I.

## Reference

[skflow](https://github.com/tensorflow/skflow)
[tensorflow](https://github.com/tensorflow)
[torch7](https://github.com/torch/torch7/wiki/Cheatsheet#visualization)
[Leaf](https://github.com/autumnai/leaf)
[Theano](https://github.com/Theano/Theano)
[mxnet](https://github.com/dmlc/mxnet)

## Comparisons

https://github.com/zer0n/deepframeworks/blob/master/README.md
https://github.com/soumith/convnet-benchmarks/issues/66
http://deeplearning4j.org/compare-dl4j-torch7-pylearn.html

repository: kengz/ai-notebook

repo_name: kengz/ai-notebook


text:
---
layout: default
---

# 1997-09-07 - Re: Prayer to A.M. Turing

## Header Data

From: Adam Back<EMAIL_ADDRESS>To<EMAIL_ADDRESS>Message Hash: 2255913de82d2ea6ff2da144ea18e75501ff5ebd0036818ff95ff91a4556005e

Message ID<EMAIL_ADDRESS>Reply To<EMAIL_ADDRESS>UTC Datetime: 1997-09-07 16:41:06 UTC

Raw Date: Mon, 8 Sep 1997 00:41:06 +0800

## Raw message

```
{% raw  %}From: Adam Back<EMAIL_ADDRESS>Date: Mon, 8 Sep 1997 00:41:06 +0800
To<EMAIL_ADDRESS>Subject: Re: Prayer to A.M. Turing
In-Reply-To<EMAIL_ADDRESS>Message-ID<EMAIL_ADDRESS>MIME-Version: 1.0
Content-Type: text/plain

Monty Cantain writes:
> Oh Lord Turing, God of Messages and Pathways, please reduce the
> latency time of the remailer network!  Please accept this humble
> offering: 10110AlanMathisonTuring8ef2b1912670b51

Your email to Lord Turing may bounce, your hashcash postage doesn't
collide:

% hashcash AlanMathisonTuring 10110AlanMathisonTuring8ef2b1912670b51
collision: 0 bits
%

Adam
--
<A HREF="http://www.dcs.ex.ac.uk/~aba/rsa/print%20pack%22C*%22,split/%5cD+/,%60echo%20%2216iII*o%5cU@%7b$/=$z%3b%5b(pop,pop,unpack%22H*%22,%3c%3e)%5d%7d%5cEsMsKsN0%5blN*1lK%5bd2%25Sa2/d0%3cX+d*lMLa%5e*lN%250%5ddsXx++lMlN/dsM0%3cJ%5ddsJxp%22%7cdc%60%3b$/">
Have <I>you</I> exported RSA today?</A>

{% endraw %}
```

## Thread

+ Return to [September 1997](/archive/1997/09)

+ Return to "[Adam Back <aba@dcs.ex.ac.uk>](/authors/adam_back_aba_at_dcs_ex_ac_uk_)"
+ Return to<EMAIL_ADDRESS>(Anonymous Remailer)](/authors/valdeez_at_juno_com_anonymous_remailer_)"

+ 1997-09-07 (Sun, 7 Sep 1997 20:38:27 +0800) - [Prayer to A.M. Turing](/archive/1997/09/f41b8b8a7e0c074921470e2663c58d861f422494d02607ee36de16c9aa61473b) -<EMAIL_ADDRESS>(Anonymous Remailer)_
  + 1997-09-07 (Mon, 8 Sep 1997 00:41:06 +0800) - Re: Prayer to A.M. Turing - _Adam Back<EMAIL_ADDRESS>

gha_license_id: MIT


text:
# Embed Homewise Product Table
Thank you for partnering with Homewise!

This guide covers the steps to embed Homewise product table into your website.

## Installation

### Step 1
Complete [partner configuration](../partner/configuration.md).

### Step 2
Paste following line right after the `homewise` object. This loads the widget embed script.

```html
<script src="https://widgets.thinkhomewise.com/lib/com-product-table/1.3/embed.js"></script>
```

#### Example
```html
<script>
  var homewise = {
    partner: {
      type: "p",
      code: "abc123",
      segment: "xyz789"
    }
  };
</script>
<script src="https://widgets.thinkhomewise.com/lib/com-product-table/1.3/embed.js"></script>
```

#### Versions
Homewise will release versions time to time introducing new features and bug fixes. We recommend that you use the latest
version of embed script by changing the version number (e.g `/1.3/embed.js`). Following table shows available versions.

|            Version             | Notes                                                                    |
|:------------------------------:|--------------------------------------------------------------------------|
|              1.3               | Optimized. Links take `segment` into account. CTA label is customizable. |
| [1.0](./archive/embed_1_0.md)  | First version with all launch features.                                  |

### Step 3
Paste following code where you want the Homewise product table to appear.
```html
<div class="homewise_product_table"></div>
```

### Step 4 - Optional
Optionally, customize the product table by adding `productTable` configuration object to the `homewise` default object.
> :warning: Please refer to browser's console for errors.

```html
<script>
  var homewise = {
    partner: { ... },
    productTable: {
      bg: <string>,
      primaryColor: <string>,
      font: <boolean>,
      intro: <boolean>,
      province: <string>,
      link: <string>,
      cta: <string>
    }
  };
</script>
```

#### Reference
| Property       | Required | Accepted Values                                                        | Default                        |
|----------------|:--------:|------------------------------------------------------------------------|--------------------------------|
| `bg`           |    N     | *Any hexadecimal color code.*                                          | `#ffffff`                      |
| `primaryColor` |    N     | *Any hexadecimal color code.*                                          | `#147bc9`                      |
| `font`         |    N     | `true`,`false`                                                         | `true`                         |
| `intro`        |    N     | `true`,`false`                                                         | `true`                         |
| `province`     |    N     | `AB`, `BC`, `MB`, `NB`, `NL`, `NS`, `ON`, `PE`, `SK`, `NT`, `NU`, `YT` | `ON`                           |
| `cta`          |    N     | *Any string*                                                           | `Get This Mortgage`            |
| `link`         |    N     | *Any URL.*                                                             | `https://my.thinkhomewise.com` |

##### Notes
* `bg` - Set default background color. Consider accessibility concerns when selecting the colour.
* `primaryColor` - Set default primary color. This sets colors for buttons and borders. Consider accessibility concerns when
  selecting the colour.
* `font` - Toggle standard font load. `false` will allow you to apply the font used your website's CSS.
* `intro` - Toggle leading headline and introduction copy. Customization is not allowed, but by toggling you can position
  your own copy before the app embed container and make it seamless.
* `province` - Set default province selection.
* `cta` - Set default CTA label. Provided value is converted to uppercase automatically.
* `link` - Set a custom click through URL. Assuming Homewise online application is embedded in this custom URL:
  * `hw_product` URL variable must be captured and send back to embedded app as `hw_product` URL variable.
  * `hw_state` URL variable must be captured and send back to embedded app as `state` URL variable.
  * `hw_segment` URL variable must be captured and send back to embedded app as part of the path before `/embed` bit.
  * _e.g. **with** `hw_segment` - `https://my.thinkhomewise.com/<partner_type>/<partner_code>/<hw_segment>/embed?hw_product=<hw_product>&state=<hw_state>`
    (`https://my.thinkhomewise.com/p/abc123/xyz789/embed?hw_product=prod456&state=aBc753dEf`)_
  * _e.g. **without** `hw_segment` - `https://my.thinkhomewise.com/<partner_type>/<partner_code>/embed?hw_product=<hw_product>&state=<hw_state>`.
    (`https://my.thinkhomewise.com/p/abc123/embed?hw_product=prod456&state=aBc753dEf`)_

#### Example
```html
<script>
  var homewise = {
    partner: {
      type: "p",
      code: "abc123",
      segment: "xyz789"
    },
    productTable: {
      bg: "#fff7ed",
      primaryColor: "#ff824d",
      font: false,
      intro: false,
      province: "BC",
      link: "https://domain.com/page?foo=123&bar=456",
      cta: "Learn More"
    }
  };
</script>
<script src="https://widgets.thinkhomewise.com/lib/com-product-table/1.3/embed.js"></script>
```

## Support
Contact Homewise Solutions Inc. at *hello[at]thinkhomewise.com* for support. Feel free to report any bugs you find via
email or on GitHub.

**© Homewise Solutions Inc. All rights reserved.**

[Privacy Policy](https://thinkhomewise.com/page/privacy/) | [Terms of Agreement](https://thinkhomewise.com/page/term/).

repository: homewise-solutions-inc/developer-guides

repo_name: homewise-solutions-inc/developer-guides


text:
connect-autoreload
-----------------

connect-autoreload is connect middleware that supports a basic javascript client.  The server watches for file changes and the client reloads your page when files are changed.

## Standalone reload script

If you're looking for the easiest way to refresh your page when files change, check out [autoreload](https://github.com/typpo/autoreload).  If you want to integrate the autoreload behavior into your own connect/express server, read on.

## Installation

`npm install connect-autoreload`, or add connected-autoreload to your package.json.

## Setup

See the standalone app in `example/`.  Edit the config, start the server (`node path/to/app.js`), drop in the js, and you're good to go.

### Adding autoreload to an existing server

If you already have an express app, it's easy to add autoreload middleware:

    var autoreload = require('connect-autoreload')

    var config = {
      watch_dirs: 'js html css/compiled thirdparty/frontend',
      ignore_regex: /\.sw[poax]$/,
      delay: 150,  // wait 150ms before reloading
    };

    app.use(autoreload(config));

This will set up the default endpoint, `waitForReload/`.

It's recommend to start the node app from your project's root directory.  That way, `watch_dirs` will correctly work with relative paths.  `examples/start.sh` is a shorthand for this if you use git.

### Including the Javascript client

`<script src="http://localhost:60000/autoreload.js"></script>` or include `js/autoreload.js` on your page.

To start reloading the page when changes happen, call `AutoReload.Watch()`. If you run your autoreload server at a different host/port as your page is served from, it can be set as parameter, like `AutoReload.Watch('http://localhost:60000')`.

You can call `AutoReload.Stop()` at any point to cancel the refresh-on-change behavior.

## https setup

If your web server requires an https connection, your connect app must have a valid cert or your browser will choke.

If you are running a separate web server, it might be annoying to set up the dummy autoreload node app with your cert.  Instead, you can proxy via Apache or nginx -

Example Apache config using ProxyPass:

    ProxyPass /waitForReload http://localhost:60000/waitForReload

Example nginx config:

    location /waitForReload {
      proxy_pass      http://localhost:60000/waitForReload
    }

## MIT License

```
Copyright (c) 2013 Ian Webster/Room 77, Inc.

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

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

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

repository: typpo/connect-autoreload

gha_language: JavaScript

repo_name: typpo/connect-autoreload


text:
Pacman
======

A multiplayer version of the classic arcade. Try it online [here](http://ec2-54-244-207-36.us-west-2.compute.amazonaws.com/) (beware of the lag).

![Screenshot](https://raw.github.com/santialbo/Pacman/master/screenshots/screenshot000.png)
![Screenshot](https://raw.github.com/santialbo/Pacman/master/screenshots/screenshot002.png)
![Screenshot](https://raw.github.com/santialbo/Pacman/master/screenshots/screenshot001.png)

Installation
------------
In order to run the server there is some dependencies in `requirements.txt that need to be installed. You can do that by running the following command.
```bash
pip install -r requirements.txt
```

Running the server
--------------------------
To run the server simply run
```bash
python server/pacman_server.py
```
You will also need to run the client on a HTTP server for the rest of people to connect to it. If you want to test it locally you can run:
```bash
cd client
python -m SimpleHTTPServer
```
Now people on the same local network will be able to connect by pointing their browser to `your_ip:8000`.

Have fun :)

repository: santialbo/Pacman

gha_language: CoffeeScript

repo_name: santialbo/Pacman


text:
# Prebuilt Options

## Usage
All options are provided through the `Options` namespace:
```js
import { Options } from "baklavajs";

// in the node constructor
this.addOption("MyOption", Options.InputOption);
```

## List of Prebuilt Options
| Name | Description | Value Type |
| --- | --- | --- |
| `ButtonOption` | A button that opens the sidebar when clicked. The label of the button is determined by the name of the option. | `undefined` |
| `CheckboxOption` | A checkbox for setting boolean values. | `boolean` |
| `InputOption` | A simple text field. The option name will be displayed as placeholder. | `string` |
| `NumberOption` | A numeric up/down field for numeric values. | `number` |
| `SelectOption` | A dropdown select which allows the user to choose one of predefined values. | `{ selected: string, items: string[] }` |
| `TextOption` | Displays arbitrary strings | `string` |

repository: milangress/baklavajs

repo_name: milangress/baklavajs


text:
# RecordRTC-together

Record video and audio together or individually on the web using `getUserMedia`.

**[Online Demo](http://h0201030.github.io/record-rtc-together) (Only works on Google Chrome)**

It creates two files individually for video (`webm` at 10 fps) and audio (`wav`).

This is used in [MIST project](https://github.com/H0201030) to allow users record video and audio together using their webcams on Web.

# Quick Start

Include `dist\RecordRTC-together.min.js` in your web page.

```javascript
    var constraints = { video: true, audio: true },
        recorder = new RecordRTC({
            enable: constraints,
            videoElem: document.getElementById("client-video")
        });

    // get and set user media
    recorder.getMedia(recorder.setMedia, function() {
        console.log("get user media failed!");
    });

    recorder.onVideoReady(function(blob) {
        // video blob in `webm`
    });

    recorder.onAudioReady(function(blob) {
        // audio blob in `wav`
    });

    recorder.start();

    recorder.stop();
```

Code for the demo please refer to `src\index.html` and `src\js\main.js`.

To merge video and audio, you can do it with `ffmpeg` on server:

```bash
$ ffmpeg -i video.webm -i audio.wav merged.mp4
```

# Issues

RecordRTC-together is only tested in Google Chrome.

Use [Issue page](https://github.com/H0201030/record-rtc-together/issues).

# Credits

By [Wang Zhuochun](https://github.com/zhuochun).

This is based on works from:

- RecordRTC: https://github.com/muaz-khan/WebRTC-Experiment/tree/master/RecordRTC
- MediaStreamRecorder: https://github.com/streamproc/MediaStreamRecorder
- Audio Recording: https://github.com/mattdiamond/Recorderjs
- Video Recording: https://github.com/antimatter15/whammy

# License

[RecordRTC-together](https://github.com/H0201030/record-rtc-together) is released under MIT Licence.

repository: scorpiopapa/record-rtc-together

extension: markdown

repo_name: scorpiopapa/record-rtc-together


text:
**Your Body Is a Wonderland** 是美国创作歌手，作曲家John
Mayer演唱的歌曲。约翰•梅尔1977年10月16日生于美国康乃狄克州，他最早的两张专辑《Room For Squares》和《Heavier
Things》取得了白金唱片的成就。

2003年，凭借《 _Your Body Is a Wonderland_ 》获得了第45届格莱美奖最佳流行音乐男歌手的称号。

歌词下方是 _Your Body Is a Wonderland钢琴谱_ ，希望大家喜欢。

   I'll use my hands)
Your body is a wonderland

url: https://raw.githubusercontent.com/Emptyspirit/everyonepiano-music-database/fb8ba03dd9474f049b18d9822c40a395229b7aca/流行/Your Body Is a Wonderland-John Mayer/README.md

branch_name: refs/heads/main


text:
Theme - Red Planet
==================

A Visual Studio Code port of the theme Red Planet by [eliquious](https://github.com/eliquious/Red-Planet-Theme).

repository: Devaio/Red-Planet-Theme-VsCode

repo_name: Devaio/Red-Planet-Theme-VsCode


text:
#### Parser Content
```Java
{
Name = s-physical-badge-access
    Vendor = Badge
  Product = Badge
    Lms = Splunk
    DataType = "physical-access"
    TimeFormat = "yyyy-MM-dd HH:mm:ss"
    Conditions = [ "Badge_ID", "Access_Event", "Reader_Description", "exabeam_raw"]
    Fields = [
      """exabeam_raw="{1,20}({time}\d\d\d\d-\d\d-\d\d \d\d:\d\d:\d\d)""",
      """exabeam_host=({host}[^\s]{1,2000})""",
      """Badge_ID=({badge_id}\d{1,100})""",
      """First_Name ="{1,20}({first_name}[^"]{1,2000})""",
      """Last_Name ="{1,20}({last_name}[^"]{1,2000})""",
      """Access_Event="{1,20}({outcome}[^"]{1,2000})""",
      """Reader_Description="{1,20}({location_building}[^-\s]{1,2000})""",
      """Reader_Description="{1,20}({location_door}[^"]{1,2000})""",
      """Location="{1,20}({location_city}[^"]{1,2000})"""
    ]

}
```


text:
# Do Not Disturb Gnome Shell Extension
Enable or disable do not disturb mode.

## Installation

### Dependencies

Required dependencies to build on debian platforms are

```
libglib2.0-bin gjs gettext
```

To install, clone this repo and use make to install

```sh
git clone https://github.com/pop-os/gnome-shell-extension-do-not-disturb
cd gnome-shell-extension-do-not-disturb
make
make install
```

The extension then must be enabled using Gnome Tweak Tool or https://extensions.gnome.org/local/

## Add Translation

Extract translations into messages.pot:

```
cd src
xgettext -k -kN -o messages.pot *.js
```

Create a new locale. For example sv_SE:

```
cp -R locale/fr locale/sv_SE
```

Update the messages in the locale:

```
msgmerge -U locale/sv_SE/LC_MESSAGES/gnome-shell-extension-do-not-disturb.po messages.pot
```

Edit the messages in the locale:

```
xdg-open locale/sv_SE/LC_MESSAGES/gnome-shell-extension-do-not-disturb.po
```


text:
# BRC No API ETL

This tool runs in the background and periodically extracts data
from applications using Selenium.

## Installation

1. Download the code from GutHub:

```bash
git clone https://github.com/LCBRU/no_api_etl.git
```

2. Create and activate a virtual environment:

From within the `no_api_etl` directory, run the commands:

```bash
python3 -m venv venv
source ./venv/bin/activate
```

3. Install the requirements:

Got to the reporter directory

```bash
pip install -r requirements-dev.txt
```

4. Set environment:

Copy the file `example.env` to `.env`, amend the file to make it only readable by yourself and fill in appropriate values.

## Running

Each system has a different application that imports the appropriate reports
and schedules them for running, but can also be used to run individual or
multiple reports.

### Scheduling ETLs

If no arguments are supplied to the application, all the ETLs will be
scheduled.  For example:

```bash
python uhl_etl.py
```

### Running all ETLs

To run all the imported reports, use the `-a` or `--all` command line
arguments.  For example:

```bash
python uhl_etl.py --all
```

### Running specific ETLs

To specify ETLs that you want to run, add their ETL class
name or part of their ETL class name as a command line argument.  Multiple
names or parts of names can be added.  The names do not need to match the
case of the ETL class name.  For example:

```bash
python uhl_etl.py redcap CrfmStudyDetailDownload
```

### Exclude ETLs from running

To specify STLs to exclude from running, add the `-x` or `--exclude`
command line argument, followed by the report class name or part thereof.
For example:

```bash
python uhl_etl.py -x pdf
```

## Development

## Creating ETLs

To create a new report you must inherit from the `Etl` class defined in the
`core.py` module or, more usually, a class inherited from it - for example `SeleniumEtl` - and then provide appropriate parameters such as a browser to the constructor and overriding the `do_etl` or `do_selenium_etl` functions.

## Getting the ETLs imported

If you add a new ETL it will only be run if it successfully imported by
the application.  If your ETL is not being imported, follow this trouble-
shooting list:

1. Make sure the ETL is a descendent of the `Etl` class defined in
`api\core.py`.
2. Make sure all directories contain a `__init__.py` file.
3. Make sure that the ETL class is in a directory beneath the
directory imported by the system application.
3. Make sure the directory imported by the system application itself contains
a `__init__.py` file that contains the following code:

```python
from api.core import import_sub_etls

import_sub_etls(__path__, __name__)

```

## Selenium ETLs

Selenium is a library that facillitates webscraping by controlling headerless
instances of Chrome or Firefox browsers.  This can be used when direct data
access is impossible or where the web interface shows information not avaiable
elsewhere.

In order to use Selenium you need to make sure that a Selenium Grid in running
and accessible to the Email Reporting application and that the connection
details have been set in the appropriate environment variables.

See the `LCBRU/selenium_grid` repository on GitHub or the SeleniumGrid SOPs for information.

The `SeleniumGrid` class in the `api\selenium.py` file wraps access to the
Selenium Grid in a context manager for convenience.

## ETL Central  Database

The database upgrades are handled by SQLAlchemy-migrate and are run using the `manage.py`
program once the configuration has been copied into place and the database created.

### Installation

To initialise the database run the commands:

```bash
manage.py version_control
manage.py upgrade
```

### Upgrade

To upgrade the database to the current version, run the command:

```bash
manage.py upgrade
```

### Create Migration

To create a new migration, run the command:

```bash
manage.py upgrade script "Description"
```

gha_language: Python


text:
# Convergence verification of the Collatz problem

[![Build Status](https://travis-ci.com/xbarin02/collatz.svg?branch=master)](https://travis-ci.com/xbarin02/collatz)

## Details

This repository contains computer programs implementing a completely new approach to calculating iterates of the Collatz function.
The trick is that, when calculating the function iterates, the programs switch between two domains in such a way that they can always use the count trailing zeros (ctz) operation and a small lookup table with pre-computed powers of three.
This approach differs significantly from the commonly used approach utilizing a space-time tradeoff using huge lookup tables.
Mathematical details on this approach are given [here](doc/ALGORITHM.md).
The programs can check 128-bit numbers.

## Contact
David Barina<EMAIL_ADDRESS>
## License
This project is licensed under the terms of the [MIT license](LICENSE.md).

## References

- Barina, D. Convergence verification of the Collatz problem. _J Supercomput_ 77, 2681–2688 (2021). https://doi.org/10.1007/s11227-020-03368-x

gha_language: C


text:
---
title: "Data Table Styles"
id: "styles"
sidebar_label: "Styles"
---
---

## Data Table Classes

From [release 10.4](/learn/wavemaker-release-notes/v10-4-0), the default pattern of the data tables change from boxy borders to list view.

The class names for bordered table and striped table are optional. You can add these from the right style property panel.

- table-bordered
- table-hover
- table-striped

![datatable styles](/learn/assets/datatable-styles.png)

## Column Styles

From Advanced Settings, to go **Columns**, and then click the **Styles** tab.

The styles can be used to change the styles for the selected field.

- **Width** for the column which can be specified in terms of the **Width Unit** - _px_ or _%_
- **Text Alignment** of the column content
- **Background** color for the column can be set
- CSS **Class** for styling the field, this needs to be under the Style tab of the Page
- **Conditional Class** for custom styling the column based on a condition

## Row Styles

Similar to columns styling, styles can be applied to rows in the Data Table. Conditional classes can also be applied based upon the data value within the rows.

[![](/learn/assets/table-config3.png)](/learn/assets/table-config3.png)

For examples, see [Custom Styling Data Table Columns & Rows](/learn/how-tos/data-table-styling/)

repository: wavemaker/docs

repo_name: wavemaker/docs


text:
# AdaDelta

ADADELTA optimizer.

``` swift
public class AdaDelta<Model: Differentiable>: Optimizer where Model.TangentVector: VectorProtocol & PointwiseMultiplicative
    & ElementaryFunctions & KeyPathIterable, Model.TangentVector.VectorSpaceScalar == Float
```

ADADELTA is a more robust extension of AdaGrad. ADADELTA adapts learning rates based on a moving
window of gradient updates rather than by accumulating all past gradient norms. It can thus
adapt faster to changing dynamics of the optimization problem space.

Reference: ["ADADELTA: An Adaptive Learning Rate Method"](https://arxiv.org/abs/1212.5701)

## Inheritance

[`Optimizer`](/Optimizer)

## Nested Type Aliases

### `Model`

``` swift
public typealias Model = Model
```

## Initializers

### `init(for:learningRate:rho:epsilon:decay:)`

``` swift
public init(for model: __shared Model, learningRate: Float = 1, rho: Float = 0.95, epsilon: Float = 1e-6, decay: Float = 0)
```

### `init(copying:to:)`

``` swift
public required init(copying other: AdaDelta, to device: Device)
```

## Properties

### `learningRate`

The learning rate.

``` swift
var learningRate: Float
```

### `rho`

The decay factor, corresponding to fraction of gradient to keep at each time step.

``` swift
var rho: Float
```

### `epsilon`

A small scalar added to the denominator to improve numerical stability.

``` swift
var epsilon: Float
```

### `decay`

The learning rate decay.

``` swift
var decay: Float
```

### `step`

The current step.

``` swift
var step: Int
```

### `averageSquared`

The accumulated, exponentially decaying average of squared gradients.

``` swift
var averageSquared: Model.TangentVector
```

### `accumulatedDelta`

The accumulated parameter updates.

``` swift
var accumulatedDelta: Model.TangentVector
```

## Methods

### `update(_:along:)`

``` swift
public func update(_ model: inout Model, along direction: Model.TangentVector)
```


text:
# Paths, Polygons and Regions Tutorial

<!-- TOC -->

## Paths
A number of advanced features in BOSL2 rely on paths, which are just ordered lists of points.

First-off, some terminology:
- A 2D point is a vectors of X and Y axis position values.  ie: `[3,4]` or `[7,-3]`.
- A 3D point is a vectors of X, Y and Z axis position values.  ie: `[3,4,2]` or `[-7,5,3]`.
- A 2D path is simply a list of two or more 2D points.  ie: `[[5,7], [1,-5], [-5,6]]`
- A 3D path is simply a list of two or more 3D points.  ie: `[[5,7,-1], [1,-5,3], [-5,6,1]]`
- A polygon is a 2D (or planar 3D) path where the last point is assumed to connect to the first point.
- A region is a list of 2D polygons, where each polygon is XORed against all the others.  ie: if one polygon is inside another, it makes a hole in the first polygon.

### Stroke
A path can be hard to visualize, since it's just a bunch of numbers in the source code.
One way to see the path is to pass it to `polygon()`:

```openscad-2D
path = [[0,0], [-10,10], [0,20], [10,20], [10,10]];
polygon(path);
```

Sometimes, however, it's easier to see just the path itself.  For this, you can use the `stroke()` module.
At its most basic, `stroke()` just shows the path's line segments:

```openscad-2D
path = [[0,0], [-10,10], [0,20], [10,20], [10,10]];
stroke(path);
```

You can vary the width of the drawn path with the `width=` argument:

```openscad-2D
path = [[0,0], [-10,10], [0,20], [10,20], [10,10]];
stroke(path, width=3);
```

You can vary the line length along the path by giving a list of widths, one per point:

```openscad-2D
path = [[0,0], [-10,10], [0,20], [10,20], [10,10]];
stroke(path, width=[3,2,1,2,3]);
```

If a path is meant to represent a closed polygon, you can use `closed=true` to show it that way:

```openscad-2D
path = [[0,0], [-10,10], [0,20], [10,20], [10,10]];
stroke(path, closed=true);
```

The ends of the drawn path are normally capped with a "round" endcap, but there are other options:

```openscad-2D
path = [[0,0], [-10,10], [0,20], [10,20], [10,10]];
stroke(path, endcaps="round");
```

```openscad-2D
path = [[0,0], [-10,10], [0,20], [10,20], [10,10]];
stroke(path, endcaps="butt");
```

```openscad-2D
path = [[0,0], [-10,10], [0,20], [10,20], [10,10]];
stroke(path, endcaps="line");
```

```openscad-2D
path = [[0,0], [-10,10], [0,20], [10,20], [10,10]];
stroke(path, endcaps="tail");
```

```openscad-2D
path = [[0,0], [-10,10], [0,20], [10,20], [10,10]];
stroke(path, endcaps="arrow2");
```

For more standard supported endcap options, see the docs for [`stroke()`](shapes2d.scad#stroke).

The start and ending endcaps can be specified individually or separately, using `endcap1=` and `endcap2=`:

```openscad-2D
path = [[0,0], [-10,10], [0,20], [10,20], [10,10]];
stroke(path, endcap2="arrow2");
```

```openscad-2D
path = [[0,0], [-10,10], [0,20], [10,20], [10,10]];
stroke(path, endcap1="butt", endcap2="arrow2");
```

```openscad-2D
path = [[0,0], [-10,10], [0,20], [10,20], [10,10]];
stroke(path, endcap1="tail", endcap2="arrow");
```

The size of the endcaps will be relative to the width of the line where the endcap is to be placed:

```openscad-2D
path = [[0,0], [-10,10], [0,20], [10,20], [10,10]];
widths = [1, 1.25, 1.5, 1.75, 2];
stroke(path, width=widths, endcaps="arrow2");
```

If none of the standard endcaps are useful to you, it is possible to design your own, simply by
passing a path to the `endcaps=`, `endcap1=`, or `endcap2=` arguments.  You may also need to give
`trim=` to tell it how far back to trim the main line, so it renders nicely.  The values in the
endcap polygon, and in the `trim=` argument are relative to the line width.  A value of 1 is one
line width size.

Untrimmed:

```openscad-2D
path = [[0,0], [-10,10], [0,20], [10,20], [10,10]];
dblarrow = [[0,0], [2,-3], [0.5,-2.3], [2,-4], [0.5,-3.5], [-0.5,-3.5], [-2,-4], [-0.5,-2.3], [-2,-3]];
stroke(path, endcaps=dblarrow);
```

Trimmed:

```openscad-2D
path = [[0,0], [-10,10], [0,20], [10,20], [10,10]];
dblarrow = [[0,0], [2,-3], [0.5,-2.3], [2,-4], [0.5,-3.5], [-0.5,-3.5], [-2,-4], [-0.5,-2.3], [-2,-3]];
stroke(path, trim=3.5, endcaps=dblarrow);
```

### Standard 2D Shape Polygons
BOSL2 will let you get the perimeter polygon for almost all of the standard 2D shapes simply by calling them like a function:

```openscad-2D
path = square(40, center=true);
stroke(path, closed=true, endcap2="arrow2");
```

```openscad-2D
path = rect([40,30], rounding=5, center=true);
stroke(path, closed=true, endcap2="arrow2");
```

```openscad-2D
path = trapezoid(w1=40, w2=20, h=30);
stroke(path, closed=true, endcap2="arrow2");
```

```openscad-2D
path = circle(d=50);
stroke(path, closed=true, endcap2="arrow2");
```

```openscad-2D
path = oval(d=[50,30]);
stroke(path, closed=true, endcap2="arrow2");
```

```openscad-2D
path = pentagon(d=50);
stroke(path, closed=true, endcap2="arrow2");
```

```openscad-2D
path = star(n=5, step=2, d=50);
stroke(path, closed=true, endcap2="arrow2");
```

### Arcs
Often, when you are constructing a path, you will want to add an arc.  The `arc()` command lets you do that:

```openscad-2D
path = arc(r=30, angle=120);
stroke(path, endcap2="arrow2");
```

```openscad-2D
path = arc(d=60, angle=120);
stroke(path, endcap2="arrow2");
```

If you give the `N=` argument, you can control exactly how many points the arc is divided into:

```openscad-2D
path = arc(N=5, r=30, angle=120);
stroke(path, endcap2="arrow2");
```

With the `start=` argument, you can start the arc somewhere other than the X+ axis:

```openscad-2D
path = arc(start=45, r=30, angle=120);
stroke(path, endcap2="arrow2");
```

Alternatively, you can give starting and ending angles in a list in the `angle=` argument:

```openscad-2D
path = arc(angle=[120,45], r=30);
stroke(path, endcap2="arrow2");
```

The `cp=` argument lets you center the arc somewhere other than the origin:

```openscad-2D
path = arc(cp=[10,0], r=30, angle=120);
stroke(path, endcap2="arrow2");
```

The arc can also be given by three points on the arc:

```openscad-2D
pts = [[-15,10],[0,20],[35,-5]];
path = arc(points=pts);
stroke(path, endcap2="arrow2");
```

### Turtle Graphics
Another way you can create a path is using the `turtle()` command.  It implements a simple path
description language that is similar to LOGO Turtle Graphics. The concept is that you have a virtial
turtle or cursor walking a path.  It can "move" forward or backward, or turn "left" or "right" in
place:

```openscad-2D
path = turtle([
    "move", 10,
    "left", 90,
    "move", 20,
    "left", 135,
    "move", 10*sqrt(2),
    "right", 90,
    "move", 10*sqrt(2),
    "left", 135,
    "move", 20
]);
stroke(path, endcap2="arrow2");
```

The position and the facing of the turtle/cursor updates after each command.  The motion and turning
commands can also have default distances or angles given:

```openscad-2D
path = turtle([
    "angle",360/6,
    "length",10,
    "move","turn",
    "move","turn",
    "move","turn",
    "move","turn",
    "move"
]);
stroke(path, endcap2="arrow2");
```

You can use "scale" to relatively scale up the default motion length:

```openscad-2D
path = turtle([
    "angle",360/6,
    "length",10,
    "move","turn",
    "move","turn",
    "scale",2,
    "move","turn",
    "move","turn",
    "scale",0.5,
    "move"
]);
stroke(path, endcap2="arrow2");
```

Sequences of commands can be repeated using the "repeat" command:

```openscad-2D
path=turtle([
    "angle",360/5,
    "length",10,
    "repeat",5,["move","turn"]
]);
stroke(path, endcap2="arrow2");
```

More complicated commands also exist, including those that form arcs:

```openscad-2D
path = turtle([
    "move", 10,
    "left", 90,
    "move", 20,
    "arcleft", 10, 180,
    "move", 20
]);
stroke(path, endcap2="arrow2");
```

A comprehensive list of supported turtle commands can be found in the docs for [`turtle()`](shapes2d.scad#turtle).

### Transforming Paths and Polygons
To translate a path, you can just pass it to the `move()` (or up/down/left/right/fwd/back) function in the `p=` argument:

```openscad-2D
path = move([-15,-30], p=square(50,center=true));
stroke(path, closed=true, endcap2="arrow2");
```

```openscad-2D
path = fwd(30, p=square(50,center=true));
stroke(path, closed=true, endcap2="arrow2");
```

```openscad-2D
path = left(30, p=square(50,center=true));
stroke(path, closed=true, endcap2="arrow2");
```

To scale a path, you can just pass it to the `scale()` (or [xyz]scale) function in the `p=` argument:

```openscad-2D
path = scale([1.5,0.75], p=square(50,center=true));
stroke(path, closed=true, endcap2="arrow2");
```

```openscad-2D
path = xscale(1.5, p=square(50,center=true));
stroke(path, closed=true, endcap2="arrow2");
```

```openscad-2D
path = yscale(1.5, p=square(50,center=true));
stroke(path, closed=true, endcap2="arrow2");
```

To rotate a path, just can pass it to the `rot()` (or [xyz]rot) function in the `p=` argument:

```openscad-2D
path = rot(30, p=square(50,center=true));
stroke(path, closed=true, endcap2="arrow2");
```

```openscad-2D
path = zrot(30, p=square(50,center=true));
stroke(path, closed=true, endcap2="arrow2");
```

To mirror a path, just can pass it to the `mirror()` (or [xyz]flip) function in the `p=` argument:

```openscad-2D
path = mirror([1,1], p=trapezoid(w1=40, w2=10, h=25));
stroke(path, closed=true, endcap2="arrow2");
```

```openscad-2D
path = xflip(p=trapezoid(w1=40, w2=10, h=25));
stroke(path, closed=true, endcap2="arrow2");
```

```openscad-2D
path = yflip(p=trapezoid(w1=40, w2=10, h=25));
stroke(path, closed=true, endcap2="arrow2");
```

You can get raw transformation matrices for various transformations by calling them like a function without a `p=` argument:

```openscad-2D
mat = move([5,10,0]);
multmatrix(mat) square(50,center=true);
```

```openscad-2D
mat = scale([1.5,0.75,1]);
multmatrix(mat) square(50,center=true);
```

```openscad-2D
mat = rot(30);
multmatrix(mat) square(50,center=true);
```

Raw transformation matrices can be multiplied together to precalculate a compound transformation.  For example, to scale a shape, then rotate it, then translate the result, you can do something like:

```openscad-2D
mat = move([5,10,0]) * rot(30) * scale([1.5,0.75,1]);
multmatrix(mat) square(50,center=true);
```

To apply a compound transformation matrix to a path, you can use the `apply()` function:

```openscad-2D
mat = move([5,10]) * rot(30, planar=true) * scale([1.5,0.75]);
path = square(50,center=true);
tpath = apply(mat, path);
stroke(tpath, endcap2="arrow2");
```

### Regions
A polygon is good to denote a single closed 2D shape with no holes in it.  For more complex 2D
shapes, you will need to use regions.  A region is a list of 2D polygons, where each polygon is
XORed against all the others.  You can display a region using the `region()` module.

If you have a region with one polygon fully inside another, it makes a hole:

```openscad-2D
rgn = [square(50,center=true), circle(d=30)];
region(rgn);
```

If you have a region with multiple polygons that are not contained by any others, they make multiple discontiguous shapes:

```openscad-2D
rgn = [
    move([-30, 20], p=square(20,center=true)),
    move([  0,-20], p=trapezoid(w1=20, w2=10, h=20)),
    move([ 30, 20], p=square(20,center=true)),
];
region(rgn);
```

Region polygons can be nested abitrarily deep, in multiple discontiguous shapes:

```openscad-2D
rgn = [
    for (d=[50:-10:10]) left(30, p=circle(d=d)),
    for (d=[50:-10:10]) right(30, p=circle(d=d))
];
region(rgn);
```

A region with crossing polygons is somewhat poorly formed, but the intersection(s) of the polygons become holes:

```openscad-2D
rgn = [
    left(15, p=circle(d=50)),
    right(15, p=circle(d=50))
];
region(rgn);
```

### Boolean Region Geometry
Similarly to how OpenSCAD can perform operations like union/difference/intersection/offset on shape geometry,
the BOSL2 library lets you perform those same operations on regions:

```openscad-2D
rgn1 = [for (d=[40:-10:10]) circle(d=d)];
rgn2 = [square([60,12], center=true)];
rgn = union(rgn1, rgn2);
region(rgn);
```

```openscad-2D
rgn1 = [for (d=[40:-10:10]) circle(d=d)];
rgn2 = [square([60,12], center=true)];
rgn = difference(rgn1, rgn2);
region(rgn);
```

```openscad-2D
rgn1 = [for (d=[40:-10:10]) circle(d=d)];
rgn2 = [square([60,12], center=true)];
rgn = intersection(rgn1, rgn2);
region(rgn);
```

```openscad-2D
rgn1 = [for (d=[40:-10:10]) circle(d=d)];
rgn2 = [square([60,12], center=true)];
rgn = exclusive_or(rgn1, rgn2);
region(rgn);
```

```openscad-2D
orig_rgn = [star(n=5, step=2, d=50)];
rgn = offset(orig_rgn, r=-3, closed=true);
color("blue") region(orig_rgn);
region(rgn);
```

You can use regions for several useful things.  If you wanted a grid of holes in your object that
form the shape given by a region, you can do that with `grid2d()`:

```openscad-3D
rgn = [
    circle(d=100),
    star(n=5,step=2,d=100,spin=90)
];
difference() {
    cyl(h=5, d=120);
    grid2d(size=[120,120], spacing=[4,4], inside=rgn) cyl(h=10,d=2);
}
```

You can also sweep a region through 3-space to make a solid:

```openscad-3D
$fa=1; $fs=1;
rgn = [ for (d=[50:-10:10]) circle(d=d) ];
tforms = [
    for (a=[90:-5:0]) xrot(a, cp=[0,-70]),
    for (a=[0:5:90]) xrot(a, cp=[0,70]),
    move([0,150,-70]) * xrot(90),
];
sweep(rgn, tforms, closed=false, caps=true);
```


text:
+++
title = "Do an internship"
description = """
My internship helped me a lot, and I think more people should consider them
"""
slug="do-an-internship"
date = 2021-02-22
+++

Should you find yourself in further education, or are otherwise looking to get
started in an industry, I'd strongly recommend taking part in an internship. I
personally found mine incredibly helpful as an undergraduate student. It boosted
my confidence, gave me a better idea of what direction I wanted to take my
career in the future, and made it easier to get started once I left university.

My experience was working as a software developer in a private corporation. Even
if you're not looking at the same field or the private sector, I'd still
recommend an internship. While I might mention a few things that are specific to
my field, I hope this article helps anyone who's entering a new field or heading
into their first real job.

## A break from academia

If you're young, chances are you've spent most of your last decade in full-time
education, continuously working from exam to exam. At several points throughout
my student life I've found it difficult to find the motivation to study and felt
drained from stressing about my performance. Taking a break from the education
system helped me find the motivation to finish my studies, gained me some
perspective on just how different life is in the professional world, and how
much I preferred it. I felt much more motivated and engaged during my placement
than I had been for years as a student.

An important part of professional life is setting strong boundaries between
working and non-working hours. Having set hours means no guilt over not
working on those assignments or revising or doing some last minute adjustments
to coursework. Outside of those set hours, work isn't on my mind.
In any respectable organisation, you'll be able to determine what hours you work
and, unless you give consent to the contrary, you won't be expected to concern
yourself with work outside those hours.

Another motivator is receiving compensation. Knowing that you're being paid for
your work makes it much easier to concentrate and get your work day done.
 Earning some savings during
your internship can provide an additional cushion to get you started once you
move into a permanent position.

## Developing yourself

While you've likely learned a lot during your studies, it takes an additional
set of skills to apply them effectively when working in a team. If you're lucky
you'll have worked on a group project and have some firsthand experience. It
takes time to learn how to effectively communicate, plan & organise (team) work,
document information for others, and use other tools of your trade. In software
engineering specifically, that means learning to use version control software,
issue tracking systems, writing technical documentation for your fellow
engineers, and non-technical documentation for others. In each of these there
are additional considerations that arise when working in a large team, and when
joining an existing project.

Learning is a big part of any internship (or any job, for that matter), but
getting to apply your existing knowledge and skills is very satisfying. While
you'll likely experience some imposter syndrome at the start, you'll soon accept
that your fears over your own competence were unfounded, and that you deserve
the internship position that was offered to you. That'll also help you realise
that, yes, you actually are ready for the "real world". At the end of the
experience there's a good chance you'll be offered a permanent position, which
will give you more options when leaving academia and ease that transition.

## Getting used to full-time work

The first issue I struggled with was imposter syndrome: feelings of inadequacy
and concerns over how I was performing. My first project was initially a solo
one, which I kicked off. While I had a coworker beside me to ask any questions
to, my lack of experience made it difficult to gauge my rate of progress and
what was expected. After a couple of weeks my manager let me know that he was
happy with how things were going. This alleviated my concerns for a while, but
the occasional doubts crept in during the first few months.

Continued positive feedback on my performance eventually convinced me there was
no need to worry, and that I was doing well. I realised that feedback typically
comes infrequently, and lack of it usually means things are fine; any manager
will let you know when they have concerns (and if any managers are reading this:
remember that your interns need more feedback than experienced professionals!).
I also could have simply asked for feedback, especially when I was unsure of how
I was doing. It's also always a good idea to ask for feedback during your
reviews so you know how you can improve.

Burning out was also a concern. On quite a few days in my first weeks, I
finished work later than I needed to due to being too engrossed in my work, or
trying to wrap things up before I left for the day. Over time I realised this
was causing me to feel a lot more tired after work than I would be otherwise.
It takes some time to find the proper balance while working in a full-time job.
Work can be both physically and mentally draining, and overworking yourself will
simply result in both diminishing returns and unhappiness.

It's okay to give yourself breaks and take your mind off your work for a little
while, especially when you feel like you're not getting anywhere. In creative
jobs, breaks give you a chance to reset, figure out different ways of
approaching your work, and notice mistakes and missed avenues. It's not
sustainable to apply your full effort at all times. When you have some down-time
or feel like you need a break from your main task, swap to a less draining one
like writing documentation or doing some related reading.

## Keep in mind

Make sure that you're being appropriately compensated for your work. Put some
time into researching the average salaries for the position you're looking at,
both internship and permanent. Make sure that the compensation fully covers your
living expenses and leaves a comfortable amount to spare. I'd strongly recommend
against taking an unpaid position, especially a long-term one.

Sadly, private companies tend to offer salaries that are much lower than what
they'd offer a permanent candidate. I'd personally suggest being wary of
internships that offer low salaries, especially if you're hoping for an offer
for a permanent position after it is completed. A company that starts you off
with a low salary is likely to keep offering you low salaries if you continue
with them.

If you're looking for a year-long student placement while you're at university,
I'd suggest researching if you can suspend your studies during it. I did my
placement as part of my degree, during which I was charged 20% of my normal
tuition fee despite receiving almost no university work or contact hours.

An internship should give you experience that you can directly apply in the
field you're looking to work in after the internship. Be sure to check and ask
about the responsibilities of the positions you're looking at, ensuring that
they would be useful to your career - try to find things you could to
mention to prospective employers in the future. If find yourself regularly being
tasked with menial work unrelated to your field, I'd suggest talking to your
manager about it, and potentially leaving your internship if things don't
improve.

Finally, make sure to hydrate yourself throughout the day, and in desk jobs, get
up every now and then to exercise your legs!

## After your internship

Getting some first-hand experience in a job tells you another thing: what your
preferences are. A good internship will expose you to a variety of aspects of
your field, e.g. frontend/backend website/application development, different
technologies, different roles within a team. You'll also have found out *how* you
like to work. Do you dislike wearing a suit to work? How do you feel about open
offices? Would you prefer flexitime or remote working over a traditional 9-5
in-office work week? This helps inform your choices after your internship, i.e.,
what kind of roles you look for, and in which kinds of organisations. Make sure
to ask about the things that are important to you in future interviews.

In the end, a good internship offers some invaluable benefits: work experience,
a positive reference, and a foot in the door. Even if you're not offered a full
time position or choose not to accept it, having your internship on your résumé
will show employers that you've proven your abilities in the past.

<!--
* Don't let yourself be underpaid/overworked
* Make sure you're getting relevant experience
* Avoid paying tuition fees in a year in industry -->

repository: williamvds/website

repo_name: williamvds/website


text:
# EDID for [Kaitai Struct](http://kaitai.io)

This repository contains specification for EDID EEPROM structure, used by
many monitors to report their identification and supported features.

These specs can be used both as a concise human-readable reference and a
format specification suitable for generation of parsers in any target
languages that Kaitai Struct supports.

## References

TODO

## Test data sources

* data/Samsung_SMBX2240.edid - https://github.com/smortex/edid-extract


text:
# footmark
python sdk for aliyun, and give ansible-module used first

## Install footmark
footmark can be intalled conveniently via pip:

	$ sudo pip install footmark
and it can be upgrade via following command:

    $ sudo pip install footmark --upgrade

## Config footmark
By default we use two locations for the footmark configurations, which '/etc/footmark/' and '~/.footmark'. And location '~/.footmark' works on Windows and Unix.
All of footmark's configurations files exist in the locations, and you can configure your footmark by modifying them. At present, footmark only support custom logging.
Footmark logs exist in the '/var/log/footmark', and it only retains the logs last 7 days.

## Unittest footmark
If you want to test footmark use unittest, you should use following command to install dependence packages:

	$ sudo pip install mock nose nose_htmloutput importlib
Warning: If you run it in the Mac, it will failed and raise an error 'OSError: [Errno 1] Operation not permitted:'. The best way to solve it is run it in the virtualenv.

## Package footmark
When you modify footmark, you need to package and distribute it. First, you need to edit footmark/__init__.py and set a new version to '__version__ '. Second execute command as follows:

    # build footmark package
    $ python setup.py sdist

    # make sure your enviroment has installed twine, if not, execute command:
    $ sudo pip install twine

    # distribute new footmark
    # upload your project
	$ twine upload dist/<your-footmark-package>
Finally, upgrade footmark and check it.


text:
---
layout: default
title: Deploy a web app on managed Kubernetes
parent: Top Use Cases
nav_order: 1
---

# Deploy a web app on managed Kubernetes
{: .no_toc }

This tutorial shows you how to package a web application in a Docker container image, and run that container image on a Kubernetes cluster as a load-balanced set of replicas that can scale to the needs of your users.

To package and deploy your application on Kubernetes, you must:

1. TOC
{:toc}

## Package your app into a Docker image

## Run the container locally on your machine (optional)

## Upload the image to a registry

## Create a container cluster

## Deploy your app to the cluster

## Expose your app to the Internet

## Scale up your deployment

## Deploy a new version of your app

gha_language: CSS


text:
# House Robber
You a robber planning to rob houses along a street. Each house has a certain amount of money stashed. If two adjacent houses are robbed, police will be called.
Given a list of non-negative integers representing the amount of money of each house, determine the maximum amount of money you can rob tonight without alerting the police.

# Solutions:

# Swift
```
O(n)
```

# C++
```
O(n)
```

# Installation
Run `make` to build and run Swift files. Or you can run `.playground` file.

repository: Voley/Algorithmic-Problems

repo_name: Voley/Algorithmic-Problems


text:
This plug-in allows TeamCity builds to trigger deployments in Octopus Deploy.

**Please raise and track issues for this project [here](https://github.com/OctopusDeploy/Issues/issues/).**

## Get the plugin

Download the plugin from [the Octopus Deploy downloads page](http://octopusdeploy.com/downloads) or the [JetBrains plugins downloads](<https://plugins.jetbrains.com/plugin/9038-octopus-deploy>).

Installation and usage instructions are available in [the Octopus Deploy documentation](http://octopusdeploy.com/documentation/integration/teamcity).

## Building

To build the plugin from code:

 1. Install the latest version of the JDK
 2. Install TeamCity
 4. Run `mvnw -Dteamcity.distribution=C:\TeamCity clean package` (set the TeamCity
    directory to the location where you extracted or installed TeamCity locally).
    The `mvnw` script will download Maven for you if it is not already installed.
 5. The plugin is available at `octopus-distribution/target/Octopus.TeamCity.zip`

## Editing and debugging in IntelliJ

1. Install TeamCity locally to `C:\TeamCity`. Allow the service to start for the first time, and add an
   admin user. Then stop the service so it is not running.
2. Give yourself full permissions to the Teamcity Data folder (usually `C:\ProgramData\JetBrains\TeamCity`).
   This folder may be hidden.
3. Import the Maven project into IntelliJ.
4. Create a Tomcat Configuration:
    1. Click Run -> Edit Configurations.
    2. Click the plus button and select Tomcat -> Local
       ![Run Configuration - Startup](https://raw.githubusercontent.com/OctopusDeploy/Octopus-TeamCity/master/TomcatLocal.PNG)
    3. Click the `Configure...` button next to the `Application Server:` option.
    4. Set the `Tomcat Home` option to the location of your TeamCity installation (probably `C:\TeamCity`).
        ![Run Configuration - Startup](https://raw.githubusercontent.com/OctopusDeploy/Octopus-TeamCity/master/TomcatServer.PNG)
    5. Click the `OK` button.
6. Under the `Startup/Connection` tab, set the `Startup script` to `C:\TeamCity\bin\teamcity-server.bat run` and
   the `Shutdown script` to `C:\TeamCity\bin\teamcity-server.bat stop`. Do this for both the `Run` and `Debug`
   environments.
5. Ensure that the `Before launch` list includes the step `Run Maven goal 'Octopus Deploy TeamCity plugin: package'`.
6. Run the `copy-plugin.cmd` script as an external tool after the Maven goal. This will copy the plugin to TeamCity.
6. Ignore the `Warning: No artifacts configured` message.
   ![Run Configuration - Startup](https://raw.githubusercontent.com/OctopusDeploy/Octopus-TeamCity/master/TomcatStartup.PNG)
7. Click the `OK` button to save your changes.

At this point the you can run TeamCity from IntelliJ. If need be you can run  TeamCity in debug mode and step
through the plugin code as it is executed by TeamCity.

## Updating the version of Octopus CLI we embed

If the Octopus CLI has changed such that we need to update the version we embed with the plugin the steps are as follows:

- Locate the build in TeamCity and navigate to the Artifacts tab
- Expand the OctopusTools.Zips.*version*.zip file
- Download `octo.exe` from the OctopusTools.*version*.zip file. Also download the OctopusTools.*version*.portable.zip file
  ![Artifacts](artifacts.png)
- Rename the latter to `OctopusTools.portable.zip` and then copy them into the `\octopus-agent\src\main\resources\resources\3\0` folder, over the existing files

## Publishing a new version to the JetBrains Marketplace

_Currently we manually publish new versions of the TeamCity plugin directly in the JetBrains Marketplace due to the lack of support for specifying release notes as part of publishing via `cUrl` or `gradle`, once they've [added support for this](https://youtrack.jetbrains.com/issue/MP-2369) we will automate this part of the process._

1. Tag `master` with the next `major.minor.patch` version and wait for the tag to be built by TeamCity
2. Download the `Octopus.TeamCity.zip` artifact from the TeamCity Plugin build
    ![Download artifact from TeamCity](DownloadArtifact.png)
3. Login to the [JetBrains Marketplace](https://plugins.jetbrains.com/plugin/9038-octopus-deploy-integration) using the "Jetbrains account" credentials from the password manager.
4. Click the `Edit` button in the top right corner
    ![Edit plugin](EditPlugin.png)
5. Choose the artifact that you downloaded from TeamCity
6. Leave the `Channel` as `Stable`
7. Enter the release notes for the version of the plugin that your creating. **Note:** The `Change Notes` field does not support `Markdown` it only supports `Html`.
8. Click `Upload new build` to publish the new version of the TeamCity plugin

repository: michaelpearce-gain/Octopus-TeamCity

gha_license_id: NOASSERTION

repo_name: michaelpearce-gain/Octopus-TeamCity


text:
# microRNA-targets
This Python script is used to find potential animal miRNA seed binding sites. Basically, this script is used to find a small RNA sequence pattern (6-8 characters long) in a database of longer RNA seqences. For fast searching, longer RNA sequences are stored in a hash table.

## input arguments:
It takes 3 parameter: target sequences (Fasta file), miRNA sequences (Fasta file) and seed length(6,7 and 8).

### target sequences/miRNA files should be in FASTA format as follows
```
>sequence_id
ATCTGTTTGTCAA
```

"id" will be used in the output files.

### seed length

6 => sequence starting at position 2 (from 5' side of miRNA seq.)  to position 7

7 => sequence starting at position 2 (from 5' side of miRNA seq.)  to position 8  *** Recommended***

8 => sequence starting at position 1 (from 5' side of miRNA seq.)  to position 8

## Output files

1. `7mers.txt` (If you choose seed length = 7, each row represents a miRNA-3'UTR pair. It gives info. about how many sites are in the target sequence and p-Value indicating how likely to see this number of hits in this region.

2. `7mers_hits.txt`: gives info. about individual hit (start position of the hit in the target region).

## Example run on Linux command line:
```
python3 miRNA_targets_v0.3.py   3utr.fasta miRNA_sequences.fasta      7
```

repository: Fadeel/microRNA-targets

repo_name: Fadeel/microRNA-targets


text:
# one-workflow-many-ways
Implementing bamqc over and over again to get an idea of how easy or hard it is for a beginner to implement a basic workflow in different workflow systems.

## The Workflow

1. Run `samtools flagstat` and perform some command-line operations to turn it into a JSON file
2. Run `bamqc.pl`, a script we created in-house, in order to pull some stats about a BAM file. This step also takes in the JSON from the first step and includes it in the results.

An example result file is here: [results/neat_5x_EX_hg19_chr21.json](results/neat_5x_EX_hg19_chr21.json).

## Continuous Integration Misused

Rather than needing to re-install all the software dependencies for every workflow system all the time, I am misusing [TravisCI](https://travis-ci.org/) for this purpose. The base [.travis.yml](.travis.yml) installs the dependencies for the actual tools (see 'Requirements' below). Each of the 'run_X.sh' scripts in the root directory installs the dependencies for each workflow system and then actually launches the tools.

So far I have the following implemented:
- bash run with bash
- [Workflow Description Language (WDL)](https://software.broadinstitute.org/wdl/) run with [Cromwell](http://cromwell.readthedocs.io/en/develop/)
- [common workflow language (CWL)](https://github.com/common-workflow-language/common-workflow-language) run with [cwltool](https://github.com/common-workflow-language/cwltool)
- [common workflow language (CWL)](https://github.com/common-workflow-language/common-workflow-language) run with [Toil](https://toil.readthedocs.io)
- WDL with Toil: broken, see the wiki for details

See the last runs here: [![Build Status](https://travis-ci.org/morgantaschuk/one-workflow-many-ways.svg)](https://travis-ci.org/morgantaschuk/one-workflow-many-ways) https://travis-ci.org/morgantaschuk/one-workflow-many-ways

## Download

To clone this repository and get all the submodules

    git clone --recurse-submodules git@github.com:morgantaschuk/one-workflow-many-ways.git

## Requirements

This is only required if you plan to run this on your own machine. Most of the time I will be using TravisCI for the same (see above). See [.travis.yml](.travis.yml) for Ubuntu installation tips.

* perl 5.26+
* samtools
* R-base
* bamqc and gsi-website (git submodules) installed

## Run

Setup: `bash replacepaths.sh`

Then launch any of the `run_X.sh` commands. They take no arguments

**Bash**

    bash run_bash.sh

**CWL on cwltool**

    bash run_cwltool.sh

**WDL on Cromwell**

    bash run_cromwell.sh

**CWL on Toil**

    bash run_toil_cwl.sh

## Clean up all the things

The various workflow systems produces a *lot* of files in this directory. To torch 'em all, use:

    git clean -f -x

To refresh the submodules after something messes with them

    git submodule update --remote bamqc gsi-website

# Thoughts and Results

Check the wiki: https://github.com/morgantaschuk/one-workflow-many-ways/wiki

repository: NatalieEO/one-workflow-many-ways

repo_name: NatalieEO/one-workflow-many-ways


text:
## Changelog for experiment.json

### Schema version 37

* Upgraded *internal_tags* as follows:
    * *ENCYCLOPEDIAv3* is now *ENCYCLOPEDIAv0.3*
    * *ENCYCLOPEDIAv4* is now *ENCYCLOPEDIAv1*
    * *ENCYCLOPEDIAv5* is now *ENCYCLOPEDIAv2*
    * *ENCYCLOPEDIAv6* is now *ENCYCLOPEDIAv3*

### Minor changes since schema version 36
* Added *bio_replicate_count* and *tech_replicate_count* for the respective counts of the embedded replicates as a calculated property
* Added *biological_replicates* with a formatted text version of biological replicates as a calculated property
* Added *simple_biosample_summary* truncated version of biosample_summary as calculated property
* Added *Deeply Profiled* to the *internal_tags* enum
* Added *related_annotations* calculated property
* Added *seqFISH* to *assay_term_name* enum
* Added *Degron* to *internal_tags* enums list.
* Added *RegulomeDB_2_2*, *RegulomeDB_2_3*, *RegulomeDB_3_0* and *RegulomeDB_3_1* to the *internal_tags* enum list.

### Schema version 36
* Added *LC/MS label-free quantitative proteomics*, *LC-MS/MS isobaric label quantitative proteomics*, and *Ribo-seq* to *assay_term_name* enum. *assay_term_name* enum *Capture Hi-C* was changed to *capture Hi-C*

### Schema version 35
* Updated the *internal_tags* enum from *RegulomeDB* to *RegulomeDB_1_0*
* Added *RegulomeDB_2_0* and *RegulomeDB_2_1* to the *internal_tags* enum list.

### Minor changes since schema version 34
* Added *ENCYCLOPEDIAv6* to *internal_tags* enums list
* Added *RushAD* and *YaleImmuneCells* to the *internal_tags* enum

### Schema version 34
* Changed the *analysis_objects* property to be *analyses*

### Schema version 33
* Removed *single-cell ATAC-seq* from *assay_term_name* enum and remapped to *single-nucleus ATAC-seq*

### Schema version 32

* Added *GRO-cap*, *GRO-seq*, and *long read single-cell RNA-seq* to *assay_term_name* enum;  *single-nucleus RNA-seq* and *genotyping by high throughput sequencing assay* were removed and remapped to *single-cell RNA sequencing assay* and *whole genome sequencing assay* respectively

### Minor changes since schema version 31
* Added *Capture Hi-C* and *single-nucleus RNA-seq* to *assay_term_name* enum
* Added *LRGASP* to the *internal_tags* enum
* Added *doi* property

### Schema version 31

* Removed the *analyses* property.

### Minor changes since schema version 30
* Added *analysis_objects* property.
* Added *SPRITE-IP* to *assay_term_name* enum
* Added *life_stage_age* calculated property that summarizes the life stage and age of the biosamples used in the experiment.
* Small RNA-seq experiments (with libraries of fragments <200 nucleotides long) may be submitted with *assay_term_name* enum: *small RNA-seq*.
* Added *CUT&Tag* to *assay_term_name* enum
* *SCREEN-GRCh38* and *SCREEN-mm10* can now be linked to an experiment under external resources (dbxrefs).

### Schema version 30

* *assay_term_name* enum *single cell isolation followed by RNA-seq* was changed to *single-cell RNA sequencing assay*

### Minor changes since schema version 29
* Added *wild type* enum to *control_type*

### Schema version 29

* The *internal_status* enum was adjusted to remove *requires lab review* and *unrunnable*; *pre-pipeline review* and *post-pipeline review* were added.

### Minor changes since schema version 28

* Removed FCC *assay_term_name* enums *STARR-seq*, *MPRA*, *CRISPR screen*, and *pooled clone sequencing* from Experiment schema. They are to be used only in FunctionalCharacterizationExperiment objects
* Removed *month_released* calculated property.
* Added *analyses* property.
* Added *protein_tags* calculated property that specifies the protein tags introduced through genetic modification of the biosamples investigated in the experiment.
* *FactorBook* can now be linked to an experiment under external resources (dbxrefs).
* Added *analyses.assemblies*, *analyses.genome_annotations* and *analyses.pipelines* calculated property.

### Schema version 28

* Removed required property *experiment_classification*.

### Schema version 27

* *assay_term_name* enum *single-nuclei ATAC-seq* was changed to *single-nucleus ATAC-seq*

### Minor changes since schema version 26

* Added *MouseDevSeries* enum to *internal_tags*
* *assay_term_name* enums *STARR-seq*, *MPRA*, *CRISPR screen* and *pooled clone sequencing* is restricted for submission by admins only.
* *experiment_classification* *functional characterization assay* is restricted for specification and submission by admins only.
* Added *control_type*

### Schema version 26

* Replace *ISO-seq* with *long read RNA-seq* in *assay_term_name*.

### Schema version 25

* Remove *biosample_type*, *biosample_term_id* and *biosample_term_name*.

### Schema version 24

* *internal_tags* removes *cre_inputv10* and *cre_inputv11*, and adds *ENCYCLOPEDIAv5*, *ccre_inputv1*, and *ccre_inputv2*.

### Schema version 23

* Link to BiosampleType object.

### Schema version 22

* Removed *induced pluripotent stem cell line* and *stem cell* from *biosample_type* enums.

### Schema version 21

* Added required property *experiment_classification* with enums *functional genomics assay* and *functional characterization assay*

### Minor changes since schema version 20

* *possible_controls* property allows specification of any type of Dataset as possible control

### Schema version 20

* Added *organoid* to *biosample_type* enums.

### Schema version 19

* Make *date_submitted* value a required property for objects in status *submitted*

### Schema version 18

* Replace enum *started* in *status* with *in progress*.

### Schema version 17

* Replace the *status* field value *ready for review* by *submitted*. Make the *status* field editable by DCC personnel only.
* Added *single cell* to *biosample_type* enums

### Schema version 16

* Replace *immortalized cell line* with *cell line* in *biosample_type* enum

### Schema version 15

* The *biosample_type* enum *in vitro sample* has been renamed to *cell-free sample* and requires an accompanying *biosample_term_id* (of type NTR)

### Schema version 14

* Remove *proposed* from *status* enum (*dataset* mixin).

### Schema version 13

* *biosample_type* property is required
* *biosample_term_id* is required for all experiments except experiment with *biosample_type* *in vitro sample*, consistency between the biosample type and ontology *term_id* is validated by schema dependency

### Schema version 12

* *alternate_accessions* now must match accession format, "ENCSR..." or "TSTSR..."
* *date_submitted* property was added to indicate when submission requirements were met. This value is assigned by the DCC.

### Schema version 11

* *aliases* now must be properly namespaced according lab.name:alphanumeric characters with no leading or trailing spaces
* unsafe characters such as " # @ % ^ & | ~ ; ` [ ] { } and consecutive whitespaces will no longer be allowed in the alias

### Schema version 10

* *assay_term_name* is now a required property
* *assay_term_id* is no longer allowed to be submitted, it will be automatically calculated based on the *term_name*

### Schema version 9

* *status* enum was restricted to:
    "enum" : [
        "proposed",
        "started",
        "submitted",
        "ready for review",
        "deleted",
        "released",
        "revoked",
        "archived",
        "replaced"
    ]

### Schema version 8

* Array properties *possible_controls*, *dbxrefs*, *aliases*, *references*, and *documents* were updated to allow for only unique elements within them.

### Schema version 5

* *biosample_type* enum value changed from *primary cell line* to *primary cell*.

repository: ENCODE-DCC/encoded

branch_name: refs/heads/dev

repo_name: ENCODE-DCC/encoded


text:
![](./logo/logox3.png)

A small feature library that makes it easier to manipulate objects
## Overview

It is tiny but very useful and can help you handle javascript native objects. Data-driven interface development is very common today, we are in the [angular](https://github.com/angular/angular), [react](http://www.github.com/facebook/react), [vue](http://www.github.com/vuejs/vue) will encounter a lot of object processing, including set the default value, query, assignment, etc., scalpel is born for this scene.

jscalpel is little poor, gzip less than **3k**, so a library you can use it anytime, anywhere without worrying about anything.

## Document

#### View the document please visit [https://ihtml5.github.io/jscalpel/](https://ihtml5.github.io/jscalpel/)

## Installation

#### Install using npm
[![jscalpel](https://nodei.co/npm/jscalpel.png)](https://npmjs.org/package/jscalpel)
```
npm install jscalpel --save
yarn add jscalpel --save
```

## Useage

#### Es6
```javascript
  import Jscalpel from 'jscalpel'
```
#### Include in html
```javascript
  <script charset="utf-8"<EMAIL_ADDRESS>```

## Changelog

#### 2017.9.11

在使用dynamicKeys(动态keys)时禁用prefix

#### 2017.9.14

增加jscalpelLogic插件，减少ifelse，使运行逻辑可配置

repository: webjohnjiang/jscalpel

repo_name: webjohnjiang/jscalpel


text:
# CRUD App Tutorial

This contains the finished code for the tutorial on [building a CRUD dApp](https://docs.near.org/docs/tutorials/apps/todos-crud-app)

# Notes

The application will consist of two distinct layers:

- Smart contract (in web2 we may refer to this as server-side or back-end)
- Web app (in web2 we may refer to this as client-side or front-end)

## Working

**Contracts: `/todos-crud-contract/`**
1. install dependencies `cd todos-crud-contract && yarn`
2. run tests - `yarn test`
3. compile the contract - `yarn build`
4. deploy the contract - `yarn deploy`

**App Tests: `/todos-crud-web/`**
1. install dependencies `cd todos-crud-web && yarn`
2. start the server - `yarn start`

## Notes

- If you deploy the contract, make sure to edit the `CONTRACT_NAME` found in `todos-crud-web/src/config.js` to match your deployed contract.
- You must be logged in to interact with the app. If you don't have a NEAR wallet, click [here](https://wallet.testnet.near.org/) to make one.

repository: Fudeveloper/crud-tutorial

repo_name: Fudeveloper/crud-tutorial


text:
---
title: Learning how to use google sheets
layout: post
author: rory.sanders
permalink: /learning-how-to-use-google-sheets/
source-id: 1wi6ETYX4JrOj5K-LuEsAqc0oAxBYttH0oBnxKAXoqME
published: true
---

    Title:
    Learning how to use google sheets
     Date:
    6/1/17

    Starting point:
    I had no knowledge of how to use google sheets

    Target for this lesson?
    To make a calculator which could be used in a shop

    Did I reach my target?
(add details to "Lesson Review")
    Yes, as I made a fully functional calculator

    Lesson Review

    How did I learn? What strategies were effective?

    I learned by Listening to Mr Tansley and by making educated guesses and experimenting with coding, which was very effective, as my calculator was a little different to the one that Mr Tansley showed us, but did exactly the same thing.

    What limited my learning? Which habits do I need to work on?

    It all went very well and I was able to make a working calculator, but I could have coded it much faster instead of typing in instructions into most cells.

    What will I change for next time? How will I improve my learning?

    Next time I will make sure that I use a technique which allows me to get lots of the cells to do the same thing without typing in instructions to each one.


text:
---
layout: post
title:  "Tingly pork and braised greens"
date:   2021-02-06 17:51:00
author: oli
image: "/images/blog/tingly-pork/tingly-pork-004.jpg"
tags: ["pork", "chinese", "greens", "2021"]
---

I love Chinese meals of rice, greens and meat.  This months meatbox had a lovely slab of pork belly in it so I got to scratch my itch and try using the Unknown Tingly Green Sauce I last had it in [Tingly Chinese Chicken]({{< ref "2021-01-14-tingly-chinese-chicken.markdown" >}})

Right now there are huge bags of "greens" in the supermarkets.  They're super cheap (80p for a kilo) and perfect for braising

## You will need

### For the braised greens

* A big handful of greens, washed but left on stem
* A splay of soy
* A few lemon wedges
* A big pinch of ginger
* A splay of sherry
* A clove of garlic, peeled but whole

### For the tingly pork

* A piece of pork belly, cut into roughly 1 inch pieces
* A heaped teaspoon Laoganma or other chilli flakes in oil
* A heaped teaspoon Tingly Green Sauce
* A spring onion finely sliced

## Do

The greens take about 5 minutes, the pork about 30, the timing is a bit frantic.

* Air fry the pork at 180 for about 30 minutes or until its crispy and cooked though
* Pop all the ingredients for the greens in a large pan with a lid, along with a cup of boiling water on a medium heat
* Once the pork is ready, mix it with the Tingly Green, Laoganma and spring onions
* Heat the pork though in a pan until it' all melted
* Serve

## Result

The pork is crispy and juicy (air fryer magic) and literally lip tingling.

![GET](/images/blog/tingly-pork/tingly-pork-001.jpg)
![GET](/images/blog/tingly-pork/tingly-pork-002.jpg)
![GET](/images/blog/tingly-pork/tingly-pork-003.jpg)
![GET](/images/blog/tingly-pork/tingly-pork-004.jpg)
![GET](/images/blog/tingly-pork/tingly-pork-005.jpg)

repository: coldclimate/omnomfrickinnom

gha_language: HTML

repo_name: coldclimate/omnomfrickinnom


text:
---
title: New entry in the Chance Wiki
author: Steve Simon
source: http://www.pmean.com/06/ChanceNews1.html
date: 2006-06-07
categories:
- Blog post
tags:
- Wiki pages
output: html_document
---
**[StATS]:** **New entry in the Chance Wiki (June 7,
2006)**. [Category: Wiki pages](../category/WikiPages.html)

> I just posted a new article in the Chance Wiki:
>
> -   Chance News 18: [What does "unable to replicate"
>     mean?](http://chance.dartmouth.edu/chancewiki/index.php/Chance_News_18#What_does_.22unable_to_replicate.22_mean.3F)
>
> Some earlier writings of mine in the Chance Wiki are:
>
> -   Chance News 16: [Exponential decay in Biblical
>     ages](http://chance.dartmouth.edu/chancewiki/index.php/Chance_News_16#Exponential_decay_in_Biblical_ages)
> -   Chance News 16: [Use and Reliability of Internet
>     information](http://chance.dartmouth.edu/chancewiki/index.php/Chance_News_16#Use_and_Reliability_of_Internet_information)
> -   Chance News 14: [Single and not so
>     carefree](http://chance.dartmouth.edu/chancewiki/index.php/Chance_News_14#Single_and_not_so_carefree)
> -   Chance News 12: [Can dogs sniff out
>     cancer?](http://chance.dartmouth.edu/chancewiki/index.php/Chance_News_12#Can_dogs_sniff_out_cancer.3F)
> -   Chance News 11: [Laughter in the Supreme
>     Court](http://chance.dartmouth.edu/chancewiki/index.php/Chance_News_11#Laughter_in_the_Supreme_Court)
> -   Chance News 6: [Self
>     Experimentation](http://chance.dartmouth.edu/chancewiki/index.php/Chance_News_6#Self_Experimentation)
> -   Chance News 4: [Racial
>     profiling](http://chance.dartmouth.edu/chancewiki/index.php/Chance_News_4#Racial_Profiling)
> -   Chance News 4: [Can you get fired over the wording of a
>     questionnaire](http://chance.dartmouth.edu/chancewiki/index.php/Chance_News_4#Can_you_get_fired_over_the_wording_of_a_questionnaire.3F)
>
> There are a lot of interesting articles written by others that I
> should cite and comment on in this weblog.

[![Creative Commons
License](http://i.creativecommons.org/l/by/3.0/us/80x15.png)](http://creativecommons.org/licenses/by/3.0/us/)
This work is licensed under a [Creative Commons Attribution 3.0 United
States License](http://creativecommons.org/licenses/by/3.0/us/). It was
written by Steve Simon and was last modified on 04/01/2010.

This page was written by Steve Simon while working at Children's Mercy
Hospital. Although I do not hold the copyright for this material, I am
reproducing it here as a service, as it is no longer available on the
Children's Mercy Hospital website. Need more information? I have a page
with [general help resources](../GeneralHelp.html). You can also browse
for pages similar to this one at
<!---More--->
for pages similar to this one at
with [general help resources](../GeneralHelp.html). You can also browse
Children's Mercy Hospital website. Need more information? I have a page
reproducing it here as a service, as it is no longer available on the
Hospital. Although I do not hold the copyright for this material, I am
This page was written by Steve Simon while working at Children's Mercy

<!---Do not use
**[StATS]:** **New entry in the Chance Wiki (June 7,
This page was written by Steve Simon while working at Children's Mercy
Hospital. Although I do not hold the copyright for this material, I am
reproducing it here as a service, as it is no longer available on the
Children's Mercy Hospital website. Need more information? I have a page
with [general help resources](../GeneralHelp.html). You can also browse
for pages similar to this one at
--->

repository: pmean/build-website

repo_name: pmean/build-website


text:
---
layout: post
title: "Python : Underscore"
published: false
categories: [python]
---
# Single Leading Underscore: `_var`
> The underscore prefix is meant as a hint to another programmer that a variable or method starting with a single underscore is intended for internal use. This convention is defined in PEP 8.[[1]]

[1]: https://dbader.org/blog/meaning-of-underscores-in-python "Underscores in Python"

[2]: https://hackernoon.com/understanding-the-underscore-of-python-309d1a029edc "Understanding the underscore( _ ) of Python"


text:
---
layout: page
title: Lean Prover Zulip Chat Archive
permalink: archive/113489newmembers/43719defaultinhabitedfor.html
---

## [new members](index.html)
### [default / inhabited for ℚ, ℝ, ℂ](43719defaultinhabitedfor.html)

#### [Bryan Gin-ge Chen (Aug 13 2018 at 22:32)](https://leanprover.zulipchat.com/#narrow/stream/113489-new%20members/topic/default%20/%20inhabited%20for%20%E2%84%9A%2C%20%E2%84%9D%2C%20%E2%84%82/near/132070075):
I'm going through [TPIL's chapter on typeclasses](https://leanprover.github.io/theorem_proving_in_lean/type_classes.html#type-classes-and-instances) and while messing around tried the following:
```lean
import data.complex.basic
#reduce default ℚ -- no type class instance of inhabited ℚ
#reduce default ℝ -- timeout
#reduce default ℂ -- timeout
```
`#check` succeeds on the last two.

Questions: Is the lack of something like
```lean
instance : inhabited ℚ := ⟨0⟩
```
in data.rat just an oversight or was this intentional? Why do the other two lines time out?

Meta-question: am I right that this doesn't really matter; i.e. `default` is unlikely to be used in an "actual" proof?

#### [Kevin Buzzard (Aug 13 2018 at 22:35)](https://leanprover.zulipchat.com/#narrow/stream/113489-new%20members/topic/default%20/%20inhabited%20for%20%E2%84%9A%2C%20%E2%84%9D%2C%20%E2%84%82/near/132070230):
I suspect that `#reduce` fails on the last two because the reals and complexes are in general a pain to compute with -- they don't have decidable equality and they might well not even have an algorithm for printing out a real number. What would you expect  sqrt(2) to look like in Lean? Is it supposed to print out all the digits? :-)

I would imagine that Q not being inhabited, if true, is an oversight.

#### [Chris Hughes (Aug 13 2018 at 22:37)](https://leanprover.zulipchat.com/#narrow/stream/113489-new%20members/topic/default%20/%20inhabited%20for%20%E2%84%9A%2C%20%E2%84%9D%2C%20%E2%84%82/near/132070343):
They time out because a real number is built from a Cauchy sequence, and making a Cauchy sequence requires a proof that the sequence is Cauchy. When you #reduce a real, it will try to unfold this proof to axioms, and this will be huge.

#### [Bryan Gin-ge Chen (Aug 13 2018 at 22:38)](https://leanprover.zulipchat.com/#narrow/stream/113489-new%20members/topic/default%20/%20inhabited%20for%20%E2%84%9A%2C%20%E2%84%9D%2C%20%E2%84%82/near/132070420):
Thanks, that makes sense! Out of curiosity, what would be the right way to get Lean to spit out the default elements for ℝ and ℂ then?

#### [Chris Hughes (Aug 13 2018 at 22:40)](https://leanprover.zulipchat.com/#narrow/stream/113489-new%20members/topic/default%20/%20inhabited%20for%20%E2%84%9A%2C%20%E2%84%9D%2C%20%E2%84%82/near/132070513):
The best way to check what they are is to look at the definition of the inhabited instance. Reals don't have decidable equality, so given a real, lean cannot tell if it equals zero or not.

#### [Kevin Buzzard (Aug 13 2018 at 22:47)](https://leanprover.zulipchat.com/#narrow/stream/113489-new%20members/topic/default%20/%20inhabited%20for%20%E2%84%9A%2C%20%E2%84%9D%2C%20%E2%84%82/near/132070886):
```lean
import data.real.basic

definition d : inhabited ℝ := by apply_instance

#print d

/-

def d : inhabited ℝ :=
real.inhabited

-/

#check real.inhabited -- inhabited ℝ

-- Now right-click on real.inhabited and select "peek definition"
```

#### [Kevin Buzzard (Aug 13 2018 at 23:07)](https://leanprover.zulipchat.com/#narrow/stream/113489-new%20members/topic/default%20/%20inhabited%20for%20%E2%84%9A%2C%20%E2%84%9D%2C%20%E2%84%82/near/132071991):
I only mention this because I know of no other way of figuring out the real number which was used other than by looking at the source. I don't know how to look at the definition of d directly, as it were.

#### [Bryan Gin-ge Chen (Aug 13 2018 at 23:22)](https://leanprover.zulipchat.com/#narrow/stream/113489-new%20members/topic/default%20/%20inhabited%20for%20%E2%84%9A%2C%20%E2%84%9D%2C%20%E2%84%82/near/132072791):
Ah, OK, so in general, `instance : typeclass something` can be accessed with `something.typeclass`. I must have read this somewhere...

Knowing that I can just `#print real.inhabited` and read off `{default := 0}.`

As an aside, it seems that `rat` is missing a bunch of other stuff too, like `rat.ring`, `rat.add_group`, `rat.field`, etc. although they're all an easy `by apply_instance` away.

#### [Kevin Buzzard (Aug 13 2018 at 23:23)](https://leanprover.zulipchat.com/#narrow/stream/113489-new%20members/topic/default%20/%20inhabited%20for%20%E2%84%9A%2C%20%E2%84%9D%2C%20%E2%84%82/near/132072805):
waitwaitwait. If `by apply_instance` works, it's there.

#### [Kevin Buzzard (Aug 13 2018 at 23:24)](https://leanprover.zulipchat.com/#narrow/stream/113489-new%20members/topic/default%20/%20inhabited%20for%20%E2%84%9A%2C%20%E2%84%9D%2C%20%E2%84%82/near/132072874):
A lot of these instances might be being inferred automatically. For example, Lean knows that any `field` is automatically a `comm_ring`, a `ring`, an `add_monoid` etc etc.

#### [Bryan Gin-ge Chen (Aug 13 2018 at 23:25)](https://leanprover.zulipchat.com/#narrow/stream/113489-new%20members/topic/default%20/%20inhabited%20for%20%E2%84%9A%2C%20%E2%84%9D%2C%20%E2%84%82/near/132072906):
```quote
waitwaitwait. If `by apply_instance` works, it's there.
```
Maybe I used the wrong words, but I was referring to the following behavior:
```lean
#check rat.comm_ring -- unknown identifier
instance : comm_ring rat := by apply_instance
#check rat.comm_ring -- Lean is happy
```

#### [Chris Hughes (Aug 13 2018 at 23:26)](https://leanprover.zulipchat.com/#narrow/stream/113489-new%20members/topic/default%20/%20inhabited%20for%20%E2%84%9A%2C%20%E2%84%9D%2C%20%E2%84%82/near/132072965):
Another way of discovering the name is
 ```lean
def foo : inhabited real := by apply_instance
#print foo
```

#### [Patrick Massot (Aug 13 2018 at 23:26)](https://leanprover.zulipchat.com/#narrow/stream/113489-new%20members/topic/default%20/%20inhabited%20for%20%E2%84%9A%2C%20%E2%84%9D%2C%20%E2%84%82/near/132072972):
Bryan, this is not a bug, this is what the type class system is about

#### [Patrick Massot (Aug 13 2018 at 23:26)](https://leanprover.zulipchat.com/#narrow/stream/113489-new%20members/topic/default%20/%20inhabited%20for%20%E2%84%9A%2C%20%E2%84%9D%2C%20%E2%84%82/near/132072982):
You get cascading for free

#### [Bryan Gin-ge Chen (Aug 13 2018 at 23:28)](https://leanprover.zulipchat.com/#narrow/stream/113489-new%20members/topic/default%20/%20inhabited%20for%20%E2%84%9A%2C%20%E2%84%9D%2C%20%E2%84%82/near/132073073):
```quote
Bryan, this is not a bug, this is what the type class system is about
```
Right, I didn't intend to imply that there were any bugs other than in my understanding.

#### [Kevin Buzzard (Aug 13 2018 at 23:32)](https://leanprover.zulipchat.com/#narrow/stream/113489-new%20members/topic/default%20/%20inhabited%20for%20%E2%84%9A%2C%20%E2%84%9D%2C%20%E2%84%82/near/132073292):
https://github.com/leanprover/mathlib/pull/254

#### [Kevin Buzzard (Aug 13 2018 at 23:38)](https://leanprover.zulipchat.com/#narrow/stream/113489-new%20members/topic/default%20/%20inhabited%20for%20%E2%84%9A%2C%20%E2%84%9D%2C%20%E2%84%82/near/132073578):
```lean
import data.rat

definition x : comm_ring ℚ := by apply_instance

#print x

/-

def x : comm_ring ℚ :=
field.to_comm_ring ℚ

-/
```

Lean knows that the rationals are a commutative ring, but the instance is not called `rat.comm_ring`, it's called something else.

If `X` is an inductive type and there's something called `X.foo`, and if `a` has type `X`, then you can sometimes talk about `a.foo` on a good day. But that's not what's happening here. It's not `rat` that has type `comm_ring`, it's some other thing which has type `comm_ring rat`.

#### [Chris Hughes (Aug 13 2018 at 23:41)](https://leanprover.zulipchat.com/#narrow/stream/113489-new%20members/topic/default%20/%20inhabited%20for%20%E2%84%9A%2C%20%E2%84%9D%2C%20%E2%84%82/near/132073675):
```quote
Lean knows that the rationals are a commutative ring, but the instance is not called `rat.comm_ring`, it's called something else.
```
I don't think it has a name, it's just inferred from `rat.discrete_linear_ordered_field` or something.

#### [Kevin Buzzard (Aug 13 2018 at 23:43)](https://leanprover.zulipchat.com/#narrow/stream/113489-new%20members/topic/default%20/%20inhabited%20for%20%E2%84%9A%2C%20%E2%84%9D%2C%20%E2%84%82/near/132073758):
I guess the term is `field.to_comm_ring ℚ` and there's no name for this term. On the other hand when `instance : foo bar  := blah ` is run, Lean has a go at naming the instance itself using some vaguely sane algorithm.

#### [Bryan Gin-ge Chen (Aug 13 2018 at 23:54)](https://leanprover.zulipchat.com/#narrow/stream/113489-new%20members/topic/default%20/%20inhabited%20for%20%E2%84%9A%2C%20%E2%84%9D%2C%20%E2%84%82/near/132074255):
It looks like `field.to_comm_ring` itself is created automatically from `extends comm_ring` in the `class field` declaration.

#### [Kevin Buzzard (Aug 14 2018 at 00:01)](https://leanprover.zulipchat.com/#narrow/stream/113489-new%20members/topic/default%20/%20inhabited%20for%20%E2%84%9A%2C%20%E2%84%9D%2C%20%E2%84%82/near/132074504):
Yeah, that's a cool part of type class inference. The projectors get constructed automatically.

#### [Kevin Buzzard (Aug 14 2018 at 00:09)](https://leanprover.zulipchat.com/#narrow/stream/113489-new%20members/topic/default%20/%20inhabited%20for%20%E2%84%9A%2C%20%E2%84%9D%2C%20%E2%84%82/near/132074849):
```lean
import data.rat

definition d : comm_monoid ℚ := by apply_instance

set_option pp.all true
#print d

/-

def d : comm_monoid.{0} rat :=
@linear_ordered_comm_ring.to_comm_monoid.{0} rat
  (@decidable_linear_ordered_comm_ring.to_linear_ordered_comm_ring.{0} rat
     (@discrete_linear_ordered_field.to_decidable_linear_ordered_comm_ring.{0} rat rat.discrete_linear_ordered_field))

-/
```

Type class inference is quite clever.

#### [Bryan Gin-ge Chen (Aug 14 2018 at 00:15)](https://leanprover.zulipchat.com/#narrow/stream/113489-new%20members/topic/default%20/%20inhabited%20for%20%E2%84%9A%2C%20%E2%84%9D%2C%20%E2%84%82/near/132075092):
It looks much more persistent than clever when I put on `set_option trace.class_instances true` :wink: