text:
# 4.Reference
Explains how you can configure one resource with the run time value of another resource by using the reference function. This can be useful when you want to configure an App Service to use an Application Insights instance that you create in the same ARM template.

The reference and list* function is actually calling the Azure REST API. You can find more information about it (and try it) on [
Azure REST API Reference](https://docs.microsoft.com/en-us/rest/api/azure/)
## Useful links
* [list* functions documentation](https://docs.microsoft.com/en-us/azure/azure-resource-manager/templates/template-functions-resource#list)
* [reference function documentation](https://docs.microsoft.com/en-us/azure/azure-resource-manager/templates/template-functions-resource#reference)

repository: nilshedstrom/ARMTemplatesDeepDive

repo_name: nilshedstrom/ARMTemplatesDeepDive


text:
# Filters for the "manage" modal

In the "manage" modal, enabling a "tags" filter for admins is often handy:

{% code-tabs %}
{% code-tabs-item title="lib/modules/people/index.js" %}
```javascript
module.exports = {
  // Other configuration options, then...
  addFilters: [
    {
      name: 'tags',
      label: 'Tags'
    }
  ]
};
```
{% endcode-tabs-item %}
{% endcode-tabs %}

You can also allow multiple tags to be selected, in which case pieces with at least one of those tags are displayed:

{% code-tabs %}
{% code-tabs-item title="lib/modules/people/index.js" %}
```javascript
module.exports = {
  // Other configuration options, then...
  addFilters: [
    {
      name: 'tags',
      label: 'Tags',
      multiple: true
    }
  ]
};
```
{% endcode-tabs-item %}
{% endcode-tabs %}

The same approach works for most types of schema fields, including joins. We do not recommend using it if the number of items in the dropdown will be very large. However, adding options to support filters that employ typeahead and avoid sending a large list of options to the browser is on our roadmap for the future.

## Fetching thumbnails

By default, `children` will not load any widgets present in the child pages, again for performance reasons.

Here's how to turn it on for just one area, a singleton widget called `thumbnail`:

```javascript
addFields: [
  {
    name: '_pages',
    type: 'joinByArray',
    withType: 'apostrophe-page',
    label: 'Pages',
    idsField: 'pageIds',
    filters: {
      children: {
        areas: [ 'thumbnail' ]
      }
    }
  }
]
```

{% hint style='info' %}
If we pass an object to `children`, its properties are invoked as cursor filters when fetching the children. The same trick works with `ancestors`.
{% endhint %}

## Projections and children

If you are using the `projection` filter to load just the absolute minimum information about those pages, `children` won't work, because it requires a little more information about the original pages to understand their place in the page tree.

Here is the absolute minimum `projection` needed for use with `children`:

```javascript
addFields: [
  {
    name: '_pages',
    type: 'joinByArray',
    withType: 'apostrophe-page',
    label: 'Pages',
    idsField: 'pageIds',
    filters: {
      children: true,
      projection: {
        title: 1,
        slug: 1,
        rank: 1,
        level: 1,
        path: 1
      }
    }
  }
]
```

But while using projections is fastest, you can improve performance quite a lot just by not loading areas:

```javascript
addFields: [
  {
    name: '_pages',
    type: 'joinByArray',
    withType: 'apostrophe-page',
    label: 'Pages',
    idsField: 'pageIds',
    filters: {
      children: true,
      areas: false
    }
  }
]
```

license: MIT

repository: dhighet/apostrophe-documentation

branch_name: refs/heads/master

extension: md

gha_license_id: MIT

license_type: permissive

repo_name: dhighet/apostrophe-documentation


text:
---
title: Introduction
---

Modern applications leverage the availability of existing components for use as building blocks
in application development. By using existing components, organizations can dramatically decrease
time-to-market. Reusing existing components however, comes at a cost. Organizations that build on
top of existing components assume risk for software they did not create. Vulnerabilities in third-party
components are inherited by all applications that use those components. The [OWASP Top Ten] (2013 and 2017)
both recognize the risk of [using components with known vulnerabilities](https://www.owasp.org/index.php/Top_10_2013-A9-Using_Components_with_Known_Vulnerabilities).

![dashboard](images/screenshots/dashboard.png)

Dependency-Track is a Software Composition Analysis (SCA) platform that keeps track of all third-party
components used in all the applications an organization creates or consumes. It integrates with multiple
vulnerability databases including the [National Vulnerability Database] (NVD), [NPM Public Advisories] (NPM),
[Sonatype OSS Index], and [VulnDB] from [Risk Based Security]. Dependency-Track monitors all applications in its portfolio in order
to proactively identify vulnerabilities in components that are placing your applications at risk. Use of
Dependency-Track can play a vital role in an overall [Cyber Supply Chain Risk Management](https://csrc.nist.gov/Projects/Supply-Chain-Risk-Management) (C-SCRM)
program by fulfilling many of the recommendations laid out by [SAFECode](https://www.safecode.org/wp-content/uploads/2017/05/SAFECode_TPC_Whitepaper.pdf).

Dependency-Track is designed to be used in an automated DevOps environment where BOM (bill-of-material) formats are
automatically ingested during CI/CD. Use of the [Dependency-Track Jenkins Plugin] is highly recommended for this purpose
and is well suited for use in [Jenkins Pipeline]. In such an environment, Dependency-Track enables your DevOps teams to
accelerate while still keeping tabs on component usage and any inherited risk.

Dependency-Track can also be used to monitor vulnerabilities in COTS (commercial off-the-shelf) software.

### Features

* Increases visibility into the use of vulnerable and outdated components
* Flexible data model supporting an unlimited number of projects and components
* Tracks vulnerabilities and inherited risk
  * by component
  * by project
  * across entire portfolio
* Tracks usage of out-of-date components
* Includes a comprehensive auditing workflow for triaging results
* Configurable notifications supporting Slack, Microsoft Teams, Webhooks, and Email
* Supports standardized SPDX license ID’s and tracks license use by component
* Supports [CycloneDX] and [SPDX] bill-of-material formats and Dependency-Check XML
* Easy to read metrics for components, projects, and portfolio
* Provides a reliable mirror of the NVD data feed
* API-first design facilitates easy integration with other systems
* API documentation available in Swagger 2.0 (OpenAPI 3 support coming soon)
* Supports internally managed users, Active Directory/LDAP, and API Keys
* Simple to install and configure. Get up and running in just a few minutes

[OWASP Top Ten]: https://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project
[National Vulnerability Database]: https://nvd.nist.gov
[NPM Public Advisories]: https://www.npmjs.com/advisories
[Sonatype OSS Index]: https://ossindex.sonatype.org
[VulnDB]: https://vulndb.cyberriskanalytics.com
[Risk Based Security]: https://www.riskbasedsecurity.com
[NIST Cybersecurity Framework]: https://www.nist.gov/cybersecurity-framework
[Dependency-Check]: https://www.owasp.org/index.php/OWASP_Dependency_Check
[Dependency-Track Jenkins Plugin]: https://plugins.jenkins.io/dependency-track
[Jenkins Pipeline]: https://jenkins.io/solutions/pipeline
[CycloneDX]: http://cyclonedx.org
[SPDX]: https://spdx.org/

repository: PeterMosmans/dependency-track

repo_name: PeterMosmans/dependency-track


text:
---
layout: default
---

# 1996-07-18 - Re: Crypto 96

## Header Data

From<EMAIL_ADDRESS>(David Wagner)

To<EMAIL_ADDRESS>Message Hash: 608c0a2d880e69636138e87c95d2440cb5a9b0b81b6e35560838511420f0b21b

Message ID<EMAIL_ADDRESS>Reply To<EMAIL_ADDRESS>UTC Datetime: 1996-07-18 10:04:20 UTC

Raw Date: Thu, 18 Jul 1996 18:04:20 +0800

## Raw message

```
{% raw  %}From<EMAIL_ADDRESS>(David Wagner)
Date: Thu, 18 Jul 1996 18:04:20 +0800
To<EMAIL_ADDRESS>Subject: Re: Crypto 96
In-Reply-To<EMAIL_ADDRESS>Message-ID<EMAIL_ADDRESS>MIME-Version: 1.0
Content-Type: text/plain

In article<EMAIL_ADDRESS>Hal<EMAIL_ADDRESS>wrote:
> Crypto 96 is coming up in about a month.

Yeah, should be good fun -- see you there!

I just wanted to point out that many of the papers you mentioned
below are available on the Web, if you want to preview them.

(Please excuse me if any of the URLs are wrong-- I'm logged in
via a slowish link, so I've just copied the URLs from my bookmarks
without checking them.)

> Anonymous Communication and Anonymous Cash
>    Daniel Simon, Microsoft, USA

http://pct.microsoft.com/research.html
I think?

> The Dark Side of 'Black-Box' Cryptography, or: Why Should We Trust Capstone?
>    Adam Young, Columbia Univ., USA
>    Moti Yung, IBM, USA

http://www.cs.columbia.edu:80/~ayoung/
and discussed on sci.crypt and sci.crypt.research.

> Timing Attacks on Implementations of Diffie-Hellman, RSA, DSS, and
> Other Systems
>    Paul Kocher, Stanford, USA

http://www.cryptography.com/
for an early draft.

> Key-Schedule Cryptanalysis of IDEA, G-DES, GOST, SAFER, and Triple-DES
>    John Kelsey, Counterpane Systems, USA
>    Bruce Schneier, Counterpane Systems, USA
>    David Wagner, Univ. California at Berkeley, USA

http://www.cs.berkeley.edu/~daw/me.html
I wouldn't call it a ``big new result''; it talks about
differential related-key attacks.

{% endraw %}
```

## Thread

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

+ Return to<EMAIL_ADDRESS>(David Wagner)](/authors/daw_at_cs_berkeley_edu_david_wagner_)"
+ Return to "[Hal <hfinney@shell.portal.com>](/authors/hal_hfinney_at_shell_portal_com_)"

+ 1996-07-18 (Thu, 18 Jul 1996 10:50:49 +0800) - [Crypto 96](/archive/1996/07/80dc195def4d8214b84673e1358e8b6fcfd5beaa2513709fee3079a6866142fa) - _Hal<EMAIL_ADDRESS>  + 1996-07-18 (Thu, 18 Jul 1996 18:04:20 +0800) - Re: Crypto 96 -<EMAIL_ADDRESS>(David Wagner)_


text:
Borderlands 3 Hotfixes: June 18, 2020
=====================================

Original URL: https://borderlands.com/en-US/news/2020-06-18-borderlands-3-hotfixes-june-18/

Posted: Jun 18 2020

Today we will release a hotfix for Borderlands 3, which will be live on all platforms by 12:00 PM PST. This week’s hotfixes give a buff to the Webslinger weapon and address some grammatical errors. To apply hotfixes, wait at the main menu until you see a sign that says “Hotfixes Applied”! If you are experiencing any issues or want to provide feedback, please submit a ticket to support.2k.com.

- Increased the damage and magazine size of the Webslinger assault rifle
- Addressed various reported localization and grammatical errors throughout the game

On Tuesday, June 16, we also released a hotfix for Takedown at the Guardian Breach that’s currently active in the game. This hotfix lowered the health values of mob enemies, based on community feedback.


text:
## Guestbook Example

This example shows how to build a simple multi-tier web application using
Kubernetes and Docker. The application consists of a web front end, Redis
master for storage, and replicated set of Redis slaves, all for which we will
create Kubernetes deployments, pods, and services.

There are two versions of this application. Version 1 (in the `v1` directory)
is the simple application itself, while version 2 (in the `v2` directory)
extends the application by adding additional features that leverage the Watson
Tone Analyzer service. It is recommended that if you are new to this example
then you look at just the `v1` version of the application. Other IBM demos
will make use of the `v2` version, such as
[Istio101](https://github.com/IBM/istio101).

Please see the corresponding `README.md` files in each directory for more
information.

### Notes

 * As you read the correspoding `README.md` files, you will see `kubectl` commands that describes deployed resources. The output of these commands can be slightly vary depending on the version of your kubectl.
 * The guestbook applications uses Kubernetes service type `LoadBalancer` to expose the service onto an external IP address. If you are using `Minikube`, keep in mind that no real external load balancer is created. You
 can still access the service with the node port that is assigned to load balancer on `Minikube`.

repository: DataDog/guestbook

gha_language: Go

repo_name: DataDog/guestbook


text:
---
layout: post
title: BioAid Meets Life
date: 2013-07-20 13:10:56.000000000 +04:00
type: post
parent_id: '0'
published: true
password: ''
status: publish
categories: []
tags:
- BioAid
- DIY
- hearing
- hearing aids
- iOS
- iPhone
- review
- science
- software
- technology
meta:
  _edit_last: '10080708'
  geo_public: '1'
  _publicize_pending: '1'
  geo_latitude: '55.752220'
  geo_longitude: '37.615560'
  geo_address: Moscow, Moscow City, Russian Federation
  tagazine-media: a:7:{s:7:"primary";s:0:"";s:6:"images";a:0:{}s:6:"videos";a:0:{}s:11:"image_count";i:0;s:6:"author";s:8:"10080708";s:7:"blog_id";s:8:"54975529";s:9:"mod_stamp";s:19:"2013-07-20
    13:16:18";}
  geo_accuracy: '0'
  _oxford-post-cache: a:1:{s:15:"featured-images";a:0:{}}
author:
  login: wswld
  email<EMAIL_ADDRESS>  display_name: wswld
  first_name: ''
  last_name: ''
---

Couple of weeks ago me and my wife went to a hearing aid center for a free
consultation before, perhaps, buying a new hearing aid. The previous one has
been working just fine for five years or more and it has became unusable
lately. In the center they have run all the ususal tests, created an audiogram
and offered a couple variants to choose from. I was satisfied with the devices,
however I haven't recognized any major difference from the one, that I already
had. I was hoping to manage with $600-$500, and I was shocked when they named
their price: even the cheapest of the devices was around $1000. We could afford
it, but I declined.

Being a person with inborn defect of the auditory nerve, I'm wearing a BTE
hearing aid all my life since the early childhood and I still remember the day,
when I put the thing on for the first time. For a boy, who haven't been hearing
the sounds of footsteps on asphalt or the birds twittering, etc, it was a
marvelous to discover all those sounds for the first time. Later in life, when
I was wearing my fifth of sixth pair of hearing aids this wonderful piece of
technology was already taken for granted and I was actively using it in school,
university and later — in the workplace. Gradually, I started to recognize
quite a few shortcomings of modern hearing aids:

1. Most doctors would suggest you wear aids on both ears, since it is really
   good at helping you to locate the sound and experience the stereo or 3D
   hearing. Wearing two devices may be considered tempting if you don't do
   anything else with your ears like using a phone, headphones and participating
   in all the different kinds of intense activities (*sport?*), when people may
   unwillingly flick it off. It's a physical inconvenience of having something
   plugged into your ear that is not that simple to take off, but paradoxically
   simple to drop. People using them day-to-day would understand, what I'm
   talking about. Headphones and phone would also require you to take the aid
   off first and don't get me started on the horrible phone regime, which is
   available in most modern aids. This was actually how I lost one of my aids: I
   needed to use a phone, took it off and missed my pocket. Never saw that
   device again.
2. Whistling.  They whistle even more as the plastic ear mold
   of the aid is wearing off, which means that ideally it should be replaced
   every year. Whistling is produced by the mic and the speaker in the ear mold
   since they are too close to each other and the feedback sound is being
   produced. Ideally the ear mold should hermetically fit in the ear, to avoid
   the feedback, but at times it sticks out anyway, and when it does — it's
   close to unbearable.
3. Close sourced software and hardware parts. This industry is controlled by a
   bunch of electronics industry giants (Siemens, Phonak, etc) and they became
   to some extent monopolistic in this market, since only they had the initial
   resources to support research and production of hearing aids. Of course they
   are laying out all the rules now, which leads us to the fourth and the worst
   limitation of all.
4. The price.  It's a mic, a little processor
   and a speaker. Yeah, the size is super-small, but it doesn't add up to
   $1500-$2000 in my head, sorry. It's just immensely overpriced. I'm not a
   cheap guy, but I do have a problem when people feed me up with "*magic*" and
   as I work in technology, I know that such claims are almost 100% marketing
   and outright bullshit. They know that most of us — the hearing impaired
   don't have a choice and we're forced to pay twice as much money for anything
   they come up with. If you look for the last ten years — they are going round
   in circles. Hearing aids haven't seen any revolutionary improvement for
   decades, compared with the booming technology market in consumer electronics
   and it's just sad.

Considering all the above, there is great demand for some open solution in the
market. Something you could thinker with yourself and use as a temporary or
permanent substitution for a commercial hearing aid. To achieve that, it should
be capable not only of recording, amplifying and reproducing the sound, but it
also should be smart enough to amplify only some frequency ranges, depending on
type and severity of the hearing damage. It would need some computational power
to process the sound. Ideally, it should also analyze the sound and get rid of
background noise, while normalizing the rest of it (making it quieter or louder
depending on the context). Modern smartphones are perfect candidates, since
they have everything we need in a hearing aid. I started looking for solutions
available as an iPhone app and stumbled upon [BioAid](http://bioaid.org.uk/).

BioAid is an app, implementing a full-featured hearing compensation algorithm,
developed by a [team of scientists](http://bioaid.org.uk/contact.html) in the
university of Essex. They themselves stress on the fact, that this is not about
an iOS app, but the algorithm at the heart of it, which took years of research
and continues to evolve today.

> Initially, the research was not concerned with hearing aids at all but with
> the construction of computer models of how hearing works at a physiological
> level in the auditory periphery.

However, the team has moved to working on hardware models and opted for mobile
phones, since commercial hearing aids are almost impossible or too expensive to
modify and require an agreement with the manufacturers, which is not that easy
to obtain. Smartphones have everything, that a hearing aid needs (a mic, a
processor and a speaker), they're compact enough and modern smartphones have
sufficiently long battery life to perform on-the-fly sound processing almost
all day. In my case it was a godsend and I rushed to test the app in everyday
situations.

First thing I needed to do was to find the most suitable mode. For me it was
simple since I've done million audiograms and knew that my hearing lacks some
of the higher frequencies. After a quick scan I have found Gradual HF mode —
the one I recognized at once as it reminded me of how all my aids sounded. My
advice would be to start your scan with the first variants of every mode since
some of the modes may be too loud or high in frequency and it's just unpleasant
to learn it the worst way. Surprisingly, finding the right mode is not a
problem at all. I was afraid the app would require audiograms and it would
complicate things. It's definitely easier this way. Depending on the headphones
(they have different levels and may alter the sound a little bit) I was best
off with the 2nd and 3rd variants of Gradual HF mode.

I started testing the app in a park with lots of people walking, rolling and
skating around. Although it was quite a test to start with I was pretty
impressed with the results. It reminded me of times, when I put my first aid
on. I heard everything happening around quite distinctly. Frequencies were
altered in the right way. Sure iPhone headphones mic has its problems and I'm
still hoping to find a better one, but other than that, I had no problems at
all. It does reduce a little bit of background noise, depending on Gate value,
however I wouldn't recommend setting it much higher than default settings as it
may cripple the other, more critical sounds. The problem with the standard
headphones mic boils down to missing out on sounds from behind or on the left
(if you have the mic on your right side) occasionally, but it's not critical.
However, if you're speaking with someone and the person is on the left — it may
work a little less precisely than usually. The mic is also quite sensitive to
wind and clothing rustle. Due to some lag you can't use Bluetooth headphones,
though. This is an iPhone issue since people watching videos with Bluetooth
headphones sometimes notice that too.

Usually, I wear my hearing aid in office, since it is the only place, where
most of conversations are critical and may happen almost spontaneously. I was
also quite satisfied. I heard everything said on meetings, even better, than
with my previous aid, and decided to use BioAid at least temporarily at work.
The only problem I can imagine is people's perception of wearing headphones all
the time. Some people assume that you're listening to music. My office is quite
liberal and modern since it's an IT company and a little Skype chat
announcement worked, I can imagine, however, it couldn't always work this well.
Me personally, I find headphones more aesthetically tolerable than a BTE aid,
since people are almost constantly wearing headphones nowadays. Another problem
is that you may need to buy a battery extender case or enhance the battery life
of your iPhone in some other way. My battery is just enough to live through an
usual working day, avoiding, if possible other uses of the phone. I only listen
to some occasional music on my commute in the morning and after work. If I took
the phone off charger at 8 in the morning it is usually almost dead by 22 after
the full 8-hour day. Battery life is my biggest concern with the app so far. I
had thought of getting a separate iPod Touch player and run the app there as
professor Ray Meddis does in [this video](
https://www.youtube.com/watch?v=V_spE9JiUTg&).

Other minor flaw is that algorithm is implemented in mono, though in theory,
stereo implementation is also possible. It is a problem since it may affect
your perception of the direction, the sound is coming from. Even if it was
processed as stereo, the iPhone standard headphones mic is mono, so the sound
is mono by default. Perhaps, stereo would be even worse as a battery drain, so
maybe it's OK the way it is. It is specific to iPhone implementation only and
not the algorithm itself. Speaking about iPhone implementation, there are also
some minor issues that complicate the workflow: like the app stopping on phone
call and not resuming afterwards, or welcome screen appearing every time the
app is launched, but all of these are solvable.

Still, for now I'm *not even thinking* of getting back to commercial aids. I
have a very strong impression, that BioAid approach is the future of hearing
aids. Especially for people, who don't have the hearing damage so severe, that
they require deep in-canal aids or even implants, which is majority of people
with hearing problems. Unloading the sound processing from the aid to a
smartphone or similar device (iPod Touch?) may be the right way especially
considering the fact, that going from nine to twelve channels adds up at least
a thousand dollars to the price of the commercial aid and iPhone has enough
computational power to process much more. Sure, there are still some problems,
but most of them are of the implementation and are going to be fixed sooner or
later.

Algorithm itself is entirely open-source, which means you can [fork](
https://github.com/audioplastic/BioAid) it on GitHub and create your own
version, addressing all of the issues described above, or providing support for
some other platform. If you're a hearing impaired person and you've decided to
try [BioAid](http://bioaid.org.uk/) for yourself, don't forget to provide your
[feedback](http://bioaid.org.uk/contact.html) to the research group, since it
may turn out very useful to them.

**Update 14.11.2014**: I've written [another piece on BioAid](
http://wswld.net/2014/09/24/update-on-bioaid-and-my-hearing-in-general/) in a
year's time, where I've reexamined most of my earlier observations and
conclusions.


text:
# ta4j [![Build Status](https://travis-ci.org/ta4j/ta4j.svg?branch=master)](https://travis-ci.org/ta4j/ta4j) [![Chat on Riot.im](https://img.shields.io/badge/chat-riot.im-green.svg)](https://riot.im/app/#/room/#ta4j:matrix.org)

***Technical Analysis For Java***

![Ta4 main chart](https://raw.githubusercontent.com/wiki/mdeverdelhan/ta4j/img/ta4j_main_chart.png)

Ta4j is an open source Java library for [technical analysis](http://en.wikipedia.org/wiki/Technical_analysis). It provides the basic components for creation, evaluation and execution of trading strategies.

---

### Features

 * [x] 100% Pure Java - works on any Java Platform version 8 or later
 * [x] More than 130 technical indicators (Aroon, ATR, moving averages, parabolic SAR, RSI, etc.)
 * [x] A powerful engine for building custom trading strategies
 * [x] Utilities to run and compare strategies
 * [x] Minimal 3rd party dependencies
 * [x] Simple integration
 * [x] One more thing: it's MIT licensed

### Maven configuration

Ta4j is available on [Maven Central](http://search.maven.org/#search). You just have to add the following dependency in your `pom.xml` file.

```xml
<dependency>
  <groupId>org.ta4j</groupId>
  <artifactId>ta4j-core</artifactId>
  <version>0.12</version>
</dependency>
```

For ***snapshots***, add the following repository to your `pom.xml` file.
```xml
<repository>
    <id>sonatype snapshots</id>
    <url>https://oss.sonatype.org/content/repositories/snapshots</url>
</repository>
```
The current ***snapshot version*** is `0.13-SNAPSHOT` from the [develop](https://github.com/ta4j/ta4j/tree/develop) branch.
```xml
<dependency>
  <groupId>org.ta4j</groupId>
  <artifactId>ta4j-core</artifactId>
  <version>0.13-SNAPSHOT</version>
</dependency>
```

You can also download ***example code*** from the maven central repository by adding the following dependency to your pom.xml:
```xml
<dependency>
  <groupId>org.ta4j</groupId>
  <artifactId>ta4j-examples</artifactId>
  <version>0.12</version>
</dependency>
```
### Getting Help
The [wiki](https://ta4j.github.io/ta4j-wiki/) is the best place to start learning about ta4j. For more detailed questions, please use the [issues tracker](https://github.com/ta4j/ta4j/issues).

### Contributing to ta4j

Here are some ways for you to contribute to ta4j:
  * Take a look at the [Roadmap items](https://ta4j.github.io/ta4j-wiki/Roadmap-and-Tasks.html)
  * [Fork this repository](http://help.github.com/forking/) and submit pull requests.
  * Take a look at [How to contribute](https://ta4j.github.io/ta4j-wiki/How-to-contribute)

See also: the [contribution policy](.github/CONTRIBUTING.md) and [Code of Cunduct](CODE_OF_CONDUCT.md)

YourKit supports the Ta4j project with its full-featured Java Profiler. YourKit, LLC is the creator of YourKit Java Profiler and YourKit .NET Profiler, innovative and intelligent tools for profiling Java and .NET applications.


text:
## How to convert your plugin to work with Design Automation for AutoCAD

Forge Design Automation for AutoCAD Engine accepts two kinds of modules

1.  CRX, console runtime extension which is a C++ native application using AutoCAD Core ObjectARX API
2.  NET, a net assembly which is a managed application using AutoCAD Core .NET API.

### Section: CRX
We will discuss how to create a `crx` application step by step, at the end of this tutorial you can also find a video tutorial and complete source code on GitHub.

#### Step 1: Launch
1. Launch visual studio 2017

2. Go to File->New->Project [Ctrl+Shift+N]

3. Select VC++->Windows Desktop->Dynamic Link Library

4. Enter name of the project

5. Click OK

   ![step1](images/step1.jpg)

   ![step2](images/step2.jpg)

#### Step 2: Create Project
1. Go to Solution Explorer

2. Remove the dllMain.cpp from Source Files, this file is unimportant.

   ![step3](images/step3.jpg)

3. Change the Debug Configuration from x86 to x64.

   ![step4](images/step4.jpg)

4. Build the Solution, your build should succeed, and following output will displayed in your Output window.

    ```
    1>------ Build started: Project: ForgeCrxApp, Configuration: Debug x64 ------
    1>stdafx.cpp
    1>ForgeCrxApp.cpp
    1>ForgeCrxApp.vcxproj -> D:\Work\gitWorkouts\ConvertACADPlugin\ForgeCrxApp\x64\Debug\ForgeCrxApp.dll
    ========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
    ```

#### Step 3:  Integrating ObjectARX SDK

1. Go to Solution Explorer
2. Right Click on the Project, Click Properties.
3. Configuration Properties->C/C++->General
4. Select `Additional Include Directories` and enter your SDK Path

 ![step5](images/step5.jpg)

5.  Select `Additional Dependencies`,  add following minimum required libraries `ac1st23.lib
   rxapi.lib
   accore.lib
   acdb23.lib`
7. Go to Linker -> General, select `Additional Library Directories`
8. Go to Linker ->Input, select `Module Definition File` and add `<sdkpath>\inc\AcRxDefault.def`

   ![linklibs](images/_linklibs.gif)

 ![step6](images/step6.jpg)

9. Go to C/C++ ->Code Generation, select `Runtime Library` pick `Multi-Threaded DLL` from combo box. This indicates our multithreaded module is a Dynamically linked and specifies retail version of run-time library.
NOTE: ObjectARX or CRX application are developed against release version of AutoCAD. Hence it is important to set run-time library to `/MD` not `/MDd`.

 ![step7](images/_step7.jpg)

10. We are not including `acad.lib`, this what makes a significant different from a regular ARX application, `acad.lib` contains definitions of AutoCAD UI.

11. Forge Design Automation doesn't accept any UI related code.

12. Following is the table of AutoCAD libraries differentiating between `arx`,`dbx`,`crx`.

    | **LIBRARY**            | **OK in DBX** | **OK in CRX** | **OK in ARX** |
    | ---------------------- | ------------- | ------------- | ------------- |
    | ac1st23.lib            | YES           | YES           | YES           |
    | acdb23.lib             | YES           | YES           | YES           |
    | acdbmgd.lib            | YES           | YES           | YES           |
    | AcDbPointCloudObj.lib  | YES           | YES           | YES           |
    | acge23.lib             | YES           | YES           | YES           |
    | acgiapi.lib            | YES           | YES           | YES           |
    | acismobj23.lib         | YES           | YES           | YES           |
    | AcMPolygonObj23.lib    | YES           | YES           | YES           |
    | AcSceneOE.lib          | YES           | YES           | YES           |
    | axdb.lib               | YES           | YES           | YES           |
    | rxapi.lib              | YES           | YES           | YES           |
    | acbr23.lib             | YES           | YES           | YES           |
    | acgex23.lib            | YES           | YES           | YES           |
    | AdImaging.lib          | YES           | YES           | YES           |
    | AdIntImgServices.lib   | YES           | YES           | YES           |
    | AecModeler.lib         | YES           | YES           | YES           |
    | AsdkHlrApi23.lib       | YES           | YES           | YES           |
    | acapp_crx.lib          | NO            | YES           | YES           |
    | AcCamera.lib           | NO            | YES           | YES           |
    | accore.lib             | NO            | YES           | YES           |
    | AcFdEval.lib           | NO            | YES           | YES           |
    | AcPublish_crx.lib      | NO            | YES           | YES           |
    | acad.lib               | NO            | NO            | YES           |
    | acapp.lib              | NO            | NO            | YES           |
    | AcFdUi.lib             | NO            | NO            | YES           |
    | acModelDocObj.lib      | NO            | NO            | YES           |
    | AcTc.lib               | NO            | NO            | YES           |
    | AcTcUi.lib             | NO            | NO            | YES           |
    | acui23.lib             | NO            | NO            | YES           |
    | AdApplicationFrame.lib | NO            | NO            | YES           |
    | adui23.lib             | NO            | NO            | YES           |
    | aNav.lib               | NO            | NO            | YES           |
    | aseapi23.lib           | NO            | NO            | YES           |
    | asiapi23.lib           | NO            | NO            | YES           |

#### Step 4: Building

1. Open the ForgeCrxApp.cpp, add the following code snippet, this code registers a command to print `Hello World`.

   ```cpp
   // ForgeCrxApp.cpp : Defines the exported functions for the DLL application.
   //

   #include "stdafx.h"
   #include <aced.h>
   #include <rxregsvc.h>
   #include <tchar.h>

   void initApp();
   void unloadApp();

   void helloWorld();

   void initApp()
   {
   	// register a command with the AutoCAD command mechanism
   	acedRegCmds->addCommand(_T("HELLOWORLD_COMMANDS"),
   		_T("Hello"),
   		_T("Bonjour"),
   		ACRX_CMD_TRANSPARENT,
   		helloWorld);
   }

   void unloadApp()
   {
   	acedRegCmds->removeGroup(_T("HELLOWORLD_COMMANDS"));
   }

   void helloWorld()
   {
   	acutPrintf(_T("\nHello World!"));
   }

   extern "C" AcRx::AppRetCode acrxEntryPoint(AcRx::AppMsgCode msg, void* pkt)
   {
   	switch (msg)
   	{
   	case AcRx::kInitAppMsg:
   		acrxDynamicLinker->unlockApplication(pkt);
   		acrxRegisterAppMDIAware(pkt);
   		initApp();
   		break;
   	case AcRx::kUnloadAppMsg:
   		unloadApp();
   		break;
   	default:
   		break;
   	}
   	return AcRx::kRetOK;
   }
   ```

   2. Build the solution, before that change the extension of the module to `.crx`.

      ![BuildCrx](images/BuildCrx.gif)

#### Step5: Creating Bundle Package
1. Create a folder named `HelloWorld.bundle` and, inside, a file named PackageContents.xml, then copy the following content to it. Learn more at the PackageContents.xml [Format Reference](https://help.autodesk.com/view/OARX/2022/ENU/?guid=GUID-BC76355D-682B-46ED-B9B7-66C95EEF2BD0). This file defines the new AutoCAD custom command `Bonjour` that will be called when Design Automation executes.

   ```xml
   <?xml version="1.0" encoding="utf-8" ?>
<ApplicationPackage SchemaVersion="1.0" Version="1.0" ProductCode="{937C48B7-5F56-4E61-A95F-AC7FA39B32E9}" Name="FDA-AutoCAD" Description="Sample Plugin for AutoCAD" Author="learnforge.autodesk.io">
    <CompanyDetails Name="Autodesk, Inc" Url="https://forge.autodesk.com/en/support/get-help"<EMAIL_ADDRESS>    <Components>
    <RuntimeRequirements OS="Win64" Platform="AutoCAD"/>
    <ComponentEntry AppName="HelloWorld" ModuleName="./Contents/ForgeCrxApp.crx" AppDescription="AutoCAD .CRX App to print HelloWorld" LoadOnCommandInvocation="True" LoadOnAutoCADStartup="True">
      <Commands GroupName="HELLOWORLD_COMMANDS">
        <Command Global="Hello" Local="Bonjour"/>
      </Commands>
    </ComponentEntry>
    </Components>
</ApplicationPackage>
   ```

 Finally, create a subfolder named `Contents` and leave it empty. At this point, the project should look like:

![step8](images/step8.jpg)

2. Now we need to ZIP the .bundle folder. Right-click on the project, select **Properties**, then open **Build Events** and copy the following into **Post-build event command line** field, as shown on the image below.

   ```bash
   xcopy /Y /F "$(TargetDir)*.crx" "$(ProjectDir)helloWorld.bundle\Contents\"
   del /F "$(ProjectDir)bundles\helloWorld.zip"
   7z a -tzip "$(ProjectDir)bundles\helloWorld.zip" "$(ProjectDir)helloWorld.bundle\"
   ```

3.  This will copy the `.crx` from /x64/debug/ into .bundle/Contents folder, then use [7zip](https://www.7-zip.org/) to create a zip, then finally copy the ZIP into /bundles folders of the ForgeCrxApp.

   ![step9](images/_step9.jpg)

   4.  If you build the `ForgeCrxApp` project now you should see something like this on the **Output** window. Note the 2 folders and 2 files zipped. The zip file is created directly at the /bundles folder. This means you're doing great!

```bash
1>------ Build started: Project: ForgeCrxApp, Configuration: Debug x64 ------
1>ForgeCrxApp.vcxproj -> D:\Work\gitWorkouts\ConvertACADPlugin\ForgeCrxApp\x64\Debug\ForgeCrxApp.crx
1>D:\Work\gitWorkouts\ConvertACADPlugin\ForgeCrxApp\x64\Debug\ForgeCrxApp.crx -> D:\Work\gitWorkouts\ConvertACADPlugin\ForgeCrxApp\ForgeCrxApp\helloWorld.bundle\Contents\ForgeCrxApp.crx
1>1 File(s) copied
1>Could Not Find D:\Work\gitWorkouts\ConvertACADPlugin\ForgeCrxApp\ForgeCrxApp\bundles\helloWorld.zip
1>
1>7-Zip 19.00 (x64) : Copyright (c) 1999-2018 Igor Pavlov : 2019-02-21
1>
1>Scanning the drive:
1>2 folders, 2 files, 63283 bytes (62 KiB)
1>
1>Creating archive: D:\Work\gitWorkouts\ConvertACADPlugin\ForgeCrxApp\ForgeCrxApp\bundles\helloWorld.zip
1>
1>Add new data to archive: 2 folders, 2 files, 63283 bytes (62 KiB)
1>
1>
1>Files read from disk: 2
1>Archive size: 13331 bytes (14 KiB)
1>Everything is Ok
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
```

#### Step6: Debugging Crx Application Locally
1. Please refer full [youtube video](https://www.youtube.com/watch?v=66X7iOiRJaU&feature=youtu.be), this video also covers all the steps which we discussed now.

### Section: .NET
1. Please refer Forge Design Automation for [AutoCAD](https://learnforge.autodesk.io/#/designautomation/appbundle/engines/autocad)

repository: MadhukarMoogala/ConvertACADPlugin

repo_name: MadhukarMoogala/ConvertACADPlugin


text:
# captchr

DO NOT INSTALL - captchr is a project to determine who is automatically downloading your gem from rubygems.org

if you download/run/install/instantialize this gem, you are consenting to sending the following information to the authors:
  - hashed_hostname
  - ruby_version
  - platform

we will record this information (along with the IP the request came from) in a local database, so we can conduct analysis on it at a later time. we will never intentionally release the raw dataset.

repository: chorankates/captchr

repo_name: chorankates/captchr


text:
---
title: "Hold up your iPhone in honor of iOS 7"
excerpt: "PaperFaces portrait of @agebhard drawn with Paper by 53 on an iPad."
image:
  path: &image /assets/images/paperfaces-agebhard-twitter.jpg
  feature: *image
  thumbnail: /assets/images/paperfaces-agebhard-twitter-150.jpg
tags: [portrait, illustration, Paper by 53, beard]
---

PaperFaces portrait of @agebhard.

{% include boilerplate/paperfaces-2.md %}

Working the background with watercolor.

Work in progress screenshots (Paper by 53).

repository: gbbns/made-mistakes-jekyll

repo_name: gbbns/made-mistakes-jekyll


text:
## Extracting mitogenomes - option 1: Pulling-out-mitogenomes-from-UCE-data
Uses contig information from assembly step to generate mitogenomes: https://github.com/laninsky/Pulling-out-mitogenomes-from-UCE-data/blob/master/The_mito_pipeline.md

## Extracting mitogenomes, 18S/28S (or any other constant fragment) - option 2: MITObim
Uses unassembled reads to generate mitogenomes. Install MIRA and MITObim: https://github.com/chrishah/MITObim

Interleave F and R reads (using trimmed reads from after illumiprocessor/cut-adapt stage)
```
/public/MITObim/misc_scripts/interleave-fastqgz-MITOBIM.py sle1004-READ1.fastq sle1004-READ2.fastq > sle1004_interleaved.fastq
```
Generate reference file based on information available for same or related species on GenBank. You can include multiple fragments (e.g. mitogenomes and 18S/28S) in this reference file.

Run MITObim:
```
/public/MITObim/MITObim_1.8.pl -end 100 -sample sle56 -ref hydrophiloidea --quick /home/a499a400/beetles/mitogenome_18_28S/sequence.fasta -readpool sle56_interleaved.fastq --pair --clean --denovo &> log
```
In the last iteration folder, there will be an assembly subfolder, and within that subfolder, a folder called *.info. Inside this folder will be a file called *_info_contigstats.txt. I pull this into my favorite spreadsheet program and sort on length. After identifying the contigs > 1,000bp, I copy them into a text file (each contig name on a new line) called "extract_contigs.txt". After putting extract_contigs.R in the same directory as "extract_contigs.txt", I set the file name for the contig file and then:
```
echo `pwd`/iteration26/sle638-hydrophiloidea_assembly/sle638-hydrophiloidea_d_results/sle638-hydrophiloidea_LargeContigs_out_sle638.unpadded.fasta > contig_file_name

Rscript extract_contigs.R
```
If you only have a single contig you can check for circularity of this sequence by:
```
/public/MITObim/misc_scripts/circules.py -f sle117_putative_mito.fasta -k 10-31
```
If no strong signal of circularity is found/we have multiple contigs, it is likely we have just recovered a partial mitogenome. I next use blast/R (make sure you have https://www.bioconductor.org/install/#update-bioconductor-packages installed - Biostrings in particular) to combine contigs that match to another contig within 50 bp of their end.
```
i=sle638-hydrophiloidea.fasta
echo $i > contig_file_name

old_line_number=`wc -l $i`
makeblastdb -in $i -dbtype nucl

blastn -db $i -query $i -evalue 0.001 -outfmt "6 qacc sacc pident length qlen qstart qend slen sstart send evalue bitscore" | awk '$1!=$2 {print $0}' > blast_output.txt

Rscript blast_combine.R

new_line_number=`wc -l $i`
echo $old_line_number
echo $new_line_number
```

Keep looping through the above blast and R-code until your file doesn't change in length/size. Following this, I check check that the contigs seem to be mitochondrial (or your target region) in origin through the BLAST web-server. I then run through the MITObim steps again, using these refined contigs as the starting reference. I do this to see if we can extend the contigs/obtain an entire mitogenome by just giving it just a limited number of references to work with (rather than splitting our reads among the many baits in the GenBank reference file):
```
mkdir original_run
mv iteration*/*assembly/*info/*contigreadlist.txt original_run
mv iteration*/*assembly/*info/*contigstats.txt original_run
#replace sle117 with your sample name
mv iteration*/*assembly/*results/sle117-hydrophiloidea_LargeContigs_out_sle117.unpadded.fasta original_run
mv log original_run
rm -rf iteration*

/public/MITObim/MITObim_1.8.pl -end 100 -sample sle117 -ref sle117 --quick sle117_putative_mito.fasta -readpool sle117_interleaved.fastq --pair --clean --denovo &> log
```
After this run, I follow the same steps as above (pulling out the largest contigs, checking whether they are circular/there is overlap between the beginning and the end, pulling out the next largest contig if not, confirming they are mtDNA/target fragments through BLAST).
```
/public/MITObim/misc_scripts/circules.py -f sle117_final_mitobim.fasta -k 10-31

makeblastdb -in sle1004_final_mitobim.fasta -dbtype nucl
blastn -db sle1004_final_mitobim.fasta -query sle1004_final_mitobim.fasta -evalue 0.001 -outfmt 6 | awk '$1!=$2 {print $0}'

mkdir sle_specific_run
mv iteration*/*assembly/*info/*contigreadlist.txt sle_specific_run
mv iteration*/*assembly/*info/*contigstats.txt sle_specific_run
#replace sle117 with your sample name
mv iteration*/*assembly/*results/sle117-sle117_LargeContigs_out_sle117.unpadded.fasta sle_specific_run
mv log sle_specific_run
rm -rf iteration*
```

I then map our total paired end reads to these final MITObim contigs and generate a final consensus using bwa, samtools, gatk and picard (you'll need to have these installed). I do this separately for each locus I am trying to fish out, but if they had the same ploidy (i.e. all were nuclear) you could do them at the same time. Change all instances of sle117 in the following code to your own sample name. In the  FindCoveredIntervals I've chosen to only output sequence where the coverage was >= 4 reads (contigs will be split into multiple contigs if they dip below this). You can tweak this if you like. In addition, if you are fishing out nuclear regions (e.g. 18S etc), you probably want to change the --maxNumHaplotypesInPopulation flag to 2 or more.

```
bwa index -a is sle117_final_mitobim.fasta
samtools faidx sle117_final_mitobim.fasta
/public/jdk1.8.0_112/bin/java -jar /public/picard.jar CreateSequenceDictionary R=sle117_final_mitobim.fasta O=sle117_final_mitobim.dict
bwa mem sle117_final_mitobim.fasta sle117-READ1.fastq sle117-READ2.fastq > temp.sam
/public/jdk1.8.0_112/bin/java -jar /public/picard.jar AddOrReplaceReadGroups I=temp.sam O=tempsort.sam SORT_ORDER=coordinate LB=rglib PL=illumina PU=phase SM=everyone
/public/jdk1.8.0_112/bin/java -jar /public/picard.jar MarkDuplicates MAX_FILE_HANDLES=1000 I=tempsort.sam O=tempsortmarked.sam M=temp.metrics AS=TRUE
/public/jdk1.8.0_112/bin/java -jar /public/picard.jar SamFormatConverter I=tempsortmarked.sam O=tempsortmarked.bam
samtools index tempsortmarked.bam

# gatk 4.0 has not ported depthofcoverage or some other needed tools, so you have to jump over to 3.8 for
# gatk commands that begin with the java call
/public/jdk1.8.0_112/bin/java -jar /public/GenomeAnalysisTK.jar -T DepthOfCoverage -R sle117_final_mitobim.fasta -I tempsortmarked.bam -o temp.coverage

gatk HaplotypeCaller -R sle117_final_mitobim.fasta -I tempsortmarked.bam -stand-call-conf 30 -O temp_raw_variants.vcf --max-num-haplotypes-in-population 1
/public/jdk1.8.0_112/bin/java -jar /public/GenomeAnalysisTK.jar -T FindCoveredIntervals -R sle117_final_mitobim.fasta -I tempsortmarked.bam -cov 4 -o temp_covered.list
/public/jdk1.8.0_112/bin/java -jar /public/GenomeAnalysisTK.jar -T ReadBackedPhasing -R sle117_final_mitobim.fasta -I tempsortmarked.bam  --variant temp_raw_variants.vcf -o temp_phased_SNPs.vcf
/public/jdk1.8.0_112/bin/java -jar /public/GenomeAnalysisTK.jar -T FastaAlternateReferenceMaker -V temp_phased_SNPs.vcf -R sle117_final_mitobim.fasta -L temp_covered.list -o sle117_final_mapped.fasta
mv temp.coverage coverage.txt
rm temp*
```
This will do the same thing except using pre-version 4 of gatk
```
bwa index -a is sle117_final_mitobim.fasta
samtools faidx sle117_final_mitobim.fasta
/public/jdk1.8.0_112/bin/java -jar /public/picard.jar CreateSequenceDictionary R=sle117_final_mitobim.fasta O=sle117_final_mitobim.dict
bwa mem sle117_final_mitobim.fasta sle117-READ1.fastq sle117-READ2.fastq > temp.sam
/public/jdk1.8.0_112/bin/java -jar /public/picard.jar AddOrReplaceReadGroups I=temp.sam O=tempsort.sam SORT_ORDER=coordinate LB=rglib PL=illumina PU=phase SM=everyone
/public/jdk1.8.0_112/bin/java -jar /public/picard.jar MarkDuplicates MAX_FILE_HANDLES=1000 I=tempsort.sam O=tempsortmarked.sam M=temp.metrics AS=TRUE
/public/jdk1.8.0_112/bin/java -jar /public/picard.jar SamFormatConverter I=tempsortmarked.sam O=tempsortmarked.bam
samtools index tempsortmarked.bam
/public/jdk1.8.0_112/bin/java -jar /public/GenomeAnalysisTK.jar -T RealignerTargetCreator -R sle117_final_mitobim.fasta -I tempsortmarked.bam -o tempintervals.list
/public/jdk1.8.0_112/bin/java -jar /public/GenomeAnalysisTK.jar -T IndelRealigner -R sle117_final_mitobim.fasta -I tempsortmarked.bam -targetIntervals tempintervals.list -o temp_realigned_reads.bam
/public/jdk1.8.0_112/bin/java -jar /public/GenomeAnalysisTK.jar -T DepthOfCoverage -R sle117_final_mitobim.fasta -I temp_realigned_reads.bam -o temp.coverage

/public/jdk1.8.0_112/bin/java -jar /public/GenomeAnalysisTK.jar -T HaplotypeCaller -R sle117_final_mitobim.fasta -I temp_realigned_reads.bam --genotyping_mode DISCOVERY -stand_call_conf 30 -o temp_raw_variants.vcf --maxNumHaplotypesInPopulation 1
/public/jdk1.8.0_112/bin/java -jar /public/GenomeAnalysisTK.jar -T ReadBackedPhasing -R sle117_final_mitobim.fasta -I temp_realigned_reads.bam  --variant temp_raw_variants.vcf -o temp_phased_SNPs.vcf
/public/jdk1.8.0_112/bin/java -jar /public/GenomeAnalysisTK.jar -T FindCoveredIntervals -R sle117_final_mitobim.fasta -I temp_realigned_reads.bam -cov 4 -o temp_covered.list
/public/jdk1.8.0_112/bin/java -jar /public/GenomeAnalysisTK.jar -T FastaAlternateReferenceMaker -V temp_phased_SNPs.vcf -R sle117_final_mitobim.fasta -L temp_covered.list -o sle117_final_mapped.fasta
mv temp.coverage coverage.txt
rm temp*
```

After verifying that the fragments were on target through BLAST, and replacing any spaces in the fasta header with undescores:
-- I annotated mitogenomes via MITOS: http://mitos.bioinf.uni-leipzig.de/
-- and 18S-28S via ITSX:

# Note about applying to amplicon sequencing
Please see the discussion about potential problems with applying this code to amplicon sequencing mentioned at:
https://github.com/laninsky/direct_mito_sequencing/blob/master/4_filtering_fasta_on_pileup/README.md

```
for i in *.fasta; basename=`echo $i | sed 's/.fasta//g'`; do ITSx --allow_single_domain --preserve --save_regions  all -i $i -o $basename; done
\\\sed -ir 's|\(>[0-9]\)\(_sle\)\(.*\)|\2|g' test.fas
```


text:
---
title: Books on LaTeX
category: documentation
permalink: /FAQ-latex-books
---

- LaTeX, a Document Preparation System by Leslie Lamport
  (second edition, Addison Wesley, 1994, ISBN-10 0-201-52983-1)
- Guide to LaTeX by Helmut Kopka and Patrick W. Daly (fourth
  edition, Addison-Wesley, 2004, ISBN-10 0-321-17385-6)
- LaTeX Beginner's Guide by Stefan Kottwitz (Packt Publishing,
  2011, ISBN-10<PHONE_NUMBER>, ISBN-13<PHONE_NUMBER>)
- The LaTeX Companion by Frank Mittelbach, Michel Goossens,
  Johannes Braams, David Carlisle and Chris Rowley (second edition,
  Addison-Wesley, 2004, ISBN-10 0-201-36299-6, ISBN-13 0-201-36299-6); the
  book as also available as a digital download (in EPUB,
  MOBI and PDF formats) from
  <https://www.informit.com/store/latex-companion-9780133387667>
- The LaTeX Graphics Companion:
  _Illustrating documents with TeX and PostScript_ by Michel
  Goossens, Sebastian Rahtz, Frank Mittelbach, Denis Roegel and
  Herbert Voß (second edition, Addison-Wesley, 2007,
  ISBN-10 0-321-50892-0, ISBN-13 0-321-50892-0)
- The LaTeX Web Companion:
  _Integrating TeX, HTML and XML_ by Michel
  Goossens and Sebastian Rahtz (Addison-Wesley, 1999, ISBN-10 0-201-43311-7)
- TeX Unbound:
  _LaTeX and TeX strategies for fonts, graphics, and more_
  by Alan Hoenig (Oxford University Press, 1998, ISBN-10 0-19-509685-1
  hardback, ISBN-10 0-19-509686-X paperback)
- More Math into LaTeX: _An Introduction to_ LaTeX
  _and_ AMSLaTeX by George Grätzer (fourth edition Springer Verlag,
  2007, ISBN-10 978-0-387-32289-6
- Digital Typography Using LaTeX, Incorporating some
  multilingual aspects, and use of [Omega](FAQ-omegaleph), by
  Apostolos Syropoulos, Antonis Tsolomitis and Nick Sofroniou
  (Springer, 2003, ISBN-10 0-387-95217-9).
- First Steps in LaTeX by George Grätzer (Birkhäuser, 1999,
  ISBN-10 0-8176-4132-7)
- LaTeX: Line by Line:
  _Tips and Techniques for Document Processing_
  by Antoni Diller (second edition, John Wiley & Sons,
  1999, ISBN-10 0-471-97918-X)
- LaTeX for Linux: _A Vade Mecum_
  by Bernice Sacks Lipkin (Springer-Verlag, 1999,
  ISBN-10 0-387-98708-8, second printing)
- Typesetting Mathematics with LaTeX by Herbert Voß (UIT
  Cambridge, 2010, ISBN-10 978-1-906-86017-2)
- Typesetting Tables with LaTeX by Herbert Voß, (UIT
  Cambridge, 2011, ISBN-10 978-1-906-86025-7)
- PSTricks: Graphics and PostScript for TeX and LaTeX by
  Herbert Voß, (UIT Cambridge, 2011, ISBN-10 978-1-906-86013-4)

A sample of George Grätzer's "Math into LaTeX", in Adobe
Acrobat format, and example files
for the three LaTeX Companions, and for
Grätzer's "First Steps in LaTeX", are all available on
CTAN.

branch_name: refs/heads/main

gha_language: HTML

gha_license_id: NOASSERTION


text:
# Understanding the behave

Behave is a framework for Behaviour testing. Means, how application behaving in certain situations. In TDD we do write tests first and write logic to satisfy the tests and you'll keep on increasing the logic to achieve the desired functionality.

Using behave we can define flow/behaviour of application. It is simple and we can define the flow in english language.

# Requirements

1. Make sure you've downloaded the chromedriver
2. Python2.7 or Python3.5
3. pip or pip3

# Basic building blocks of behave

- `given`
- `when`
- `then`

### given

- initializes the state

### when

- describes an action

### then

- expected outcome

<br>
Example - 1:

```
    Scenario: Login with Valid Credentials
      Given valid credentials
      When clicks on login
      Then should be able to see Home
```

Example - 2:

```
    Scenario: Login with Valid Credentials
      Given Navigate to Login Page
      And provide valid credentials
      When clicks on login
      Then should be able to see Home
```

Example - 3:

```
    Scenario: Login with Valid Credentials
      Given Navigate to Login Page
      And provide valid credentials
      When clicks on login
      Then should be able to see Home
      And should see last login time stamp
```

Example - 4:

```
    Scenario: Login with Valid Credentials as non-admin user
      Given Navigate to Login Page
      And provide valid credentials
      When clicks on login
      Then should be able to see Home
      And should see last login time stamp
      But should not see settings menu
```

repository: abhinavnarra/courses

repo_name: abhinavnarra/courses


text:
Input/Output flags for Pigeon PLCs
==================================

This example serves as a library. It won't compile because it contains ALL
input and output flags and there are conflicts.

Pick only the input and output flags which you need and copy&paste them into
your project.

## Opening the example ##
- The **exec.mdl* file is the project main file
- Open it with *REXYGEN Studio*

## Documentation ##

- [Getting started with REXYGEN and Pigeon PLC](https://www.rexygen.com/doc/PDF/ENGLISH/RexygenGettingStarted_Pigeon_PLC_ENG.pdf)
- [REXYGEN Studio User Guide](https://www.rexygen.com/doc/PDF/ENGLISH/RexygenStudio_ENG.pdf)
- [Complete documentation of REXYGEN](http://www.rexygen.com/documentation-and-support)

## Additional information ##

- [Pigeon PLC website](http://pigeoncomputers.com/)
- Visit the [REXYGEN webpage](http://www.rexygen.com)
for more information about the example projects and developing advanced
automation and control solutions using REXYGEN.


text:
# Requirements

IN - The vision of this product is to allow people to express themselves and share knowledge. We want to allow people to have a space where they can freely express their emotions, experiences and visions and share it with others. Our stretch goal is to allow users between publicing their blog or making it private.
We create a platform where people connect with one another.
You should care about our product because it helps others understand other's people feelings, cultures and beliefs. Our platform is also great help for future researches.

OUT - We will not provide a share or comment segment to other's blog.
You cannot modify your blog after it was submitted.
You cannot upload pictures.

Our stretch goals are the following:

- image hosting option
- allow user to publify their blog
- allow users to add comments
- allow users to subscribe to blogger
- allow users to create an account
- display all blogs of the category
- add read-later list.

As a user, I want the ability to write my own blog and have them stored, so I can keep going back to them
As website developers, we want the ability to give the user the best ‘user experience design’
As website developers, we want our users to have a wide variety of topics to read about
As website developers, we want our users to feel free and write whatever they want and create their own individual blog.
As website developers, we want to connect people with each other, by being able to have your blog be shown publicly.

gha_language: JavaScript


text:
---
title: Document Security | Handling user data
seo-title: Document Security | Handling user data
description: Document Security | Handling user datas
uuid: 1624a465-8b0c-4347-a53f-1118bfa6e18f
topic-tags: grdp
products: SG_EXPERIENCEMANAGER/6.5/FORMS
discoiquuid: 898268cb-4426-421f-8f63-d75bd85cb57f
role: Admin
exl-id: 00c01a12-1180-4f35-9179-461bf177c787
---
# Document Security | Handling user data {#document-security-handling-user-data}

AEM Forms document security lets you create, store, and apply predefined security settings to your documents. It ensures that only authorized users can use the documents. You can protect documents by using policies. A policy is a collection of information that includes security settings and a list of authorized users. You can apply a policy to one or more documents and authorizes users who are added in AEM Forms JEE user management.

## User data and data stores {#user-data-and-data-stores}

Document security stores policies and data related to protected documents including user data in a database, such as My Sql, Oracle, MS SQL Server, and IBM DB2. In addition, the data for authorized users in a policy in store in user management. For information about data stored in user management, see [Forms User Management: Handling user data](/help/forms/using/user-management-handling-user-data.md).

The following table maps how document security organizes data in database tables.

   Database table
   Description

   EdcPrincipalKeyEntity
   Stores information about principal keys for the users. The keys are used in offline document security workflows.

   EdcAuditEntity
   Stores information about auditing event like user events, document events, and policy events.

EdcLicenseEntity

   Stores record of a protected document. It stores license details for every protected document.

EdcDocumentEntity

   Stores document name for every license created in the system.

EdcRevokationEntity

   Stores information about revocation and reinstatement of protected documents.

   EdcMyPolicyListEntity
   Stores information about users who can create personal policies that appear under the My Policies tab on the Policies page.

   EdcPolicyEntity
   Stores information about policies. Each policy corresponds to a row in this table.

   EdcPolicyXmlEntity
   Stores XML files for active policies. A policy XML contains references to principal IDs of users associated with the policy. Policy XML is stored as a Blob object.

   EdcPolicyArchiveEntity
   Stores information about archived policies. An archived policy contains its policy XML stored as a Blob object.

EdcPolicySetPrincipalEntity

EdcPolicySetPrincipalEnt
 (Oracle and MS SQL databases)

   Stores the mapping between policy set and users.

   EdcInvitedUserEntity
   Stores information about invited User.

## Access and delete user data {#access-and-delete-user-data}

You can access and export document security data for users in the databases, and if required, delete it permanently.

To export or delete user data from a database, you need to connect to the database using a database client and find out the principal ID based on some personally identifiable information of the user. For example, to retrieve the principal ID of a user using a login ID, run the following `select` command on the database.

In the `select` command, replace the `<user_login_id>` with the login ID of the user whose principal ID you want to retrieve from the `EdcPrincipalUserEntity` database table.

```sql
select refprincipalid from EdcPrincipalUserEntity where uidstring = <user_login_id>
```

Once you know the principal ID, you can export or delete the user data.

### Export user data {#export-user-data}

Run the following database commands to export user data for a principal ID from database tables. In the `select` command, replace `<principal_id>` with the principal ID of the user whose data you want to export.

>[!NOTE]
>
>The following commands use database table names in My SQL and IBM DB2 databases. When running these commands on Oracle and MS SQL databases, replace `EdcPolicySetPrincipalEntity` with `EdcPolicySetPrincipalEnt` in the commands.

```sql
Select * from EdcPrincipalKeyEntity where principalid = '<principal_id>';

Select * from EdcLicenseEntity where publisherId = '<principal_id>';

Select * from EdcDocumentEntity where id in (Select documentid from EdcLicenseEntity where publisherId = '<principal_id>');

Select * from EdcRevokationEntity where licenseid in (Select id from EdcLicenseEntity where publisherId = '<principal_id>');

Select * from EdcMyPolicyListEntity where principalId = '<principal_id>';

Select * from edcpolicyentity where policyownerId = '<principal_id>';

Select * from edcpolicyxmlentity where policyidref in (Select id from edcpolicyentity where policyownerId = '<principal_id>');

Select * from edcpolicyarchiveentity where policyownerId = '<principal_id>';

Select * from edcpolicysetprincipalentity where principalId = '<principal_id>';

Select * from edcinviteduserentity where principalId = '<principal_id>';
```

>[!NOTE]
>
>To export data from the `EdcAuditEntity` table, use the [EventManager.exportEvents](https://helpx.adobe.com/experience-manager/6-5/forms/programlc/javadoc/index.html?com/adobe/livecycle/rightsmanagement/client/EventManager.html) API that takes [EventSearchFilter](https://helpx.adobe.com/experience-manager/6-5/forms/programlc/javadoc/com/adobe/livecycle/rightsmanagement/client/infomodel/EventSearchFilter.html) as a parameter to export audit data based on `principalId`, `policyId`, or `licenseId`.

To get complete data about a user in the system, you must access and export data from user management database. For more information, see [Forms user management: Handling user data](/help/forms/using/user-management-handling-user-data.md).

### Delete user data {#delete-user-data}

Do the following to delete document security data for a principal ID from database tables.

1.
1. Run the following database commands to delete data for the principal ID from database tables for document security. In the `Delete` command, replace `<principal_id>` with the principal ID of the user whose data you want to delete.

   ```sql
   Delete from EdcPrincipalKeyEntity where principalid = '<principal_id>';

   Delete from EdcMyPolicyListEntity where principalId = '<principal_id>';

   Delete from edcpolicyarchiveentity where policyownerId = '<principal_id>';

   Delete from edcpolicysetprincipalentity where principalId = '<principal_id>';

   Delete from edcinviteduserentity where principalId = '<principal_id>';
   ```

   >[!NOTE]
   >
   >To delete data from the `EdcAuditEntity` table, use the [EventManager.deleteEvents](https://helpx.adobe.com/experience-manager/6-5/forms/programlc/javadoc/index.html?com/adobe/livecycle/rightsmanagement/client/EventManager.html) API that takes [EventSearchFilter](https://helpx.adobe.com/experience-manager/6-5/forms/programlc/javadoc/com/adobe/livecycle/rightsmanagement/client/infomodel/EventSearchFilter.html) as a parameter to delete audit data based on `principalId`, `policyId`, or `licenseId`.

1. Active and archived policy XML files are stored in the `EdcPolicyXmlEntity` and `EdcPolicyArchiveEntity` database tables, respectively. To delete data for a user from these tables, do the following:

    1. Open the XML blob of each row in the `EdcPolicyXMLEntity` or `EdcPolicyArchiveEntity` table and extract the XML file. The XML file is similar to the one shown below.
    1. Edit the XML file to remove the blob for the principal ID.
    1. Repeat steps 1 and 2 for the other file.

   >[!NOTE]
   >
   >You must remove the complete blob within the `Principal` tag for a principal ID or the policy XML may get corrupt or unusable.

   ```xml
   <ns2:Principal PrincipalNameType="USER">
       <ns2:PrincipalDomain>OID</ns2:PrincipalDomain>
       <ns2:PrincipalName>56F33FEB-098A-1036-A651-00000A2A2656</ns2:PrincipalName>
   </ns2:Principal>
   </ns2:PolicyEntry>
       <ns2:Property PropertyName="isCertified">
           <ns2:PropertyValue xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xmlns:xs="https://www.w3.org/2001/XMLSchema" xsi:type="xs:string">false</ns2:PropertyValue>
       </ns2:Property>
       <ns2:Property PropertyName="encryptionAlgorithm">
           <ns2:PropertyValue xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xmlns:xs="https://www.w3.org/2001/XMLSchema" xsi:type="xs:string">AES128</ns2:PropertyValue>
       </ns2:Property>
       <ns2:Property PropertyName="AccessDeniedErrorMessage">
           <ns2:PropertyValue xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xmlns:xs="https://www.w3.org/2001/XMLSchema" xsi:type="xs:string"></ns2:PropertyValue>
       </ns2:Property>
   <ns2:PolicyEntry>
   <ns2:Permission PermissionName="ns3:com.adobe.aps.onlineOpen" Access="ALLOW"/>
   <ns2:Permission PermissionName="ns3:com.adobe.aps.pdf.copy" Access="ALLOW"/>
   <ns2:Permission PermissionName="ns3:com.adobe.aps.offlineOpen" Access="ALLOW"/>
   <ns2:Permission PermissionName="ns3:com.adobe.aps.pdf.accessible" Access="ALLOW"/>
   <ns2:Permission PermissionName="ns3:com.adobe.aps.pdf.editNotes" Access="ALLOW"/>
   <ns2:Permission PermissionName="ns3:com.adobe.aps.pdf.edit" Access="ALLOW"/>
   <ns2:Permission PermissionName="ns3:com.adobe.aps.pdf.fillAndSign" Access="ALLOW"/>
   <ns2:Permission PermissionName="ns3:com.adobe.aps.pdf.printHigh" Access="ALLOW"/>
   <ns2:Permission PermissionName="ns3:com.adobe.aps.pdf.printLow" Access="ALLOW"/>
   ```

   In addition to deleting data directly from the `EdcPolicyXmlEntity` table, there are two more ways you can achieve this:

   **Using administration console**

    1. As an administrator, log into the Forms JEE administration console at https://[*server*]:[*port*]/adminui.
    1. Navigate to **[!UICONTROL Services > Document Security > Policy Sets]**.
    1. Open a policy set and delete the user from the policy.

   **Using document security web page**

   Document security users who have permissions to create personal policies can delete user data from their policies. To do so:

    1. Users who have personal policies log into their document security web page at https://[*server*]:[*port*]/edc.
    1. Navigate to **[!UICONTROL Services > Document Security > My Policies]**.
    1. Open a policy and delete the user from the policy.

    >[!NOTE]
    >
    >Administrators can search, access, and delete user data from personal policies of other users in **[!UICONTROL Services > Document Security > My Policies]** using administration console.

1. Delete the data for the principal ID from user management database. For detailed steps, see [Forms User Management | Handling user data](/help/forms/using/user-management-handling-user-data.md).
1. Start the AEM Forms server.

gha_language: Groovy


text:
# Responsive Container

This Widget wraps layoutbuilder to provide a Responsive Container container.
It can be used to build layout for mobile, tablet and desktop.

* Mobile Widget is mandatory
* If tablet widget is missing it will render mobile widget
* If desktop widget is missing it will render tablet widget
* Default Min Width for tablet widget is 800 and for desktop widget is 1200

## Usage

To use this plugin, add responsiveui_container

## Example

```
import 'package:flutter/material.dart';
import 'package:responsiveui_container/responsiveui_container.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      title: 'Responsive Container Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: RContainer(
        mobile: MobileHomePage(),
        tablet: TabHomePage(),
        desktop: DesktopHomePage(),
      ),
    );
  }
}
```

## Mobile
![](./screenshots/mobile.png)

## Tablet
![](./screenshots/tablet.png)

## Desktop
![](./screenshots/desktop.png)


text:
# renesca-magic example

A simple example to demonstrate the features of the [renesca-magic](https://github.com/renesca/renesca-magic) library.

Find the code in [src/main/scala/renesca/magicexample/Main.scala](https://github.com/renesca/renesca-magic-example/blob/master/src/main/scala/renesca/magicexample/Main.scala)

This example assumes your server is running on `http://localhost:7474` with username and password set to `neo4j`.
You can change this in the code.
It also expects your database to be completely empty and exits otherwise to not destroy any of your data.

To run this project type:
```sh
$ sbt run
```

There is no output. But at compile time the following code will be generated: [magic](https://github.com/renesca/renesca-magic-example/tree/master/magic)

## License
Licensed under the [Apache License, Version 2.0][Apache]

[Apache]: http://www.apache.org/licenses/LICENSE-2.0

repository: renesca/renesca-magic-example

repo_name: renesca/renesca-magic-example


text:
# pyCards

pyCards is a simple Python script that was used to generate title cards
for Teacher's Day 2018 at DPS Gurgaon.
A template prepared by the design team and a list of titles in the form of a csv
were used to generate the 175+ cards.

### Major Technologies Used
- Python 3.7
- PIL (Pillow)

### Things I've Learnt
- Using PIL to render text on images.

### Preview
![Generated Card Preview](example.png?raw=true)

repository: IshanManchanda/pyCards

repo_name: IshanManchanda/pyCards


text:
# demo-testing-flyway

This project represents a collection of examples to explain the use and configuration of **Flyway**

## Technological Stack

* Java 8
* [Maven 3](https://maven.apache.org/) - Dependency Management

Dependencies with architecture projects

* If you consider using this option, uncomment the POM reference or use your own reference

Third Party Dependencies

* **spring-boot-starter-data-jpa** [Spring Boot Version] : Spring Boot Persistence Library
* **spring-boot-starter-web** [Spring Boot Version] : Spring Boot web library
* **spring-boot-starter-test** [Spring Boot Version] : Spring Boot testing library

* **h2** [Spring Boot Version] : H2 Database Engine
* **flyway-core** [Spring Boot Version] : Database version control
* **postgresql** [Spring Boot Version] : Postgresql Database Driver

## Prerequisites

Define what elements are needed to install the software

* Java 8 installed (1.5+ version required)
* Maven installed  (3+)

## Installation

Steps to follow

* Start a terminal
* To be located in the PATH of installation (the place where the project is located)
* Verify that the file "pom.xml" is available

Execute the following command

```bash
mvn clean install
```

The result will be the generation of an artifact in your Maven repository (local)

## Testing

## Deploy

N/A

## Use

N/A

## Versioning

**Note :** [SemVer](http://semver.org/) is used for the versioning.
To see the available versions access the repository tags

## Authors

repository: vjmadrid/workspace-java-testing-lab

gha_language: Java

repo_name: vjmadrid/workspace-java-testing-lab


text:
# Contributing guidelines

Thank you for your interest in contributing to this project! Here are some tips to get you started.

## Getting started

- Consider [opening an issue](https://github.com/tartiflette/tartiflette-asgi/issues/new) if the change you are proposing is not trivial. :+1:
- Fork this repo on GitHub, then clone it to your machine.
- Install dependencies:

```bash
scripts/install
```

- When you're ready to have your work reviewed, [open a pull request!](https://github.com/tartiflette/tartiflette-asgi/compare) :rocket:

## Testing and linting

You can run code auto-formatting using:

```shell
scripts/lint
```

To run the test suite and code checks, run:

```shell
scripts/test
```

If this step passes, you should be on track to pass CI.

You can run code checks separately using:

```shell
scripts/check
```

## Documentation

Documentation pages are located in the `docs/` directory.

If you'd like to preview changes, you can run the documentation site locally using:

```shell
scripts/serve
```

## Notes to maintainers

To make a new release:

- Bump the version in `__init__.py`.
- Edit the changelog with the set of changes since the last release.
- Create a release commit: `$ git commit -m "Release x.y.z"`.
- Run `$ scripts/publish` to push a new release to PyPI and deploy the docs to GitHub Pages.


text:
---
title: StuckInSpace
summary: VR Multi-Modal Co-op two player game
tags:
  - Games
  - PhD
  - Unity
date: '2019-10-27T00:00:00Z'

# Optional external URL for project (replaces project detail page).
external_link: ''

image:
  caption: A screenshot of what the VR player sees (a small drone)
  focal_point: Smart
  #url: 'http://img.itch.zone/aW1hZ2UvMTEzNTE2Ny82NTc5NTQ5LnBuZw==/original/R%2BkCLj.png'

links:
url_code: ''
url_pdf: ''
url_slides: ''
url_video: ''

# Slides (optional).
#   Associate this project with Markdown slides.
#   Simply enter your slide deck's filename without extension.
#   E.g. `slides = "example-slides"` references `content/slides/example-slides.md`.
#   Otherwise, set `slides = ""`.
#slides: example
---

I created this game for my research into multi-modality and co-presence in VR - it's heavily inspired by games such as "Keep Talking and Nobody Explodes", where the two players have to help eachother defuse a bomb.

StuckInSpace is a two player co-op game where the VR player and the second non-VR player have to help eachother to fix the spaceship. The second player can either use a PC (the normal way) or a smartphone through a novel approach using one of the HTC Vive controllers that sends information about the exact position in VR space to the phone and then renders it like a "window" into the VR world.

Currently there is no way to download the game as I am still working on it, but you can see some screenshots of the game and the hardware setup below:

<!--![The VR player is in the cockpit of the spaceship and has to fix the spaceship while the second player is in the control room and has to help him.](PhoneHolder.png)-->
{{< load-photoswipe >}}
{{< gallery>}}

    {{< figure src="project/games/research/StuckInSpace/whatDroneSees.png" alt="A screenshot of what the drone sees (the VR headset and controller are the astronaut helmet and glove)" >}}
    {{< figure src="project/games/research/StuckInSpace/whatVRSees.png" alt="A screenshot of what the VR player sees (a small drone)" >}}
    {{< figure src="project/games/research/StuckInSpace/PhoneHolderFull.png" alt="A photo of the phone holder on the controller" >}}
    {{< figure src="project/games/research/StuckInSpace/PhoneHolder.png" alt="A photo of the phone in the holder and showing the game" >}}
    {{< figure src="project/games/research/StuckInSpace/VR_View_Buttons.png" alt="A screenshot from the VR player's perspective showing the wall with buttons and the subttitles above the hand" >}}

{{< /gallery >}}


text:
# NanoCamera [![MIT License](https://img.shields.io/github/license/mashape/apistatus.svg)](https://github.com/thehapyone/NanoCamera/blob/master/LICENSE) [![contributions welcome](https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat)](https://github.com/thehapyone/nanocamera/issues) [![HitCount](http://hits.dwyl.com/thehapyone/NanoCamera.svg)](http://hits.dwyl.com/thehapyone/NanoCamera)

A simple to use camera interface for the Jetson Nano for working with USB, CSI, IP and also RTSP cameras or streaming video in Python 3.

It currently supports the following types of camera or streaming source:
*  Works with CSI Cameras (Tested and Works)
*  Works with various USB cameras (Tested with Logitech USB camera)
*  Works with RTSP streaming camera and video with hardware acceleration (only supports H.264 video codec)
*  Works with IP Cameras(JPEG codec) or any MJPEG streaming source (Currently, supports CPU acceleration. TODO: Hardware acceleration)

If you like **NanoCamera** library - give it a star, or fork it and contribute!. Updates are always welcomed.

## Features
* It is OpenCV ready. The image file can be called directly with OpenCV imshow
* Image file is a NumPy RGB array.
* Support different Camera Flip Mode (Counterclockwise, Rotate 180 degrees, Clockwise - 90 degrees, Horizontal Flip, Vertical Flip)
* Can be used with multiple cameras.
* Support Frame rate enforcement. *Only available for USB, RTSP, and IP/MJPEG cameras.
* Frame rate enforcement ensures the cameras work at the given frame rate using GStreamer video rate plugin
* It is based on [Accelerated GStreamer Plugins](https://developer.download.nvidia.com/embedded/L4T/r32_Release_v1.0/Docs/Accelerated_GStreamer_User_Guide.pdf?uIzwdFeQNE8N-vV776ZCUUEbiJxYagieFEqUoYFM9XSf9tbslxWqFKnVHu8erbZZS20A7ADAIgmSQJvXZTb0LkuGl9GoD5HJz4263HcmYWZW0t2OeFSJKZOfuWZ-lF51Pva2DSDtu2QPs-junm7BhMB_9AMQRwExuDb5zIhf_o8PIbA4KKo)
* Should work with other Jetson boards like Jetson TX1, TX2 and others (Not tested)
* Support both Hardware and CPU acceleration.
* Easily read images as ``numpy`` arrays with ``image = camera.read()``
* Supports threaded read - available to all camera types. To enable a fast threaded read, you will enable the enforce_fps: ``enforce_fps = True``
* Check the status of the camera after initialization with ``isReady()`` function. Returns ``True`` if ready and ``False`` if otherwise.
* Provide debugging support. Added error codes and an optional exception handling. See example in [Debugging](https://github.com/thehapyone/NanoCamera#debugging). Now you can restart the camera if something goes wrong or send an admin notice if your camera goes down.
* Support multiple CSI cameras using the ``device_id`` parameter. See examples.

## Requirements
This library requires OpenCV to be installed to work.
If you don't have OpenCV, you can install one with pip:
```bash
pip3 install opencv-python
```

## Install
Installation is simple. Can be installed in two ways with Pip or Manually.
##### Pip Installation
```bash
pip3 install nanocamera
```
##### Manual Installation
```bash
git clone https://github.com/thehapyone/NanoCamera
cd NanoCamera
sudo python3 setup.py install
```

## Usage & Example
Using NanoCamera is super easy. Below we show some usage examples.  You can find more in the [examples](https://github.com/thehapyone/NanoCamera/tree/master/examples).
### Working with CSI Camera
For CSI Cameras, the ``camera_type = 0``.

Find here for full [CSI camera example](https://github.com/thehapyone/NanoCamera/tree/master/examples/CSI_camera.py)

Python Example -
Create a CSI camera using default FPS=30, default image size: 640 by 480 and with no rotation (flip=0)
```python
import nanocamera as nano
# Create the Camera instance for 640 by 480
camera = nano.Camera()
```
Customizing the width and height
```python
import nanocamera as nano
# Create the Camera instance for No rotation (flip=0) with size of 1280 by 800
camera = nano.Camera(flip=0, width=1280, height=800, fps=30)
```
if the image is inverted, set ``flip = 2``

#### Multiple CSI Camera support.
For Multiple CSI Cameras, set the ``device_id`` to the ID of the camera.
```python
import nanocamera as nano
# Create the Camera instance for No rotation (flip=0) with size of 1280 by 800
# Connect to CSI camera with ID 0 (Default)
camera_1 = nano.Camera(device_id=0, flip=0, width=1280, height=800, fps=30)
# Connect to another CSI camera on the board with ID 1
camera_2 = nano.Camera(device_id=1, flip=0, width=1280, height=800, fps=30)
```

### Working with USB Camera
For USB Cameras, set the ``camera_type = 1``, and set the ``device_id`` as well.
Find here for full [USB camera example](https://github.com/thehapyone/NanoCamera/tree/master/examples/USB_camera.py)

Python Example -
Create USB camera connected to ``/dev/video1``

```python
import nanocamera as nano
# Create the Camera instance for No rotation (flip=0) with size of 640 by 480
camera = nano.Camera(camera_type=1, device_id=1, width=640, height=480, fps=30)
```

You can see connected USB cameras by running :
```bash
ls /dev/video*
```
    # for USB camera /dev/video2, the device_id will be 2

### Working with RTSP streaming camera or streaming video
For RTSP source, set the ``camera_type = 2``, and set the ``source`` as well.
Find here for full [RTSP camera example](https://github.com/thehapyone/NanoCamera/tree/master/examples/RTSP_camera.py)

Python Example -
Create RTSP receiving camera client. RTSP location example:  ``rtsp://<IP_ADDRESS>:8554/stream``

```python
# a location for the rtsp stream. Stream location without "rtsp://"
rtsp_location = "<IP_ADDRESS>:8554/stream"
# Create the Camera instance
camera = nano.Camera(camera_type=2, source=rtsp_location, width=640, height=480, fps=30)
```

### Working with IP or any MJPEG streaming camera or video
For IP/MJPEG Cameras, set the ``camera_type = 3``, and set the streaming ``source`` as well.
Find here for full [MJPEG camera example](https://github.com/thehapyone/NanoCamera/tree/master/examples/MJPEG_camera.py)

Python Example -
Create an IP camera client connected to a camera streaming to ``http://<IP_ADDRESS>:80/stream``

```python
# a location for the camera stream. Stream location without "http://"
camera_stream = "<IP_ADDRESS>:80/stream"
# Create the Camera instance
camera = nano.Camera(camera_type=3, source=camera_stream, width=640, height=480, fps=30)
```

### Frame Rate Enforcement
Enable frame rate enforcement i.e force the camera to work at the given frame rate
```python
import nanocamera as nano
# enforce the capture frame rate with the enforce_fps=True
camera = nano.Camera(camera_type=1, device_id=1, width=640, height=480, fps=30, enforce_fps=True)
```
### Reading Camera

Call ``read()`` to read the latest image as a ``numpy.ndarray``. The color format is ``BGR``.

```python
frame = camera.read()
```

#### Camera isReady?
You can check if the camera is ready for streaming using ``isReady()``
```python
status = camera.isReady()
```

A Simple program to read from the CSI camera and display with OpenCV
```python
import cv2
#from nanocamera.NanoCam import Camera
import nanocamera as nano

if __name__ == '__main__':
    # Create the Camera instance
    camera = nano.Camera(flip=0, width=640, height=480, fps=30)
    print('CSI Camera ready? - ', camera.isReady())
    while camera.isReady():
        try:
            # read the camera image
            frame = camera.read()
            # display the frame
            cv2.imshow("Video Frame", frame)
            if cv2.waitKey(25) & 0xFF == ord('q'):
                break
        except KeyboardInterrupt:
            break

    # close the camera instance
    camera.release()

    # remove camera object
    del camera
```

A Simple program to read from the IP/MJPEG camera and display with OpenCV
```python
import cv2

# from nanocamera.NanoCam import Camera
import nanocamera as nano

if __name__ == '__main__':
    # requires the Camera streaming url. Something like this: http://localhost:80/stream
    # For IP/MJPEG camera, the camera_type=3.
    # This works with only camera steaming MJPEG format and not H.264 codec for now

    # a location for the camera stream
    camera_stream = "<IP_ADDRESS>:80"

    # Create the Camera instance
    camera = nano.Camera(camera_type=3, source=camera_stream, width=640, height=480, fps=30)
    print('MJPEG/IP Camera is now ready')
    while camera.isReady():
        try:
            # read the camera image
            frame = camera.read()
            # display the frame
            cv2.imshow("Video Frame", frame)
            if cv2.waitKey(25) & 0xFF == ord('q'):
                break
        except KeyboardInterrupt:
            break

    # close the camera instance
    camera.release()

    # remove camera object
    del camera
```

## Debugging

The library has some debugging builtin for managing expected, unexpected errors, and exceptions that might occur during the camera acquisition or initialization.
 - Using the ``debug`` parameter to enable raising of exceptions when an error occurred. This is disabled in the default mode so you won't get any error if something goes wrong.
 - Using the ``hasError()`` to read the current error state of the camera with or without debug enabled.

### Errors and Exceptions Handling
Calling ``camere.hasError()`` at any point in time returns a list of error codes and a boolean value:
```python
# status holds a list.
status = camera.hasError()
print (status)
>> ([0, 3], True)
print ("Error codes list : ", status[0])
>> Error codes list : [0, 3]
print ("Error State : ", status[1])
>> Error State: True
```

Error codes are

    '''
    -1 = Unknown error
    0 = No error
    1 = Error: Could not initialize camera.
    2 = Thread Error: Could not read image from camera
    3 = Error: Could not read image from camera
    4 = Error: Could not release camera
    '''

For example:

```python
error_status = camera.hasError()
if error_status[1] == False: # means no error detected so far
    # read the camera image
    frame = camera.read()
    # print the current error codes
    print (error_status[0])
    # display the frame
    cv2.imshow("Video Frame", frame)
    if cv2.waitKey(25) & 0xFF == ord('q'):
        break
else:
    # an error has occured.
    print ("An error with the camera. Error code : ", error_status[0])

```

Enabling the ``debug = True`` parameter allows raising an exception to the main program. This might be useful for parallel computing if you running multiple threads. Without the ``debug`` enabled, your program will continue as normal, and worse if you're enabled the frame rate enforcement which uses the thread read function, you will keep getting image data but those images are old/static images.

See an example using the ``debug`` parameter and handling exceptions at different levels. Find here for full [debugging example](https://github.com/thehapyone/NanoCamera/tree/master/examples/USB_camera_with_debug.py)

```python
if __name__ == '__main__':
    # with debug=True. An Exception will be raised if something goes wrong.
    # Create the Camera instance
    try:
        # Create the Camera instance
        print("camera stream")
        camera = nano.Camera(camera_type=1, device_id=0, fps=30, debug=True)
    except Exception as e:
        # handle the exception from opening camera session
    else:
        print('USB Camera ready? - ', camera.isReady())
        while True:
            try:
                # read the camera image
                frame = camera.read()
                # do something with frame like: send_to_cloud(frame)
            except KeyboardInterrupt:
                break
            except Exception as e:
                # handle the exception from reading
                break

        print("done here")
        try:
            # close the camera instance
            camera.release()
        except Exception as e:
            # handle the exception from releasing the camera

```
If an error occurred, a Runtime Error will be raised catching the following exceptions:
```python
The except cause might catch the following exceptions:
>> Exception Type - Error: Could not initialize USB Camera
>> Exception Type - An error as occurred. Error Value: [0, 3]
>> Exception Type - Unknown Error has occurred
>> Exception Type - Error: Could not release camera
```
Without ``debug`` and even if there is error the program runs as nothing happened. The error can still be detected with the ``hasError()`` function.

## Thanks! & Give it a Star
Thank you for downloading and enjoying the NanoCamera library.
I hope you find it useful. Heck, I wrote it for you- yeah, that's right- you.

Contributing to this software is warmly welcomed. Don't forget to give it a star.

## License
This project is released under the MIT License.

## See also

- [Platooning Robot](https://github.com/thehapyone/Platooning-Robot) - Resources for building collaborative robots

repository: Appledee/NanoCamera

repo_name: Appledee/NanoCamera


text:
# Contributing

This plugin is far from feature-complete.
If you want to improve it, feel free to pick one of the [open issues](https://github.com/mre/vscode-snippet/issues) and give it a shot.
In case you need any help, just add a comment to the issue to get a conversation started. :smiley:

## Dev setup

Open this repo in VSCode, and you should be able to just Start the launch task "Launch Extension":

![screenshot](./assets/Screenshot%20launch%20task.png)

You might need to wait a moment for the first `npm install` to finish. You can see progress in the "running build tasks" section of VSCode:

![screenshot](./assets/Screenshot%20build%20task.png)

## Packaging
Run `make package` to package a `.vsix` file.

### additional commands
To get a list of all available commands, try `make help`.
To test your changes, go to the Debug panel in VSCode and click on the `play` button. This will start the extension in a new window where you can test it.

repository: mre/vscode-snippet

gha_language: TypeScript

repo_name: mre/vscode-snippet


text:
# Handling Sensitive Data

## Documentation

<https://github.com/voxpupuli/hiera-eyaml>

Old: <https://puppet.com/blog/encrypt-your-data-using-hiera-eyaml/>

## Education

Covered in both GSWP, and Practitioner.

## Other

- [Encryption in Puppet using hiera-eyaml - Simon Hildrew](https://www.youtube.com/watch?v=8VWT8E84VG8&ab_channel=sihil)
- [Introduction To Puppet | Encrypting Data In Hiera | Part 3 | Eduonix](https://www.youtube.com/watch?v=4sqvvg-m2Cw&ab_channel=EduonixLearningSolutions)

It's also covered  in the "scope creep" section if the basics three homework under "You might want to also add the requirement that each team doesn't want the other team to know their password. How could we deal with that?" in the hidden section that is only for reviewers: <https://confluence.puppetlabs.com/display/PS/PS+Onboarding+and+Continuation+Training>


text:
---
title: "Articles"
lesson: 2
chapter: 5
cover: "https://unsplash.it/400/300/?random?BoldMage"
date: "01/07/2018"
category: "akkatecture"
type: "docs"
tags:
    - further-self-study
    - akkatecture
    - csharp
    - dotnet
---
#### Domain-Driven Design
 - [Domain-Driven Design Reference](https://domainlanguage.com/ddd/reference/) by Eric Evans

#### General CQRS+ES
 - [CQRS Journey by Microsoft](https://msdn.microsoft.com/en-us/library/jj554200.aspx) by Microsoft
 - [Microservice DDD CQRS Patterns](https://github.com/dotnet/docs/tree/master/docs/standard/microservices-architecture/microservice-ddd-cqrs-patterns) by Microsoft
 - [An In-Depth Look At CQRS](https://blog.sapiensworks.com/post/2015/09/01/In-Depth-CQRS) by Mike Mogosanu
 - [CQRS, Task Based UIs, Event Sourcing agh!](http://codebetter.com/gregyoung/2010/02/16/cqrs-task-based-uis-event-sourcing-agh/) by Greg Young
 - [Busting some CQRS myths](https://lostechies.com/jimmybogard/2012/08/22/busting-some-cqrs-myths/) by Jimmy Bogard
 - [CQRS applied](https://lostechies.com/gabrielschenker/2015/04/12/cqrs-applied/) by Gabriel Schenker
 - [Akka HowTo: Common Patterns](https://doc.akka.io/docs/akka/2.5/howto.html)
 - [Versioning in an Event Sourced System](https://leanpub.com/esversioning/read) by Greg Young

#### Eventual consistency
 - [How To Ensure Idempotency In An Eventual Consistent DDD/CQRS Application](http://blog.sapiensworks.com/post/2015/08/26/How-To-Ensure-Idempotency) by Mike Mogosanu

#### Other
- [Microsoft REST Api Guidelines](https://github.com/Microsoft/api-guidelines/blob/vNext/Guidelines.md) by Microsoft
- [NGINX - Building Your API for Longevity](https://www.nginx.com/blog/building-your-api-for-longevity-best-practices/)
- [Race Conditions Don't Exist](http://udidahan.com/2010/08/31/race-conditions-dont-exist/) by Udi Dahan

repository: Akkatecture/Documentation

branch_name: refs/heads/dev

repo_name: Akkatecture/Documentation


text:
# AWS-NaaS-using-Terraform-IaaC-
Launching Public Wordpress site with Private MySQL as a database

To know how to go about the same go to the link given below:
https://medium.com/@shirshadatta2000/launching-public-wordpress-site-with-private-mysql-as-a-database-3ef076254588?sk=36bf9a2fb7260a4f17be8e9d29e6bacb

## USAGE
To initialize with the dependencies
```
terraform init
```

To deploy the whole infrastructure on AWS consisting of:
```
terraform apply --auto-approve
```

To destroy the infrastructure use the command:
```
terraform destroy --auto-approve
```


text:
# Kakuro
Kakuro is a is a kind of logic puzzle that is often referred to as a mathematical transliteration of the crossword. In this repo our goal is to solve such puzzles using CSP techniques and algorithms. In particular the algorithms used are BT, BT+MRV, FC, FC+MRV and MAC.
For more information about kakuro: https://en.wikipedia.org/wiki/Kakuro

## Installing

Download source code by typing:

```
git clone https://github.com/PanPapag/Kakuro.git
```

## Running

```
python3 kakuro.py
```

## License
This program is licensed under the MIT License

repository: PanPapag/Kakuro

repo_name: PanPapag/Kakuro


text:
---
layout: post
title: Incremental Lambda Deploys in Beta
categories: news
image: assets/social-cards/incremental-deploys.png
author: frank
tweet: https://twitter.com/SEED_run/status/1336672958073479168
---

We've got an awesome new update in the works. Seed can now drastically speed up your builds by only deploying the Lambda functions that've been updated.

![Seed Incremental Deploy build log](/assets/blog/incremental-lambda-deploys-in-beta/seed-incremental-deploy-build-log.png)

### Incremental Deploys

[Incremental Deploys]({% link _docs/what-are-incremental-deploys.md %}) allows Seed to only deploy the parts of your app that have been updated. So far Seed has supported [incrementally deploying the services]({% link _docs/incremental-service-deploys.md %}) in your Serverless app. It does this by either looking at the Git log, or by using [Lerna](https://lerna.js.org) to figure out which packages have been updated.

### Incremental Lambda Deploys

Today we are launching [Incremental Lambda Deploys]({% link _docs/incremental-lambda-deploys.md %}) in beta. This allows Seed to **deploy only the Lambda functions** in your Serverless service **that've been updated**.

Seed does this by checking if the CloudFormation template or Serverless config has been changed. If it hasn't, then it'll look at the individual Lambda functions in the service and deploy only the ones that have been updated. It'll deploy the **Lambda functions concurrently and directly**, without doing a CloudFormation update. This can greatly speed up your deployments. Especially when you are actively developing your app.

By incrementally deploying your Serverless services and Lambda functions, Seed can potentially **speed up your deployments by 100x**!

> Incremental Deploys in Seed can potentially speed up your deployments by 100x!

### Enabling Incremental Lambda Deploys

To enable incremental deployments for your service, first install the [**Serverless Seed** plugin](https://github.com/seed-run/serverless-seed):

``` bash
$ npm install --save-dev serverless-seed
```

Then add it to your `serverless.yml`.

``` yml
plugins:
  - serverless-seed
```

And enable Incremental Lambda Deploys.

``` yml
custom:
  seed:
    incremental:
      enabled: true
```

And that's it. Make a couple of deployments to Seed and it'll now use this plugin to figure out if it can incrementally deploy your Lambda functions.

You can also disable Incremental Deploys for specific stages.

``` yml
custom:
  seed:
    incremental:
      enabled: true
      disabledFor:
        - prod
```

You can [read more about Incremental Lambda Deploys over on our docs]({% link _docs/incremental-lambda-deploys.md %}).

### During the Beta

Incremental Lambda Deploys works with most of the popular Serverless Framework plugins. But during the beta we'd like you to test it out with your setups and give us feedback. You can test it out with your apps today and [contact us via email](mailto:{{ site.email }}) or [post on our GitHub](https://github.com/seed-run/serverless-seed/issues) if you have any questions or run into any issues.

repository: seed-run/homepage

gha_language: SCSS

repo_name: seed-run/homepage