text:
Cloudinary
==========
The official [Cloudinary](https://cloudinary.com) SDK for Angular.

Cloudinary's AngularJS (AKA Angular1) SDK can be found [here](https://github.com/cloudinary/cloudinary_angular/tree/angular-1.x)

[Cloudinary](https://cloudinary.com) is a cloud service that offers a solution to a web application's entire image management pipeline.

Easily upload images to the cloud. Automatically perform smart image resizing, cropping and conversion without installing any complex software. Integrate Facebook or Twitter profile image extraction in a snap, in any dimension and style to match your website’s graphics requirements.
Images are seamlessly delivered through a fast CDN, and much much more.

Cloudinary offers comprehensive APIs and administration capabilities and is easy to integrate with any web application, existing or new.

Cloudinary provides URL and HTTP based APIs that can be easily integrated with any Web development framework.

For Angular, Cloudinary provides an SDK for simplifying the integration even further.
The SDK serves as a layer on top of one of Cloudinary's Javascript libraries:

| Github Repository	| Package name | Description |
|-------------------|--------------|-------------|
| [pkg-cloudinary-core](https://github.com/cloudinary/pkg-cloudinary-core) | cloudinary-core | Core Cloudinary Library. Use this if you do not intend to use jQuery |
| [pkg-cloudinary-jquery](https://github.com/cloudinary/pkg-cloudinary-jquery) | cloudinary-jquery | Core Library + jQuery plugin |
| [pkg-cloudinary-jquery-file-upload](https://github.com/cloudinary/pkg-cloudinary-jquery-file-upload) | cloudinary-jquery-file-upload | Core Library + jQuery plugin + Blueimp File Upload adapter |

Signup for free

## Live examples ##################################################################
Start experimenting right away with one of these live examples:

* [Codepen example](https://codepen.io/team/Cloudinary/project/editor/AxrvPZ/)
* [Plunker example](https://plnkr.co/edit/Tvrwxt2AW8K5DEhuTKhB?p=preview)
* [Glitch example](https://glitch.com/edit/#!/cloudinary-angular-sdk)

## Installation ######################################################################
Install the SDK version that supports the Angular version you are using:

* For Angular 2, use `2.x`
* For Angular 4, use `4.x`
* For Angular 5 or 6, use `5.x`.

For example:

```shell
npm install @cloudinary/angular-5.x --save
```

## Setup ######################################################################

Follow the setup procedure described in the [Cloudinary jQuery plugin](https://github.com/cloudinary/cloudinary_js#setup) setup procedure.
Refer to the sample projects in this repository for usage examples.

## Usage ######################################################################

The module provides three types of directives:

* A Cloudinary image component with child transformation directives for creating `<image>` tags and controlling its underlying chained transformations
* A Cloudinary video component with child transformation directives for creating `<video>` tags with multiple video sources and settings and controlling its underlying chained transformations
* Attribute directives for enhancing native HTML elements with Cloudinary image management capabilities

Further image manipulation options are listed in [this reference](https://cloudinary.com/documentation/image_transformations#reference).

Further video manipulation and delivery capabilities see listed in [this reference](https://cloudinary.com/documentation/video_manipulation_and_delivery).

Note that the attribute names in the docs are using snake_case, however this SDK supports both snake_case and kebab-case for attribute names,
e.g. both `fetch_format: 'auto'` and `'fetch-format': 'auto'` are eventually translated to `f_auto`.

### Cloudinary module configuration ##################################
This SDK is based on the Cloudinary JS module, however the two are decoupled, i.e. this module's `Cloudinary` is a configurable service
to which you provide your choice of our JS module.

Example Coudinary configuration in your application's module definition:

```javascript
import { NgModule } from '@angular/core';
// ...
import { CloudinaryModule, CloudinaryConfiguration } from<EMAIL_ADDRESS>import { Cloudinary } from 'cloudinary-core';

@NgModule({
    imports: [
        CloudinaryModule.forRoot({Cloudinary}, { cloud_name: 'your_cloud_name' } as CloudinaryConfiguration),
    ],
    bootstrap: [/* ... */]
})
export class AppModule { }
```

See [samples folder](samples) for a complete reference project.

### Creating new image tags with cl-image & cl-transformation ##################################

The [cl-image](src/cloudinary-image.component.ts) component generates an `<image>` tag with requested transformation, type, and format.
The image tag can contain optional `<cl-transformation>` tags that will be used as chained transformations:

```html
    <cl-image public-id="readme" class="thumbnail inline" angle="20" format="jpg">
        <cl-transformation height="150" width="150" crop="fill" effect="sepia" radius="20"></cl-transformation>
        <cl-transformation overlay="text:arial_60:readme" gravity="north" y="20"></cl-transformation>
    </cl-image>
```

Will be compiled by Angular to:

```html
    <cl-image _ngcontent-ywn-2="" public-id="readme" class="thumbnail inline" format="jpg" angle="20" ng-reflect-public-id="readme">
        <img src="http://res.cloudinary.com/{your_cloud_name}/image/upload/c_fill,e_sepia,h_150,r_20,w_150/g_north,l_text:arial_60:readme,y_20/a_20/readme.jpg">
    </cl-image>
```

### Creating new video tags with cl-video & cl-transformation ##################################

The [cl-video](src/cloudinary-video.component.ts) component generates a `<video>` tag with requested transformation, type, and format.

The generated `<video>` is created with configurable child `<source>` elements for all relevant formats supported by web browsers (`webm`, `mp4` and `ogv`), as well as a poster thumbnail image.

The video tag can contain optional `<cl-transformation>` tags that will be used as chained transformations:

```html
    <cl-video cloud-name="my_other_cloud" public-id="watchme" secure="true" class="my-videos">
        <cl-transformation overlay="text:arial_60:watchme" gravity="north" y="20"></cl-transformation>
    </cl-video>
```

Will be compiled by Angular to:

```html
    <video class="my-videos" public-id="watchme" ng-reflect-public-id="watchme"
            poster="https://res.cloudinary.com/my_other_cloud/video/upload/g_north,l_text:arial_60:watchme,y_20/watchme.jpg">
        <source src="https://res.cloudinary.com/my_other_cloud/video/upload/g_north,l_text:arial_60:watchme,y_20/watchme.webm" type="video/webm">
        <source src="https://res.cloudinary.com/my_other_cloud/video/upload/g_north,l_text:arial_60:watchme,y_20/watchme.mp4" type="video/mp4">
        <source src="https://res.cloudinary.com/my_other_cloud/video/upload/g_north,l_text:arial_60:watchme,y_20/watchme.ogv" type="video/ogg">
    </video>
```

#### Updating images and videos dynamically ######################################################
You can update attributes dynamically for `<cl-image>` and `<cl-video>` elements to reload the underlying native elements with
new transformations.

The following example from the sample projects demonstrates setting the opacity to 50% when hovering on top of an element:
```html
    <cl-image
        public-id={{photo.public_id}}
        (mouseenter)="photo.isMouseOver = true"
        (mouseleave)="photo.isMouseOver = false"
        [attr.opacity]="photo.isMouseOver ? '50' : null"
    >
```

### Attribute directives for enhancing HTML elements - clSrc, clHref, clSrcset ##################################

These directives transform the given URI to a cloudinary URL. For example:

```html
    <img clSrc="https://cloudinary.com/images/logo.png" type="fetch" fetch-format="auto" quality="auto">
```

Will be compiled by Angular to:

```html
    <img clSrc="https://cloudinary.com/images/logo.png" fetch-format="auto" quality="auto" type="fetch" ng-reflect-clSrc="https://cloudinary.com/images/logo.png"
    src="http://res.cloudinary.com/{your_cloud_name}/image/fetch/f_auto,q_auto/https://cloudinary.com/images/logo.png">
```

See additional usage examples [here](src/cloudinary-image-source.directive.spec.ts) and in the sample projects.

## Samples ########################################################

You can find our sample projects, along with documentation in the [samples folder](samples).

:information_source: In order to run the samples you need to create a new file called config.ts with your cloud credentials.
Copy `config.ts.sample` in the sample of your choice and replace the placeholders with your credentials.

### What's in the box ########################################################
Both sample applications demonstrate a basic photo gallery showcasing basic image transformations and upload of new images either by a file input dialog or by drag-and-drop.

The samples differ by their bundling solution and upload implementation:

* [Photo album sample app](samples/photo_album)
    * Uses [ng2-file-upload](https://github.com/valor-software/ng2-file-upload) for uploading files using an opensource file uploader
    * Uses [Webpack](https://webpack.github.io) for bundling and serving the application
* [Photo album sample app with jQuery](samples/photo_album_with_jquery)
    * Uses [Cloudinary's jQuery plugin](https://cloudinary.com/blog/direct_upload_made_easy_from_browser_or_mobile_app_to_the_cloud#direct_uploading_from_the_browser_using_jquery) for uploading files using jQuery and blueimp.
    * Uses [SystemJS](https://github.com/systemjs/systemjs) for bundling the application and [lite-server](https://github.com/johnpapa/lite-server) for serving the application.
* [Photo Album AOT compilation](samples/photo_album_aot)
    * Demonstrates usage of Cloudinary SDK in an [Angular AOT](https://angular.io/docs/ts/latest/cookbook/aot-compiler.html) application
    * Uses [Rollup](http://rollupjs.org/) for bundling the application and [lite-server](https://github.com/johnpapa/lite-server) for serving the application.

Please consult with the respective README file of each sample for usage and additional information.

## Development ################################################################

:raised_hands: This module supports the following npm scripts:

* **lint** - Runs tslint on **/*.ts
* **test** - Compiles TypeScript and runs unit tests on the generated JS files, re-running tests automatically on chages
* **test-once** - Compiles TypeSCript and executes unit tests once, closing the browser once it's done
* **pree2e** - Updates WebDriver binary
* **start-sample** - Starts the photo album sample, without automatically opening the browser and navingating to the started app
* **start-sample:jquery** - Same as *start-sample* for the jQuery sample
* **install-sample-from-source** - Compiles TypeScript, packs this module and installs it into samples/photo_album
* **install-sample-from-source:jquery** - Same as *install-sample-from-source* for the jQuery sample
* **e2e** - Runs *install-sample-from-source*, starts the app and runs protractor tests on the started app
* **e2e:jquery** - Same as *e2e* for the jQuery sample
* **tsc** - Runs the tsc compiler
* **tsc:w** - Runs the tsc compiler and watches for changes
* **webdriver:update** - Updates WebDriver binary

## Additional resources ##########################################################

Additional resources are available at:

* [Website](https://cloudinary.com)
* [Interactive demo](https://demo.cloudinary.com/default)
* [Documentation](https://cloudinary.com/documentation)
* [Knowledge Base](https://support.cloudinary.com/hc/en-us)
* [Documentation for Angular integration](https://cloudinary.com/documentation/angular_integration)
* [Image upload documentation](https://cloudinary.com/documentation/upload_images)
* [Image transformations documentation](https://cloudinary.com/documentation/image_transformations)

## Support #######################################################################

You can [open an issue through GitHub](https://github.com/cloudinary/cloudinary_angular/issues).

Contact us [https://cloudinary.com/contact](https://cloudinary.com/contact)

Stay tuned for updates, tips and tutorials: [Blog](https://cloudinary.com/blog), [Twitter](https://twitter.com/cloudinary), [Facebook](https://www.facebook.com/Cloudinary).

## License #######################################################################

Released under the MIT license.


text:
# Vulk-Bare

Vulk-Bare is a bare metal library for the Vulk 3D engine.
It provides a lot of tools.

[VULK 3D ENGINE](https://github.com/realitix/vulk)

## Provided functions

```python
def load_image(buf, request_components=0):
    """Load a png or jpeg image into a bitmap buffer.

    Args:
        buf (Buffer): Buffer to load
        request_components (int): If you want to force number of components

    Returns:

        A tuple containing:

        - Bitmap buffer
        - width of bitmap
        - height of bitmap
        - number of components
    """

def resize_image(buf, width, height, num_channels, new_width, new_height):
    """Resize an image

    Args:
        buf (Buffer): Buffer coming from `load_image`
        width (int): Width of `buf`
        height (int): Height of `buf`
        num_channels (int): Number of channels in `buf` (RGBA=4)
        new_width (int): Desired width
        new_height (int): Desired height

    Returns:
        Buffer: Resized image

    Raises:
        ResizeError: If an error occurs during resize
    """
```

branch_name: refs/heads/master

extension: md

license_type: permissive


text:
# websvn2github
A liteweight PHP application that redirects WebSVN links to a GitHub project. WebSVN was nice and it served me well. [It still exists](https://github.com/websvnphp/websvn), but I moved all of my projects to Git now.

It is a very minimal implementation that redirects requests in the WebSVN format to Github's URL format. Most of the traffic I got was from Google, folks searching for some obscure function that my code has. I wanted the link given by Google to send to the same file.

For example, this WebSVN URL:

```
http://src.paralint.com/filedetails.php?repname=Notifu&path=%2Ftrunk%2Fnotifu%2Fextern.h
```

Will redirect to

```
https://github.com/ixe013/notifu/blob/master/notifu/extern.h
```

# Running it

Websvn2github is a PHP application. If you run WebSVN, you already have PHP setup. The files `filedetails.php` and `listing.php` in the original package are replaced with a script that parses the command line and builds a Github URL based on the values it finds in the URL and the ini file.

WebSVN requires PHP 5.6 or higher. I wrote this in about an hour, tested with HP 7.2.24-0ubuntu<IP_ADDRESS>. Open an issue if it does not work for you!

# Configuration

Set your own repositories in the file `repos.ini.php`. It is a standard PHP ini file, with each section name corresponding to the value you passed to WebSVN's addRepository.

For example, if you have this line in your WebSVN `include/config.php` file:

```
$config->addRepository('Notifu', 'file:///home/ixe013/svn/My-Notifu');
```

And Github's copy of the source accessible with at [https://github.com/ixe013/notifu](https://github.com/ixe013/notifu), then the ini section would look like this:

```
[Notifu]
user=ixe013
repo=notifu
```

A file named `dist-repos.ini.php` is available to get you started. Copy it to `repos.ini.php`.

## Options

Two optional settings are supported:

| name | purpose |
|------|---------|
| branch | Change the branch name, from `master` to `main` or `develop` |
| temporary | Set to `true` to return a 302 Temporary redirection instead of a 308 Permanent redirection |

Here is a working example that sends temporary redirects to the develop branch

```
[Notifu]
user=ixe013
repo=notifu
branch=develop
temporary=true
```

## Catch all

The code will look for a `Default` section where it will send any URL it can't parse. The default is to send the user to your profile homepage

```
[Default]
user=ixe013
repo=#
```

branch_name: refs/heads/main

gha_language: PHP


text:
# CMS-Scraper
A Python script that scrapes and rips all files, discussions from Moodle based Course Management System for BPHC.
This script has been tested for Sem II 2018-2019 and found to work. However, there will always be edge cases which will require correction each sem.

# Drive Links (BITS Mail only)
2018-2019 Sem II - https://drive.google.com/drive/folders/1iUvhkpOD_OpEMxrbrvzdtlpG4O7vx8tw?usp=sharing

license: MIT

repository: Param-Bhatt/CMS-Scraper

repo_name: Param-Bhatt/CMS-Scraper


text:
# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]

## [0.1.2] - 2021-10-06

### Changed

- Disable Metrics and Request Logger pages. See [#4](https://github.com/phoenixframework/plds/issues/4).

## [0.1.1] - 2021-09-24

### Fixed

- Validate short and long names properly. This also add better defaults depending
on which type of nodes PLDS is connecting to.

### Changed

- The `--cookie` flag is now optional. By default it will use the one from
`Node.get_cookie()` when distribution is enabled.

## [0.1.0] - 2021-09-22

### Added

- Initial release of PLDS.

[Unreleased]: https://github.com/phoenixframework/plds/compare/v0.1.2...HEAD
[0.1.2]: https://github.com/phoenixframework/plds/compare/v0.1.1...v0.1.2
[0.1.1]: https://github.com/phoenixframework/plds/compare/v0.1.0...v0.1.1
[0.1.0]: https://github.com/phoenixframework/plds/releases/tag/v0.1.0

repository: ioolkos/plds

repo_name: ioolkos/plds


text:
# :rage4: asm-dom :rage4:
[![experimental](http://badges.github.io/stability-badges/dist/experimental.svg)](http://github.com/badges/stability-badges)
[![Build Status](https://travis-ci.org/mbasso/asm-dom.svg?branch=master)](https://travis-ci.org/mbasso/asm-dom)
[![npm version](https://img.shields.io/npm/v/asm-dom.svg)](https://www.npmjs.com/package/asm-dom)
[![npm downloads](https://img.shields.io/npm/dm/asm-dom.svg?maxAge=2592000)](https://www.npmjs.com/package/asm-dom)
[![Join the chat at https://gitter.im/mbasso/asm-dom](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/mbasso/asm-dom?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)

> A minimal WebAssembly virtual DOM focused on performance

## Table of Contents

- [Installation](#installation)
- [Motivation](#motivation)
- [Inline Example](#inline-example)
- [Examples](#examples)
- [Documentation](#documentation)
- [Implementation and performance](#implementation-and-performance)
- [Roadmap](#roadmap)
- [Change Log](#change-log)
- [Authors](#authors)
- [Copyright and License](#copyright-and-license)

## Installation

You can install asm-dom using [npm](https://www.npmjs.com/package/asm-dom):

```bash
npm install --save asm-dom
```

If you are using this library with webpack you also need to install `arraybuffer-loader`:

```bash
npm install --save-dev arraybuffer-loader
```

and add this object to your loaders:

```js
{
  test: /\.wasm$/,
  loaders: ['arraybuffer-loader'],
}
```

also, if you have some problems with fs, you can add this to your webpack config:

```js
node: {
  fs: 'empty',
},
```

## Motivation
asm-dom is a minimal WebAssembly virtual DOM focused on performance. It is born from the idea to test the powerful of WebAssembly in a common use case that is not gaming, VR, AR or Image / video editing. Unfortunately, at the moment, [GC / DOM / Web API Integration](http://webassembly.org/docs/gc/) is a future feature 🦄, so, asm-dom isn't totally developed in wasm. All interactions with the DOM are written in Javascript. This is a big disadvantage because of the overhead of the binding between JS and WASM, in the future asm-dom will be even more powerful, anyway results are satisfying.

## Inline Example

```js
import init from 'asm-dom';

const asmDom = await init();
// or init().then(asmDom => { ... });
const { h, patch } = asmDom;

const root = document.getElementById('root');

const vnode = h('div', {
  raw: { onclick: () => console.log('clicked') }
}, [
  h('span', { style: 'font-weight: bold' }, 'This is bold'),
  ' and this is just normal text',
  h('a', { href: '/foo' }, 'I\'ll take you places!')
]);
// Patch into empty DOM element – this modifies the DOM as a side effect
patch(root, vnode);

const newVnode = h('div', {
  raw: { onclick: () => console.log('another click') }
}, [
  h('span', { style: 'font-weight: normal; font-style: italic' }, 'This is now italic type'),
  ' and this is just normal text',
  h('a', { href: '/bar' }, 'I\'ll take you places!')
]);

// Second `patch` invocation
patch(vnode, newVnode); // asm-dom efficiently updates the old view to the new state
```

## Examples

Examples are available in the [examples folder](https://github.com/mbasso/asm-dom/tree/master/examples).

Also, here is the list of the online Demos:

- [TODO MVC](https://mbasso.github.io/asm-dom/examples/todomvc/)

## Documentation

### init

By default asm-dom returns an `init` function that takes an optional configuration object. This represents the [Module](https://kripken.github.io/emscripten-site/docs/api_reference/module.html) object passed to emscripten with 3 additional props:
- `useWasm`: `true` if you want to force the usage of WebAssembly
- `useAsmJS`: `true` if you want to force the usage of asm.js
- `clearMemory`: `true` by default, set it to `false` if you want to free memory manually, for more information see [deleteVNode](#deletevnode).
- `unsafePatch`: `false` by default, set it to `true` if you haven't a single `patch` in your application. This allows you to call patch with an `oldVnode` that hasn't been used previously. For example, you have to enable this option if you want to patch a subtree of your vdom and then use `replaceChild`, for more information see [patch](#patch).

By default asm-dom uses WebAssembly if supported, otherwise asm.js

Please note that **this function creates the module only the first time that is called, the next times returns a Promise that resolve with the same, cached object**.

```js
import init from 'asm-dom';

// init returns a Promise
const asmDom = await init();
// const asmDom = await init({ useAsmJS: true });
// init().then(asmDom => { ... });
```

### h

You can create vnodes using `h` function. `h` accepts a tag/selector as a string, an optional data object and an optional **string** or array of children. The data object contains all attributes and a special `raw` prop that can contains **callbacks** and raw values applied to the DOM element with the dot notation. You should also put in `raw` properties like `value` or  `checked`. This returns the memory address of your virtual node.

```js
const { h } = asmDom;
const vnode = h('div', { style: 'color: #000' }, [
  h('h1', 'Headline'),
  h('p', 'A paragraph'),
]);

const vnode2 = h('div', {
  id: 'an-id', // node.setAttribute('id', 'an-id')
  className: 'foo', // className is a special attribute evaluated as 'class'
  'data-foo': 'bar', // a dataset attribute
  raw: {
    onclick: (e) => console.log('clicked: ', e.target),
    foo: 'bar', // raw value: node.foo = 'bar'
  },
});
```

### patch

The `patch` takes two arguments, the first is a DOM element or a vnode representing the current view. The second is a vnode representing the new, updated view. If `patch` succedeed, the new vnode (the second parameter) is returned.

If a DOM element is passed, `newVnode` will be turned into a DOM node, and the passed element will be replaced by the created DOM node. If an `oldVnode` is passed, asm-dom will efficiently modify it to match the description in the new vnode.

**If `unsafePatch` in `init` is equal to false, any old vnode passed must be the resulting vnode from the previous call to patch. Otherwise, no operation is performed and undefined is returned.**

```js
const { h, patch } = asmDom;

const oldVnode = h('span', 'old node');
const newVnode = h('span', 'new node');

patch(document.getElementById('root'), oldVnode);
patch(oldVnode, newVnode);

// with unsafePatch = false
const vnode = h('div');
patch(oldVnode, vnode); // returns undefined, found oldVnode, expected newVnode
```

With `unsafePatch = true` you can implement some interesting mechanisms, for example you can do something like this:

```js
const oldVnode = h('span', 'old text');
const vnode = h('div', [
  h('span', 'this is a text'),
  oldVnode
]);

patch(document.getElementById('root'), vnode);

const newVnode = h('span', 'new text');
// patch only the child
patch(oldVnode, newVnode);

// update the tree
replaceChild(vnode, oldVnode, newVnode);
```

### deleteVNode

As we said before the `h` returns a memory address. This means that this memory have to be deleted manually, as we have to do in C++ for example. By default asm-dom automatically delete the old vnode from memory when `patch` is called. However, if you want to create a vnode that is not patched, or if you want to manually manage this aspect (setting `clearMemory: false` in the `init` function), you have to delete it manually. For this reason we have developed a function that allows you to delete a given vnode and all its children recursively:

```js
const vnode1 = h('div');
const vnode2 = h('div', [
  h('span',)
]);
patch(vnode1, vnode2); // vnode1 automatically deleted

const child1 = h('span', 'child 1');
const child2 = h('span', 'child 2');
const vnode = h('span', [
  child1,
  child2,
]);
deleteVNode(vnode); // manually delete vnode, child1 and child2 from memory
```

### removeChild

Remove the given child from the given parent:

```js
const child = h('div');
const parent = h('span', [
  h('video'),
  child,
]);
removeChild(parent, child); // parent =  h('span', [h('video')]);
deleteVNode(child);
```

### replaceChild

Replace a child with another in the given parent:

```js
const oldChild = h('div');
const newChild = h('span');
const parent = h('span', [
  h('video'),
  oldChild,
]);
replaceChild(parent, oldChild, newChild); // parent =  h('span', [h('video'), h('span')]);
deleteVNode(oldChild);
```

## Implementation and performance

[Here](Analysis.md) you can find a paper that explain how we've written asm-dom (if you want to experiment something with WebAssembly, this might be a good starting point) and some considerations about performances.
**Please note that this section is not completed yet.**
Before writing the analysis of the performance, we've decided to develop the first point of the roadmap (make asm-dom usable directly from C++ to develop the frontend).
In this way we can evaluate in a better way the cost of JS bindings and make this analysis better.
Consider also that benchmarking this library is not easy, we have to reproduce real world situations with big vnodes trees and frequent updates. Run a single patch or a sequence of patch in a for-loop might produce results that are not attributable to a real application.
We think that this is better than show only numbers, we can help other people to learn something and, maybe, we can get some advice to make asm-dom even better.

## Roadmap

- [ ] make asm-dom usable directly from C++ to develop the frontend (allow to write entire apps in webassembly)
- [ ] asm-dom aims to be even more powerful with [GC / DOM / Web API Integration](http://webassembly.org/docs/gc/). Unfortunately this is a future feature 🦄, so, we have to be patient and wait a bit.
- [ ] use the closure compiler (cause problems with wasm, need to update emscripten)

## Change Log

This project adheres to [Semantic Versioning](http://semver.org/).
Every release, along with the migration instructions, is documented on the Github [Releases](https://github.com/mbasso/asm-dom/releases) page.

## Authors
**Matteo Basso**
- [github/mbasso](https://github.com/mbasso)
- [@teo_basso](https://twitter.com/teo_basso)

## Copyright and License
Copyright for portions of project asm-dom are held by Simon Friis Vindum, 2015 as part of project snabbdom. All other copyright for project asm-dom are held by Matteo Basso.

Copyright (c) 2016, Matteo Basso.

asm-dom source code is licensed under the [MIT License](https://github.com/mbasso/asm-dom/blob/master/LICENSE.md).

repository: asa-taka/asm-dom

repo_name: asa-taka/asm-dom


text:
# App Service Plan

Creates an App Service Plan

## Paramaters

appServicePlanName: (required) string

Name of App Service Plan. Will be created in the same resource group as the script is run and in the default location for resource group.

nonASETier: (optional) string

Underlying server type for app service plan.
Can be either Basic, Standard, Premium or PremiumV2.
Will default to Standard if not supplied.
If aseHostingEnvironmentName is specified, the tier is Isolated and the value supplied for the parameter is ignored.

aspSize: (optional) string

Underlying server size per instance.
Can be either 1, 2 or 3 equating to small, medium or large.
Will default to 1 if not supplied.

aspInstances: (optional) integer

The number of instances.
For the Basic tier, value can be between 1 and 3.
For the Standard tier, value can be between 1 and 10.
For the other tiers, value can be between 1 and 20.
Will default to 1 if not supplied.

aseHostingEnvironmentName: (optional) string

Name of the App Service Environment (ASE) to assign the app service plan to.
If not specified, the app service plan will not be assigned to an ASE.

aseResourceGroup: (optional) string

Resource group the App Service Environment belongs to.
Only required if aseHostingEnvironmentName specified.

repository: SkillsFundingAgency/dfc-devops

gha_language: PowerShell

gha_license_id: MIT

repo_name: SkillsFundingAgency/dfc-devops


text:
(a) Upon hearing the response, if the respondent explains or otherwise responds to the complaint, and upon completion of any investigation, the commission may make a prompt preliminary determination as to whether probable cause exists that a violation of this part has been committed. The preliminary determination with findings of fact and conclusions of law shall be served upon the respondent by certified mail.

(b) The respondent shall be afforded an opportunity to contest the commission's preliminary determination of probable cause by making a request for a contested case hearing under chapter 91 within twenty days of receipt of the preliminary determination. Failure to request a contested case hearing shall render the commission's preliminary determination final. [L 2010, c 211, pt of §2]

repository: SamMade/BlueAndKrabby

repo_name: SamMade/BlueAndKrabby


text:
---
layout: post
title:  "What is num_units in TensorFlow LSTM Model?"
date:   2018-04-10 23:35:33 +0800
categories:
---

>If you have not prior knowledge of Recurrent Neural Network, please check the following readings:
- [Recurrent neural network - Wikipedia](https://en.wikipedia.org/wiki/Recurrent_neural_network)
- [Recurrent Neural Networks](https://www.tensorflow.org/tutorials/recurrent)

>Definitely a course on RNNs might cover more necessary information. I recommend Andrew Ng's Deep Learning courses on Recurrent Neural Networks(also called **Sequence Models** in Prof. Ng's courses), which are available on YouTube.

**LSTM**, that is, **Long Short Term Memory**, model is currently the most widely used and common model in Recurrent Neural Network practice. TensorFlow is one of the most popular machine learning framework among developers. It thus makes sense for us to build LSTM models with TensorFlow.

But while implementing LSTM RNNs in TensorFlow, we have to specify the parameter ```num_units``` in many classes or methods. In this case, for example:
```
tf.contrib.rnn.BasicLSTMCell(num_units)
```

~~Visually, of a unfolded RNN model, it means the number of LSTM cells. In the example below, ```num_units``` means the number of the blue cells.~~

~~Conceptually, ```num_units``` represents the sequence length of your input data. For example, in RNNs for NLP, ```num_units``` is the length of each training instance.~~

![Unfolded basic recurrent neural network - Wikipedia](https://upload.wikimedia.org/wikipedia/commons/thumb/b/b5/Recurrent_neural_network_unfold.svg/1920px-Recurrent_neural_network_unfold.svg.png)

Here is a single LSTM cell:
![LSTM cell structure - Wikipedia](https://upload.wikimedia.org/wikipedia/commons/thumb/6/63/Long_Short-Term_Memory.svg/1594px-Long_Short-Term_Memory.svg.png)

~~One single unit would consists of an independent structure. In LSTMs the structure would be like:~~

Previously, I thought ```num_units``` represents the cells in the RNN, but after reading more posts, it seems that, in the context of TensorFlow, this particular parameter of ```num_units``` is actually the number of layers stacked vertically at a particular timestep(or at all time steps).

Jason Brownlee has written [a post particularly about this](https://machinelearningmastery.com/stacked-long-short-term-memory-networks/), with Keras implementaion of a single LSTM cell(or layer, depending on the context of framework).

According to [this thread on Google Groups](https://groups.google.com/a/tensorflow.org/forum/#!msg/discuss/74BrHpM76Q4/O4CwWOgfAgAJ) and [this issue posted on GitHub](https://github.com/tensorflow/tensorflow/issues/14693), it seems that the TensorFlow team has already noticed the inconsistency on this parameter name. But still it is used in the current version(at the time of this writing, the latest version for Mac OS is 1.7.0, either for CPU or for GPU), because of the need for backward compatibility. This is understandable but also erroneous. Even with backward compatibility kept intact, and nomenclature varies among researchers and developers, additional information could be added to the documentation to avoid inconsistency and misunderstanding.

References:

- [Understanding LSTM in Tensorflow(MNIST dataset)](https://jasdeep06.github.io/posts/Understanding-LSTM-in-Tensorflow-MNIST/)

- [TensorFlow documentation on ```tf.contrib.rnn.BasicLSTMCell```](https://www.tensorflow.org/api_docs/python/tf/contrib/rnn/BasicLSTMCell#methods)

- [What is num_units in tensorflow BasicLSTMCell?
](https://stackoverflow.com/questions/37901047/what-is-num-units-in-tensorflow-basiclstmcell?utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_qa)

extension: markdown


text:
# CHANGELOG

## 0.1.1 (2021-02-03)
#### IMPROVEMENTS
> * Actions: Added new image-tag with build-week & created scheduled weekly build

## 0.1.0 (2021-02-03)
#### IMPROVEMENTS
> * Initial release.
#### FEATURES
> * Base ubuntu image, for building other images (packer/ansible).
> * Includes tini & gosu, with example entrypoint.
> * GitHub Actions pipeline.


text:
# Simple ERC721 game - SULJOMDAO

![SULJOMDAO](https://github.com/CodeMath/suljomdao/blob/master/readme/intro.gif?raw=true)

This project is based ethereum game. (Solidity refer is CryptoKitty gmae.)

![SULJOMDAO](https://github.com/CodeMath/suljomdao/blob/master/readme/market.gif?raw=true)

ERC721 style game. Buy and make a Cocktail manufacturing.

- Purchase ingredients and make a unique combination of cocktails.
- Unique ERC721 ingredients.
- Client is Django and web3.js
- Smart contract is finish maybe 80%. (Now On testing)
- DO NOT RUN MAINNET! (Only Ropsten testnet)

![SULJOMDAO](https://github.com/CodeMath/suljomdao/blob/master/readme/make.gif?raw=true)

# Requirement.
```
python3+
django2.0+
web3.js
```

# Sorry, Not perfect yet.

Please DO NOT RUN MAINNET!

It is not perfect yet.

This project only runs at Ropsten testnet and Django.

I'll be update soon. :-)

# Maker
> Design: 전다연, 고솔아
> Front: 최가람 (supporter 이동혁)
> Smart Contract: 이동혁,

MIT License. Donate at ETH: 0xAB3e2F45701474fE7B7506C6A4E64Db491AF7437

repository: CodeMath/suljomdao

repo_name: CodeMath/suljomdao


text:
# @st-graphics/scrolly

Opensource scrollytelling components used by Straits Times Interactive Graphics Team

## Built with @st-graphics/scrolly

https://graphics.straitstimes.com/STI/STIMEDIA/Interactives/2019/04/earth-day-online-shopping-packaging-waste-fails/index.html

https://graphics.straitstimes.com/STI/STIMEDIA/Interactives/2019/06/singapore-street-names/index.html

https://graphics.straitstimes.com/STI/STIMEDIA/Interactives/2019/09/how-st-uncovered-love-scammers-ruse/

https://graphics.straitstimes.com/STI/STIMEDIA/Interactives/2019/02/HK-Beijing-HSR/index.html

https://graphics.straitstimes.com/STI/STIMEDIA/Interactives/2019/08/ndr-2019-transform-sg/index.html

## Documentations

https://st-scrolly.netlify.com

## Sample repo

https://github.com/yongjun21/jsconf-china-scrollytelling-workshop

https://github.com/yongjun21/jsconf-china-scrollytelling-workshop/tree/react

gha_language: JavaScript


text:
-----------------

[comment]: <> ([![codecov](https://codecov.io/gh/asyml/forte/branch/master/graph/badge.svg)](https://codecov.io/gh/asyml/forte))

[![Python Build](https://github.com/asyml/forte-wrappers/actions/workflows/main.yml/badge.svg)](https://github.com/asyml/forte-wrappers/actions/workflows/main.yml)
[![Documentation Status](https://readthedocs.org/projects/forte-wrappers/badge/?version=latest)](https://forte-wrappers.readthedocs.io/en/latest/?badge=latest)
[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](https://github.com/asyml/forte/blob/master/LICENSE)
[![Chat](http://img.shields.io/badge/gitter.im-asyml/forte-blue.svg)](https://gitter.im/asyml/community)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)

**Forte** is a toolkit for building Natural Language Processing pipelines. This
repository tries to wrap the fantastic collections of NLP libraries built by the
community.

This project is part of the [CASL Open Source](http://casl-project.ai/) family.

### Get Started

- First, install the library along with the desired tools. Let's take AllenNLP
  as an example:

```shell
git clone https://github.com/asyml/forte-wrappers.git
cd forte-wrappers
pip install src/nltk
```

### License

This project is licensed by [Apache License 2.0](./LICENSE). The project provides wrappers to other open-sourced projects. To use
them in your project, please check the license of the corresponding project.

### Companies and Universities Supporting Forte

repository: jzpang/forte-wrappers

repo_name: jzpang/forte-wrappers


text:
**RTM Assistant helps to add quickly the web-page link in RememberTheMilk.**

This extension helps to add quickly the web-page with URL in RememberTheMilk as a task.

---

More info about the extension:

You may know the ["Quick Add"-bookmarklet](https://www.rememberthemilk.com/help/?ctx=quickadd.whatis), that allows quickly add tasks to RTM. Unfortunately it doesn't include URL of based webpage.

This extension solves this problem. It based on simple bookmarklet described in the tip: http://www.rememberthemilk.com/forums/tips/3133/. Extension just wraps that bookmarklet, but it doesn't need additional bookmark panel or over clicks for using. It's displayed near the address bar thats why it's much more convenient.

This product uses the Remember The Milk page but is not endorsed or certified by Remember The Milk. It doesn't use Remember The Milk API.


text:
---
title: "Z-Wave Control Panel"
description: "How to use the Z-Wave control panel."
redirect_from: /getting-started/z-wave-panel/
---

  If you don't see the **Configuration** menu on the menubar, where you'll find the Z-Wave menu, [see here](/integrations/config/).

Renaming Z-Wave entities is now done using the same [customization options](/docs/configuration/customizing-devices/) as for any other entity.

## Z-Wave Network Management

Here is where you [include and exclude](/docs/z-wave/adding/) Z-Wave devices from your network.

* **Add Node** puts the controller into inclusion mode, so you can include (add) a device to your Z-Wave network
* **Add Node Secure** puts the controller into secure inclusion mode (this requires that you've created a [security key](/docs/z-wave/adding#sdding-security-devices))
* **Remove Node** puts the controller into exclusion mode, so you can exclude (remove) a device. Note that you can exclude a non-secure device that's been added to another network
* **Cancel Command** cancels any of the above

* **Heal Network** tells the controller to "heal" the Z-Wave network. Basically asks the nodes to tell the controller all of their neighbors so the controller can recompute optimal routing.
* **Start Network** starts the Z-Wave network
* **Stop Network** stops the Z-Wave network
* **Soft Reset** tells the controller to do a "soft reset." This is not supposed to lose any data, but different controllers can behave differently to a "soft reset" command, and may cause the Z-Wave network to hang.
* **Test Network** tells the controller to send no-op commands to each node and measure the time for a response. In theory, this can also bring back nodes which have been marked "presumed dead".
* **Save Configuration** Saves the current cache of the network to `zwcfg_[home_id].xml`.

## Z-Wave Node Management

* **Refresh Node** refreshes the information on the node and its entities. If used on a battery powered device, the device will first need to wake for this to work.
* **Remove Failed Node** will remove a failed node from the network. The node needs to be on the controller's Failed Node List (marked as `is_failed: true`), otherwise this command will fail. You can trick OpenZWave into thinking the node is failed by selecting the `zwave` entity in the *States* menu, under *Developer tools*, and changing `"is_failed": false,` to `"is_failed": true,` then selecting *Set State*.
* **Replace Failed Node** will replace a failed device with another. If the node is not in the controller's Failed Node List, or the node responds, this command will fail.
* **Print Node** prints all state of Z-Wave node to the console log

* **Heal Node** starts healing of the node.(Update neighbor list and update return routes)

* **Test Node** sends no_op test messages to the node. This could in theory bring back a dead node.

* **Node Information** this will display the Z-Wave entity card with information about the node:

*  **averageRequestRTT** The average Round Trip Time (RTT) of requests sent to the node, in milliseconds. A value of 250, for example, is a quarter of a second.
*  **averageResponseRTT** The average Round Trip Time of responses to requests
*  **battery_level** *Battery powered devices only* - the battery level, which may be rounded to the nearest 10
*  **capabilities** A comma separated list of the capabilities of the device
*  **friendly_name** The name you specified to be displayed
*  **is_awake** Whether the device is awake or not
*  **is_failed** Whether the device has been marked as failed. The controller won't try to contact failed devices.
*  **is_info_received** True once the controller has received the node information from the node.
*  **is_ready** When you start the network (or Open Peer Power) it will take a short while before all devices are ready, this shows which aren't yet ready.
*  **is_zwave_plus** True for any Z-Wave Plus devices (note that controllers always report *false*, regardless of whether they are Plus devices or not)
*  **lastRequestRTT** The Round Trip Time of the last request
*  **lastResponseRTT** The Round Trip Time of the response to the last request
*  **manufacturer_name** The name of the manufacturer, as supplied by OpenZWave
*  **max_baud_rate** The maximum bandwidth the device supports, most modern devices will support 40,000 or higher
*  **node_id** The unique node ID of this node
*  **node_name** The base name of this node, this is used to build the entity ID of all entities of this node
*  **product_name** The product name of the device, as supplied by OpenZWave
*  **query_stage** The query stage for this device (see [here](/docs/z-wave/query-stage/) for details)
*  **receivedCnt** The number of messages received from the device
*  **receivedDups** The number of duplicate messages received from the device
*  **receivedTS** The date and time the last message was received from the devices
*  **receivedUnsolicited** How many unsolicited messages were received
*  **retries** How many retries have been made to send messages to this node
*  **sentCnt** How many messages have been sent to the node
*  **sentFailed** How many messages that were sent weren't acknowledged
*  **sentTS** The date and time the last message was sent to the node
*  **wake_up_interval** *Battery powered devices only* - the wakeup interval of the device, in seconds

Battery powered devices need to be awake before you can use the Z-Wave control panel to update their settings. How to wake your device is device specific, and some devices will stay awake for only a couple of seconds. Please refer to the manual of your device for more details.

#### Entities of this node

This is a dropdown where you can select all the entities of this node. Once selected you can then use:

* **Refresh Entity** to refresh just that entity's values
* **Entity Information** to display the attributes of that entity (e.g., its friendly name, the ID of the node, etc)

Here you can mark a device as requiring polling so the controller is aware of changes because the device doesn't send updates itself. Do see the information on [polling here](/docs/z-wave/devices/#polling), since excessive polling can break your Z-Wave network.

The **Polling intensity** says how many poll intervals this device is polled on. For example, if you set 2 then it's polled on every second interval.

You can also exclude a Z-Wave devices from Open Peer Power. You can do that if you have a device that you need to have on the Z-Wave network, but you don't want it to appear in Open Peer Power, or if you've got a device that's failed and you're unable to exclude it.

### Node Values

Contains a list of available values of the selected node, and it's instances.

### Node group associations

Where the device supports the *Association* command class, this will allow you to associate the device with another. OpenZWave will automatically associate the device with the controller, to provide instant updates when the device doesn't support the *Hail* command class.

You can use this to enable one device to directly control another. This is primarily useful for remote controls that operate lights or switches, or where you want to have multiple devices operate as one.

There may be multiple groups, that are used for different purposes. The manual of your device will explain what each group is for.

#### Broadcast group

Some Z-Wave devices may associate themselves with the broadcast node (node 255). You'll be able to tell if this has happened if opening a door (or triggering a motion sensor) causes lights to come on, and closing the door (or the motion sensor going clear) causes lights to run off. You can get rid of this by selecting any target node. If the group has node 255 in it, a *Remove broadcast* button will appear. You can also use the `zwave.change_association` service:

```json
{"association": "remove", "node_id": 3, "group": 1, "target_node_id": 255}
```

That would remove the broadcast group from association group 1 of the device with node_id 3.

### Node configuration options

You can set the *wakeup* interval (in seconds) of the device, this is shown for all devices that can be battery powered, even if they are currently mains powered. The wakeup interval only applies when those devices are battery powered.

The wakeup interval has no impact on the device's ability to report sensor changes. This is purely for how often the Z-Wave chip will check in with the controller. That activity consumes a lot of battery power compared to reporting sensor changes and if you reduce it you'll be reducing the battery life of your device.

Underneath that you can select any supported configuration parameter to see the current setting. You can then change this and select **Set Configuration Parameter** to updated it. Battery powered devices will be updated the next time they wake.

### Node protection

If your node has the protection commandclass, you can change the protection level of the node.
Check your device manual on how to use this setting, as it is different between manufacturers.
Set the new selection by pressing the **Set Protection** button.

## Node user codes

If your node has user codes, you can set and delete them. The format is raw hex ASCII code. Below the input you will see your actual code. For normal nodes this is as follows:
```yaml
\x30 = 0
\x31 = 1
\x32 = 2
\x33 = 3
\x34 = 4
\x35 = 5
\x36 = 6
\x37 = 7
\x38 = 8
\x39 = 9
```
Some non compliant device like tag readers, have implemented to use raw hex code.
Please refer to a hex ASCII table to set your code. Example: http://www.asciitable.com/

Here is a small Python program than will take numbers on the command line and print the correct sequence for compliant devices:

```python
#! /usr/bin/python3
import sys

translations = {}

for x in range(0, 10):
    translations["%s" % x] = "\\x3%s" % x

for c in sys.argv[1]:
    print(translations[c], end="")
```

## OZW Log

If you want to only retrieve some lines at the end of the log, you can specify that with the selection field. Max is the last 1000 lines and minimum is 0 which equals the whole log. If this is not specified, you will retrieve the whole log.
Select **Load** to open a new window with the static log.
Select **Tail** to open a new window with a tailing log with the last specified lines of the log. This is a self updating window.

gha_language: HTML


text:
[Home](./index.md) > [decentraland-ecs](./decentraland-ecs.md) > [GLTFShape](./decentraland-ecs.gltfshape.md)

## GLTFShape class

Signature:

```typescript
export declare class GLTFShape extends Shape
```

## Constructors

|  Constructor | Modifiers | Description |
|  --- | --- | --- |
|  [(constructor)(src)](./decentraland-ecs.gltfshape.(constructor).md) |  | Constructs a new instance of the GLTFShape class |

## Properties

|  Property | Modifiers | Type | Description |
|  --- | --- | --- | --- |
|  [src](./decentraland-ecs.gltfshape.src.md) |  | string |  |

repository: LeonardoVenezia/decentraland-Shoes-Shop

repo_name: LeonardoVenezia/decentraland-Shoes-Shop


text:
# P+Viewer

PE(Portable Executable) Format File Viewer

## Summary

This tool is PE Format File Viewer.

Few years ago(2015), I created this tool to learn PE Format File.

## Cautions

This tool needs huge main memory(About 2GB main memory per 1MB file).

Do not open a file over 1MB.

## Installation

This tool can run on an environment that is installed Java8.

- Java version 1.8.0_60(JRE)
    - Note: This tool uses JavaFX 8.

## Example
1. Run
    ```
    java -Xmx4g -jar "P+Viewer2.0.0.jar"
    ```
1. Open File([File]-[FileOpen])

## Screenshot

![001.png](./image/001.png)

![002.png](./image/002.png)

## Additional Functions

You can use some functions if you input the following key in InputKey Dialog([Help]-[InputKey]).

- Key
    ```
    59bd99714b29f807723ad6aa3c6d9848d14a3074c253b94a1d2f7823ef5c9bf2
    ```
- Additional Functions
    - File Export
    - Binary Edit
    - ReRun

## Develop

I develped this tool on the following environment.

- Windows 8.1 Pro(Japanese)
- Java version 1.8.0_60
- Eclipse IDE for Java Developers Mars.1 Release(4.5.1)
- e(fx)clipse
- JavaFX Scene Builder 2.0

repository: shuichiro-endo/pplusviewer

repo_name: shuichiro-endo/pplusviewer


text:
---
layout: default
title:  Tangent
tags: unity, group project
permalink: /tangent/
author: AJ Weeks
---

## Tangent
###### 2017

- C++, DirectX 11, HLSL

Tangent is a single-player racing game I made in about **one week**. It utilizes the **geometry shader** to create geometry on the fly based on a Bézier curve. Parts of the shader are customizable at runtime. (segment/iteration count, radius) I made this project as a way to better understand the geometry shader stage, and to improve my understanding of graphics programming.

#### Notable features:
 - Realtime **Bézier curve-based level generation** utilizing the geometry shader stage
 - Custom post-processing effects:
   + **Bloom** - Multi-pass Gaussian blur, then a high pass filter, followed by a combination pass  [shader code](https://gist.github.com/ajweeks/dac6bbe182a5ae33b07d3e07f1bbd7a4)
   + **Grayscale** (seen in pause menu)  [shader code](https://gist.github.com/ajweeks/cb00bd2ce0b3fb2d5dc70d95d8924f03)
 - Exploding player mesh on collision


text:
#/r/RacketStringers stylesheet
This is the stylesheet used on http://www.reddit.com/r/RacketStringers. It is written in [SASS](http://sass-lang.com) (Syntactically Awesome Stylesheets) and has been compiled to CSS for use on Reddit. It was originally

##Using the stylesheet
If you'd like to test out changes to the stylesheet yourself (for example before submitting a pull request or if you're interested in using a modified version on your own subreddit, here's an overview of how to do it.

###Download the code
You can either download a [zip archive](https://github.com/awkisopen/reddit-writing-stylesheet/archive/master.zip) or clone this repository using `git`:

    git clone<EMAIL_ADDRESS>
###Install SASS
The SASS installation directions can be found at http://sass-lang.com/tutorial.html.

###Upload images
If you're looking to replicate the entire stylesheet including its header image and custom icons, you can find those in `header/` and `icons/` respectively.

Upload the header image by navigating to `http://www.reddit.com/r/name_of_subreddit/about/edit` and press the upload button under "look and feel". If it's a different height than the header image on /r/writing, you'll want to change `$header-height` in `style.scss`.

The rest of the icons, along with the header background, should be uploaded on the CSS stylesheet page, `http://www.reddit.com/r/name_of_subreddit/about/stylesheet`. If you have your own icons, make sure they have a dimension of 50x50 pixels and adjust `elements/flair.scss` accordingly. Reddit will fail to validate the CSS if there is a reference to an image that hasn't been uploaded or uploaded under the wrong name.

###Compile the stylesheet
Once you've got SASS, open up a command line, navigate to the place you've dumped this repository to and run:

    sass style.scss:style.css

This will produce a file called `style.css` in the same directory. As the extension implies, this is pure CSS that can be copied directly into the subreddit.

If you'd like SASS to recompile the CSS automatically whenever you make a change, you can instead run:

    sass --watch style.scss:style.css

In future, there may be a script that takes some parameters and immediately uploads the correctly parsed CSS to your subreddit. But, much like the future, we're not there yet!

##Issues
If you spot a bug in the stylesheet, have a great idea for something, or just want to know if something is possible, you can contact us in one of two ways.

The first and preferred way of getting in touch is to [create a new issue](https://github.com/awkisopen/reddit-writing-stylesheet/issues). While this requires a github account, it is the easiest way for us to keep track of issues and feature requests as they come up, and the easiest way for us to keep you informed about them.

The second way is through [modmail](http://www.reddit.com/message/compose?to=%2Fr%2Fwriting) on /r/writing. Anything reported via modmail will get its own issue opened on github and will be updated there so as not to spam up our inbox or yours.

##Credits
This theme was derived from that of the [Writing theme](http://www.reddit.com/r/writing). If you want a clean, easy-to-deploy Reddit stylesheet, check out [the Boxed project](https://github.com/creesch/Boxed-css-theme-for-reddit) on github.

Flair icons by http://www.iconarchive.com/show/trainee-icons-by-emey87.html

repository: racketlogger/RacketStringers-style

repo_name: racketlogger/RacketStringers-style


text:
## DNC

Manage dependencies

## LICENSE
Refer LICENSE.md

## USAGE

Usage: ./dnc.sh [--path=path/to/lib | --restore] libname

  --path=LOCAL_LIB_PATH
      point libname to LOCAL_LIB_PATH. Doesn't verify the LOCAL_LIB_PATH is correct.

  --restore
      restore libname to one of previously changed values.

  With only libname as argument, tests for libname in package.json.

Note:
  * --path, --restore act as mutually exclusive flags


text:
# LambLexer

This is a simple lexer for a subset of ANSI C.

### Version = 0.0.2
This lexer has been rewritten to OO style.

### Usage

* ./lexer [filename]

* ./lexer -h

* ./lexer -v

### screenshot:
![](https://raw.githubusercontent.com/Jameeeees/LambLexer/master/doc/screenshot.png)

### Reference: [GCC 1.21](https://github.com/Jameeeees/GCC) And [GCC 3.1](https://github.com/Jameeeees/GCC/tree/master/gcc-3.1)
* [Format of GDB symbol table data(GCC 1.21)](https://github.com/Jameeeees/GCC/blob/master/gcc-1.21/symseg.h)
![](https://raw.githubusercontent.com/Jameeeees/LambLexer/master/doc/Design%20of%20symbol%20table(Custom).png)

repository: gmhzxy/LambCompiler

repo_name: gmhzxy/LambCompiler


text:
# Uromyces houstoniatus J. Sheld. SPECIES

#### Status
ACCEPTED

#### According to
Index Fungorum

#### Published in
Torreya 9: 55 (1909)

#### Original name
Uromyces houstoniatus J. Sheld.

### Remarks
null

repository: mdoering/backbone

repo_name: mdoering/backbone


text:
# A graph database of Galaxy tool interoperability

**Project Number:** 30

## Research area alignment

- ELIXIR Galaxy Community
 ELIXIR Tools platform, Tools and Services Registry, Workflows & Interoperability groups

## Team

**Submitter:** Wolfgang Maier

### Proponent(s)

- Wolfgang Maier

### Lead(s)

- Wolfgang Maier,
 Jon Ison,

### Nominated participant(s)

- Anup Kumar,: Member of the Galaxy EU team working on deep learning models for tool suggestions
 Piotr Jaroslaw Chmura, & Ivan Kuzmin,: bio.tools developers

## Expected outcomes

- - a graph-based database of tools the traversal of which defines analysis workflows at various levels of tool interoperability confidence levels
 - a public frontend for Galaxy instances for exploring networks of tools and suggesting possible workflows from analysis start and end points

## Expected audience

- Galaxy tool developers and experienced end-users & Galaxy server admins for curated content development
 Bioinformatics operations ontologists (EDAM, bioschema) for automated content generation
 bio.tools ecosystem developers and experts
 Graph database developers for database layout decisions
 Members of the Galaxy Working Group within the ELIXIR Tools Platform for integration into Galaxy

**Number of expected hacking days**: 4


text:
# wp-sss
Wordpress Stacks with fine tune for Speed/Secure/Scale with HA

# Prerequsites
- One command/click to deploy

# Measures
## Speed
- Max request/sec
- Min drop request
- Time per request (mean)
- Transfer rate
- Min CPU
- Min RAM
- Transfer rate

## Secure
- Pass https://github.com/wpscanteam/wpscan

## Scale
- Pass > 1 failed over

## Extras
- Min price $5

## How to test
- Use Apache2 Bench (ab)
- Google Page Speed https://developers.google.com/speed/pagespeed/insights/

### Install apache-bench
- https://github.com/radiospiel/ApacheBench-Lion

or

- http://sudheeraedama.blogspot.com/2013/05/install-apachebench-on-mac-osx-1075.html

#### Fast Test
```
ab -c 40 -n 5000 http://<IP_ADDRESS>/
```

#### High concurrent test
```
ab -c 1000 -n 50000 http://<IP_ADDRESS>/
```

## How result is measured?

We will measure these 4 values from `ab` result
```
Failed requests:        0 less is better
Requests per second:    33.91 [#/sec] (mean) more is better
Time per request:       1179.563 [ms] (mean) less is better
Transfer rate:          1719.75 [Kbytes/sec] received more is better
```

repository: digithun/wp-sss

repo_name: digithun/wp-sss


text:
# mod_authnz_sspi

Single sign on plugin for Windows.

Modified to provide group information.

usage in httpd.conf:
```

# require any SSPI authenticated user (Jenkins will check the rest)
Require valid-sspi-user

# pass user and group information to Jenkins
RequestHeader set X-Forwarded-User expr=%{REMOTE_USER}
RequestHeader set X-Forwarded-Groups %{REMOTE_GROUPS}e
```

Based on r17 of <https://sourceforge.net/p/mod-auth-sspi/code/HEAD/tree/branches/mod_authnz_sspi/mod_authnz_sspi/>.

```
 *    "This product includes software developed by the Apache Group
 *    for use in the Apache HTTP server project (http://www.apache.org/)."
 *
 * This code is copyright 1999 - 2002 Tim Costello<EMAIL_ADDRESS> * It may be freely distributed, as long as the above notices are reproduced.
 *
 * modifications by SourceForce user ennnnnio.
 * modifications by David Madl<EMAIL_ADDRESS>```


text:
# Type of filters

JQ has a dynamic type system but, to better understand filters behavior, type
signatures can be added inside comments.

## Grammar for JQ filters type signatures

The notation uses only ASCII characters.

```none
Type anotation				Parameter		Value
    :: Places                               Value                  null
Places                                      Value->Stream'1        boolean
    Output                              Output                     number
    => Output                               Stream                 string
    Input| => Output                        !'2                    array
    (Parameters) => Output              Stream                     object
    Input|(Parameters) => Output            @'3                    [Value]
Parameters                                  Value                  {Value}
    Parameter                               ?Value'4               <Value>'6
    Parameter; Parameters                   *Value                 Value^Value'7
Input                                       +Value                 Letter'8
    Value                                   stream!'5              Name'9
```

Notes:

1. Parameters passed by name are like parameterless filters.
2. The character `!` is the display symbol for non-terminating filters type.
3. The character `@` denotes the empty stream.  Use only when results are never expected.
4. Occurrence indicators (`?`, `*`, `+`) have the usual meaning.
5. Streams output type always have an implicit union with `!`.  To add only when abortion is expected.
6. Indistinct array or object: `<a> = [a]^{a}`.
7. Union of two value types.
8. Single lowercase letters are type variables representing indeterminate JSON value types.
9. Named object (construct only with the underscore character and uppercase letters).


text:
# Consonant-vowel patterns of short words in English

## Description

Have you ever wondered what are the possible [consonant (C) and vowel (V) patterns](https://www.spellzone.com/unit08/page5.cfm) of short words in the English language? Furthermore, with what frequency do these patterns occur? As an example, for four letter words, it is clear that the pattern **VVVV** is impossible and intuitively we would expect that the pattern **CVCC** (e.g. *blab*, *drew*, *shut*, *chew*, *walk*, etc.) is far more common than the pattern **VVVC** (e.g. *aeon* and *eaux* are the only possibilities).

The aim of this repository is to find out the answers to the above questions for short words from three to six characters in length. We will use words from [All Scrabble Words](http://www.allscrabblewords.com) as our corpus.

## Environment

An **environment** for *computational reproducibility* of this project can be setup by following these simple steps:

1. Download and install `python 3.7.3 (64-bit)` (any 3.7.x version should be ok) for your operating system from [python.org](https://www.python.org/downloads/) or [anaconda](https://www.anaconda.com/download/).
Make sure to check the option "Add python 3.7 to PATH" during installation.

2. Download and install the latest version (any version should be ok) of [git-scm](https://git-scm.com/downloads) for your operating system.

3. Clone the [github](https://github.com/) repository:

```
git clone https://github.com/covuworie/cv-patterns.git
```

4. Use [pipenv](https://pipenv.readthedocs.io/en/latest/) to spawn a shell with the [virtualenv](https://virtualenv.pypa.io/en/latest/) activated (this will also load the .env environment variables):

```
pipenv shell
```

5. Install all packages from the [Pipfile](https://github.com/pypa/pipfile) (both *develop* and *default* packages):

```
pipenv install --dev
```

6. Launch the [JupyterLab](https://jupyterlab.readthedocs.io/en/stable/getting_started/installation.html) application in your default browser:

```
jupyter lab
```

## Notebooks

Notebooks are located under the *notebooks* directory. The individual notebooks of the projects can be run interactively in *JupyterLab*. Or if you prefer, there is the [run-all notebook](nobel_physics_prizes/notebooks/run-all.ipynb), which allows one to run all the notebooks sequentially in a non-interactive manner. This is useful for reproducing the output results of the entire study without having to interact with the individual notebooks.

The outputs of the individual notebooks are located in HTML files under the *notebooks/html_output* directory and can be viewed in a web browser. They are produced after a notebook has been run by issuing the following command in a terminal from the *notebooks* directory:

```
jupyter nbconvert --to html --output-dir=html mynotebook.ipynb
```

The actual notebooks only contain source code and markdown narrative as the output is cleaned after running them by issuing the following commands in a terminal from the *notebooks* directory:

```
jupyter nbconvert --to notebook --ClearOutputPreprocessor.enabled=True mynotebook.ipynb

mv mynotebook.nbconvert.ipynb nbconvert.ipynb
```

Cleaning the output allows for better source control of notebooks as the diff outputs only contain code and markdown narrative changes. If output diffs are desired then the diffs between the versions of html files can be examined.

repository: covuworie/cv-patterns

repo_name: covuworie/cv-patterns


text:
# benzene-ws-client

[![npm](https://badgen.net/npm/v/@benzene/worker)](https://www.npmjs.com/package/@benzene/worker)
[![minizipped](https://badgen.net/bundlephobia/minzip/benzene-ws-client)](https://bundlephobia.com/result?p=benzene-ws-client)

> This package is only experimental and not tested. Only works with `@benzene/ws` for now.

The *tiny* client for the [modified GraphQL over WebSocket Protocol](https://github.com/hoangvvo/benzene/blob/main/packages/ws/PROTOCOL.md).

## Install

```bash
yarn add benzene-ws-client
```

## Usage

```js
import { SubscriptionClient } from 'benzene-ws-client';

const subscriptionClient = new SubscriptionClient('wss://localhost/graphql', options);
```

#### urql

```js
import { Client, defaultExchanges, subscriptionExchange } from 'urql';

const client = new Client({
  url: '/graphql',
  exchanges: [
    ...defaultExchanges,
    subscriptionExchange({
      forwardSubscription(operation) {
        return subscriptionClient.request(operation);
      },
    }),
  ],
});
```

#### @apollo/client

```js
import { WebSocketLink } from "@apollo/client/link/ws";

const link = new WebSocketLink(subscriptionClient);
```

## Options

| option | description | default |
| --- | --- | --- |
| reconnectionAttempts | Number of attempts to try reconnect on disconnection. | `0` (disabled) |
| genId | A function to generate unique subscription ids. Default to incremental ids. | `undefined` |

repository: hoangvvo/benzene-ws-client

repo_name: hoangvvo/benzene-ws-client


text:
---
layout: post
title:  "How Does Batch Normalization Help Optimization? (No, It Is Not About Internal Covariate Shift"
date:   2018-07-11 13:05:59
author: Sungwon Lyu
categories: studies
tags: deep-learning deep-learning
---
## WHY?
While the effect of batch normalization was widely proven empirically, the exact mechanism of it is yet been understood. Commonly known explanation for this was internal covariance shift(ICS) meaning the change in the distribution of layer inputs caused by updates to the preceeding layers.

## WHAT?
## Critic
## So?
[Ha, David, and Jürgen Schmidhuber. "World Models." arXiv preprint arXiv:1803.10122 (2018).](https://arxiv.org/abs/1803.10122)

gha_license_id: NOASSERTION


text:
# simple-persistent-data
A simple way to handing persistent data in a Cordova app.

Basically simplePersistentData allows you to have one JSON object that gets saved to persistent on device storage. This is incredibly usefull for simple apps that only need to save small amounts of data such as settings.

# Usage
Simply include the file simplePersistentData.min.js (includes fileWrapper.js).

Then after onDeviceReady you would:
```js
var data = {};

load_data(
    function(){
        // data successfully loaded
        // do whatever
    },
    function(){
        // an error occured
    }
);
```

Then whenever you want to save data to 'disk'
```js
save_data();
```

To mimic behaviour in the browser simply enter the following in your console.

```js
localStorage.DEVMODE = true;
```

repository: jedtrow/simple-persistent-data

repo_name: jedtrow/simple-persistent-data


text:
This documents include some useful links for profiling and improve web performance:

* https://auth0.com/blog/12-steps-to-a-faster-web-app/
* https://www.keycdn.com/blog/website-performance-optimization/
* http://nikcodes.com/tracking-web-perf

The following are links that contains web performance tools of interest:

* http://perf-tooling.today
* http://perf.rocks

The following link include site that provides the trends and competitive analysis on web performance:

* httparchive.org
* bigqueries.es/http-archive
* http://whichloadsfaster.zomdir.com/ (which compares page speed of two different sites)

The following links provide imge leanification:

* http://imageoptimizer.net/
* http://pmt.sourceforge.net/pngcrush/


text:
### martinratio

Martin Ratio

#### Syntax

ubique.martinratio(x,frisk,t,mode,dim)

#### Description

A risk-adjusted measure with free risk and Ulcer index.

Martin Ratio = (Portfolio Return - RiskFree) / Ulcer Index

#### Arguments

|Params|Type|Description
|---------|----|-----------
|`x` | array/matrix | asset/portfolio returns
|`frisk` | number | annual free-risk rate (def: 0)
|`t` | number | frequencey of data. 1: yearly, 4: quarterly, 12: monthly, 52: weekly, 252: daily (def: 252)
|`mode` | string | drawdown calculation. 'return','geometric' (def: 'return')
|`dim` | number | dimension 0: row, 1: column (def: 0)

#### Examples

```js
var x = [0.003,0.026,0.015,-0.009,0.014,0.024,0.015,0.066,-0.014,0.039];
var y = [-0.005,0.081,0.04,-0.037,-0.061,0.058,-0.049,-0.021,0.062,0.058];
var cat = ubique.cat;

ubique.martinratio(x,0,12);
// 44.425456

ubique.martinratio(cat(0,x,y),0,12);
// [ [ 44.425456 ], [ 2.438364 ] ]
```

repository: maxto/ubique

repo_name: maxto/ubique


text:
# Use Spring Data's JPA Repository

**This page is at:** `https://github.com/ted-ncg/labs/blob/master/20-memory-repository-to-jpa.md`

----

## Goal

Replace the in-memory, HashMap-based `AccountRepository` that we've been using with Spring's JPA repository to use a database.

## Steps

1. Update the `Account` *domain* class to be a full-fledged entity class as follows:
   1. Annotate the Account with `@Entity`
   1. Ensure the ID is a `Long` object (not primitive), and is a properly named property (i.e., `getId` *not* `getID` -- case matters)
   1. Annotate the `id` property to look like:

      ```java
      @Id
      @GeneratedValue(strategy=GenerationType.AUTO)
      private Long id;
      ```

      > *Note:* The `@Id` and `@GeneratedValue` annotations are in the `javax.persistence` package

1. Rename the existing `AccountRepository` class to `InMemAccountRepository` by using IntelliJ's "Rename" refactoring tool.

1. Create a new interface as follows:

    ```java
    public interface AccountRepository extends CrudRepository<Account, Long>
    ```

1. Clean up code that uses `AccountRepository` so that it's calling the correct methods.

1. Try out the application, everything should continue to work as before!

----

### Query by Name

Find by name: List<Account> findByName(String name)

* https://docs.spring.io/spring-data/jpa/docs/1.11.11.RELEASE/reference/html/#repositories.query-methods.query-creation

---

### Custom queries

* https://docs.spring.io/spring-data/jpa/docs/1.11.11.RELEASE/reference/html/#repositories.custom-implementations


text:
# SymphonyCMS 2.6 Container for Tredly

Version 1.0.4 August 16 2016

This container is an all-in-one FAMP (FreeBSD, Apache, MySQL, PHP) stack running SymphonyCMS. It relies in the Tredly FreeBSD containers platform. You can find out more information about Tredly at **<http://tredly.com>**

## Installation

Requires Tredly 1.1.0 <https://github.com/tredly/tredly> or later

1. Modify `mariadb/grant.cnf`
2. Change the mysql user password from `super_secret_password` to something more secure. Note that this container does not allow outside connections to MySQL, however it is good practise to use a secure password. There are 2 places this needs to be changed; lines #2 and #3.
3. Optionally change the database name `container_symphony2` on line 1
4. Change the `url` and `redirect` settings in `tredly.yaml` to match the actual URL of your server. If you are running this locally, add `symphonycms.tredly` and `www.symphonycms.tredly` to your `/etc/hosts` file.

### Changing the container name

By default, the container name is `container-symphony2`. Change this by editing `containerName` in `tredly.yaml` prior to building this container.

## Usage

Go to the URL specified in your `tredly.yaml`, e.g. `symphonycms.tredly`. You should be presented with the Symphony installer. Use the database information you specified earlier to complete installation. Be default it is:

* Host: **localhost**
* User: **root**
* Password: **super\_secret\_password**
* Port: **3306**
* Database: **container_symphony2**

## More Information

Visit the official Symphony CMS website for information on how to use Symphony **<http://www.getsymphony.com/learn/tutorials/beginners/>**

## License

Tredly is released under the [MIT License](http://www.opensource.org/licenses/MIT).

repository: tredly/container-symphonycms

repo_name: tredly/container-symphonycms


text:
# *Week 4 Pizza Parlor Project*

#### *Week 4 Pizza Parlor Project, 1.29.2021*

#### *By Kerry Lang*

## Description
_This project was intended to test my knowledge using Object-Oriented Programming, constructor objects, methods and testing.  For example I tested code after completing each step of the objectives, made sure my code is clean and easy to read and made commits regularly to Github_

## Behavior

## Setup
* _Clone the repository https://github.com/klang812/week4-pizza-parlor to your desktop._
* _Navigate to the top level of the directory._
* _Open week4-pizza-parlor/index.html in your browser._

## Specs

_Describe: Pizza()_
_Test: "This function constructs a pizza object with toppings, size and price."_
_Code: let pizza = new Pizza("pepperoni")_
_Expect(toppings).toEqual("pepperoni");_

_Describe: addTopping()_
_Test: "It will add toppings in an array for the order() function."_
_Code: Let pizza = new Pizza("small", "pepperoni", "sausage", "olives")_
_Expect("small", "pepperoni", "sausage", "olives").toEqual(["pepperoni", "sausage", "olives"]);_

_Describe: order()_
_Test: "it returns in a string the order for the user._
_Code: let pizza = let pizza = new Pizza("pepperoni", "Large");_
_Expect("pepperoni", "Large").toEqual("Large pepperoni);_

_Describe: totalPrice()_
_Test: "Prototype returns a price (10) for a small pizza."_
_Code: let pizza = new Pizza("Small")_
      _pizza.price = 10;_
_Expect("Small").toEqual(10);_

_Test: "Prototype returns a price (14) for a large pizza."_
_Code: let pizza = new Pizza("Large")_
      _pizza.price = 14;_
_Expect("Large").toEqual(14);_

_Test: "it will return a price based on number of toppings."_
_Code: let pizza = new Pizza("Small");_
      _let numToppings = 3;_
_Expect("Small" + 3).toEqual($22);_

_Test: "it will return a tiered price based on size and number of toppings."_
_Code:let pizza = new Pizza("Medium");_
      _let numToppings = 3;_
_Expect("Medium" + 3).toEqual($21);_

_Test: "it will return a tiered price based on size and number of toppings in a for loop."_
_Code:let pizza = new Pizza("Medium");_
      _let numToppings = 3;_
_Expect("Medium" + 3).toEqual($21);_

## Known Bugs
* _No known bugs at this time_

## Technologies Used
* _HTML_
* _CSS_
* _JQuery_
* _JavaScript_
* _Bootstrap_
* _MD_
* _Github_

## Legal
* Copyright (c) 2021 **_Kerry Lang_**
* This software is licensed under the MIT license.


text:
# Changelog

## [0.1.1] - 2021-04-05

### Fixed

- Fixed the 'homepage links not opening in new tab' bug.

## [0.1.0] - 2021-03-29

### Added

- Prettified the nav bar popup dialogs, the agenda and the grades 'per course' overview.
- Added 'total' columns to the grades table view.
- Improved homepage accessibility:
  - Added the 'go to' menu directly to the homepage.
  - Expanded the 'courses' menu vertically and moved the scrollbar to the left.

[0.1.0]: https://github.com/JothCoder/smartschool-plus/releases/tag/v0.1.0
[0.1.1]: https://github.com/JothCoder/smartschool-plus/releases/tag/v0.1.1

repository: jonatcln/smartschool-plus

repo_name: jonatcln/smartschool-plus


text:
---
layout: post
title: "[SIAM NEWS] Julia: A Fast Language for Numerical Computing"
author: "李军"
categories: journal
tags: [siam, julia]
image:
  feature:
  teaser:
  credit:
  creditlink: ""
---

By <u>Alan Edelman</u>

March 01, 2016

[Alan Edelman is a professor of applied mathematics at Massachusetts Institute of Technology. He has been working in the area of high performance computing systems, networks, software, and algorithms for 30 years and has won many prizes for his work including the prestigious Gordan Bell Prize, a Householder Prize, and a Babbage Prize. With Julia he sees a fresh approach to high performance technical computing.]

![image](https://github.com/brucejunlee/brucejunlee.github.io/raw/master/assets/img/siam-julia-1.jpg)

Figure 1. Julia is being used in the development and specification of the next-generation aircraft collision avoidance system.

The Environmental Protection Agency’s discovery that Volkswagen installed emissions-cheating software in over 11 million vehicles last September garnered much attention. According to reports, the software made it seem like the vehicles were releasing significantly less nitrogen oxides than in reality, allowing them to discharge up to 40 times the allowable amount of smog-producing pollution. This prompted The New York Times to call for an openness in software that goes beyond the scientific need for transparency. Software openness is becoming a matter of safety and accountability for compliance purposes. This need applies to more than just cars, as the Internet of Things requires communication of data and instructions among multitudes of devices. Open source is not just a checkbox; easy-to-read common code is increasingly becoming paramount.

美国环境保护署去年九月份发现大众在超过1100万辆车上安装了排放检测软件，这一发现得到了很多关注。据报道，该软件使车辆看上去排放的氮氧化物比实际排放的要少，这使得它们实际排放量高达允许烟雾排放量的40倍。这促使纽约时报呼吁开放软件，这超出了对透明度的科学需求。软件开放正在成为遵守规定的安全和责任问题。这一需求不仅仅适用于汽车，因为物联网也需要大量设备之间的数据和指令通信。开源不仅仅是一个复选框，易读的公共代码正变得越来越重要。

With its speed, openness, and transparency, Julia is emerging as that “must-have” easy-to-read common language. And in terms of safety and accountability, Julia is being used as the specification language for the next-generation airplane collision avoiding system (see Figure 1).

凭借其速度、开放性和透明度，Julia正在成为“必须具备的”易读的通用语言。在安全和责任方面，Julia正在被用作下一代飞机防撞系统的规范语言（见图1）。

Why use Julia over languages such as R or Python? The differences lie in the programs’ intricacies. These are all very good languages, but when programming in R or Python the two-language problem  lurks: the need to prototype with one slow dynamic language and rewrite with a fast static language to obtain the final product. Having been around longer than Julia, R and Python have naturally established the kind of popularity that takes some years to acquire. Nevertheless, the two-language problem is very serious. Prototyping in R or Python necessitates a rewrite for speed and deployment. If emissions software is written in Python, one must quickly drill down to C code to understand the details of what is happening. Julia’s advantage is that it solves the two-language problem.

那为什么要使用Julia而不是R或Python这样的语言呢？不同之处在于程序的复杂性。这些都是非常好的语言，但使用R或Python编程时，存在两语言问题：需要用一种缓慢的动态语言构造原型，并用一种快速的静态语言重写以获得最终产品。R和Python比Julia出现的时间早很多，自然就建立了一种需要数年才能获得的声望。然而，两语言问题是非常严重的。R或Python中构建的原型需为了速度和部署需要必须重写。如果尾气排放软件是用Python编写的，你必须迅速钻到C代码中去了解正在发生的细节。Julia的优势在于它解决了两语言问题。

While exact usage statistics are difficult to generate, Julia’s popularity is doubling every nine months, Moore’s law style. There are currently an estimated 100,000 Julia users, nearly 1,000 Julia packages, and more than 400 GitHub contributors. Dozens of universities are also using Julia in classes in engineering, big data, optimization, and numerical analysis, as well as in undergraduate computer science, linear algebra, and statistics. Anecdotally, many engineering and financial companies are using Julia at the “grassroots” level.

虽然精确的使用统计数据很难获得，但Julia的普及率每九个月就翻一番，这是典型的摩尔定律。目前大约有十万位Julia用户，近1000个Julia包和超过400名GitHub贡献者。数十所大学也在工程、大数据、优化、数值分析以及本科计算机科学、线性代数和统计学等课程中使用Julia。有趣的是，许多工程和金融公司也在基层使用Julia。

Nick Trefethen, former SIAM President and my Ph.D. advisor, first got me thinking about how to best articulate Julia’s speed and advantages. I spoke about Julia at the “New Directions in Numerical Computation” linear algebra conference in honor of Trefethen’s 60th birthday this past August. The following commentary includes a few key points from that talk.

Nick Trefethen是SIAM前主席和我的博士导师，他最先让我思考如何最好地表达清楚Julia的速度和优势。为了祝贺去年八月份Trefethen六十岁生日，我在“New Directions in Numerical Computation”线性代数会议上谈到了Julia。下面的评论包括了谈话中的几个要点。

**Placing Emphasis on Performance**

**注重性能**

Julia demonstrates that if designed correctly, the very features that help the computer can also appeal to the human. Those unfamiliar with the transformations of code tend to replace complete understandings with magic accelerators based on some partial truths. Users hear that compiling makes code run faster. Jitting makes code run faster. Vectorizing makes code run faster. Declaring types makes code run faster.

Julia证明，那些有助于计算机的特性如果正确设计的话对人类也很有吸引力。那些不熟悉代码转换的人倾向于用以某些部分事实为基础的魔术加速器来取代对代码的完全理解。用户知道编译使代码运行得更快，JIT使代码运行得更快。向量化使代码运行得更快以及声明类型使代码运行更快。

 Algorithms run quickly when they do not waste time computing unnecessary things. This efficiency can mean taking advantage of structure (as in not multiplying by or adding zeros in sparse matrix computations), or computing only as many digits as are necessary (in iterative methods, or by truncating to take advantage of hardware).

有趣的是，使算法运行得更快似乎比不上使代码运行得更快神秘。当没有浪费时间计算不必要的东西时，算法运行得很快。这种高效性意味着可以利用结构（如在稀疏矩阵计算中不乘零或不加零），或只计算尽可能多的必要数（如在迭代方法中，或通过截断来利用硬件优势）。

Ultimately, code runs faster when it is not beleaguered by unnecessary computational baggage. That the computer language is thought of separately from the computer algorithm is unfortunate. When considering numerical error, every computation must work just right. If not, the entire computation goes wrong. The same can be said of performance; a language must be designed just right for speed.

最终，当不被不必要的计算负担困扰时，代码运行得更快。计算机语言与计算机算法被分开思考是不幸的。在考虑数值误差时，每个计算都必须正确进行。否则，整个计算就出错了。同样的情况也适用于性能；必须设计一款为了速度的语言。

The earliest computer languages were designed primarily to meet the needs of the computer, and were close enough to the hardware to be relatively fast. Then came interpreted languages, which were designed primarily to meet the needs of the human. This facilitated productivity and was thus the better choice for most people. Julia finds a new place by striking a reasonable balance between human and computer.

最早的计算机语言主要是为了满足计算机需要而设计的，而且非常接近硬件，速度相对较快。接着出现了解释性语言，这些语言主要是为了满足人类需要而设计的。这促进了生产力，因此对大多数人来说是更好的选择。而Julia在人与计算机之间找到了合理的平衡。

People initially thought, almost by some kind of conservation law of nature, that a dynamic mathematical language was required to be slow. Julia shows that a carefully designed language that is comfortable for the programmer can still run quickly. It is important to understand that to date, many interpreted computer languages were designed with use cases in mind, while performance and acceleration came grafted in as potential “add-ons.” Placing more emphasis on performance enhances the cooperation between human and computer.

人们最初认为，由于某种自然守恒定律，动态数学语言很慢。Julia表明，一种对程序员来说舒适的精心设计的语言，仍然可以快速运行。重要的是要理解，到目前为止，许多解释性的计算机语言都是用用例设计的，而性能和加速作为潜在的“附件”被嫁接起来，对性能的更多强调提高了人机之间的协作。

![image](https://github.com/brucejunlee/brucejunlee.github.io/raw/master/assets/img/siam-julia-2.jpg)

Figure 2. Julia's implementation of the famous Batman curve. TeX symbols such as \sigma + display beautifully.

**A First Julia Experience: the Batman Curve**

**Julia首次体验:蝙蝠侠曲线**

The famous Batman curve is pictured in Figure 2, which users can experiment with on juliabox.org. The expressions in Figure 2 are equivalent to others that may be found online; I believe this version is much easier for people to read (See interactive code in Lecture 1).

著名的蝙蝠侠曲线如图2所示，用户可以在juliabox.org上实验。图2中的表达式与网上可以找到的其它表达式是等价的；但我认为这个版本更易读（参见Lecture 1 的交互式代码）。

![image](https://github.com/brucejunlee/brucejunlee.github.io/raw/master/assets/img/siam-julia-3.jpg)

Figure 3. Julia users rarely look at assembly, but they readily can. Julia’s tight assembly is a clue as to why it is so fast.

**Julia is fast and flexible**

**Julia快速灵活**

Computer programs run faster when they transform to a tight set consisting of a small number of quick execution steps. Consider some uses of the plus character “+”. We ask so very much from plus, and know which plus we mean by context. Assembly language may use different instructions to express the various additions on a machine. The good news is that aside from some pushing, popping, and moving, one can see how tight Julia’s instructions are (see Figure 3).

当转换成由少量快速执行步骤组成的紧集时计算机程序将运行得更快。考虑一下加号“+”的一些用法，我们使用加号，在上下文环境中知道我们指的是哪一个加号。汇编语言可以使用不同的指令来表示机器上的各种加法。好消息是，除了一些push、pop和move操作外，人们可以看到Julia指令有多紧凑（见图3）。

Of course, “+” can refer to so much more, including dense matrix addition, sparse matrix addition, structured matrix addition, and any type of combination. The point is that Julia produces tight code in all instances.

当然，“+”可以指的更多，包括稠密矩阵加法、稀疏矩阵加法、结构化矩阵加法和任何类型的组合等等。关键是Julia在所有实例中都能生成紧凑代码。

How does Julia do it? For those desiring a quick answer, “multiple dispatch” is the explanation. The Julia language is built on careful principles of type stability that allow for type inference, which enables Julia to perform proper code selection through the multiple dispatch mechanism. Julia reduces the uncertainty in a computation that can waste time.

Julia是怎么做的呢？对于那些想要快速得到答案的人来说，“多指派”就是解释。Julia语言建立在允许类型推断的类型稳定性原则之上，这使得Julia可以通过多指派机制来进行适当的代码选择。Julia减少了会造成时间浪费的计算中的不确定性。

One can see multiple dispatch in action with the “@which” command in Figure 4, which allows users to drill into Julia code if they wish to see how it implements various “+” symbols. Without the user declaring types, the Julia program knows which “+” is intended and uses the correct assembly code without wasting time.

您可以看到图4中使用“@which”命令来了解实际操作中的多指派，用户可以钻入Julia代码中来看看它是如何实现各种“+”号的。没有用户声明类型，Julia程序也能知道想要哪个“+”，并毫不费时地使用正确的汇编代码。

Julia is very much Julia all the way down. (There are bits of other software, and LLVM at the very bottom.) While Julia uses and plays nicely with packages from Python and other computing languages, it does not need to for speed. Even packages such as LAPACK would likely run as fast and could be more flexible if rewritten in Julia. Other numerical languages are front ends to C, C++, or Fortran.

Julia自始至终都是Julia（也有一些其他软件，底层使用LLVM）。如果不考虑速度，Julia也能很好地使用来自Python和其他计算机语言的软件包。如果用Julia重写，甚至如LAPACK这样的包也可能快速灵活地运行。而其他的数值语言都作为C、C++或Fortran的前端。

![image](https://github.com/brucejunlee/brucejunlee.github.io/raw/master/assets/img/siam-julia-4.jpg)

Figure 4. Multiple dispatch in action with the “@which” command.

**Tropical Numbers**

**热带数**

Tropical algebra offers a “x” that distributes over a “+”, but the two symbols can function as arbitrary operations otherwise, as Françoise Tisseur explained at the Householder Symposium XIX[1].

热带代数提供了一个分布在“+”上的“x”，但这两个符号可以作为任意操作，正如Françoise Tisseur在第19届Householder研讨会上所说。

Here is the famous MAX+PLUS example in Julia:

这里是Julia中著名的（max，+）的例子：

![image](https://github.com/brucejunlee/brucejunlee.github.io/raw/master/assets/img/siam-julia-5.jpg)

One can then define tropical numbers of all types:

然后可以定义所有类型的热带数：

![image](https://github.com/brucejunlee/brucejunlee.github.io/raw/master/assets/img/siam-julia-6.jpg)

A few more basics allow for general work with tropical numbers:

更多的允许使用热带数的基础知识：

![image](https://github.com/brucejunlee/brucejunlee.github.io/raw/master/assets/img/siam-julia-7.jpg)

Notice that now powers work, matrix multiply works, kronecker products work, etc. This demonstrates Julia’s speed. Julia’s abstractions allow the type information to flow directly through unhindered. For example, a user might think there is quite a lot going on upon defining a fancy tropical number type, but the assembly shows that the code is remarkably very tight:

注意现在幂乘、矩阵乘法以及矩阵的Kronecker积等都可以，这证明了Julia的速度。Julia的抽象能力使得类型信息能够畅通无阻地直接流过。例如，用户可能会认为在定义一个漂亮的热带数类型时有很多事情要做，但是汇编程序显示代码非常非常紧凑：

![image](https://github.com/brucejunlee/brucejunlee.github.io/raw/master/assets/img/siam-julia-8.jpg)

Indeed, users can see the “compare” command in the plus and the “add” command in the times.

事实上，用户可以在加中看到“比较”指令，在乘中看到“相加”指令。

**Open Source Research**

**开源研究**

In reality, Julia is fast because the community cares about performance. Because it is an open project, self-described “performance obsessive types” have flocked to the project, thus boosting Julia’s performance. I personally want to see Julia emerge as the language of high performance computing, blurring the distinction between “Silicon Valley”-style big data and artificial intelligence (AI) computations, Wall Street style number crunching, and National Laboratory style scientific computing.

事实上，Julia很快是因为社区非常关心性能表现。因为这是一个开放的项目，自我描述的“性能强迫型”蜂拥到这个项目中，从而提升了Julia的性能。我个人希望看到Julia成为高性能计算的语言，这使得“硅谷”式大数据与人工智能（AI）计算、华尔街风格数字计算和国家实验室式科学计算之间的区别变得模糊。

Numerical software research enjoys the benefit of its fruits being quite practical. Those with decades of experience in the business know that users have been sharing code development long before GitHub or the use of the term “open source.”

数值软件研究具有一定的实用性。那些具有几十年经验的企业，知道用户早在GitHub或“开码”一词使用前就已经开始共享代码开发了。

It has been a pleasure to nurture the Massachusetts Institute of Technology’s component of this worldwide effort and to experience the brilliant contributions from so many first-class researchers. Experience Julia for yourself by searching “Juliacon2015” online and watching the videos, trying juliabox.org, or visiting julialang.org.

**Acknowledgments:** I’d like to dedicate this article to my Ph.D. adviser and former SIAM President, Nick Trefethen, on the occasion of his 60th birthday.


text:
# rexif

# NOTE: THIS VERSION IS OBSOLETE

The current maintainer repository of this library is https://github.com/kornelski/rexif.

# Old documentation

RExif is a native Rust crate, written to extract EXIF data from JPEG and TIFF images.

It is in very early stages of development. Documentation and examples are still scarce,
sorry about that. It is also my pet project to learn a bit of Rust. It is very fast:
it takes about 2ms to parse an in-memory image (measured on Core i5).

The crate also contains a
sample binary called 'rexiftool' that accepts files as arguments and prints the EXIF data. It gives
a rough idea on how to use the crate.

I am still filling in
the implementation of most EXIF tags. Merge requests, comments and criticisms about coding style, information
about uncovered EXIF tags, sample images that are not parsed correctly -- in short, any sort of feedback is
welcome!

# Example

```
match rexif::parse_file(&file_name) {
	Ok(exif) => {
		println!("{} {} exif entries: {}", file_name,
			exif.mime, exif.entries.len());

		for entry in &exif.entries {
			println!("	{}: {}",
					entry.tag_readable,
					entry.value_more_readable);
		}
	},
	Err(e) => {
		print!("Error in {}: {} {}", &file_name,
			Error::description(&e), e.extra).unwrap();
	}
}
```

The included tool `refixtool` accepts image file names as command-line
parameters and prints EXIF data for them. The `src/main.rs` file is a
good starting point to learn how to use the crate, then take a look into
the `ExifEntry` struct.

# Contact

Elvis Pfützenreuter -<EMAIL_ADDRESS>- https://epxx.co

repository: elvis-epx/rexif

gha_language: Rust

repo_name: elvis-epx/rexif


text:
# ZFlutterUtils

[![CI Status](https://img.shields.io/travis/gangtao.zhou/ZFlutterUtils.svg?style=flat)](https://travis-ci.org/gangtao.zhou/ZFlutterUtils)
[![Version](https://img.shields.io/cocoapods/v/ZFlutterUtils.svg?style=flat)](https://cocoapods.org/pods/ZFlutterUtils)
[![License](https://img.shields.io/cocoapods/l/ZFlutterUtils.svg?style=flat)](https://cocoapods.org/pods/ZFlutterUtils)
[![Platform](https://img.shields.io/cocoapods/p/ZFlutterUtils.svg?style=flat)](https://cocoapods.org/pods/ZFlutterUtils)

## Example

To run the example project, clone the repo, and run `pod install` from the Example directory first.

## Requirements

## Installation

ZFlutterUtils is available through [CocoaPods](https://cocoapods.org). To install
it, simply add the following line to your Podfile:

```ruby
pod 'ZFlutterUtils'
```

## Author

gangtao.zhou, kidzss

## License

ZFlutterUtils is available under the MIT license. See the LICENSE file for more info.
# ZFlutterUtils

repository: kidzss/ZFlutterUtils

repo_name: kidzss/ZFlutterUtils