text:
# Logistic And Inventory

The Logistic And Inventory modules of PRIMAVERA ERP includes several features that allow you to manage the logistics areas of organization's like sales, purchases and inventory.

TODO...

# Financial

The Financial modules of PRIMAVERA ERP includes several features that allow you to manage the financial areas of organization's like accounting, receivable and payment.

TODO...

# Human Resources

The Human Resources module of PRIMAVERA ERP includes several features that allow you to manage your organization's human resources processes with greater speed and efficiency, such as salary processing, integration with social security or payment and receipts management.

In this project, you will find code samples to show how to work with the human resources integration, such as:
- Employee
- Monthly Changes
- Payroll
- Payslips

## Employee
Among all the options available in the module, the main Human Resources entity is the employee table, where you can access employee files. This table is used in many of the existing processes and includes the configurations used in most of the module.

To create an employee, follow these steps:

#### 1. Create the employee object with the required information
```C#
RhpBEFuncionario employee = new RhpBEFuncionario
{
  Funcionario = "<employee_code>",
  Nome = "<employee_name>",
  (...)
};
```

#### 2. Save the employee
```C#
PriEngine.Engine.RecursosHumanos.Funcionarios.Actualiza(employee);
```

## Monthly Changes
You can manage changes to your employees' data, such as recording absences, overtime, salaries and deductions.

To record an absence for an employee, follow these steps:

#### 1. Validate if the Absence exists

You can only report employee absences that exist in the absence table.

#### 2. Create the absence object with the necessary information
```C#
RhpBECadastroFalta absenceRecords = new RhpBECadastroFalta
{
  Funcionario = "<employee_code>",
  (...)
};
```

#### 3. Save the absence record

You need to check if the absence associated with the employee already exists on the specified date before entering it.
If it already exists, the system updates the existing absence data, otherwise it will report a new absence with the entered data.
```C#
PriEngine.Engine.RecursosHumanos.CadastroFaltas.Actualiza(absenceRecords);
```

## Salary Processing
In practice, employee salary processing is one of the module's most important features, allowing you to process earning amounts, holiday and Christmas allowances, extraordinary and end-of-contract pays.

To process an employee's salary, follow these steps:

#### 1. Validate if the Employee exists

To be able to process employees' earnings, they must already be registered in the database.
```C#
PriEngine.Engine.RecursosHumanos.Funcionarios.Existe("<employee_code>")
```

#### 2. Create the processing object with the necessary information
```C#
RhpBEProcessamento Payroll = new RhpBEProcessamento
{
  Funcionario = "<employee_code>",
  (...)
}
```

#### 3. Enter the period specified for the Employee
```C#
Payroll.Periodo = PriEngine.Engine.RecursosHumanos.Funcionarios.DaValorAtributo(Payroll.Funcionario, "Periodo").ToString();
```

#### 4. Perform the processing
```C#
PriEngine.Engine.RecursosHumanos.Processamento.ProcessaAuto(Payroll, ref error);
```

gha_language: C#


text:
---
layout: default
title: "PCA for Oceania"
published: true
classes:
 - slide
data:
  x: 10000
  y: 3000

---

The principal components of Oceania cluster around 1960. This is directly after a doubling of immigrants, similar to what happened to the Asia principal components in 1980.

![PCA oceania](https://ulyssesinvictus.github.io/cs109-project/assets/PCA/pca_oceania.png)

license: MIT

branch_name: refs/heads/master

extension: md

license_type: permissive


text:
# Changelog

All notable changes to **simplecomplex/inspect** will be documented in this file,
using the [Keep a CHANGELOG](https://keepachangelog.com/) principles.

## [3.1.1] - 2021-04-19

### Fixed
- Inspector use config `escape_html` property.

## [3.1] - 2020-08-07

### Added
* Separate depth config var for tracing; trace_depth.

### Changed
* Integer as $options argument for inspect()|trace() is now always interpreted
  as 'depth'; no longer interpreted as 'limit' when tracing.
* $options argument is now array|int; string ignored.
* Minimum depth when tracing is now zero; i.e. don't inspect method arguments.
* Option 'kind' removed.
* Inspector::LIB_FILENAMES is now an array whose keys are filenames.

### Fixed
* Passing non-array $options spelled fatal error.
* Tracing always inspected arguments to one level deeper than the depth option.
* Options interpretation disentangled; was probably flawed.

## [3.0] - 2020-07-08

### Added
* Config helper class to ease accommodation in frameworks.
* Inspect configure() method.
* New option rootdir_replace.
* Inspector toArray() method.
* Inspector log() method; thus reintroducing direct (chainable) logging
(see v. 2.0).
* Inspector use magic method __debugInfo() when it exists.

### Changed
* All package dependencies eliminated.
* Inspect constructor no longer explicit, to ease framework accommodation.
* Class InspectToLog abandoned, due to no globally supported means of getting
and using dependency injection containers; constructor throws exception.
* Root dir replacement no longer targeted specifically at document root;
may be whatever directory considered 'root' in context.
* Deprecated Inspector get() method; use toArray().
* Changelog in standard keepachangelog format; previous was idiosyncratic.

### Fixed
* Unicode helper doesn't need to now about the intl extension, never used.
* PHP 7.4 deprecation: The array and string offset access syntax using curly
braces is deprecated.

## [2.3] - 2019-01-04

### Fixed
* Bad and stupid assignment-in-condition bugs in exceeds time/length checkers.

## [2.2.5] - 2018-08-11

### Added
* Tracer use option (int) 'wrappers'.

### Fixed
* Escape digit one (SOH, Start of Heading), for binary string.

## [2.2.2] - 2018-05-01

### Changed
* Deny (Apache) HTTP access to the whole package.

## [2.2.1] - 2018-04-07

### Fixed
* Beware of class_exists+autoload; lethal if rubbish spl_autoload.

## [2.2] - 2018-04-07

### Added
* Convenience class InspectToLog.

### Changed
* Frontend JS inspect new methods variable, variableGet, traceGet.
* Frontend file-line method flLn() now gets wrapping by argument; checking for
filename (inspect.js) is useless when JS source files get aggregated.
* Deprecated Inspect::setConfig(); doesn't solve any (non-existing) problem.
* Package requires Utils package ^1.2.

### Fixed
* Reduce dependencies: Config package no longer required.

## [2.1] - 2017-09-24

### Added
* Frontend inspect is now exposed as simpleComplex.inspect,
apart from window.inspect.
* trace() log previous exception too, but don't trace it.
* trace() mark end of analyzed stack by printing number of frames
exceeding limit.

### Changed
* Frontend inspect now only provides functions typeOf and trace,
apart from inspect() function self.
Removed functions: configure, get, log, traceGet, traceLog,
argsGet, events, eventsGet, eventsLog, errorHandler, local.
* variable() treat Throwable as an exception, not a hashtable object.
* Default format 'enclose_tag' is now empty (none).

### Fixed
* Frontend inspect no longer requires jQuery.
* Use document root features of Utils instead of own (redundant and unsafe)
features.
* Config and locale-text no longer risk that dupe key scalar values become
array.

## [2.0] - 2017-07-12

### Added
* New option escape_html; default off.
* Report empty array as numerically indexed array.
* Reflect the array-like behaviour of ArrayAccess objects.
* Inspector toString with option to skip preface.

### Changed
* Complete remake, all extraneous features removed; like built-in logger.
* Obsoleted options: message, hide_scalars, hide_paths, by_user, one_lined,
no_preface, no_fileline, name.
* Inspect allow extending constructur to provide dependencies by other means.
* Pass Inspect instance to Inspector constructor.
* Use SimpleComplex\Utils\EnvVarConfig as fallback config object.
* Use Inspect config object directly in the Inspector class.
* Use dependency injection container when possible.
* Default string needles/replacers shan't replace <> unless option escape_html.
* Default string replacers shan't HTML escape quotes unless option escape_html.

### Fixed
* Secure dependencies on demand, not on instantiation.
* In-package exception types obsolete.

## [1.1] - 2016-05-01

### Fixed
* Bad type in frontend .errorHandler(); literal 'messsage' (3 x 's') made for
empty output.
* Don't set/get cookie in CLI mode.
* Session counting is not important enough to risk PHP warning due to response
body sending already commenced.

## [1.0] - 2015-07-12

### Added
* Extraction of generic framework-independent code completed (the separation was
initiated earlier, with Drupal module Inspect 7.x-6.0).
* New instance var code, usable for event or error code.
* Now supports logging via injected PSR-3 logger; instance var (object) logger.

### Changed
* Removed method cliMode(), use PHP_SAPI === 'cli' instead.
* UTF-8 validity checker and byte truncater rewritten from scratch.
* Removal/replacement of Drupal legacy code concluded.
* Make sure session counting is initialised (if conf session_counters),
even if we don't listen to any request init event.
* configGet/Set() must be called with non-empty arg $domain if inspect var.
* Abstracted cookie retrieval to allow overriding cookie handling by extenders.
* Backend and frontend: category is now an alias of type (instead of vice versa)
* and the use of category is deprecated.
* Default dir for filing (setting: file_path) is now system temp dir; in effect
[system temp dir]/logs.

### Fixed
* Fixed frontend file:line resolver; failed to identify inspect.js self.
* Frontend: stricter typeOf() array check; some jQuery extensions (old
dataTables) were erroneously assessed as array.

## [0.1] - 2011-10-16

### Added
* Initial version, as [Drupal module Inspect](https://www.drupal.org/project/inspect/).

repository: simplecomplex/inspect

repo_name: simplecomplex/inspect


text:
---
layout: default
---

# 1993-05-12 - Re: The Halting Problem

## Header Data

From<EMAIL_ADDRESS>To<EMAIL_ADDRESS>Message Hash: 21e177047e11aa11aed462d8f754e672af7b5735de5a639c458bc941d881704a

Message ID: \<9305122047.AA09694@banff\>

Reply To: _N/A_

UTC Datetime: 1993-05-12 20:47:56 UTC

Raw Date: Wed, 12 May 93 13:47:56 PDT

## Raw message

```
{% raw  %}From<EMAIL_ADDRESS>Date: Wed, 12 May 93 13:47:56 PDT
To<EMAIL_ADDRESS>Subject: Re: The Halting Problem
Message-ID: <9305122047.AA09694@banff>
MIME-Version: 1.0
Content-Type: text/plain

>From<EMAIL_ADDRESS>Wed May 12 13:26:04 1993

>I don't see how determining that a particular string is an encrypted
>message reduces to the halting problem.

Consider that the cyphertext is a program for an abstract machine
called the cyphercracker which returns TRUE if a message is encoded
otherwise FALSE.  Such a system for determining message-ness could
take an arbitrary amount of cpu time and no amount of static
analysis could determine the return value quicker.

Paul E. Baclace
<EMAIL_ADDRESS>

{% endraw %}
```

## Thread

+ Return to [May 1993](/archive/1993/05)

+ Return to "[Marc Horowitz <marc@GZA.COM>](/authors/marc_horowitz_marc_at_gza_com_)"
+ Return to "[Matt Blaze <mab@crypto.com>](/authors/matt_blaze_mab_at_crypto_com_)"
+ Return to "[peb@PROCASE.COM](/authors/peb_at_procase_com)"

+ 1993-05-12 (Wed, 12 May 93 13:47:56 PDT) - Re: The Halting Problem -<EMAIL_ADDRESS>  + 1993-05-12 (Wed, 12 May 93 14:49:10 PDT) - [Re: The Halting Problem](/archive/1993/05/c3bfd9229c50207723a2e76a1acc531cecc55996789e55921982849e7587dfa4) - _Marc Horowitz<EMAIL_ADDRESS>  + 1993-05-12 (Wed, 12 May 93 15:46:01 PDT) - [Re: The Halting Problem](/archive/1993/05/772e71fdcda765e8ac8603db842fc8e1e97935fee4e094d1e48cf51ccd07c555) - _Matt Blaze<EMAIL_ADDRESS>

gha_license_id: MIT


text:
# Encrypt.One

Tasasd
dhe main goal of `https://encrypt.one` is to make sensitive information sharing
safe and secure. it was achieved by using full client-side encryption model.

Csdsadreated by [Final Level](https://final-level.com/).

## Advantages

- Before insdfsfsformation is sent to the server it is encrypted (by AES 256) in your browser with a randomly generated key or your passphrase by [crypto-js](https://github.com/brix/crypto-js).

- The server receives your information encrypted and cannot decrypt it, because the link or the passphrase never send to the server.

- After you send the link and the pasassphrase via any kind of commun ication, the recipient browser decrypts it and the information is deleted from the server.

## Prerequisites

- [Go 1.7](http://golang.org/doc/install)
- [npm](https:/ф/www.npmjs.com/)

## Setup

a

- Ensure that `GOPATH` is set.
і
```sh
  npm -i
  GOOS=linux GOARCH=amd64 ./package.sh encryptone
```

### Run
- Ensure that `STORAGE_TYPE` is set to disk and storage variables (eg. `DISK_STORAGE_PATHS`) if you want to store your data permanently.
-    asdaSet `USE_HASHING=1` for assets hashing


text:
# RNA Sequencing Heatmap R Package
sequencingHeatmap is an R package that aims to simplify and expedite the creation of heatmaps from provided RNA sequencing output spreadsheets.
Users provide the output file, a directory containing subsets of genes to map, and other specifications to produce heatmaps in the
following file formats: PDF, TIFF, FIG, and PostScript. Fold-change calculations are performed with normalization through dividing by
the maximum value and square root transformation.

> Note: Threshold is set by default to include only genes with a reported adjusted p-value < 0.4 and count >= 15. This can be changed by setting the appropriate variables.

Heatmaps are generated using Ward clustering and Euclidean distance via the `heatmap.2` package.

# Getting started

Install the R package using the following commands on the R console:
```
install.packages("devtools")
devtools::install_github("MUSC-CGM/sequencingHeatmap")
library(sequencingHeatmap)
```
Set up a directory to keep your input files, one per subset of genes. The formatting of each file will be as follows: the first line
indicates whether to cluster by gene, sample, or both; the second line provides the title of the heatmap; and subsequent lines identify
each of the genes of interst (be it by its symbol or gene ID). The following shows the first 5 lines of a file which
clusters by sample and uses gene symbol as an identifier:
```
sample
Example Heatmap Title
BRCA1
BRCA2
TP53
```

# Example
The following command could be used to create heatmaps from a given RNA sequencing output file in which results are stored in the first sheet.
The method parameter indicates that the files in the input directory use gene symbol as an identifier (as in the file above). Genes
will be sorted by adjusted p-value and only the minimum 100, 125, and 150 will be used in 3 separate iterations.
```
sequencingHeatmap(sequencing="sequencingoutput.xlsx", sheet=1, columns=5:14, inputs="inputDirectory", method="symbol", top=c(100,125,150))
```
This alternate approach uses the gene ID identifier but chooses to use all genes that meet the threshold. Input files will need to be
formatted appropriately.
```
sequencingHeatmap(sequencing="sequencingoutput.xlsx", sheet=1, columns=5:14, inputs="inputDirectory", method="geneid")
```
# License
 This project is licensed under the terms of the BSD 3-clause.

repository: MUSC-CGM/sequencingHeatmap

repo_name: MUSC-CGM/sequencingHeatmap


text:
#First README

####README exercise for Epicodus (10/10/16)

####By Erica Nafziger

##This README exercise is allowing me to practice how to correctly set up a README file.

_I want users and developers to know that this README is pretty neat and I'm not exactly sure what else to do._

##Setup/Installation Requirements

* _Step 1: Open this file_
* _Step 2: You already did it hooray_
* _Step 3: Now read this file from beginning to end_
* _Step 4: Move on with your life_

_This is not an app it is simple a file. It probably doesn't even need a README, but I made one anyway. Hoorah._

##Known Bugs

_There are no known issues...hopefully ever._

##Support and contact details

_If you have any issues or questions contact Erica Nafziger._

##Technologies Used

_I have used Atom, Git, and learnhowtoprogram.com to create this file._

### License

*This file is licensed under the MIT License.*

Copyright (c) 2016 **_Erica Nafziger_**


text:
# Densenet3d

## Introduction
Densenet3D implementation using PyTorch

## Getting started

### 1. Requirements
- [python 3.6 >=][pythorn]
- CUDA [10.1][cuda10.1] or [10.2][cuda10.2]
- [pytorch 1.6.0][pytorch]
- openCV
- scipy
- Numpy

### 2. Copy configuration
```console
 cp config.py.example config.py
```
```console
 cp paths.py.example paths.py
```
For windows
```console
 copy config.py.example config.py
```
```console
 copy paths.py.example paths.py
```
### 2. Dataset
Download 20BN-Jester Dataset from [here](https://20bn.com/datasets/download)

Use the following credentials to login if you do not want to create your own.
```text
email<EMAIL_ADDRESS>password: jesterdataset
```

After you log in chose the following dataset and download to a folder.

![Download Dialogue](https://raw.githubusercontent.com/KTUN-DataScience/densenet3d/main/docs/images/dataset.jpg "Download dialogue")

After download extract:
```console
cd download_folder/

cat 20bn-jester-v1-??|gzip -dc|tar xf -
```
For the second command use a unix terminal like git bash. After extraction add the folder to the project or place the folder in  place you can easily access.

### 3. Install Dependencies

Install dependencies using requirement.txt with the following command.
```console
pip install -r requirements.txt
```
### 4. Create frames

```console
python utils/n_frames_jester.py dataset_folder
```

### 5. Configuration
`config.py` contains all the parameters to train **Densenet3D** model
| Attribute        | Default           | Description  |
| ------------- |:-------------:| :-----|
| `arch`     | Densenet | Name of the architecture of the model |
| `learning_rate`      | 0.01      | Set learning rate for the model |
#### Note: *This table will be updated later*

**Example**:
```python
class Config:
    """
    Model training Configuration class
    Attributes:
        arch: Name of architecture being used
        learning_rate (float) - how many filters to add each layer (k in paper)
        n_epoch (int) - how many layers in each pooling block
        lr_patience:
    """
    arch = 'Densenet'

    learning_rate = 0.01

    lr_patience = 10

    momentum = 0.9

    begin_epoch = 1

    n_epochs = 2

    n_classes = 5
    ...
```

### 6. Run
```console
python main.py
```
## References

1. [Resource Efficient 3D Convolutional Neural Networks][1]
2. [Densely Connected Convolutional Networks][2]

## Acknoweledgements
This project was setup with inspiration from the [Kensho Hara](https://github.com/kenshohara/3D-ResNets-PyTorch) and [Okan Köpüklü](https://github.com/okankop/Efficient-3DCNNs)

[cuda10.1]: https://developer.nvidia.com/cuda-10.1-download-archive-base

[cuda10.2]: https://developer.nvidia.com/cuda-10.2-download-archive

[pytorch]: https://pytorch.org/get-started/locally/

[pythorn]: https://www.python.org/downloads/

[1]: https://arxiv.org/pdf/1904.02422.pdf
[2]: https://arxiv.org/abs/1608.06993

branch_name: refs/heads/main


text:
# Aureobasidium microstictum (Bubák) W.B. Cooke, 1962 SPECIES

#### Status
ACCEPTED

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

#### Published in
Mycopathologia 17: 37 (1962)

#### Original name
Kabatiella microsticta Bubák, 1907

### Remarks
null

repository: mdoering/backbone

repo_name: mdoering/backbone


text:
---
layout: post
title:      "Going Down the Rabbi Hole with RabbitMQ"
date:       2017-12-18 18:09:15 +0000
permalink:  going_down_the_rabbi_hole_with_rabbitmq
---

Modern web applications can be complex. Many processes might need to happen at the same time. One process might be initiated but needs another process to complete before it can be finished, while that second process is dependent on other asynchronous functions to also be fulfilled. There are various methods to handle these layers of complexity in application development. Some of the most popular frameworks around today have built in functionality that helps address these issues.

This past week I went down the rabbit hole of one way to address handling multiple inter-dependent tasks by beginning to learn about [RabbitMQ](https://www.rabbitmq.com/).

![](https://cdn-images-1.medium.com/max/1024/1*KEmYc1dyOpiJiRwo7b-0QQ.jpeg)

What is RabbitMQ? RabbitMQ is an open source message broker software package. With RabbitMQ you can set up the infrastructure to connect the various components of your application that are dependent on each other. RabbitMQ works by creating producers and consumers that interact with message queues. Producers create the message, while consumers receive the message. Messages live in a message queue. The consumers are always listening for new messages and when a new message is received it is interpreted and acted upon as specified in the program.

Let us simulate what this looks like with a simple “Hello World” message. The RabbitMQ website contains an abundance of materials on the software, including excellent tutorials and I highly recommend exploring it for a more in-depth look.

The producer for our “Hello World” message written in Javascript will look like this:

```
#!/usr/bin/env node

const amqp = require('amqplib/callback_api');

serveramqp.connect('amqp://localhost', function(err, conn) {
 conn.createChannel(function(err, ch) {
   let q = "hello";
   let msg = process.argv.slice(2).join(' ') || "Hello World!";
   ch.assertQueue(q, {durable: false});
   ch.sendToQueue(q, new Buffer(msg), {persistent: true});
   console.log(" Message was sent %s", msg);
 });
 setTimeout(function() {conn.close(); process.exit(0) }, 500)
});
```

What we have done above is first setup the [AMQP client library](https://www.npmjs.com/package/amqp-client), which allows us to send and receive RabbitMQ messages. Then, we setup a connection serveramqp.connect, which takes two arguments: the server we are setting up and a function. In this function we create a message channel, which also takes an argument of a function, wherein we define our queue (let q = hello;) and our message as either what we input on the command line or “Hello World. We proceed from there to create the queue and send to our queue the message. In the process of doing so, we also log to console that we sent it to the queue, so we know it succeeded. Lastly, we close the channel connection and exit the process after 5 seconds.

Now, we need to setup our RabbitMQ consumer. In this example below we are going to simulate the workload that each message will bring to our program by waiting a second for each “.” present in the message. You can run multiple RabbitMQ consumers to listen to the same message queue and each time one receives a message it works on the content of that message, but the other running consumers are free to receive additional messages. The system knows to send to open consumers first, instead of creating waitlists of messages behind each consumer, whenever possible.

```
#!/usr/bin/env node

const amqp = require('amqplib/callback_api');

amqp.connect('amqp://localhost', function(err, conn) {
  conn.createChannel(function(err, ch) {
    let q = "hello";
    ch.assertQueue(q, {durable: false});

    console.log("Listening for new messages in %s. To exit press CTRL+C", q);
    ch.consume(q, function(msg) {
      let secs = msg.content.toString().split('.').length - 1; console.log(" [x] Received %s", msg.content.toString());
     setTimeout(function() {
        console.log("Work done");
      }, secs * 1000);
    }, {noAck: true});
  });
});
```

Our consumer function has some overlap with our producer function. Just like our producer function, we need to require the AMQP library. We also need to define our message queue, and it is important here that it is named the same as it is named in the producer. Unlike our producer, the consumer does not shutdown after a specified period of time, because its job is simply to listen for new messages and then to send them to the right places to be acted upon. As mentioned above, we simulate a workload by waiting a second for each “.” in the message: let secs = msg.content.toString().split(‘.’).length — 1;.

What we have defined above is a simple mockup of a RabbitMQ system. RabbitMQ is an incredibly powerful tool to incorporate into a complex application and we have only scratched the surface. If you are interested in taking a deeper dive I’d highly recommend working your way through the [tutorials](https://www.rabbitmq.com/getstarted.html) that they provide on their site. The code above is a combination of the first two tutorials they present. One word of warning though: Once you start going down the rabbit hole, you might have a hard time coming back up.

extension: markdown


text:
# BootcampHW1
This is a personal blog style webpage created for the "first homework assignment" in the JHU FullStack bootcamp
The purpose of this assignment is to learn the basics of creating a webpage with content using HTML and CSS.

# content

This website features a main index.html which displays a profile photo and a short persional bio. It also has links to a porfolio.html page and a contact.html page

The portfoio page features images that I, Michael Artes, the creater of this page uploaded from my personal image library.

The contact.html page features an example form with fields for the user to input thier name and email adress and send a message.

* The background pattern used was found on [Subtle Patterns](https://subtlepatterns.com/)

# pictures of cats
This website features at least 2 cat pictures, thereby meeting the basic requirments for it to exist on the internet

# Enjoy!

MIT License

Copyright (c) [2019] [Michael Artes]

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

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

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


text:
## 13.2.0

-   Allow autocomplete in strings
-   Use onDidChangeText instead of onDidStopChanging for tracking buffer modification
-   Bump dependencies

## 13.1.0

-   Disable instance-per-tsconfig by default; make it configurable

    Back in v12.7.0, a change was introduced to spawn a separate tsserver
    instance per `tsconfig.json` file. This effectively made project
    assignment for source files referenced in several projects
    deterministic. However, this same change can prevent external
    declaration files (like ones in `node_modules/@types`) from being
    reloaded by tsserver even when they are opened in Atom, which is by far
    a more common thing to want than deterministic project assignment.

    So, the instance-per-tsconfig code is now disabled by default. You can
    enable it in the Atom-TypeScript settings. The option is called
    `tsserverInstancePerTsconfig` and is titled "Spawn separate tsserver
    instance for each tsconfig.json" in the settings GUI.

## 13.0.2

-   Auto-add json extension to config file path if it's missing

## 13.0.1

-   Recursively load extended config

## 13.0.0

### Breaking changes

**TL;DR: TypeScript prior to v1.5.3 is no longer supported.**

-   Use documentHighlights instead of occurrences
-   Use TypeScript API for parsing `tsconfig.json`

    Notice: currently, the bundled TypeScript implementation is used. This
    should work fine in most cases, however, some edge cases might produce
    confusing behaviour (e.g. Atom-TypeScript might parse `tsconfig.json`, but
    `tsc` might not -- or vice versa). Please report any issues related to
    `tsconfig.json` parsing.

-   Remove dependency on `tsconfig` npm module

    This module was used to parse `tsconfig.json` more or less "like
    TypeScript". The module is essentially unsupported at this point. There is
    little reason to try to use it nowadays.

This essentially makes it so TypeScript prior to v1.5.3 is no longer
supported. TypeScript v1.5.3 has been released in July 2015, so I feel
that it's old enough to be nearly ubiquitous. If you need to work with TypeScript prior to v1.5.3, please use older release of Atom-TypeScript.

On the plus side, inherited `tsconfig.json` should work as expected now.

### Changes

-   Crashed server is restarted on demand only

    In v12.7.0, a feature was added that would auto-restart tsserver if
    it crashed, but it did contain a guard against crash-loop (to avoid
    hogging system resources). This decision evidently lead to some
    confusion, so now the crashed tsserver is only restarted on demand, i.e.
    if there is a need for a running instance. This should all happen
    in background. On the upside, now there's no limit to how much tsserver
    can crash before it's no longer auto-restarted, so it generally should
    work more consistently.

### General fixes

-   Dispose of Linter in errorPusher properly
-   Inherited `tsconfig.json` should work as expected now due to switching
    to TypeScript-supplied config parser.

### Maintenance

-   Update bundled TypeScript to v3.2.2
-   Fix typo in `package.json` (Wes Moberly)
-   Add proper LICENSE text

    Atom-TypeScript has always been licensed under the MIT license, but
    the license text was missing, instead the license file only contained the
    word "MIT". This has been fixed.

-   Remove bogus await
-   Clean up errorPusher code
-   Remove outdated comments
-   Removed dangling grammar settings
-   Add support for new completionInfo command, avoid using deprecated completions

    Since v3.0.0, TypeScript deprecated old completion commands, and instead
    implemented new ones. Since we obviously want to support TypeScript
    prior to v3.0.0 for the time being, the new interface is preferred when
    available, but Atom-TypeScript will fall back to the old one on TypeScript
    versions prior to v3.0.0.

## 12.7.3

-   Clean up tooltip code; Do not try to show tooltips on destroyed editors

## 12.7.2

-   Auto-restart tsserver syncronously to avoid race conditions

## 12.7.1

-   Catch and properly report tsconfig parse errors

## 12.7.0

### Changes

-   Bundled TypeScript version updated to 3.1.6

-   Made config-file selection deterministic

    Now a separate tsserver instance is started for each `tsconfig.json`.
    This has a result of the closest `tsconfig.json` (wrt directory
    hierarchy) always being selected for the typescript file. This should make
    cases where the same file is be used in multiple TypeScript sub-projects
    less confusing to deal with.

-   Atom-IDE interfaces are preferred to builtin ones if available. This
    includes tooltips, occurrence markers, etc. Most of these changes can
    be reverted by choosing appropriate preferences in the Atom-TypeScript
    settings.

### New features

-   Made tooltip position configurable

-   Experimental support for `allowJS` and `checkJS`. This needs to be
    explicitly enabled in the settings

-   Added "signature help", i.e. function arguments tooltip

-   Added the ability to restart tsserver; it will also be auto-restarted
    on crashes, if those don't happen too frequently

-   Added support for more atom-ide interfaces, namely:

    -   Find References
    -   Definitions
    -   Outline
    -   Code Highlight (occurrence highlight)
    -   Busy Signal

    Built-in options are still available via settings.

-   Implemented intentions highlight interface

### Fixes

-   Fixed yet another applyEdits operation ordering bug
-   Don't try to compile on save if compileOnSave is false\/unset in
    `tsconfig.json`
-   Fixed a couple status panel display bugs (status\/progress)
-   Added nuclide to list of packages providing UI components (so that there
    is no prompt to install atom-ide-ui when nuclide is already present)
-   Fix tsconfig path display bug. The display is deferred until the config
    path is resolved in the first place.
-   A lot of fixes wrt floating promises.
-   Some synchronization fixes

### Maintenance

-   Use newer Atom API for text changes
-   Simplify change command invocation
-   Update dependencies
-   Moved built status update to TSBuffer (avoid multiple updates); ensure no change event interleaving
-   Add a rule against floating Disposables
-   Wait a bit longer on checkAllFiles
-   Added no-unbound-method rule
-   Clean autoCompleteProvider code somewhat
-   Do not expose withTypescriptBuffer; don't create temporary ts buffers
-   Simplify client code a bit
-   Removed client accessors from TypeScriptBuffer
-   Tweak some typings (formatting, etc)
-   Enable definition checking; fix definitions
-   Defer requiring SemanticView until needed
-   Major rewrite of TypescriptEditorPane
-   Split commands\/clearErrors to separate files
-   Handle promises in occurrence controller appropriately; clear saved markers
-   Move occurrence handler into a pluggable module
-   Shorten buffer flush code in autocompleteProvider
-   Enabled ordered-imports rule
-   Treat TSLint warnings as errors for the purposes of CI
-   Switch to typescript-tslint-plugin
-   Refactor statusbar; throttle pending updates to reduce statusbar jitter
-   Tweak builtin tooltips
-   Refactor tooltips
-   Isolate tsclient code a little better
-   Enabled no-floating-promises rule
-   Refactor TypescriptServiceClient.on
-   Fix typescript server typing

## 12.6.3

-   Ensure text edits are always applied in reverse location order

    Fixes rename-refactor on TypeScript 3.0

-   Fix spelling of “TypeScript” (Jakob Krigovsky)

## 12.6.2

-   Normalize file path when searching for existing typescript buffer

## 12.6.1

-   Fix [#1437](https://github.com/TypeStrong/atom-typescript/issues/1437)

## 12.6.0

### New features

-   Added `typescript:organize-imports` command (needs recent enough TypeScript)

-   Added option for suppressing all diagnostics

-   Added an option to ignore unused\* suggestion diagnostics specifically

    See [#1433](https://github.com/TypeStrong/atom-typescript/issues/1433)
    for context.

    Long story short, TypeScript 2.9 will report unused locals/parameters/etc
    regardless of tsconfig settings, just with different severity. This option
    lets you disable those lower-serverity diagnostics specifically.

### Changes

-   Updated dependencies. In particular, bundled TypeScript version bumped to
    v2.9.2

### Maintenance

-   Refactored commands code
-   Added order to settings

## 12.5.3

-   Configurable tooltip delay
-   Removed unneeded tooltip delay

## 12.5.2

-   Allow refactors for empty selection
-   Clean-up client code a bit

## 12.5.1

### Fixes

-   Don't ignore insertText autocompletion suggestions
-   Minor bugfixes in initializeConfig command

### Maintenance

-   Enabled no-shadowed-variable tslint diagnostic
-   Enabled no-unsafe-any tslint diagnostic

## 12.5.0

-   Fix #1423 (unhandled error when tsserver is terminated)
-   Bundle TypeScript 2.8
-   Add tslint-language-service to set-up.
-   Clean up client code
-   Add "suggestion diagnostics"

## 12.4.1

-   Fix autocomplete and codefix for tree-sitter

## 12.4.0

-   Search all panes when opening files (fixes #898)
-   Internal code optimizations
-   Add applyEdits function that also flushes changes to tsserver
-   Add `typescript:refactor-selection` command to show applicable refactors for a selection (Daniel Contreras)
-   Update to TypeScript 2.7
-   Normalize path in ErrorPusher.getErrorsAt
-   Implement showExpressionType cancellation
-   strict-boolean-expressions
-   Fix spec runner

## 12.3.8

-   Accept tree-sitter grammar

## 12.3.7

-   Avoid duplicate `open` command (which confuses tsserver)
-   Normalize errorPusher path on storage

## 12.3.6

-   Fix #1413

## 12.3.5

-   Fix semantic view display on initial creation

## 12.3.4

-   Track exprTypeTooltip globally

    This should help with tooltips getting "stuck" occasionally.

## 12.3.3

-   [Bufgix] invalid comparison

## 12.3.2

-   Fix TypeScript dependency

## 12.3.1

-   Use external highlighter in tsView instead of MiniEditor
    -   Should be a little bit more efficient and avoids flickering due
        to asynchronous tokenization
-   Remove \$ from find-references line number
-   Do not update selectView after resolution
    -   Avoids unexpected behavior when selectView is canceled before it
        loads
-   Fix symbols-view offset
    -   Going to an item from symbols-view was offset by 1 character to
        the right
-   Updates for Atom 1.24

## 12.3.0

-   Added an alternative to symbols-view (by russa)
    -   For file symbols, the same engine is used as for outline view
    -   For project symbols, `nav-to` tsserver command is used. It
        requires at least one symbol to search for.
-   Improvements to `typescript:return-from-declaration`
    -   All navigation commands (`find-references`, `go-to-declaration`,
        etc) save current editor position
    -   Added new command `typescript:show-editor-position-history` to
        show backlog of editor positions, that `return-from-declaration`
        will go back to
    -   Editor position history is persisted across Atom restarts (per
        project). To avoid bloating, total number of history items is
        limited to 100
-   Added `typescript:reload-projects` command
    -   Useful when tsserver isn't aware of new or removed files --
        previously this required Atom restart
-   Matched substring is highlighted in all select views (like Atom's
    bundled symbols-view)
-   Streamlined TypeScript file detection
    -   TypeScript file extension is assumed to be one of ".ts", ".tst",
        ".tsx"
    -   If it's open in editor, grammar is assumed to be one of
        "source.ts", "source.tsx"
    -   A file has to be saved (i.e. have a file path)
-   Many internal improvements
    -   Completely reworked tooltip management
    -   Most commands are bound to text-editor instead of the workspace
    -   Object lifetime management improvements
    -   Removed duplicate and obsolete code
-   Fix README link to CHANGELOG (by Fedde Schaeffer)

## 12.2.0

-   Merge pull request \#1402 "Center cursor after open in
    goToDeclaration" by Kai Curtis
-   Merge pull request \#1280 "Re-adding semantic view" by russaa

## 12.1.2

-   Use BufferedNodeProcess to spawn tsc (fixes 'init tsconfig' on
    Windows)

## 12.1.1

-   Fix occurrence markers

## 12.1.0

-   Show build error when "Emit failed" is clicked
-   Re-add progress bar for emit
-   Hide successful build status report "Emit success" after a
    configurable delay
-   Use [Etch](https://github.com/atom/etch) as the GUI framework
    instead of deprecated space-pen or direct DOM manipulation
-   Switch to ES2017 target
-   Update dependencies
-   Add `typescript:initialize-config` command
    ([\#1248](https://github.com/TypeStrong/atom-typescript/issues/1248))
    (by Paul Ermolin)

    Command is `typescript:initialize-config`, and it uses `tsc init`
    under the hood. Note that this is also an activation command,
    meaning you can use it without opening a TypeScript file first.
    However, it determines the project path from currently-active text
    editor -- if there aren't any text editors open, command doesn't do
    anything.

    No keybinding is assigned by default, since this is not a command
    one would use often.

-   Documentation updates
-   Remove obsolete `filesGlob` snippet
-   Don't use deprecated `.editor` class in grammar style
-   Add locale setting to control TypeScript's message locale
    ([\#1371](https://github.com/TypeStrong/atom-typescript/issues/1371))

## 12.0.0

-   **Switch to Atom's TypeScript grammar** (potentially
    compatibility-breaking)

    We're discontinuing our own grammar in favor of language-typescript,
    which is bundled with Atom. **Please make sure that
    language-typescript package is activated, we have no way of
    activating it for you.**

-   Cache constructed TypescriptBuffers by TextBuffers.

    Hopefully this helps with issues like \#1300 and \#1332

-   Show tooltip command

    Closes \#957. Adds `typescript:show-tooltip` command to show type
    tooltip at current text cursor position.

-   Configurable autocomplete-plus `suggestionPriority`

    Closes \#1185. Exactly what it says on the tin, allows configuring
    priority of TypeScript's autocompletion suggestions.

-   Moved config schema to package.json

    This should speed up Atom start-up times, since it doesn't need to
    load package source until needed.

-   Change target to ES7/2016

    Atom supports full ES7 now, so no reason not to, really.

-   Support for atom-ide-ui

    No installation prompt if atom-ide-ui or linter is detected, support
    for atom-ide-ui code fixes.

-   Do not show progress bar for emit

    This never worked properly, and a progress bar would get stuck in
    the panel after emit, so this is treated as a bug and removed for
    now.

-   Updated installation instructions in README

## 11.0.10

-   Hide Remove redundant autocomplete label text
-   Update the grammar to fix several highlighting issues
-   Add a framework for writing specs

## 11.0.9

-   Handle multiple directories in NODE\_PATH
-   TypeScript 2.5: exclude tsconfig.json from project files on emit

## 11.0.8

-   Speed up autocomplete and fix a disposable leak

# Older changes

Please note only breaking changes are logged beyond this point. You can
use GitHub's branch/tag comparison tool to get a full changeset, for
example,
<https://github.com/TypeStrong/atom-typescript/compare/v7.0.0...v8.0.0>
shows all changes since v7.0.0 until v8.0.0

## v11.0.0

-   Major rewrite using `tsserver` API for the best compatibility with
    the current versions of Typescript.

## v7.0.0

-   Removed the (already ignored in any significant way) `version`
    option from tsconfig.
    [More](https://github.com/TypeStrong/atom-typescript/issues/617)

## v6.0.0

-   Bring back `dts-generator` as using the other mechanism has a few
    gotchas that might surprise new users. We will remove this feature
    once <https://github.com/Microsoft/TypeScript/issues/2338> is
    officially supported.

## v5.0.0

-   We no longer *automatically* create a `tsconfig.json`. However we
    provide a *command* "TypeScript: Create tsconfig.json project file".

## v4.8.0

-   Feature: Added ReactJS / `.tsx` support

## v4

-   Removed `dts-generator` support. Reason is that it pollutes the
    global namespace and is no longer the recommended way for sharing
    TypeScript code. See
    <https://github.com/Microsoft/TypeScript/issues/2338> for the way
    forward.

## v3

-   We will now resolve a parent `package.json` for you *automatically*
    so that its *one less thing you need to configure*. :rose:

## v2

-   New default shortcuts for `build` : `F6` an `goto definition`:
    `F12`. Because I don't want to mess with your atom defaults and a
    major use base is VS users. [Link
    \#145](https://github.com/TypeStrong/atom-typescript/issues/145)

## v1

-   `format` → `formatCodeOptions`
    https://github.com/TypeStrong/atom-typescript/issues/178
-   `compileOnSave` is now a tsconfig option :
    https://github.com/TypeStrong/atom-typescript/issues/187

## 0.x

-   Initial releases

repository: trusktr/dotfiles

repo_name: trusktr/dotfiles


text:
# Test Drive

This template is used by the Couchbase Azure Test Drive.  It is not intended to be used outside of Test Drive.  You can access the Test Drive [here](https://azuremarketplace.microsoft.com/en-us/marketplace/apps/couchbase.couchbase-enterprise) and the test drive manual [here](https://github.com/couchbase-partners/test-drive).

# Instructions

[makeArchive.sh](makeArchive.sh) will build a zip file that can be uploaded to the publish portal.  This template depends on the [simple](../simple) template.

Once you can successfully get build the archive, proceed to the [Cloud Partner Portal](https://cloudpartner.azure.com/#publisher).

Note that the images and logos are in [../marketplace/images](../marketplace/images).

The full text of the Test Drive manual is [here](manual.pdf).

gha_language: Shell


text:
# Migrating from version 0.7 to 1.0

Before attempting migration, we recommend sample an archetype showcasing the latest and greatest additions to GWTP. This guide should help give you a feel for how things fit together. Most of the changes regard how the defaults are set up, making it easier to get off the ground quicker without affecting preexisting application designs.

## Notable Changes
There are a few breaking changes and some changes that are built by the generator to make life easier. Listed are a the changes that will affect migration to 1.0.

1. Default GWTP Bootstrapping
 - new project module inherits
 - removed project entrypoint
 - removed ginjector interface
 - added default placemanager
 - dispatch module configuration change
2. Changed Widget to IsWidget in Slots
3. Removed uber-jar gwtp-all
4. PlaceRequest upgraded to use builder

## Migration Changes
More defaults have been added to GWTP to eliminate boilerplate and get projects up and going more quickly. That said, it remains a flexible platform, and all defaults can be overridden according to your preference.

Migrating a project from GWTP 0.7 to 1.0 doesn't require any special modifications besides incrementing the
dependency and modifying the slot method signatures Widget to IsWidget. For more information and to take advantage of
 some of the new default features, check out [Bootstrapping or Application Initialization][boot].

Before upgrading your project, **branch it or back it up**. Users who do not step methodically through the migration process can get tangled up in errors. It's very important to follow the prescribed sequence of actions *in order*, if you hope to have a smooth upgrading experience.

### Dependencies
Start by updating the GWTP dependency to 1.0. Be sure to update GWT, gin and guice if needed. Don't forget to check
for other possibile dependency updates. Find out more on how to set up maven here [Maven-Configuration][mc].

### Entrypoint
The entry point can be changed to a default GWTP entry point. See [Bootstrapping or Application Initialization][boot]
for entry point options. Update the Client module if you update the entry point.

### ClientModule
The client module can be updated based on your configuration. See [Bootstrapping or Application Initialization][boot]
 for more information. Here is a good [example](https://github.com/ArcBees/ArcBees-tools/blob/master/archetypes/gwtp-basic/src/main/java/com/arcbees/project/client/gin/ClientModule.java).

### PlaceManager
A simple place manager has been added by default, and can easily modified. Refer to the [PlaceManager][pm] guide for
more information.

### IsWidget
This is a breaking change and has to be updated in GWTP 1.0. The views slot method signatures have changed, requiring the use of IsWidget in the signature. This change will not affect any pre-existing designs, widgets or composites that are widgets; in other words, only the signature has to change. You also have the option to build your widgets as an IsWidget. Check out this [example](https://github.com/ArcBees/ArcBees-tools/blob/master/archetypes/gwtp-appengine-objectify/src/main/java/com/arcbees/project/client/application/ApplicationView.java#L43) here.

## Migration Support Services
If you are concerned about potential problems, migration specialists from ArcBees can be hired to upgrade your project with ease. Contact [ArcBees.com](http://arcbees.com) for a consultation, to clarify your needs and options, and obtain a quote for the service.

### Community Help
Never hesitate to ask for help in the [GWTP Community](https://plus.google.com/communities/113139554133824081251) if you get stuck!

[boot]: gwtp/basicfeatures/Bootstrapping-or-Application-Initialization.html "Bootstrapping or Application Initialization"
[mc]: gwtp/resources/index.html "Maven Configuration"
[pm]: gwtp/features/PlaceManager.html "PlaceManager"

repository: guibertjulien/dev-site

repo_name: guibertjulien/dev-site


text:
# SemanticGraphaelJS

Based on the javascript library raphaelJS, SemanticGraphaelJS is a library that help you creating semantic linked graph

## Dependencies

This library is based on RaphaelJS which is under MIT Licence

Visit the library website for more information: [http://raphaeljs.com](http://raphaeljs.com/)

It also uses the Raphael SVG Filter , see [here](http://raphael4gwt.googlecode.com/svn/trunk/raphael4gwt/src/org/sgx/raphael4gwt/public/) or use the library in the demo directory

## Getting started

See the index.html file in the demo directory to understand how it works. I'll add a doc later.

Feel free to mail me if you want more informations.

## Copyright and license

Copyright © 2015-2016 Tournemaine Paul

Licensed under the **MIT** license.

repository: ptournem/SemanticGraphaelJS

repo_name: ptournem/SemanticGraphaelJS


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

### Description

httpdx 1.4.4 and earlier allows remote attackers to obtain the source code for a web page by appending a . (dot) character to the URI.

### POC

#### Reference
- http://packetstormsecurity.org/0910-exploits/httpdx-disclose.txt

#### Github
No PoCs found on GitHub currently.

repository: trickest/cve

gha_language: HTML

repo_name: trickest/cve


text:
# Command-line Interface

## Usage

```
$ dredd '<API Description Document>' '<API Location>' [OPTIONS]
```

Example:

```
$ dredd ./apiary.md 'http://localhost:3000'
```

## Arguments

### API Description Document (string)

URL or path to the API description document (API Blueprint, Swagger).
**Sample values:** `./api-blueprint.apib`, `./swagger.yml`, `./swagger.json`, `http://example.com/api-blueprint.apib`

### API Location (string)

URL, the root address of your API.
**Sample values:** `http://localhost:3000`, `http://api.example.com`

## Configuration File

If you use Dredd repeatedly within a single project, the preferred way to run it is to first persist your configuration in a `dredd.yml` file. With the file in place you can then run Dredd every time simply just by:

```
$ dredd
```

Dredd offers interactive wizard to setup your `dredd.yml` file:

```
$ dredd init
```

See below how sample configuration file could look like. The structure is
the same as of the [Dredd Class configuration object](usage-js.md#configuration-object-for-dredd-class).

```yaml
reporter: apiary
custom:
  - "apiaryApiKey:yourSecretApiaryAPiKey"
  - "apiaryApiName:apiName"
dry-run: null
hookfiles: "dreddhooks.js"
sandbox: false
server: rails server
server-wait: 3
init: false
custom: {}
names: false
only: []
output: []
header: []
sorted: false
user: null
inline-errors: false
details: false
method: []
level: info
timestamp: false
silent: false
path: []
blueprint: api-description.apib
endpoint: "http://localhost:3000"
```

> **Note:** Do not get confused by Dredd using a keyword `blueprint` also for paths to Swagger documents. This is for historical reasons and will be changed in the future.

## CLI Options Reference

Remember you can always list all available arguments by `dredd --help`.

### --color, -c
Determines whether console output should include colors.
**Default value:** `true`

### --config
Path to dredd.yml config file.
**Default value:** `"./dredd.yml"`

### --custom, -j
Pass custom key-value configuration data delimited by a colon. E.g. -j 'a:b'
**Default value:** `[]`

### --details, -d
Determines whether request/response details are included in passing tests.

### --dry-run, -y
Do not run any real HTTP transaction, only parse API description document and compile transactions.

### --header, -h
Extra header to include in every request. This option can be used multiple times to add multiple headers.
**Default value:** `[]`

### --help
Show usage information.

### --hookfiles, -f
Specifies a pattern to match files with before/after hooks for running tests

### --hooks-worker-after-connect-wait
How long to wait between connecting to hooks worker and start of testing. [ms]
**Default value:** `100`

### --hooks-worker-connect-retry
How long to wait between attempts to connect to hooks worker. [ms]
**Default value:** `500`

### --hooks-worker-connect-timeout
Total hook worker connection timeout (includes all retries). [ms]
**Default value:** `1500`

### --hooks-worker-handler-host
Host of the hook worker.
**Default value:** `"localhost"`

### --hooks-worker-handler-port
Port of the hook worker.
**Default value:** `61321`

### --hooks-worker-term-retry
How long to wait between attempts to terminate hooks worker. [ms]
**Default value:** `500`

### --hooks-worker-term-timeout
How long to wait between trying to terminate hooks worker and killing it. [ms]
**Default value:** `5000`

### --hooks-worker-timeout
How long to wait for hooks worker to start. [ms]
**Default value:** `5000`

### --init, -i
Run interactive configuration. Creates dredd.yml configuration file.

### --inline-errors, -e
Determines whether failures and errors are displayed as they occur (true) or aggregated and displayed at the end (false).

### --language, -a
Language of hookfiles. Possible options are: nodejs, ruby, python, php, perl, go
**Default value:** `"nodejs"`

### --level, -l
The level of logging to output. Options: silly, debug, verbose, info, warn, error.
**Default value:** `"info"`

### --method, -m
Restrict tests to a particular HTTP method (GET, PUT, POST, DELETE, PATCH). This option can be used multiple times to allow multiple methods.
**Default value:** `[]`

### --names, -n
Only list names of requests (for use in a hookfile). No requests are made.

### --only, -x
Run only specified transaction name. Can be used multiple times
**Default value:** `[]`

### --output, -o
Specifies output file when using additional file-based reporter. This option can be used multiple times if multiple file-based reporters are used.
**Default value:** `[]`

### --path, -p
Additional API description paths or URLs. Can be used multiple times with glob pattern for paths.
**Default value:** `[]`

### --reporter, -r
Output additional report format. This option can be used multiple times to add multiple reporters. Options: junit, nyan, dot, markdown, html, apiary.
**Default value:** `[]`

### --sandbox, -b
Load and run non trusted hooks code in sandboxed container

### --server, -g
Run API backend server command and kill it after Dredd execution. E.g. `rails server`

### --server-wait
Set delay time in seconds between running a server and test run.
**Default value:** `3`

### --silent, -q
Silences commandline output.

### --sorted, -s
Sorts requests in a sensible way so that objects are not modified before they are created. Order: CONNECT, OPTIONS, POST, GET, HEAD, PUT, PATCH, DELETE, TRACE.

### --timestamp, -t
Determines whether console output should include timestamps.

### --user, -u
Basic Auth credentials in the form username:password.

### --version
Show version number.

repository: henricavalcante/dredd

repo_name: henricavalcante/dredd


text:
# hako - A minimal sandboxing tool

[![License](https://img.shields.io/badge/license-BSD-blue.svg)](LICENSE)

`hako` = chroot + Linux namespace.

It is created out of a need for a simple tool like `chroot` but with extra isolation.

## What it does

- It generally works like `chroot` with the added benefit of isolation using Linux namespace.
- It can run on a read-only filesystem.
- Some rudimentary form of privilege dropping through setuid, setgid and [`PR_SET_NO_NEW_PRIVS`](https://www.kernel.org/doc/Documentation/prctl/no_new_privs.txt).

## What it does not do

- Networking: use docker/runc instead or setup something with iproute2 and veth.
  With the `--network` switch, a sandbox can use the host's or another sandbox's network.
  Alternatively, Unix socket works for sandboxes in the same host too.
- Seccomp: I might start a new project for this if needed.
  Something like `seccomp-exec <rule-file> <command> [args]` would be nice.

## Build requirements

- A C99 compiler (gcc/clang)
- Recent Linux headers
- make

## Usage

### Creating a sandbox

```sh
mkdir sandbox
mkdir sandbox/.hako
touch sandbox/.hako/init
chmod +x sandbox/.hako/init
mkdir sandbox/bin
touch sandbox/bin/busybox
ln -s busybox sandbox/bin/sh
```

Content of `.hako/init`:

```sh
#!/bin/sh -e

mount -o ro,bind $(which busybox) ./bin/busybox
```

Run it with:

```sh
hako-run sandbox /bin/sh
```

General syntax is: `hako-run [options] <target> [command] [args]`.

If `command` is not given, it will default to `/bin/sh`.

The file `.hako/init` must be present and will be executed to initialize the sandbox.
It can do things like bind mounting files from the host into the sandbox.

Run `hako-run --help` for more info.

### Entering an existing sandbox

Given:

```sh
hako-run --pid-file sandbox.pid sandbox
```

One can enter the sandbox with:

```sh
hako-enter --fork $(cat sandbox.pid) /bin/sh
```

General syntax is: `hako-enter [options] <pid> [command] [args]`.

If `command` is not given, it will default to `/bin/sh`.

Run `hako-enter --help` for more info.

## FAQ

### Why not docker?

Docker does too many things.
It also requires a daemon running.
While it's possible to use it without building image, it's just annoying in general.

### Why not runc (aka: Docker, the good part)?

`runc` looks good but I only need something a little more than `chroot` that runs only on Linux.
I rather like the idea of simple Unix tools and [Bernstein chaining](http://www.catb.org/~esr/writings/taoup/html/ch06s06.html).
If I need features like seccomp, I'd probably write a separate chain wrapper for it.

### Why not systemd-nspawn?

1. It requires glibc, according to buildroot. `hako` can be built with musl.
2. While I'm sure it can be used standalone, it comes with a bunch of dependencies from the systemd project.
3. It's systemd (jk).

### Why must the sandbox contains an empty .hako directory?

[`pivot_root`](https://linux.die.net/man/8/pivot_root) requires it.
It also provides access to the old root filesystem while creating the sandbox.
`runc` relies on an [undocumented trick](https://github.com/opencontainers/runc/blob/593914b8bd5448a93f7c3e4902a03408b6d5c0ce/libcontainer/rootfs_linux.go#L635) but I'd rather not.

### How to build with musl?

`CC='musl-gcc -static' make`

### How to use tmpfs in the container?

Put this in `.hako/init`: `mount -t tmpfs tmpfs ./tmpfs`.

### How to hide .hako content?

Put this in `.hako/init`: `mount -t tmpfs -o ro tmpfs .hako`.

### How to pass arguments to .hako/init?

Use environment variable (e.g: `SOME_INIT_ARGS="some-args" hako-enter sandbox`).

### How to allow a sandbox to use the host's network namespace?

`hako-run --network sandbox`

### How to put a sandbox in another one's network namespace?

`hako-run --network=/proc/$(cat other-sandbox.pid)/net/ns sandbox`


text:
---
title: "Local Wavelet Acoustic Pattern: A Novel Time–Frequency Descriptor for
  Birdsong Recognition"
publication_types:
  - "2"
authors:
  - Sheng-Bin Hsu
  - Chang-Hsing Lee
  - Pei-Chun Chang
  - Chin-Chuan Han
  - Kuo-Chin Fan
doi: 10.1109/TMM.2018.2834866
publication: "IEEE Transactions on Multimedia ( Volume: 20, Issue: 12, Dec. 2018)"
abstract: Investigating the identity, distribution, and evolution of bird
  species is important for both biodiversity assessment and environmental
  conservation. The discrete wavelet transform (DWT) has been widely exploited
  to extract time-frequency features for acoustic signal analysis. Traditional
  approaches usually compute statistical measures (e.g., maximum, mean, standard
  deviation) of the DWT coefficients in each subband independently to yield the
  feature descriptor, without considering the intersubband correlation. A new
  acoustic descriptor, called the local wavelet acoustic pattern (LWAP), is
  proposed to characterize the correlation of the DWT coefficients in different
  subbands for birdsong recognition. First, we divide a variable-length birdsong
  segment into a number of fixed-duration texture windows. For each texture
  window, several LWAP descriptors are extracted. The vector of locally
  aggregated descriptors (VLAD) is then used to aggregate the set of LWAP
  descriptors into a single VLAD vector. Finally, principal component analysis
  (PCA) plus linear discriminant analysis (LDA) are employed to reduce the
  feature dimensionality for classification purposes. Experiments on two
  birdsong datasets show that the proposed LWAP descriptor outperforms other
  local descriptors, including linear predictive coding cepstral coefficients,
  Mel-frequency cepstral coefficients, perceptual linear prediction cepstral
  coefficients, chroma features, and prosody features. Furthermore, the proposed
  LWAP descriptor, followed by VLAD encoding, PCA plus LDA feature extraction,
  and a simple distance-based classifier, yields promising results that are
  competitive with those obtained by the state-of-the-art convolutional neural
  networks.
draft: false
featured: true
image:
  filename: 擷取.png
  focal_point: Smart
  preview_only: false
date: 2018-05-08T16:00:00.000Z
---

repository: PeiChunChang/starter-academic

repo_name: PeiChunChang/starter-academic


text:
---
morea_id: module-recursion
morea_type: module
title: "Recursion"
published: True
morea_coming_soon: False
morea_highlight: False
morea_outcomes:
  - outcome-translate-problem-code        # To learn how to take a problem, figure out the algorithm to solve it, the write the code.
  - outcome-understand-basics-java        # To learn basics of programming with a modern programming language, Java.
morea_readings:
  - reading-text-91
  - sc-91
morea_experiences:
#  - ata-survey
#  - quiz-recursion
  - inclass-w15-c1
#  - quiz-recursion2
  - inclass-w15-c2
  - experience-H12
morea_assessments:
  - assessment-Q27
  - assessment-Q28
#  - assessment-H13
morea_sort_order: 110
morea_icon_url: /morea/100.recursion/recursion.jpg
morea_start_date: "2016-11-26T00:00:00"
morea_end_date: "2016-12-03T00:00:00"
morea_labels:
  - "11/26 - 12/2"
---

Simple recursion.

repository: cammoore/MoreaNextSemester

repo_name: cammoore/MoreaNextSemester


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

### Description

libmimedir allows remote attackers to execute arbitrary code via a VCF file with two NULL bytes at the end of the file, related to "free" function calls in the "lexer's memory clean-up procedure."

### POC

#### Reference
- http://packetstormsecurity.com/files/132257/Libmimedir-VCF-Memory-Corruption-Proof-Of-Concept.html
- https://www.exploit-db.com/exploits/37249/

#### Github
- https://github.com/ARPSyndicate/cvemon
- https://github.com/mudongliang/LinuxFlaw
- https://github.com/oneoy/cve-


text:
---
layout: post
author: csiu
date: 2017-03-28
title: "Day32: Variable importance in ANNs"
categories: update
tags:
  - 100daysofcode
  - machine-learning
excerpt: Which are my deciding features?
---

Today I look at how variables importance can be obtained from neural networks.

7 methods (1. Connection weights algorithm (CW), 2. Modified Connection Weights (MCW), 3. Most Squares (MS), 4. Multiple Linear Regression (MLR), 5. Dominance Analysis (DA), 6. Garson’s algorithm, & 7. Partial derivative) for assessing the relative variable importance are listed in (Ibrahim, 2013). In this posts, I will try to reproduce the calculations & results of (Ibrahim, 2013) using R.

> Ibrahim, OM. 2013. [A comparison of methods  for  assessing the  relative  importance of input variables in  artificial neural networks](http://www.palisade.com/downloads/pdf/academic/DTSpaper110915.pdf). Journal of Applied Sciences Research, 9(11): 5692-5700.

The R markdown for this post is found [here](https://gist.github.com/csiu/2804732c2c2221b028ef4a5fabbceda1).

### Data: Trained network weights

The data is pulled from *Table 4: Final connection weights*.

```
> w$ih
        h1     h2      h3     h4
x1 -0.8604 1.0651 -0.1392 1.0666
x2 -6.6167 1.5142 -5.3051 1.3358
x3 -1.7338 1.4107 -1.4207 0.7845

> w$oh
        h1     h2      h3     h4
gy -5.2075 2.0158 -4.4617 1.5858
```

### Connection weights algorithm (CW)

$$RI_x = \sum_{y=1}^m{w_{xy}w_{yz}}$$

----

Here we show explicitly the calculations for the importance of input `x1`.

```r
# We first calculate the connection weight product of eg. input x1
# w_x1,h1 * w_h1,gy
# w_x1,h2 * w_h2,gy
# w_x1,h3 * w_h3,gy
# w_x1,h4 * w_h4,gy
(cw_prd_x1 <- w$ih[1,] * w$oh)
```

```
         h1       h2        h3       h4
gy 4.480533 2.147029 0.6210686 1.691414
```

```r
# & then take the sum
sum(cw_prd_x1)
```

```
[1] 8.940045
```

----

We do the calculation for all inputs and get the following connection weight product sums:

```
> cw_prd_sums
       x1        x2        x3
 8.940045 63.296866 19.455250
```

To calculate relative importance, we normalize by all connection weight product sums. Defining a helper function makes redoing this calculation with different inputs trivial.

```r
# Helper function for calculating normalized scores
normalize_to_100 <- function(x, sort=TRUE){
  (x / sum(x)*100) %>%
    sort(decreasing = sort)
}

normalize_to_100(cw_prd_sums)
```

```
       x2        x3        x1
69.031928 21.218008  9.750064
```

- Above is the equation mentioned in the paper, but to calculate the relative importance (out of 100%), I think they normalized by the total and thus the equation should be: $$RI_x = \frac{\sum_{y=1}^m{w_{xy}w_{yz}}}{\sum_{x=1}^n{\sum_{y=1}^m{w_{xy}w_{yz}}}}$$

### The first proposed algorithm (MCW) - Modified Connection Weights

$$RI_x = \frac{|\sum_{y=1}^m{w_{xy}w_{yz} \times r_{ij.k}}|}{\sum_{x=1}^n{\sum_{y=1}^m{w_{xy}w_{yz}}}}$$

*A correction term (partial correlation) is multiplied by this sum and the absolute value is taken, this is called the corrected sum. Then to calculate the relative importance of each input, the corrected sum of each input is divided by the total corrected sum.*

#### Partial correlation

$$r_{ij.k}=\frac{r_{ij} - r_{ki} \times r_{kj}}{\sqrt{(1-r_{ki}^2) \times (1-r_{kj}^2)}}$$

*[Partial correlation](https://en.wikipedia.org/wiki/Partial_correlation) measures the degree of association between two random variables, with the effect of a set of controlling random variables removed. -- wikipedia*

----

The following is from [SlideShare: What is a partial correlation?](https://www.slideshare.net/plummer48/what-is-a-partial-correlation) (Ken Plummer, 2014)

```
> dat
  individual height weight gender
1          a     73    240      1
2          b     70    210      1
3          c     69    180      1
4          d     68    160      1
5          e     70    150      2
6          f     68    140      2
7          g     67    135      2
8          h     62    120      2
```

The correlation between height and weight is 0.825

```r
cor(dat$height, dat$weight, method="pearson") #default is pearson
```

```
[1] 0.8251372
```

However, when controlling for gender (male=1; female=2) the correlation between height and weight is 0.770

```r
(r_ij <- cor(dat$height, dat$weight))
(r_ki <- cor(dat$gender, dat$height))
(r_kj <- cor(dat$gender, dat$weight))

numer <- r_ij-(r_ki*r_kj)
denom <- sqrt((1-r_ki^2) * (1-r_kj^2))

sprintf("Partial correlation: %0.3f", numer/denom)
```

```
[1] 0.8251372
[1] -0.5498414
[1] -0.8026318
[1] "Partial correlation: 0.770"
```

> "A partial correlation makes it possible to eliminate the effect of a third variable"

----

The partial correlation values were taken from Table 6.

```r
(r_ijk <- c(x1=0.5266, x2=0.9584, x3=0.7275))
```

We then proceed to calculate the relative importance of the variables:

```r
# Calculate absolute corrected sum
(abs_cor_sum <- cw_prd_sums * r_ijk)
```

```
       x1        x2        x3
 4.707827 60.663716 14.153694
```

```r
# Normalize & sort by relative importance
normalize_to_100(abs_cor_sum)
```

```
       x2        x3        x1
76.282345 17.797739  5.919916
```

- One possible issue is that we don't know the identities of the controlling random variables

### The second proposed algorithm (MS) - Most Squares

$$RI_x = \frac{\sum_{x=1}^m{(w_{xy}^i - w_{xy}^f)^2}}{\sum_{x=1}^m{\sum_{y=1}^n{(w_{xy}^i - w_{xy}^f)^2}}}$$

This metric is calculated by comparing the connection weights between the input and hidden layer of the initial (un-trained) and trained weights. Note: The connection weights between the hidden and output layer were not used.

Initial weights were pulled from *Table 7: Input-hidden initial connection weights.*

```
        h1      h2      h3      h4
x1  0.0236  0.1943  0.1478  0.2054
x2  0.0562 -0.3437 -0.3215 -0.0894
x3 -0.1488  0.1844 -0.0608  0.3267
```

Calculations are made as follows:

```r
# Sum of squared of differences
(sum_sq_diff <-
  (w$ih_i - w$ih)^2 %>%
  rowSums()
)
```

```
       x1        x2        x3
 2.363783 74.846851  6.074946
```

```r
# Normalize & sort
normalize_to_100(sum_sq_diff)
```

```
       x2        x3        x1
89.867719  7.294115  2.838166
```

- Possible issues include (1) discrepancies depending on weight initialization & (2) output layer is removed (what of additional hidden layers?)

### Multiple Linear Regression (MLR)

(This is a fancy name for a linear regression with more than one explanatory variable; MLR is different from multivariate linear regression which refers to the case of multiple response variables.)

- Issue: I'm want to infer variable importance from ANNs, not remodel the data with a linear model.

### Dominance Analysis (DA)

*DA determines the dominance of one input over another by comparing their additional contributions across all subset models... approaches the problem of relative importance by examining the change in R^2 resulting from adding an input to all possible subset regression models... averaging all the possible models*

- Issue: I'm want to infer variable importance from ANNs, not remodel the data with many linear models

### Garson's algorithm

$$RI_x = \sum_{x=1}^n{\frac{|w_{xy}w_{yz}|}{\sum_{y=1}^m{|w_{xy}w_{yz}|}}}$$

```r
# If i = input i; j = hidden j; and o = the single output,
# Compute: w_ij * w_jo
# for each value i and j
#
# Matrix of weights (4,3) multiplied by vector of hidden-output weights
# Save the transposed result (3,4)
(numer <-
  (t(w$ih) * as.numeric(w$oh)) %>%
   t()
)
```

```
          h1       h2         h3       h4
x1  4.480533 2.147029  0.6210686 1.691414
x2 34.456465 3.052324 23.6697647 2.118312
x3  9.028764 2.843689  6.3387372 1.244060
```

```r
# Sum of products of all inputs
# Think: contribution from each hidden node
# Eg. contribution from h1 = w_x1,h1*w_h1,o +
#                            w_x2,h1*w_h1,o +
#                            w_x3,h1*w_h1,o
# Will get contribution score for h1, h2, h3, and h4
#
# input-hidden weights (3,4) %*% (4,4) diagonal matrix of hidden-output weights
(denom <-
  w$ih %*% diag(as.numeric(w$oh)) %>%
  colSums()
)
```

```
[1] 47.965762  8.043042 30.629571  5.053786
```

```r
# Take division to produce a matrix (3,4) (see Table 11)
# Take row sum to score the importance for each input
(ga <-
  (numer %*% diag(denom^-1)) %>%
  rowSums()
)
```

```
       x1        x2        x3
0.7153128 2.2897825 0.9949047
```

```r
# Normalize & sort
normalize_to_100(ga)
```

```
      x2       x3       x1
57.24456 24.87262 17.88282
```

### Partial derivative

(Not enough information specified in the paper for replication.)

### Final thoughts

Out of the 7 algorithms, **Partial derivative**, **Multiple Linear Regression**, and **Dominance Analysis** were not reproducible. MLR and DA were also not directly applicable to use on neural networks. **Modified Connection Weights** required knowing and removing the controlling random variable, which is unknown to me. **Most Squares** does not make sense, because (1) the weight initialization will affect the results, and (2) I'm not sure why they removed the weights in the last layer. The methods that do make sense are the **Connection weights algorithm** and **Garson’s algorithm**. The concept behind Connection weights algorithm is simple and I will need to stare at Garson’s algorithm some more.

repository: csiu/blog

repo_name: csiu/blog


text:
# Change links and parse xml files and download them in CWD

Python Program to parse sitemaps of websites and download them in the current working directory.

## Required Python Libraries:

  * urllib (request)
  * bs4 (BeautifulSoup)
  * re (Regular Expressions)
  * io (InputOutput)

  ***
Default URL is http://ftm.ddns.net

URLs to be changed must me prefixed with **//** (Double Forward Slash)

## For example, to change ftm.ddns.net to fazals.ddns.net
 * URL to be changed //ftm
 * URL to be changed to //fazals

**NOTE: if plane text is to be changed, just enter the text.**

Can change **http://** to **https://** (SECURE)

license: Unlicense


text:
## 1. Prerequisite: Install Anaconda Python 3.7

1. Go to Anaconda Individual Edition site: [https://www.anaconda.com/products/individual](https://www.anaconda.com/products/individual)
2. Download the **64-Bit Graphical Installer**
3. Run downloaded '.exe' file and follow Anaconda installation instructions.

## 2. Optional: Install CPlex

- You can get a free [Community Edition](http://www-01.ibm.com/software/websphere/products/optimization/cplex-studio-community-edition) of CPLEX Optimization Studio, with limited solving capabilities in term of problem size.

- Faculty members, research professionals at accredited institutions can get access to an unlimited version of CPLEX through the [IBM® Academic Initiative](http://www-01.ibm.com/software/websphere/products/optimization/cplex-studio-community-edition).

## 3. Prerequisite: Get code from Github

That is, get this repo.

1. `cd SCLPsolver`

## 4. Prerequisite: Set up an Anaconda environment

An Anaconda environment will allow you to install packages and configure Python for running SCLP. You can activate/deactivate the environment whenever you like, so that the SCLP setup is contained to this project.

1. Optional: create an Anaconda environment `conda create --name SCLP python=3.7`
2. Optional: activate the environment `conda activate SCLP`

## 5. Install Microsoft C++ Build Tools

1. Go to Microsoft C++ Build Tools site: [https://visualstudio.microsoft.com/visual-cpp-build-tools/]( https://visualstudio.microsoft.com/visual-cpp-build-tools/)
2. Download and install Microsoft C++ Build Tools

## 6. Prerequisite: Install required packages

1. Use conda installer. `conda install --yes --file sclp_requirements.txt`
2. If you want to run the Design of Experiments, and you have CPLEX installed, install the CPLEX installer PIP installer `pip install -r doe/cplex_integration/cplex_requirements.txt`. Note: as of this writing, you cannot use *conda install* for the *doopl* package.

## 7. Compile cython files

_Note: there is now a script for Windows that compiles and runs all of the below steps._

0. `cythonize.bat`

Or do it manually:

1. `cd subroutines/equation_tools`
2. `python setup.py build_ext --inplace`
3. `cd ../lp_tools`
4. `python setup.py build_ext --inplace`
5. `cd ../state_tools`
6. `python setup.py build_ext --inplace`

## 8. Optional: run doe tests

1. `cd tests`
2. Generate random re-entrant line problem and solve it using simplex-type algorithm and CPLEX discretization.
_Note: if you have no CPLEX you should comment all starting from line 70 to the end of the file_
 `python simple_reentrant_test.py`
3. Generate random MCQN problem and solve it using simplex-type algorithm and CPLEX discretization.
_Note: if you have no CPLEX you should comment all starting from line 79 to the end of the file_
`python MCQN_test.py`
4. For the explanations on parameters and results look to the comments in the code and to the [results.md](results.md)


text:
Building upon the code from the previous problem

Print to the standard out (the terminal) the REQUEST method
    from the REQUEST LINE and the
    REQUEST URI from the REQUEST LINE;

    add this data to your response so that this data is displayed in the browser.


text:
# Module ad-application

Module for managing an Azure Active Directory Application with the following characteristics:

- Create an application and optionally assign roles to it..

> __This module requires the Terraform Principal to have Azure Active Directory Graph - `Application.ReadWrite.OwnedBy` Permissions.__

## Usage

```
locals {
  name = "iac-osdu"
}

resource "random_id" "main" {
  keepers = {
    name = local.name
  }

  byte_length = 8
}

module "ad-application" {
  source = "github.com/danielscholl/iac-terraform/modules/ad-application"

  name = format("${local.name}-%s-ad-app-management", random_id.main.hex)

  reply_urls = [
    "https://iac-osdu.com/",
    "https://iac-osdu.com/.auth/login/aad/callback/"
  ]

  api_permissions = [
    {
      name = "Microsoft Graph"
      oauth2_permissions = [
        "Directory.Read.All",
        "User.Read"
      ]
      app_roles = [
        "Directory.Read.All"
      ]
    }
  ]

  app_roles = [
    {
      id          = "c672d818-eed1-44e4-9832-5dfbe6c1116f"
      name        = "test"
      description = "test"
      member_types = [
        "Application"
      ]
    }
  ]
}
```

## Requirements

| Name | Version |
|------|---------|
| terraform | >= 0.14.10 |
| azuread | >= 2.13.0 |
| random | 3.1.0 |

## Providers

| Name | Version |
|------|---------|
| azuread | >= 2.13.0 |
| random | 3.1.0 |

## Inputs

| Name | Description | Type | Default | Required |
|------|-------------|------|---------|:--------:|
| aad\_client\_id | Existing Application AppId. | `string` | `""` | no |
| api\_permissions | List of API permissions. | `any` | `[]` | no |
| app\_roles | List of App roles. | `any` | `[]` | no |
| end\_date | The RFC3339 date after which credentials expire. | `string` | `"2Y"` | no |
| group\_membership\_claims | Configures the groups claim issued in a user or OAuth 2.0 access token that the app expects. | `list(string)` |
[
  "All"
]
 | no |
| homepage | The URL of the application's homepage. | `string` | `""` | no |
| identifier\_uris | List of unique URIs that Azure AD can use for the application. | `list(string)` | `[]` | no |
| name | The display name of the application | `string` | n/a | yes |
| native | Whether the application can be installed on a user's device or computer. | `bool` | `false` | no |
| oauth2\_allow\_implicit\_flow | Whether to allow implicit grant flow for OAuth2. | `bool` | `false` | no |
| password | The application password (aka client secret). | `string` | `""` | no |
| reply\_urls | List of URIs to which Azure AD will redirect in response to an OAuth 2.0 request. | `list(string)` | `[]` | no |
| sign\_in\_audience | Whether the application can be used from any Azure AD tenants. | `string` | `"AzureADMyOrg"` | no |

## Outputs

| Name | Description |
|------|-------------|
| id | The ID of the application. |
| name | The display name of the application. |
| object\_id | The object ID of the application. |
| password | The password for the application. |
| roles | The application roles. |

repository: danielscholl/iac-terraform

gha_language: HCL

repo_name: danielscholl/iac-terraform


text:
# Simple linked list

**Simple linked list** is a kind of array, but much more flexible. With a classic array, you can only insert a new element at the end of this one. If you want to insert a new element at the middle of an array or at the beginning, you have to realloc a new array, loop through your old array to copy your data, and then insert your new value into the right place.

With *linked list* you don't have to do that. If you want to insert a new element at the end (tail)/ at the beginning (head), or even that a precise position of the list, you can do that very easily without realloc a new list.

Different with a classic array. You can't access to your data with the index, your data aren't store continuously in the memory. Each element of your linked list, also called `node` point to the next node by a pointer. If the next pointer of the current node is `NULL`, that means you are at the end of the list.

# Insert

Insertion in linked list is really simple.

###### Insert head

First, we create a new node with all information that we need. We set the number to your `new_node` number. And set the next pointer to `NULL`. If our `list` is `NULL`, that means the list is empty, so we have nothing to do, to set our `new_node` to our `list`. Otherwise, we set the next pointer of our `new_node` to `list`, and `new_node` is your new pointer for the beginning of the list.

##### C implementation

```C
void insertHead(struct ll **list, int number) {
    struct ll *new_node = NULL;

    new_node = malloc(sizeof(*new_node));
    new_node->number = number;
    new_node->next = NULL;

    if (*list == NULL) {
        *list = new_node;
    } else {
        new_node->next = *list;
        *list = new_node;
    }
}
```

###### Insert tail

The step to insert if the `list` is empty, is the same as the insert head function.

But if our linked list is not `NULL`. We have to loop over the list until we reach at the end of this one.
And then insert the `new_node` to our last element (here `it->next`).

##### C implementation

```C
void insertTail(struct ll **list, int number) {
    struct ll *new_node = NULL;

    new_node = malloc(sizeof(*new_node));
    new_node->number = number;
    new_node->next = NULL;

    if (*list == NULL) {
        *list = new_node;
    } else {
        struct ll *it = *list;
        while (it->next != NULL) {
            it = it->next;
        }
        it->next= new_node;
    }
}
```

# Delete
###### Delete head
Delete an element at the beginning of the list is really easy, and it takes `O(1)` of time complexity. To do that, we have to disconnect our `next` pointer of the first element to `NULL`.

##### C implementation

```C
void deleteHead(struct ll **list) {
    struct ll *head = (*list)->next;

    (*list)->next = NULL;
    *list = head;
}
```

###### Delete tail
Delete an element at the end of the list, it takes `O(n)` time complexity. Because we have to loop over the list, reach to the end of list one to remove it.

##### C implementation

```C
void deleteTail(struct ll **list) {
    struct ll *it = *list;

    while (it->next != NULL && it->next->next != NULL) {
        it = it->next;
    }
    it->next = NULL;
}
```

# Search
Search for an element in a list, it also takes `O(n)` time complexity.

##### C implementation

```C
struct ll *searchNode(struct ll *list, int number) {
    if (list == NULL) {
        return NULL;
    }
    if (list->number == number) {
        return list;
    }
    return searchNode(list->next, number);
}
```

# The complexity in Big O Notation
###### Time Complexity
| Type            | Worst case |
|-----------------|------------|
| **Search**      | O(n)       |
| **Insert**      | O(n)       |
| **Delete**      | O(n)       |

# Example
```C
int main() {
    struct ll *list = NULL;
    struct ll *found_node = NULL;

    insertTail(&list, 5);
    insertTail(&list, 8);
    insertHead(&list, 4);
    insertHead(&list, 3);
    insertTail(&list, 29);
    insertTail(&list, 54);

    deleteHead(&list);
    deleteTail(&list);

    found_node = searchNode(list, 4);
    if (found_node != 0x0) {
        printf("Found: %d\n", found_node->number);
    }
    printList(list);
    return 0;
}
```

###### Output
```C
Found: 4
4
5
8
29
```

path: /Linked List/README.md


text:
VwMenuCommands contains **all** menu commands current as of VectorWorks 2008. It is based upon the documentation found in [Appendix H of the VS Function Reference](http://developer.vectorworks.net/index.php?title=VS:Function_Reference_Appendix#Appendix_H_-_DoMenuTextByName_Constants)

The Master Tools contains:
1. MS Office tools for mail merging a spreadsheet into the a Microsoft Word template to generate the entire list of commands.
2. VectorScripts for processing the output into individual files.

Originally, I captured the content as HTML from the VS Function Reference by copying and pasting the table. That should still work for anyone interested in updating the repository.

repository: brudgers/VectorScriptTools

repo_name: brudgers/VectorScriptTools


text:
![SmartSystemMenu](https://user-images.githubusercontent.com/8102586/68280906-8e86b800-0087-11ea-9762-f9eb028bb8fe.png) SmartSystemMenu
=============

- English
- [Русский](/README_RU.md)
- [中文版](/README_CN.md)

---

SmartSystemMenu extends system menu of all windows in the system. It appends next custom items to menu:

* **Information.** Shows a dialog with information of the current window and process: the window handle, the window caption, the window style, the window class, the process name, the process id, the path to the process.
* **Roll Up.** Allows to roll up and down the current window.
* **Aero Glass.** Allows to add the "Aero Glass" blur to the current window. (Windows Vista and higher. Mostly for console windows.)
* **Always On Top.** Allows the current window to stay on top of all other windows.
* **Send To Bottom.** Allows to send to bottom the current window.
* **Save Screenshot.** Allows to save the current window screenshot in a file.
* **Open File In Explorer.** Allows to open a process file in a File Explorer.
* **Drag By Mouse.** Allows to drag by mouse the current window.
* **Click Through.** Allows to click through the current window.
* **Hide For Alt+Tab.** Allows to hide the current window for the Taskbar and Alt+Tab switch.
* **Resize.** Allows to change the size of the current window.
* **Move To.** Allows to move the current window to another monitor.
* **Alignment.** Allows the current window to be aligned with any of the 9 positions on the desktop.
* **Transparency.** Allows to change the transparency of the current window.
* **Priority.** Allows to change the current window's program priority.
* **Clipboard.** Allows to copy all window texts (including console, ms office products, etc.) to clipboard and clear clipboard.
* **Dimmer.** Dims all but the currently focused window.
* **Buttons.** Allows to disable "Minimize", "Maximize" and "Close" button.
* **System Tray.** Allows to minimize or suspend the current window to the system tray.
* **Other Windows.** Allows to close and minimize all windows in the system except the current.
* **Start Program.** Allows to start programs which is in the settings.

Screenshots
------------------

![alt tag](https://user-images.githubusercontent.com/8102586/102021339-3349ed80-3d90-11eb-835f-7780a2caae69.jpg)
![alt tag](https://user-images.githubusercontent.com/8102586/102021342-380ea180-3d90-11eb-9dd3-537aab1b17f5.jpg)
![alt tag](https://user-images.githubusercontent.com/8102586/102021344-3b099200-3d90-11eb-99fd-a021ee54043f.jpg)
![alt tag](https://user-images.githubusercontent.com/8102586/103346844-566de000-4aa6-11eb-9f15-f0ca2ea80ee9.png)

Command Line Interface
--------------------

```bash
   --help             The help
   --title            Title
   --titleBegins      Title begins
   --titleEnds        Title ends
   --titleContains    Title contains
   --handle           Handle<PHONE_NUMBER>) (0xFFFFFF)
   --processId        PID<PHONE_NUMBER>)
-d --delay            Delay in milliseconds
-l --left             Left
-t --top              Top
-w --width            Width
-h --height           Height
-i --information      Information dialog
-s --savescreenshot   Save Screenshot
-m --monitor          [0, 1, 2, 3, ...]
-a --alignment        [topleft,
                       topcenter,
                       topright,
                       middleleft,
                       middlecenter,
                       middleright,
                       bottomleft,
                       bottomcenter,
                       bottomright,
                       centerhorizontally,
                       centervertically]
-p --priority         [realtime,
                       high,
                       abovenormal,
                       normal,
                       belownormal,
                       idle]
   --transparency     [0 ... 100]
   --alwaysontop      [on, off]
-g --aeroglass        [on, off]
   --hidealttab       [on, off]
   --clickthrough     [on, off]
   --minimizebutton   [on, off]
   --maximizebutton   [on, off]
   --sendtobottom     Send To Bottom
-o --openinexplorer   Open File In Explorer
-c --copytoclipboard  Copy Window Text To Clipboard
   --copyscreenshot   Copy Screenshot To Clipboard
   --clearclipboard   Clear Clipboard
   --trustedinstaller Sets TrustedInstaller owner for SmartSystemMenuHook.dll and SmartSystemMenuHook64.dll
-n --nogui            No GUI

Example:
SmartSystemMenu.exe --title "Untitled - Notepad" -a topleft -p high --alwaysontop on --nogui
```

Install
--------------------

* Download the [SmartSystemMenu](https://github.com/AlexanderPro/SmartSystemMenu/releases) in the zip file
* [Chocolatey](https://chocolatey.org/): `choco install smartsystemmenu`
* [Scoop](https://scoop.sh/): `scoop bucket add extras` and `scoop install extras/smartsystemmenu`

Requirements
--------------------

* OS Windows XP SP3 and later. Supports x86 and x64 systems.
* .NET Framework 4.0

Files
--------------------

* SmartSystemMenu.exe
* SmartSystemMenu64.exe (located in resources of SmartSystemMenu.exe module)
* SmartSystemMenuHook.dll
* SmartSystemMenuHook64.dll
* SmartSystemMenu.xml
* Language.xml

This program has SmartSystemMenu.exe and SmartSystemMenuHook.dll modules for x86 processes, SmartSystemMenu64.exe and SmartSystemMenuHook64.dll modules for x64 processes. When you run SmartSystemMenu.exe, it also runs SmartSystemMenu64.exe. These two executable modules load hooks (SmartSystemMenuHook.dll and SmartSystemMenuHook64.dll) to all processes. When you select an item in the system menu, the hook sends a message to the executable module. After that, the module performs the selected action: changes the transparency of the window, changes the size of the window, etc.

Tips
--------------------

Run SmartSystemMenu.exe process. If your OS has enabled UAC, the system will display a UAC dialog. You do not need to worry because the program needs elevated privileges. After the program has been executed, in all system menus of all windows you can see custom items.

repository: AlexanderPro/SmartSystemMenu

repo_name: AlexanderPro/SmartSystemMenu


text:
# cross-tab-communication
Demo for cross tab communication

![cross-tab-communication-demo](https://user-images.githubusercontent.com/2261067/83458582-b911e580-a49d-11ea-8320-d120cc496654.gif)

## Instruction

1. Start server

```sh
$ git clone git@github.com:yujiosaka/cross-tab-communication.git
$ npm run build
$ npm run start
```

2. Open http://localhost:8080 in multiple tabs

## Comparison

|                      | Broadcast Channel | Shared Worker | LocalStorage | WebSocket (SocketIO) |
|:--------------------:|:-----------------:|:-------------:|:------------:|:--------------------:|
| Code simplicity      | ◎                 | ○             | ○            | ○                    |
| Server load          | ◎                 | ◎             | ◎            | △                    |
| Client load          | ◎                 | ◎             | △            | ○                    |
| Cross origin support | ×                 | ×             | ×            | ○                    |
| Chrome               | 54                | 4             | 4            | 10.13                |
| Edge                 | <=79              | 79            | 12           | ? (working)          |
| Firefox              | 38                | 29            | 3.5          | 10.11                |
| Internet Explorer    | ×                 | ×             | 8            | 7                    |
| Opera                | 41                | 10.6          | 10.5         | ? (working)          |
| Safari               | ×                 | ×             | 4            | 10.13                |

## Resources

- [Broadcast Channel](https://developer.mozilla.org/docs/Web/API/Broadcast_Channel_API)
- [SharedWorker](https://developer.mozilla.org/docs/Web/API/SharedWorker)
- [LocalStorage](https://developer.mozilla.org/docs/Web/API/Window/localStorage)
- [SocketIO](https://socket.io/docs/server-api/)

repository: yujiosaka/cross-tab-communication

repo_name: yujiosaka/cross-tab-communication


text:
![FritzBoxInflux](https://github.com/GiantMolecularCloud/FritzBoxInflux/blob/main/FritzBoxInflux.png "FritzBoxInflux")

# FritzBoxInflux

A simple python app to query a FritzBox through fritzconnection and send the interesting results to InfluxDB.

Tested on a FritzBox 7490 with FritzOS 7.12, might crash on other models and/or firmware versions.

## Docker

The image is available on [Docker Hub](https://hub.docker.com/r/giantmolecularcloud/fritzboxinflux).
Note that it will likely get taken down in the future under Docker's policy to take down images that are not regularly accessed.

Build it yourself:
```
docker build --tag fritzboxinflux:latest .
docker run --init --env-file env-sample fritzboxinflux
```

### Environment variables

The FritzBox and InfluxDB instance can be selected through the following environment variables.
If not given, defaults are assumed.

The easiest way to specify all env vars is using an environment file (e.g. [env-sample](https://github.com/GiantMolecularCloud/FritzBoxInflux/blob/main/env-sample)) as in the example above.

`FB_IP`
IP address of the FritzBox to query. Default if not specified: <IP_ADDRESS>

`FB_PORT`
Port used to query the FritzBox. Default if not specified: 49000

`FB_USER` and `FB_PASSWD`
FritzBox user and password to authentificate. No default! Must be set.

`FB_ID`
Name given to the InfluxDB database. Default if not specified: FritzBox
If no such database is present, it will be created.

`FB_DSL`
Is the connection a DSL connection? Default if not specified: True
For DSL connections, further metrics can be queried.

`INFLUX_IP`
IP address of the InfluxDB instance to connect to. Default if not specified: <IP_ADDRESS>
Must be set since InfluxDB is not running in this container.

`INFLUX_PORT`
Port on which InfluxDB is running. Default if not specified: 8086

`INFLUX_USER` and `INFLUX_PASSWD`
Credentials for the InfluxDB database. Default if not specified: root:root

`SAMPLE_TIME`
Wait time in between queries in seconds. Default if not specified: 60

## Example dashboard

An example for a Grafana dasboard to show the most relevant FritzBox metrics could look like this.
The code for this dashboard is in ![https://github.com/GiantMolecularCloud/FritzBoxInflux/blob/main/dashboard.json](dashboard.json)

![Grafana dashboard](https://github.com/GiantMolecularCloud/FritzBoxInflux/blob/main/dashboard.png "Grafana dashboard")

## Logo

The logo was created in a very simple way in Pixelmator ([FritzBoxInflux.pxd](https://github.com/GiantMolecularCloud/FritzBoxInflux/tree/main/FritzBoxInflux.pxd)). Feel free to make something nicer (without violating potentially protected shapes and color combinations).

repository: GiantMolecularCloud/FritzBoxInflux

repo_name: GiantMolecularCloud/FritzBoxInflux


text:
# Burger Lounge

Burger Lounge is an interactive burger logger. It allows the user to add a burger's name to the database, store the data in a holding area, and click a button to consume the burger, moving the object to a "devoured" area.

  ![burger1](public/assets/img/bl1.PNG)

## Table of Contents

* [Tech Used](#tech_used)
* [Usage](#usage)
* [Features](#features)
* [Deployed_Link](#deployed_link)
* [Author](#author)
* [Credits](#credits)
* [License](#license)

----

## Tech Used

* [HTML](https://developer.mozilla.org/en-US/docs/Web/HTML)
* [Bootstrap](https://getbootstrap.com/)
* [Javascript](https://developer.mozilla.org/en-US/docs/Web/JavaScript)

## Usage

 The Burger Lounge was created with MySQL, Node, Express, Handlebars, and ORM.

## Features

- It uses the MVC design pattern, allowing users to model, view, and control objects.

  ![mvc](public/assets/img/mvc.PNG)

- Node.js is used to prompt and route data to the database.

  ![node](public/assets/img/node.PNG)

- MySQL database holds user input objects.

  ![mysql](public/assets/img/mysql.PNG)

- Express Handlerbars templating allows the data to be delivered seamlessly.

  ![handlebars](public/assets/img/hb.PNG)

- ... and ORM accesses the data in the database.

  ![orm](public/assets/img/orm.PNG)

## Deployed Link

* [See Live Site](https://ajhuff7.github.io/burger_lounge/)
* [See Live Site](https://young-ocean-02392.herokuapp.com/)

  ![burger2](public/assets/img/bl2.PNG)

---

## Author

**AJ Huff**

- [Portfolio Site](https://ajhuff7.github.io/portfolio-one/)
- [Github](https://github.com/ajhuff7)
- [LinkedIn](https://www.linkedin.com/in/aj-huff-7696b14b/)

## Credits

**No Cows were harmed in the making of this app!

## License

![License](https://img.shields.io/badge/License-MIT-brightgreen)