text:
# Change Log

## [2.2.4](https://github.com/CenturyLinkCloud/mdw-studio/tree/2.2.4) (2020-08-05)
[Full Changelog](https://github.com/CenturyLinkCloud/mdw-studio/compare/2.2.3...2.2.4)

**Implemented enhancements:**

- IntelliJ 2020.3 Compatibility [\#137](https://github.com/CenturyLinkCloud/mdw-studio/issues/137)

## [2.2.3](https://github.com/CenturyLinkCloud/mdw-studio/tree/2.2.3) (2020-08-05)
[Full Changelog](https://github.com/CenturyLinkCloud/mdw-studio/compare/2.2.2...2.2.3)

**Implemented enhancements:**

- Compatibility with IntelliJ 2020.2 [\#136](https://github.com/CenturyLinkCloud/mdw-studio/issues/136)

## [2.2.2](https://github.com/CenturyLinkCloud/mdw-studio/tree/2.2.2) (2020-06-10)
[Full Changelog](https://github.com/CenturyLinkCloud/mdw-studio/compare/2.2.1...2.2.2)

**Implemented enhancements:**

- Support custom variable types [\#135](https://github.com/CenturyLinkCloud/mdw-studio/issues/135)

## [2.2.1](https://github.com/CenturyLinkCloud/mdw-studio/tree/2.2.1) (2020-06-01)
[Full Changelog](https://github.com/CenturyLinkCloud/mdw-studio/compare/2.2.0x...2.2.1)

**Implemented enhancements:**

- Support annotation-driven customization [\#132](https://github.com/CenturyLinkCloud/mdw-studio/issues/132)
- Python script activity editing [\#131](https://github.com/CenturyLinkCloud/mdw-studio/issues/131)

**Fixed bugs:**

- Obsolete icons referenced in plugin definition file [\#134](https://github.com/CenturyLinkCloud/mdw-studio/issues/134)

## [2.2.0](https://github.com/CenturyLinkCloud/mdw-studio/tree/2.2.0) (2020-04-23)
[Full Changelog](https://github.com/CenturyLinkCloud/mdw-studio/compare/2.1.2...2.2.0)

**Implemented enhancements:**

- Compatibility with IntelliJ 2020.1 [\#118](https://github.com/CenturyLinkCloud/mdw-studio/issues/118)

## [2.1.2](https://github.com/CenturyLinkCloud/mdw-studio/tree/2.1.2) (2020-04-03)
[Full Changelog](https://github.com/CenturyLinkCloud/mdw-studio/compare/2.1.1...2.1.2)

**Implemented enhancements:**

- Enhanced process export [\#127](https://github.com/CenturyLinkCloud/mdw-studio/issues/127)
- Package readme content should be linkable in discovery [\#126](https://github.com/CenturyLinkCloud/mdw-studio/issues/126)
- Inspection for mismatched package versions [\#125](https://github.com/CenturyLinkCloud/mdw-studio/issues/125)

**Fixed bugs:**

- Git package import fails if tmp filestore is different from assets filestore [\#130](https://github.com/CenturyLinkCloud/mdw-studio/issues/130)
- Gracefully handle unparseable .proc assets [\#129](https://github.com/CenturyLinkCloud/mdw-studio/issues/129)
- Process definition yaml Java attributes can revert to one-line [\#128](https://github.com/CenturyLinkCloud/mdw-studio/issues/128)

## [2.1.1](https://github.com/CenturyLinkCloud/mdw-studio/tree/2.1.1) (2020-02-18)
[Full Changelog](https://github.com/CenturyLinkCloud/mdw-studio/compare/2.1.0...2.1.1)

**Implemented enhancements:**

- General purpose Configurator help links [\#122](https://github.com/CenturyLinkCloud/mdw-studio/issues/122)
- Inspection to prevent activity logging bypass [\#121](https://github.com/CenturyLinkCloud/mdw-studio/issues/121)

**Fixed bugs:**

- Process export to PDF does not render markdown documentation content [\#120](https://github.com/CenturyLinkCloud/mdw-studio/issues/120)
- Process export to PDF/HTML/PNG does not show icons for built-in implementors [\#119](https://github.com/CenturyLinkCloud/mdw-studio/issues/119)
- Hardcoded Maven Central base URL uses HTTP [\#117](https://github.com/CenturyLinkCloud/mdw-studio/issues/117)
- ObjectNotDisposedException from Editor Widget [\#115](https://github.com/CenturyLinkCloud/mdw-studio/issues/115)

## [2.1.0](https://github.com/CenturyLinkCloud/mdw-studio/tree/2.1.0) (2020-01-24)
[Full Changelog](https://github.com/CenturyLinkCloud/mdw-studio/compare/2.0.3...2.1.0)

**Implemented enhancements:**

- Allow -SNAPSHOT versions in package.yaml [\#114](https://github.com/CenturyLinkCloud/mdw-studio/issues/114)
- Support package.yaml dependencies [\#113](https://github.com/CenturyLinkCloud/mdw-studio/issues/113)

## [2.0.3](https://github.com/CenturyLinkCloud/mdw-studio/tree/2.0.3) (2020-01-17)
[Full Changelog](https://github.com/CenturyLinkCloud/mdw-studio/compare/2.0.2...2.0.3)

**Implemented enhancements:**

- Ability to increment activity ids within a process [\#86](https://github.com/CenturyLinkCloud/mdw-studio/issues/86)

**Fixed bugs:**

- GitLab asset discovery limited by default per\_page parameter value [\#112](https://github.com/CenturyLinkCloud/mdw-studio/issues/112)
- Some CLI-based actions broken due to Maven Central HTTPS requirement [\#110](https://github.com/CenturyLinkCloud/mdw-studio/issues/110)

## [2.0.2](https://github.com/CenturyLinkCloud/mdw-studio/tree/2.0.2) (2020-01-10)
[Full Changelog](https://github.com/CenturyLinkCloud/mdw-studio/compare/2.0.1...2.0.2)

**Implemented enhancements:**

- Support custom task pagelet assets [\#109](https://github.com/CenturyLinkCloud/mdw-studio/issues/109)
- Debug Groovy script activities [\#31](https://github.com/CenturyLinkCloud/mdw-studio/issues/31)

**Fixed bugs:**

- Kotlin script activity right-click does not show Open Kotlin menu item [\#101](https://github.com/CenturyLinkCloud/mdw-studio/issues/101)

## [2.0.1](https://github.com/CenturyLinkCloud/mdw-studio/tree/2.0.1) (2020-01-06)
[Full Changelog](https://github.com/CenturyLinkCloud/mdw-studio/compare/1.3.7...2.0.1)

**Implemented enhancements:**

- Snap-to-grid option for process design canvas [\#108](https://github.com/CenturyLinkCloud/mdw-studio/issues/108)
- Compatibility with IntelliJ 2019.3 [\#105](https://github.com/CenturyLinkCloud/mdw-studio/issues/105)
- Default to saving yaml-format processes if app uses \> MDW 6.1.23 [\#104](https://github.com/CenturyLinkCloud/mdw-studio/issues/104)
- Display milestone activity colors in process canvas [\#99](https://github.com/CenturyLinkCloud/mdw-studio/issues/99)

**Fixed bugs:**

- Canvas entities not selectable when zoomed [\#103](https://github.com/CenturyLinkCloud/mdw-studio/issues/103)
- Bad @Activity pagelet path prevents Toolbox from loading [\#100](https://github.com/CenturyLinkCloud/mdw-studio/issues/100)

## [1.3.7](https://github.com/CenturyLinkCloud/mdw-studio/tree/1.3.7) (2019-10-04)
[Full Changelog](https://github.com/CenturyLinkCloud/mdw-studio/compare/1.3.6...1.3.7)

**Fixed bugs:**

- Groovy assets in temp dir break activity annotations scan [\#98](https://github.com/CenturyLinkCloud/mdw-studio/issues/98)

## [1.3.6](https://github.com/CenturyLinkCloud/mdw-studio/tree/1.3.6) (2019-09-24)
[Full Changelog](https://github.com/CenturyLinkCloud/mdw-studio/compare/1.3.5...1.3.6)

**Implemented enhancements:**

- Recognize @Activity annotations that are not asset-based [\#97](https://github.com/CenturyLinkCloud/mdw-studio/issues/97)

## [1.3.5](https://github.com/CenturyLinkCloud/mdw-studio/tree/1.3.5) (2019-07-25)
[Full Changelog](https://github.com/CenturyLinkCloud/mdw-studio/compare/1.3.4...1.3.5)

**Implemented enhancements:**

- Asset vercheck and auto-increment should use actual Git branch [\#96](https://github.com/CenturyLinkCloud/mdw-studio/issues/96)
- Compatibility with IntelliJ 2019.2 [\#95](https://github.com/CenturyLinkCloud/mdw-studio/issues/95)

**Fixed bugs:**

- Transition retry count cannot be removed [\#91](https://github.com/CenturyLinkCloud/mdw-studio/issues/91)
- Refresh Toolbox after asset import [\#90](https://github.com/CenturyLinkCloud/mdw-studio/issues/90)

## [1.3.4](https://github.com/CenturyLinkCloud/mdw-studio/tree/1.3.4) (2019-07-23)
[Full Changelog](https://github.com/CenturyLinkCloud/mdw-studio/compare/1.3.3...1.3.4)

**Implemented enhancements:**

- Support yaml-format .proc assets [\#92](https://github.com/CenturyLinkCloud/mdw-studio/issues/92)
- Processes viewed from VCS History should open in canvas editor [\#88](https://github.com/CenturyLinkCloud/mdw-studio/issues/88)
- Compatibility with Java 11 [\#77](https://github.com/CenturyLinkCloud/mdw-studio/issues/77)
- Support editing of dynamic java activity code opened automatically by debugger or Find Usages [\#72](https://github.com/CenturyLinkCloud/mdw-studio/issues/72)
- Find usages and refactoring in dynamic Java and Groovy activities [\#32](https://github.com/CenturyLinkCloud/mdw-studio/issues/32)

**Fixed bugs:**

- Service Process checkbox value does not stick [\#93](https://github.com/CenturyLinkCloud/mdw-studio/issues/93)

## [1.3.3](https://github.com/CenturyLinkCloud/mdw-studio/tree/1.3.3) (2019-06-03)
[Full Changelog](https://github.com/CenturyLinkCloud/mdw-studio/compare/1.3.2...1.3.3)

**Implemented enhancements:**

- Ability to specify package version [\#62](https://github.com/CenturyLinkCloud/mdw-studio/issues/62)
- Wizard to create external event handler [\#49](https://github.com/CenturyLinkCloud/mdw-studio/issues/49)
- Checkbox and DateTime widgets should have a way to enter expression values [\#19](https://github.com/CenturyLinkCloud/mdw-studio/issues/19)
- Process context action: Find Usages [\#15](https://github.com/CenturyLinkCloud/mdw-studio/issues/15)

**Fixed bugs:**

- Cannot render Design tab for Event wait with expression driven timeout value [\#78](https://github.com/CenturyLinkCloud/mdw-studio/issues/78)
- New project wizard should use import gradle structure [\#60](https://github.com/CenturyLinkCloud/mdw-studio/issues/60)
- Cannot enter numbers greater 1000 for transition delay [\#85](https://github.com/CenturyLinkCloud/mdw-studio/issues/85)
- Dynamic Java activity copy/paste results in cross-up source code attributes [\#82](https://github.com/CenturyLinkCloud/mdw-studio/issues/82)
- Task editor incorrectly populating default notifier class and asset version [\#81](https://github.com/CenturyLinkCloud/mdw-studio/issues/81)

## [1.3.2](https://github.com/CenturyLinkCloud/mdw-studio/tree/1.3.2) (2019-04-04)
[Full Changelog](https://github.com/CenturyLinkCloud/mdw-studio/compare/1.3.1...1.3.2)

**Fixed bugs:**

- Activity dynamic Java intermittently becomes read-only [\#75](https://github.com/CenturyLinkCloud/mdw-studio/issues/75)
- Suppress MDW console tool window for non-MDW projects [\#76](https://github.com/CenturyLinkCloud/mdw-studio/issues/76)

## [1.3.1](https://github.com/CenturyLinkCloud/mdw-studio/tree/1.3.1) (2019-04-02)
[Full Changelog](https://github.com/CenturyLinkCloud/mdw-studio/compare/1.3.0...1.3.1)

**Fixed bugs:**

- Asset vercheck may require Git credentials [\#74](https://github.com/CenturyLinkCloud/mdw-studio/issues/74)

## [1.3.0](https://github.com/CenturyLinkCloud/mdw-studio/tree/1.3.0) (2019-03-31)
[Full Changelog](https://github.com/CenturyLinkCloud/mdw-studio/compare/1.2.1...1.3.0)

**Implemented enhancements:**

- Support IntelliJ 2019 [\#73](https://github.com/CenturyLinkCloud/mdw-studio/issues/73)
- Automatically mark temp and node\_modules dirs as excluded [\#67](https://github.com/CenturyLinkCloud/mdw-studio/issues/67)
- Dialog widgets as item types in pagelet [\#64](https://github.com/CenturyLinkCloud/mdw-studio/issues/64)
- Automatic asset version check/fix to prevent import conflicts [\#55](https://github.com/CenturyLinkCloud/mdw-studio/issues/55)

**Fixed bugs:**

- Incorrect transition delay attributes [\#71](https://github.com/CenturyLinkCloud/mdw-studio/issues/71)
- Issue with dragging activity into embedded subflow [\#70](https://github.com/CenturyLinkCloud/mdw-studio/issues/70)
- Cannot debug dynamic java activity [\#69](https://github.com/CenturyLinkCloud/mdw-studio/issues/69)
- Dynamic java/groovy script contents jump from one editor to another [\#68](https://github.com/CenturyLinkCloud/mdw-studio/issues/68)

## [1.2.1](https://github.com/CenturyLinkCloud/mdw-studio/tree/1.2.1) (2019-03-04)
[Full Changelog](https://github.com/CenturyLinkCloud/mdw-studio/compare/1.2.0...1.2.1)

**Fixed bugs:**

- Discovery GitImport failure when subpackages included [\#65](https://github.com/CenturyLinkCloud/mdw-studio/issues/65)
- Discovery errors on Windows [\#63](https://github.com/CenturyLinkCloud/mdw-studio/issues/63)

## [1.2.0](https://github.com/CenturyLinkCloud/mdw-studio/tree/1.2.0) (2019-02-25)
**Implemented enhancements:**

- Disable AssetFileListener from updating asset versions during a git pull operation [\#61](https://github.com/CenturyLinkCloud/mdw-studio/issues/61)
- Discover/Import asset packages from Git [\#59](https://github.com/CenturyLinkCloud/mdw-studio/issues/59)

**Fixed bugs:**

- Adapter activities do not show Output documents lists in Script tab [\#58](https://github.com/CenturyLinkCloud/mdw-studio/issues/58)
- Single invalid package.yaml file should not prevent MDW plugin from loading [\#57](https://github.com/CenturyLinkCloud/mdw-studio/issues/57)
- Auto version updates FileListener anomalies [\#56](https://github.com/CenturyLinkCloud/mdw-studio/issues/56)

## [1.1.6](https://github.com/CenturyLinkCloud/mdw-studio/tree/1.1.6) (2019-01-29)
**Implemented enhancements:**

- Capture all activity timings via process-level checkbox [\#53](https://github.com/CenturyLinkCloud/mdw-studio/issues/53)
- Pagelet content in @Activity annotations can be externalized [\#47](https://github.com/CenturyLinkCloud/mdw-studio/issues/47)
- Upgrade to IntelliJ 2018.3.x [\#45](https://github.com/CenturyLinkCloud/mdw-studio/issues/45)

**Fixed bugs:**

- Restore Dummy Activity to toolbox [\#51](https://github.com/CenturyLinkCloud/mdw-studio/issues/51)
- ClassCastException in dynamic Java update listener [\#48](https://github.com/CenturyLinkCloud/mdw-studio/issues/48)

## [1.1.5](https://github.com/CenturyLinkCloud/mdw-studio/tree/1.1.5) (2018-12-06)
**Implemented enhancements:**

- Search or filter the toolbox [\#28](https://github.com/CenturyLinkCloud/mdw-studio/issues/28)
- Error reporting to mdw-central [\#18](https://github.com/CenturyLinkCloud/mdw-studio/issues/18)

**Fixed bugs:**

- Adapter activity pre/post script editing anomaly [\#46](https://github.com/CenturyLinkCloud/mdw-studio/issues/46)
- Dynamic Java breakpoints not enabled for processes with spaces in their names [\#44](https://github.com/CenturyLinkCloud/mdw-studio/issues/44)

## [1.1.4](https://github.com/CenturyLinkCloud/mdw-studio/tree/1.1.4) (2018-11-26)
**Implemented enhancements:**

- Add mdwHub and mdwSyncServer actions to the Tools menu [\#20](https://github.com/CenturyLinkCloud/mdw-studio/issues/20)

**Fixed bugs:**

- Ignore .evth files in autoversioning [\#41](https://github.com/CenturyLinkCloud/mdw-studio/issues/41)
- Ignore line ending diffs in AssetFileListener comparison [\#40](https://github.com/CenturyLinkCloud/mdw-studio/issues/40)
- Auto version file updates should Ignore .impl and .evth files [\#39](https://github.com/CenturyLinkCloud/mdw-studio/issues/39)

**Closed issues:**

- Task editor should allow option entry for ParameterizedStrategies [\#23](https://github.com/CenturyLinkCloud/mdw-studio/issues/23)

## [1.1.3](https://github.com/CenturyLinkCloud/mdw-studio/tree/1.1.3) (2018-11-02)
**Implemented enhancements:**

- Export to PDF [\#36](https://github.com/CenturyLinkCloud/mdw-studio/issues/36)
- Honor .mdwignore [\#33](https://github.com/CenturyLinkCloud/mdw-studio/issues/33)
- Option to open dynamic java/script content in Editor tab [\#29](https://github.com/CenturyLinkCloud/mdw-studio/issues/29)
- Debug dynamic java activities [\#27](https://github.com/CenturyLinkCloud/mdw-studio/issues/27)
- Custom baseline data [\#26](https://github.com/CenturyLinkCloud/mdw-studio/issues/26)
- Toolbox context actions: New..., Find Usages, View Source [\#16](https://github.com/CenturyLinkCloud/mdw-studio/issues/16)
- Task template editor [\#3](https://github.com/CenturyLinkCloud/mdw-studio/issues/3)
- Enable cf push without .git [\#2](https://github.com/CenturyLinkCloud/mdw-studio/issues/2)
- Fork from java-buildpack [\#1](https://github.com/CenturyLinkCloud/mdw-studio/issues/1)

**Fixed bugs:**

- Handle $DefaultNotices in legacy manual task templates [\#37](https://github.com/CenturyLinkCloud/mdw-studio/issues/37)
- Exception configuring newly-added single process invoke activity [\#35](https://github.com/CenturyLinkCloud/mdw-studio/issues/35)
- Ignore Archive folder [\#25](https://github.com/CenturyLinkCloud/mdw-studio/issues/25)
- Newly-added @Activity implementors don't show up immediately in Toolbox [\#21](https://github.com/CenturyLinkCloud/mdw-studio/issues/21)
- BPMN export/import not working from Studio [\#17](https://github.com/CenturyLinkCloud/mdw-studio/issues/17)
- Error when deleting asset [\#14](https://github.com/CenturyLinkCloud/mdw-studio/issues/14)
- Newly-added manual task activity causes runtime error [\#9](https://github.com/CenturyLinkCloud/mdw-studio/issues/9)

**Closed issues:**

- Activity right-click \> Go To \> Declaration [\#34](https://github.com/CenturyLinkCloud/mdw-studio/issues/34)
- New project wizard [\#22](https://github.com/CenturyLinkCloud/mdw-studio/issues/22)
- New activity implementor wizard [\#13](https://github.com/CenturyLinkCloud/mdw-studio/issues/13)
- Version control "revert" takes x 2 [\#6](https://github.com/CenturyLinkCloud/mdw-studio/issues/6)

\* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)*

repository: CenturyLinkCloud/mdw-studio

gha_language: Kotlin

repo_name: CenturyLinkCloud/mdw-studio


text:
# What is header injection?

#### How are headers used?

Before we can talk about header injection, we need to talk about some common HTTP headers. Here's just some of the headers that could be a part of an HTTP request (full listing can be found [here](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers)):

- Host
- Cookie
- Authorization
- Access-Control-Allow-Origin
- Location

Many of the headers in a typical HTTP request include piece of user content. This includes headers like `Cookie` and `User-Agent`. As with the security in many other parts of a web-based application, any place where user input can be used in output has the potential for creating a vulnerability and HTTP headers are no exception.

#### How header injection attacks work

Header injection happens when unfiltered and unvalidated user input is allowed into the HTTP header response information. This allows a user to input any values directly into the response, allowing them direct control over what is sent back to the user.

- Truncating response data by modifying the content length
- Disabling XSS protection
- Spoofing "forwarded for" headers used by many proxies

With the [wide range of HTTP headers available](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers) there's too many possible exploits to list out here, but from these examples alone you can get an idea of how dangerous header injection could be.

repository: radioactivetobi/appsec-education

branch_name: refs/heads/master

extension: md

license_type: permissive

repo_name: radioactivetobi/appsec-education


text:
---
layout: post
title: Currently Reading Many Books!
---

I've been reading these books about the dark side of humanity, about the causes of crimes, psychopathy, narcissism etc. It has been a bit scary too. Because pretty much everybody has some of these traits, including myself. At least only a small minority have enough of these traits to be diagnosed as having a personality disorder, that's a relief.

But even if you were born to be bad, you can always thrive to be good! And even if you were born to the good person, certain unfortunate life events can turn you to the dark side. Life is complex.

![_config.yml]({{ site.baseurl }}/images/narsismi.jpg)

license: MIT


text:
Pixel-RTS
=========

RTS game made with PixelGameEngine

Pixel Game Engine License (OLC-3)
=================================

Copyright 2018-2019 OneLoneCoder.com

Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:

1.  Redistributions or derivations of source code must retain the above
    copyright notice, this list of conditions and the following disclaimer.

2.  Redistributions or derivative works in binary form must reproduce the above
    copyright notice. This list of conditions and the following disclaimer must
    be reproduced in the documentation and/or other materials provided with the
    distribution.

3.  Neither the name of the copyright holder nor the names of its contributors
    may be used to endorse or promote products derived from this software
    without specific prior written permission.

Assets Pack License
===================

	RTS Pack: Medieval

	by  Kenney Vleugels (Kenney.nl)

			------------------------------

	License (Creative Commons Zero, CC0)

	http://creativecommons.org/publicdomain/zero/1.0/

	You may use these assets in personal and commercial projects.

	Credit (Kenney or www.kenney.nl) would be nice but is not mandatory.

			------------------------------

	Donate:   http://support.kenney.nl

	Request:  http://request.kenney.nl

	Follow on Twitter for updates:

	\@KenneyNL

repository: JoseETeixeira/pixel-rts

repo_name: JoseETeixeira/pixel-rts


text:
---
title: Consumption
---

{% capture version_note %}
{{ site.version_note_part1 }} 1.1 {{ site.version_note_forTUA }}
{% endcapture %}

{% include docs/feature_version.html content=version_note %}

Customers can view their current consumption for their subscribed offerings based on the frequency of the current contract term (that is, monthly consumption). By understanding usage, the customers can manage their subscriptions with proper authorization. Entries for the usage consumption are created and updated from backend systems by average service usage for subscribed product.

***

**Table of Contents**

- This will become a table of contents (this text will be scrapped).
{:toc}

***

## Business Use Cases

### Viewing Consumption Information

From subscriptions, customers can drill down on subscribed offerings to view consumption data as a pie chart, a table format, or both.

### Usage Consumption

If enabled, consumption information for each subscribed product can be viewed in either grid format, pie chart format, or both.

## Frontend and Backend Dependencies

| Dependency                                	| Detail                                                 	|
|--------------------------------------------	|--------------------------------------------------------	|
| Recipe                                     	| b2c_telco_spa                                          	|
| Minimum version of backend TUA             	| TUA Release 2003 (latest patch is required)           	|
| Minimum   version of core commerce backend 	| SAP Commerce Cloud release 1905 (latest patch is recommended) 	|

## Components

The following components must be enabled in the TUA backoffice to appear on the Spartacus TUA storefront:

| Component   Name                  | Status | Description                                                                                |
|-----------------------------------|--------|---------------------------------------------------------------------------------------------------------------------------------------|
| UsageConsumptionGridComponent     | New    | Displays usage consumption for   subscriptionBase Ids in a grid format                                                                |
| UsageConsumptionPieChartComponent | New    | Displays usage consumption for   subscriptionBase Ids in a Pie chart format with usage in percentage is also   displayed.             |
| UsageConsumptionHeaderComponent   | New    | Displays usage consumption heading and   navigation button to navigate to the subscription list page from subscription   details page |

## TM Forum APIs

| Entity Exposed for   CPI 	| TUA API                                    	| Description                                                              	|
|--------------------------	|--------------------------------------------	|--------------------------------------------------------------------------	|
| TmaSubscriptionBase      	| GET /subscriptionBase                      	| Shows a list of of subscription base in the Subscription Details screen  	|
| TmaSubscribedProduct     	| GET/product/{productId}                    	| Shows a list of subscription products in the Subscription Details screen 	|
| TmaSubscriptionAccess    	| GET /subscriptionbase/{subscriptionBaseId} 	| Shows details of subscription base                                       	|
| TmaSubscriptionUsage     	| GET/usageConsumptionReport                 	| Shows the usage consumption for a subscriptionBase Id                    	|

For more information, see [TM Forum APIs](https://help.sap.com/viewer/f59b0ac006d746caaa5fb599b4270151/2007/en-US/d46b30b30eca4d4d8ddd20ad833d77f9.html).

## Further Reading

- [Create Average Service Usage for Subscribed Product](https://help.sap.com/viewer/32f0086927f44c9ab1199f1dab8833cd/2007/en-US/ba5f222fb5814829bd74eaf6e6505a9f.html)
- [Making Components Visible](https://help.sap.com/viewer/9d346683b0084da2938be8a285c0c27a/2005/en-US/1cea3b2cb3334fc085dda9cc070ad6ac.html)

repository: SAP/spartacus-docs

branch_name: refs/heads/develop

gha_language: HTML

repo_name: SAP/spartacus-docs


text:
# Active contour regularized semi-supervised learning for COVID-19 CT infection segmentation with limited annotations
[Trained models](https://zenodo.org/record/4246238#.X-W-gtgzbma) for COVID-19 CT segmentation.

## Citation

```
@article{Ma_2020_PMB_COVID_SemiSeg,
	year = {2020},
	month = {Dec},
	publisher = {{IOP} Publishing},
	volume = {65},
	number = {22},
	pages = {225034},
	author = {Jun Ma and Ziwei Nie and Congcong Wang and Guoqiang Dong and Qiongjie Zhu and Jian He and Luying Gui and Xiaoping Yang},
	title = {Active contour regularized semi-supervised learning for {COVID}-19 {CT} infection segmentation with limited annotations},
	journal = {Physics in Medicine {\&} Biology},
	doi = {10.1088/1361-6560/abc04e},
	url = {https://doi.org/10.1088/1361-6560/abc04e},
}
```

branch_name: refs/heads/main


text:
Implement/refactor urls and add this readme!

## Usage
Set your `serverApi` prop and serve your files based on the following API URLs:

- `GET [YOUR_SERVER_API]/directories?path=/relative/dir/path&withParents=true|false` to return a directory.
- `DELETE [YOUR_SERVER_API]/directories?path=/relative/dir/path` to delete a directory
- `DELETE [YOUR_SERVER_API]/files?path=/relative/dir/or/file/path` to delete a file
- `GET [YOUR_SERVER_API]/files?path=/relative/file/path` to get a file
- `POST [YOUR_SERVER_API]/files?path=/relative/dir/path` to upload a file

Make sure you return the response formats expected by the File Browser:
- for directories: single or array of `Directory` type
- for the upload/delete actions: just 200/400/etc status codes
- for single file: 200 status code, Content-Disposition: inline, Content-Type: [mime type]

repository: claudiut/file-manager

repo_name: claudiut/file-manager


text:
# learning-websocket

Useful links
  * http://caniuse.com/#feat=websockets
  * [ws](https://github.com/websockets/ws): a node.js websocket library
  * [wscat](https://www.npmjs.com/package/wscat): WebSocket cat

repository: rainyjune/learning-websocket

repo_name: rainyjune/learning-websocket


text:
About nionswift-tool
====================

Home: http://github.com/nion-software/nionswift-tool

Package license: Apache-2.0

Feedstock license: BSD-3-Clause

Summary: A native launcher for Nion Swift.

Current build status
====================

    Travis

    Appveyor

Current release info
====================

| Name | Downloads | Version | Platforms |
| --- | --- | --- | --- |
| [![Conda Recipe](https://img.shields.io/badge/recipe-nionswift--tool-green.svg)](https://anaconda.org/nion/nionswift-tool) | [![Conda Downloads](https://img.shields.io/conda/dn/nion/nionswift-tool.svg)](https://anaconda.org/nion/nionswift-tool) | [![Conda Version](https://img.shields.io/conda/vn/nion/nionswift-tool.svg)](https://anaconda.org/nion/nionswift-tool) | [![Conda Platforms](https://img.shields.io/conda/pn/nion/nionswift-tool.svg)](https://anaconda.org/nion/nionswift-tool) |

Installing nionswift-tool
=========================

Installing `nionswift-tool` from the `nion` channel can be achieved by adding `nion` to your channels with:

```
conda config --add channels nion
```

Once the `nion` channel has been enabled, `nionswift-tool` can be installed with:

```
conda install nionswift-tool
```

It is possible to list all of the versions of `nionswift-tool` available on your platform with:

```
conda search nionswift-tool --channel nion
```

Updating nionswift-tool-feedstock
=================================

If you would like to improve the nionswift-tool recipe or build a new
package version, please fork this repository and submit a PR. Upon submission,
your changes will be run on the appropriate platforms to give the reviewer an
opportunity to confirm that the changes result in a successful build. Once
merged, the recipe will be re-built and uploaded automatically to the
`nion` channel, whereupon the built conda packages will be available for
everybody to install and use from the `nion` channel.
Note that all branches in the nion-software/nionswift-tool-feedstock are
immediately built and any created packages are uploaded, so PRs should be based
on branches in forks and branches in the main repository should only be used to
build distinct package versions.

In order to produce a uniquely identifiable distribution:
 * If the version of a package **is not** being increased, please add or increase
   the [``build/number``](https://conda.io/docs/user-guide/tasks/build-packages/define-metadata.html#build-number-and-string).
 * If the version of a package **is** being increased, please remember to return
   the [``build/number``](https://conda.io/docs/user-guide/tasks/build-packages/define-metadata.html#build-number-and-string)
   back to 0.

Feedstock Maintainers
=====================

* [@cmeyer](https://github.com/cmeyer/)

repository: nion-software/nionswift-tool-feedstock

repo_name: nion-software/nionswift-tool-feedstock


text:
<!---
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-->
# Apache Kafka  2.6.0 Release Notes

These release notes cover new developer and user-facing incompatibilities, important issues, features, and major improvements.

---

* [KAFKA-7740](https://issues.apache.org/jira/browse/KAFKA-7740) | *Major* | **Kafka Admin Client should be able to manage user/client configurations for users and clients**

Right now, Kafka Admin Client only allow users to change the configuration of brokers and topics. There are some use cases that users want to setOrUpdate quota configurations for users and clients through Kafka Admin Client. Without this new capability, users have to manually talk to zookeeper for this, which will pose other challenges for customers.

Considering we have already have the framework for the much complex brokers and topic configuration changes, it seems straightforward to add the support for the alterConfig and describeConfig for users and clients as well.

repository: aw-was-here/eco-release-metadata

repo_name: aw-was-here/eco-release-metadata


text:
---
layout: post
title: cloud custodian
---

Really quick post here before I head to bed. So today an internal project was open sourced, it's call [cloud-custodian](https://github.com/capitalone/cloud-custodian).

cloud-custodian allows you to manage your AWS resource is a effective manner via yaml config files.

Its actually pretty slick, and I've been using it internally at Capital One to make sure
we are well managed, not wasting resources, and following policies (eg: unencrypted S3 buckets)

For example, you want to ensure you have the proper tags on an EC2 instance or other wise kill said resources:

```
- name: tag-compliance
   resources: ec2
   description:
     Terminate resources which do not meet policy in 4 days
   filters:
     - State.Name: running
     - "tag:MyTagICareAbout": absent
   actions:
     - type: mark-for-op
       op: terminate
       days: 4
```

The EC2 instance will get tagged with a custodian tag (`c7n_status`) and be terminated
in 4 days. The custodian will typically be run on a regular interval to ensure
it is performing the proper tasks being requested from it.

@kapilt is the brains behind it, and has done an excellent job building this from
scratch. Hoping I can contribute something in the near future once I have some free time at work.

But I did get a [commit](https://github.com/capitalone/cloud-custodian/commit/92d676b027df00c9e21af65eca46e05519f8e107) in! HAHA :)

If you are using AWS and need something to help manage your resources, check it out: [https://github.com/capitalone/cloud-custodian](https://github.com/capitalone/cloud-custodian)

gha_language: CSS

gha_license_id: NOASSERTION


text:
---
title: Skills
styles: ["iphone-6.silver.css"]
layout: twocolumns
---
![Timur's skills]({{ site.baseurl }}/assets/skills/graph.svg){:.enlarge width="340px" style="max-width: 100%"}
### Programming skills

Code examples could be found on Github [ github/famer](https://github.com/famer)

_List below includes only projects, that are able to be published, commercial experience projects covered by NDA and not included in this list_
Here is some list structured by technology:

* Java
  - [[Tutorials and Home Works: RMI, JDBC, REST, WS, Auth, Service Bus, SOAP]](https://github.com/famer/MIE-MDW-java-middleware){:.fa-github .fa}
* Spring ♥
  - [RESTful API Server](https://github.com/famer/restful-api-service){:.fa-github .fa}
  - [Demo app: web forum](https://github.com/famer/spring){:.fa-github .fa}
  - [Books store](http://famer.github.io/books-store/)[sources](https://github.com/famer/books-store/){:.fa-github .fa}

* MongoDB ♥
  - [[MongoDB as Data storage for Node.js event driven livechat application]](https://github.com/famer/livechat-mongo-architecture){:.fa-github .fa}
  - [[Node.js + MongoFiles]](https://github.com/famer/showtogether){:.fa-github .fa}
  - [[MongoDB as a data storage for a backend of REST API]](https://github.com/famer/restful-api-service){:.fa-github .fa}

* Prolog
  - [Commuting in subway with minimum distance(Prolog)](https://github.com/famer/prolog){:.fa-github .fa}

* Node.js
  -  [Socket based simultaneous file reveal](https://github.com/famer/showtogether){:.fa-github .fa}
  -  [Screen scrapping](https://github.com/famer/nodejs-screenscraping){:.fa-github .fa}
  - [TCP/IP server, Socket server,  Cache and pagination using headers, ExpressJS website](https://github.com/famer/MIE-W20-nodejs-projects){:.fa-github .fa}

* Python ♥
  - [[Problem solving: Branch and Bound, Dynamic Programming, FPTAS Approximation Algorithm, Simulated Annealing]](https://github.com/famer/knapsack-and-max-sat){:.fa-github .fa}
* Flask ♥♥
  - [Simple Flask-based website](https://github.com/famer/coffeeshop){:.fa-github .fa}
* Swift ♥ (iOS)
  - [Pro Places: Navigation client app](https://github.com/famer/Pro-Places){:.fa-github .fa}
  - [Demo: Weather App](https://github.com/famer/Test-app){:.fa-github .fa}

* C# (WindowsPhone7) [[Navigation App]](https://github.com/famer/auto-finder){:.fa-github .fa}

* __Parallel computing (MPI & C++)__{:.fa-bolt .fa} [[Queen on a checkboard task parallel computing]](https://github.com/famer/MPI-project){:.fa-github .fa}

* PHP ♥
  - [Screen scrapper](https://github.com/famer/php-screenscraping){:.fa-github .fa}
* Doctrine ♥
  - [[Weather service parser, stores data internally (MySQL)]](https://github.com/famer/screen-scraper-php){:.fa-github .fa}

* Organization/Management/Build/Release/Code delivery/Testing
  - [Scalable small size devices for websites](http://famer.github.io/device.css/) [sources](https://github.com/famer/device.css/){:.fa-github .fa}

* VBA
  - [__FireWorks Set Generator for Excel__{:.fa .fa-bolt}](https://github.com/famer/vba-for-excel){:.fa-github .fa}
* RESTful API Design and implementation
  - [Design of RESTful API for storing points of interest(api_blueprint)](https://github.com/famer/diploma-restful-api-design/blob/master/api_blueprint.md){:.fa-github .fa}
  - [Cars accounting( textual)](https://github.com/famer/MIE-W20-nodejs-projects/blob/master/restful-api-design/task.txt){:.fa-github .fa}
  - [Books store](http://famer.github.io/books-store/)

* Maven
  - [[Build of SCSS project]](http://github.com/famer/device.css){:.fa-github .fa}

* Docker ♥
  - [Docker compose](https://github.com/famer/spring/blob/master/docker-compose.yml){:.fa-github .fa}
  - [Simple container for Spring java app](https://github.com/famer/restful-api-service){:.fa-github .fa}
  - [Dockerized PHP-MySQL development env](https://github.com/famer/php-mysql-dockerized-env){:.fa-github .fa}
  - [Docker intro slides[rus]](https://docs.google.com/presentation/d/1-6YnXDaJCGA8cr7TonqydHQASgb-Eiz9HsuvlzS1lLo/edit?usp=sharing)

* JavaCard
  - [JavaCard project](https://github.com/famer/java-card){:.fa-github .fa}

* LaTeX
  - [Parallel programming report ](https://github.com/famer/MPI-project/tree/master/latex%20source){:.fa-github .fa}
  - [Mobile application and API server to store points of interest[Diplima Thesis]](https://github.com/famer/diploma-papper-latex-source){:.fa-github .fa}

* Documentation
  - [[Places navigation iPhone app introduction guide screen  PDF]]({{ site.baseurl }}/assets/skills/documentation/english-places-docs.pdf) [_(Places App)_](https://github.com/famer/Pro-Places){:.black .fa-github .fa}
  - [Mobile application and API server to store points of interest[Thesis 3]]({{ site.baseurl }}/assets/diplomas/3/DP_Tatarshaov_Timur_2015.pdf){:.fa .fa-file-pdf-o}

* R
  - [Statistics for informatics](https://github.com/famer/MIE-SPI-statistics-for-informatics){:.fa-github .fa}

### Languages

{% for language in site.data.general_data.languages %}
* {{ language.title }}: {{ language.level }}
{% endfor %}


text:
## The Open Source Data Science Masters: Capstone Projects

### What this is

A place for students of [The Open Source Data Science Masters](http://datasciencemasters.org/) to **find great Capstone Projects** and collaborators.

*Anyone* with questions about data that is publically available can contribute by posting a Capstone Project!

### How you can help

- **Post a capstone project**!
- Work on a project with **teammates**, who you can find by posting in [`issues`](https://github.com/datasciencemasters/capstone/issues)

### How it works: Students

1. Find **a project** you like or create your own
2. Find **collaborators** by posting your interest and timeline in [`issues`](https://github.com/datasciencemasters/capstone/issues)!
3. **Data away!** (see the [OSDSM](http://datasciencemasters.org/))
4. **Post** your findings in the Capstone Project's .md file and link github repos with your work

### How it works: Posting a Capstone Project

Anyone can post an interesting data question as a capstone project by **sending a pull request** with a `.md` file. The file should include:
- a **Dataset** that is publically available
- a **Question** that is perceived to be possible to answer with the data^

^Note: The challenge here is in scope. The question cannot be too big, too small, too ill-fitted to the data (where no or little signal exists), but that may be unknown before the investigation. So hey, if it seems interesting and tractable, just go for it. If you have to write a why-this=didn't=work-thesis, so be it.

license: Unlicense,MIT

repository: fraidaL/capstone

detected_licenses: Unlicense MIT

repo_name: fraidaL/capstone


text:
# assimp

[![Build Status](https://github.com/kotlin-graphics/assimp/workflows/build/badge.svg)](https://github.com/kotlin-graphics/assimp/actions?workflow=build)
[![license](https://img.shields.io/badge/License-MIT-orange.svg)](https://github.com/kotlin-graphics/assimp/blob/master/LICENSE)
[![Release](https://jitpack.io/v/kotlin-graphics/assimp.svg)](https://jitpack.io/#kotlin-graphics/assimp)
![Size](https://github-size-badge.herokuapp.com/kotlin-graphics/assimp.svg)
[![Github All Releases](https://img.shields.io/github/downloads/kotlin-graphics/assimp/total.svg)]()
[![Awesome Kotlin Badge](https://kotlin.link/awesome-kotlin.svg)](https://github.com/KotlinBy/awesome-kotlin)

JVM porting of [Assimp](https://github.com/assimp/assimp)

This port is being written trying to stick as much as possible close to the C version in order to:

- minimize maintenance to keep it in sync with the original
- minimize differences for people used to dev/work with Assimp

### Code ###
A small example how to load files:
- for java users:
```java
AiScene scene = new Importer().readFile("test/resources/models/OBJ/box.obj");
```
- for kotlin users:
```kotlin
val scene = Importer().readFile("test/resources/models/OBJ/box.obj")
```

[Port Status](https://github.com/java-graphics/assimp/wiki/Status)

[Format priority list](https://github.com/java-graphics/assimp/wiki/Priority-list-of-file-formats)

If you have a format or a feature which is not yet supported, you can use the original assimp (or the lwjgl one) to load the mesh you have and save it in assimp binary format (`.assbin`). Once done, you can load it with this port.

In case you don't know how to do it, you may open an [issue](https://github.com/kotlin-graphics/assimp/issues) giving the mesh, specifying the options and I'll convert it for you into binary assimp.

Please note that using the binary assimp format is also the fastest way to import meshes into your application.

The development is essentially feature-driver, if you want to express your preference -> [Format wish list](https://github.com/java-graphics/assimp/wiki/wish-list)

### Contributions:

Do not hesitate to offer any help: pushes (java or kotlin, it doesn't matter), testing, website, wiki, etc

### Comparison to a simple binding

Advantages:

- runs entirely on jvm (Garbage Collector)
- lighter import
- written in Kotlin (less code to write, more features, more expressiveness)
- cleaner, more intuitive interface (especially the [Material part](https://github.com/kotlin-graphics/assimp/blob/master/src/main/kotlin/assimp/material.kt#L385-L413))
- plain names, without prefixes
- possibility to set the build-time flags and property (debug/config/log)
- easier to debug
- easier to modify/customize, e.g: textures get automatically loaded and offered via [gli library](https://github.com/kotlin-graphics/glm), you just have to upload them to GL
- matrices are column-major instead of row-major and offered via the [glm library](https://github.com/kotlin-graphics/glm)
- easier to fix (found a couple of bugs on the original assimp, opened an issue, I didn't have to wait for the next releases fix)
- reduced the maintenance at minimum by keeping the same structure as possible during the port
- possible to get the same loading speed, using binary assimp format

Disadvantages:
- code needs to be ported from cpp to java
- code needs to be maintained
- a little slower compared to cpp when loading big meshes if not using assbin

repository: kotlin-graphics/assimp

gha_language: COBOL

repo_name: kotlin-graphics/assimp


text:
# Notable changes to feathers-hooks-common

We are not automatically dumping git logs into CHANGELOG.
The purpose of a CHANGELOG is to make it easier for users and contributors to see
precisely what *notable* changes have been made between each release (or version) of the project.
Dumping all the commit logs into a single file doesn't do this.

## 1.7.2
- Added a modified validate hook.
The need for a validate hook and a cleaner signature for it became
apparent while modify the hooks section of feathers-docs.

## 1.7.0
- Deprecated all validate*, removed from README.
Its frankly easier for the dev to inline the validation than to
use these validation routines: less cognitive load, no awkward
interface, easier to reason about.
- Remove try/catch in promisify*.
There is no need to do a try/catch when you are within a new Promise()
as that itself will catch any throws.
Placed note in CHANGELOG that it should be curated and just contain
git log.

## 1.6.2
- fnPromisifyCallback properly rejects if it throws. Test added.

## 1.6.1
- Added setCbVarNames, fnPromisify, fnPromisifyCallback, fnPromisifySync, promisifyHook
in feathers-hooks-common/promisify.
- Added validate. Deprecated validateSync, validateUsingCallback, validateUsingPromise.
- Added tests for everything added.
- Deprecated restrictToRoles as the new feathers-authenticate will have this feature and more.
- Deprecated the internal predicate function in many of the bundled hooks.

## 1.5.7
- `isNot` added.

## 1.5.4
- `iff` conditional hook added.
- `isProvider` predicate added for use with `iff`.

## 1.5.0
- softDelete (ALPHA) mark items as deleted rather than deleting them from the database.
- feathers-hooks-common/utils exposed as utils for writing hooks.
Dependencies on outside hook utility packages removed.

## 1.4.0
- Hooks from eddyystop/feathers-hooks-common brought up to bundled hook standards.
**_Breaking changes._**

## 1.3.0
- Merged feathers bundled hooks and eddyystop/feathers-hooks-common into
feathersjs/feathers-hooks-common and npm's feathers-hooks-common.
- Bundled hooks support dot field notation.
- Test suite.

gha_language: JavaScript

gha_license_id: MIT


text:
This is an example of a epicycloid with an ellipse as a rolling surface.

Example done in [KonvaJs](https://konvajs.github.io)

To run this you need node/npm installed, and, the following node-based web dev tools installed globally:

- grunt
- bower

Additionally you need git cli installed

To run:

1. Clone this repo
2. `cd` into the working directory
3. run `npm install && bower install && grunt`

repository: deostroll/konva-ellipse

repo_name: deostroll/konva-ellipse


text:
- [Supervised Learning](#supervised-learning)
  - [Classification](#classification)
  - [Regression](#regression)
    - [Metrics](#metrics)
      - [Linear regression](#linear-regression)
  - [Classification/regression algorithms' hyperparameters](#classificationregression-algorithms-hyperparameters)
    - [Classic algorithms](#classic-algorithms)
    - [Neural networks](#neural-networks)
    - [Decision forest](#decision-forest)
  - [Automated ML (Azure)](#automated-ml-azure)
- [Unsupervised Learning](#unsupervised-learning)
- [Semi-supervised learning](#semi-supervised-learning)
  - [Clustering](#clustering)

# Supervised Learning

## Classification

The result of the classification is *categorical or discrete*.

Input types:
* tabular
* image
* sound
* text

Classification types:
* binary - choice between 2 categories
* multi-class single label - choice between multiple classes, item belongs to only one class
* multi-class multi-label - choice between multiple classes, item can belong from one to several categories.

Examples of classification problems:
* computer vision
* speech recognition
* bio-identification
* document classification
* sentiment analysis
* credit scoring in banking
* anomaly detection

Binary classification algorithms:
* SVM (Support Vector Machines) - under 100 features, linear model
* Two-class averaged perception - fast training, linear model
* Two-class decision forest - ensemble algorithm, accurate, linear model
* Two-class  logistic regression - fast training times; linear model
* Two-class  Boosted Decision Tree  - accurate,  fast training, linear model
* Two-class Neural Network - accurate, long training times

Multi-class single label classification algorithms:
* Multi-class  logistic regression - fast training times; linear model
* Multi-class Neural Network - accurate, long training times
* Multi-class decision forest - ensemble algorithm (build multiple decision trees and votes on the most popular output class), accurate, linear model
* Multi-class  Boosted Decision Tree  - non-parametric, fast training, scalable
* One-vs-All Multiclass - trains a several binary classifiers where each classifier predicts one of the end classes, the class with the higher probability or a score across binary classifier is chosen as a predicted class

## Regression

In a regression problem, the output is numerical or continuous.

Input types:
* tabular
* image
* sound
* text

Examples of regression problems:
* housing prices
* customer churn
* customer lifetime value
* forecasting (time-series)
* anomaly detection

Common machine learning algorithms in Azure for regression problems:
* Linear Regression - fast training, linear model
* Decision Forest Regression -
  * ensemble algorithm using multiple decision trees
  * each tree output a distribution as a prediction
  * all distibutions are aggregated to find the closest combines distribution
  * Accurate, fast training times
* Neural Net Regression
  * label column must be numerical
  * fully contected network : input layer +  hidden layer + output layer
  * Accurate, long training times

### Metrics

#### Linear regression

Approaches:
* Ordinary least squares - sum of the squared of distance from the actual value to the predicted line, it fits the model by minimazin the squared error.
* Gradient descent - minimize the amount of error on each step of the model training process

## Classification/regression algorithms' hyperparameters

### Classic algorithms

Hyperparameters:
* Optimization tolerance - controls when to stop iterations: if the improvement is less than the specified threshold, the training stops
* L2 Regularization weight - a method to prevent overfitting by penalizing models with extrem coefficient weights: how much to penalize a model on each interaction

### Neural networks

Hyperparameters:
* number of hidden nodes - customizing the number of hidden nodes
* learning rate - the number of interations before correction is made
* number of learning iterations - the number of times the algorithm should process the training data

Example on NN for multi-class classification:
* input layer
* hidden layer
* output layer

### Decision forest

Hyperparameters:
* Resampling method - method to create individual trees
* Number of decision trees - maximum number of trees that can be created
* Depth of the tree - Max depth of any created tree
* Number of random splits per node - the number of splits to use when building each node of the tree
* Minimum number of samples per leaf node - the number of samples to create a terminal node

## Automated ML (Azure)

Challenges of conventional ML process:
* selecting features
* picking algorithms suitable for the task
* hyperparameters tuning
* selecting the right evaluation metrics

Automated ML - automated exploration of combinations needed to successfully produce a trained model.
The resulting model can be either deployed or refined further.

AutoML inputs:
* dataset
* target metric
* constraints (time/cost)

Official AutoML [documentation](https://docs.microsoft.com/en-us/azure/machine-learning/concept-automated-ml).
Automatic featurisation [documentation](https://docs.microsoft.com/en-us/azure/machine-learning/how-to-configure-auto-features#featurization).

# Unsupervised Learning

Unsupervised Learning:
* train on *unlabeled* data
* attempts to find hidden data structures/common aspects within entities on its own*

Types of unsupervised Learning
* clustering - organize input data into finite number of groups (cluste and tag documents based on the contents of their documents)
* feature learning (representation learning) - transform set of input into other inputs which are potentially more useful in solving a problem, uncovering new and more relevant features for data with multiple categorical features with hight cardinality
* anomality detection, 2 groups
  * normal
  * abnormal

Algorithms examples:
* K-Means clustering
* Principal Component Analysis (PCA)
* Autoencouders

# Semi-supervised learning

Combination of traditional ML supervosed learning and unsupervised learning.

Obtaining labelled data sets is time-prone and expensive. Obtaining unlabeled data is relatively easy. So most of the time we work with data sets partially labelled.

Types of semi-supervised learning!
* self-learning - obtaining the fully labelled dataset: the model is trained with the labeled data, then used to make predictions for the unlabeled data
* multi-view training - training multiple models on the different views of the data (different feature selection, various model archtectures)
* self-ensemble training - similar to multi-view training, except that the straining is made on a single base model and different hyper-parameters.

## Clustering

Goals of clustering:
* maximazing intra-cluster similarity
* maximizing inter-cluster differences

Applications of clustering:
* personalization and target marketing (goal => develop market campaigns)
* document classification (goal =W tag documents to improve search, create digest or summaries)
* fraud detection (goal => isolate new cases based on historical clusters of fraudulent behaviors)
* medical imaging
* city planning

Clustering algorithms:
* centroid algorithms - is based on the distance of the center of clusters (example: K-means - created up to K clusters and goups similar entities tin hte same cluster)
* density based algorithms - is based on the fact that elements are closely packed together
* distribution based algorithms - is based on the assumption that the data has an inherent distibution ( for example normal distribution), clustering is made base on the probability the member belonning toa particular distribution.
* Hierarchical algorithms - algorithm build a tree of clusters


text:
---
title: IMisagentApi.misagent_copy_all method
---

Retrieves all installed provisioning profiles (iOS 9.3 or higher).

```csharp
public MisagentError misagent_copy_all(MisagentClientHandle client, out PlistHandle profiles)
```

| parameter | description |
| --- | --- |
| client | The connected misagent to use. |
| profiles | Pointer to a plist_t that will be set to a PLIST_ARRAY if the function is successful. |

## Return Value

MISAGENT_E_SUCCESS on success, MISAGENT_E_INVALID_ARG when client is invalid, or an MISAGENT_E_* error code otherwise.

## Remarks

This API call only works with iOS 9.3 or higher. For older iOS versions use misagent_copy() instead. If no provisioning profiles are installed on the device, this function still returns MISAGENT_E_SUCCESS and profiles will just point to an empty array.

## See Also

* enum [MisagentError](../MisagentError.md)
* class [MisagentClientHandle](../MisagentClientHandle.md)
* class [PlistHandle](../../iMobileDevice.Plist/PlistHandle.md)
* interface [IMisagentApi](../IMisagentApi.md)
* namespace [iMobileDevice.Misagent](../../iMobileDevice-net.md)

<!-- DO NOT EDIT: generated by xmldocmd for iMobileDevice-net.dll -->

repository: qmfrederik/docsy-perf

repo_name: qmfrederik/docsy-perf


text:
node-icecast
============
### NodeJS module for parsing and/or injecting metadata into SHOUTcast/Icecast radio streams

This module offers a `Reader` class for retrieving the raw audio data and
parsing the metadata from a [SHOUTcast][] or [Icecast][] broadcast.

There's also a `Writer` class that allows you to inject your own metadata into a
data stream, which can then be displayed by another Icecast client (like VLC).

But you'll probably be most interested in the `Client` class that builds off of
node's core `http` module, except this version works with servers that return
an **ICY** HTTP version, and automatically sends an "Icy-MetaData: 1" HTTP header
to notify the server that we want metadata, and finally it returns a `Reader`
instance in the "response" event, therefore the "res" object also emits "metadata"
events. See the example below to see how it works.

A good use case for this module is for HTML5 web apps that host to radio streams;
the `<audio>` tag doesn't know how to deal with the extra metadata and it is
impossible to extract (on the client-side). But a WebSocket connection could be
used in conjunction with this module to provide those `metadata` events to a
web browser, for instance.

Installation
------------

Install with `npm`:

``` bash
$ npm install icecast
```

Example
-------

Here's a basic example of using the HTTP `Client` to connect to a remote Icecast
stream, pipe the clean audio data to _stdout_, and print the HTTP response headers
and metadata events to _stderr_:

``` javascript
var icecast = require('icecast');

// URL to a known Icecast stream
var url = 'http://radio.nugs.net:8002';

// connect to the remote stream
icecast.get(url, function (res) {

  // log the HTTP response headers
  console.error(res.headers);

  // log any "metadata" events that happen
  res.on('metadata', function (metadata) {
    var parsed = icecast.parse(metadata);
    console.error(parsed);
  });

  // pipe the audio data to `stdout`
  res.pipe(process.stdout);
});
```

API
---

### `Client` class

### `Reader` class

### `Writer` class

### `request()` function

### `get()` function

### `parse()` function

### `stringify()` function

[NodeJS]: http://nodejs.org
[Icecast]: http://icecast.org
[SHOUTcast]: http://www.shoutcast.com


text:
gl4es
====

![gl4es build status](https://api.travis-ci.org/ptitSeb/gl4es.png "gl4es build status")

This is a library providing OpenGL 1.x functionality for OpenGL ES 1.1 accelerated hardware.
A new GLES2.0 backend also provide some OpenGL 2.x support (and also support OpenGL 1.5 function, somtimes better then when using GLES 1.1 backend)

This is a fork a glshim (https://github.com/lunixbochs/glshim). Go check this lib if you need things like RemoteGL or TinyGLES (for 100% software rendering).

The focus is on compatibility and speed with a wide selection of game and software.

It has been tested successfully of a large selection of games and software, including: Minecraft, OpenMW, SeriousSam (both First and Second Encounters), RVGL (ReVolt GL), TSMC (The Secret Maryo Chronicles), TORCS, SpeedDreams, GL-117, Foobillard(plus), Blender 2.68 to name just a few.

Most function of OpenGL up to 1.5 are supported, with some notable exceptions:
 * Reading of Depth or Stencil buffer will not work
 * GL_FEEDBACK mode is not implemented

Some know limitations:
 * GL_SELECT as some limitation in its implementation (for exemple, current Depth buffer or binded texture are not taken into account)
 * NPOT texture are supported, but not with GL_REPEAT / GL_MIRRORED, only GL_CLAMP will work properly (unless the GLES Hardware support NPOT)
 * Framebuffer use FRAMEBUFFER_OES extension (that must be present in the GLES 1.1 stack)
 * Multiple Color attachment on Framebuffer are not supported
 * OcclusionQuery is implemented, but with a 0 bits precision
 * Probably many other things

Status of the GLES2 backend
 * This backend is at its early stage of development, but is now usable
 * The FPE (Fixed Pipeline Emulator) has most OpenGL 1.5 drawing call implemented
 * The Shader Conversion is really crude, so only simple shaders will work (especialy, the implicit conversion float <-> int is not handled)
 * Lighting support double-side and color separation using GLES2
 * FogCoord are supported, along with secondary color
 * An ES2 context should be usable (usefull for SDL2)
 * A few OpenGL 2.x games have been tested, like OpenRA or GZDoom.
 * glxgears works, but FlatShade is not implemented (and will probably never be), so it's slightly different then using GLES1.1 or actuel GL hardware
 * GL_TEXTURE_1D, GL_TEXTURE_3D and GL_TEXTURE_RECTANGLE_ARB are not yet supported in shaders (they are supported in fixed pipeline functions), and texture 3D are just 2D for now.
 * Program that link only a GL_FRAGMENT or GL_VERTEX shader are not supported yet.

----

Compiling
----
How to compile and per-platform specific comment can be found [here](COMPILE.md)

----

GLU
----

Standard GLU do works without any issues.

----

Installation
----

Put lib/libGL.so.1 in your `LD_LIBRARY_PATH`.
Beware that GL4ES is meant to replace any libGL you can have on your system (like Mesa for example)

----

Usage
----

There are many environnement variable to control gl4es behavour, also usable at runtime using `glHint(...)`.

See [here](USAGE.md) for all variables and what they do.

----

Version history
----

The change log is [here](CHANGELOG.md)


text:
# MarketOptions

## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**default_supplier** | **str** | The default supplier of data. This controls which 'dialect' is used to find particular market data. e.g. one supplier might address data by RIC, another by PermId | [optional]
**default_instrument_code_type** | **str** | When instrument quotes are searched for, what identifier should be used by default | [optional]
**default_scope** | **str** | For default rules, which scope should data be searched for in | [optional]
**attempt_to_infer_missing_fx** | **bool** | if true will calculate a missing Fx pair (e.g. THBJPY) from the inverse JPYTHB or from standardised pairs against USD, e.g. THBUSD and JPYUSD | [optional]
**manifest_level_of_detail** | **str** | The available values are: None, Full | [optional]

[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

repository: MikeMcGarry/lusid-sdk-python-preview

repo_name: MikeMcGarry/lusid-sdk-python-preview


text:
# Monitoring the Power Platform: Azure DevOps - The Azure DevOps Connector and Canvas Driven Apps

## Summary

[DevOps](https://azure.microsoft.com/en-us/overview/what-is-devops/) has become more and more ingrained into our **Power Platform** project lifecycle. Work item tracking and feedback tools for teamwork. Continuous integration and delivery for code changes and solution deployments. Automated testing for assurance, compliance and governance considerations. Microsoft's tool, **[Azure DevOps](https://azure.microsoft.com/en-us/overview/what-is-devops/#culture)** provides native capabilities to plan, work, collaborate and deliver. Each step along the way in our [**Power Platform DevOps** journey](https://docs.microsoft.com/en-us/power-platform/alm/devops-build-tools) can be tracked and monitored which will be the primary objective of this article.

This article will focus on feedback, specifically from events that happen with **Azure DevOps**. We will first look at subscription setup and notifications to team members and interested parties. From there we will dive deeper into feedback events, how they work, how they can be filtered and delivered. Finally we will review a real world example utilizing service hooks, **Power Automate** and **Microsoft Teams**.

## Sources

Sources of Azure DevOps events that impact our delivery can come from virtually any area of the platform including work items, pipelines, source control, testing and artifact delivery. For each one of these events, such as completed work items, we can setup visualizations such as charts based on defined queries. Service hooks and notification subscriptions can be configured to allow real time reporting of events to external parties and systems allowing for us to stay in a state of continuous communication and collaboration.

## Pipelines
### Build Pipelines

Build Pipeline has capabilities to review analytics from an API. This allows us to request for each build not only the logs and timings but how the build compares to previous builds. From this we can conclude if our builds are trending in the right direction and if not, what can we do to course correct.

Below is a list of the Azure DevOps REST API operations I find useful:

| API Definition                                               | Comments                                                     |
| ------------------------------------------------------------ | ------------------------------------------------------------ |
| [Builds](https://docs.microsoft.com/en-us/rest/api/azure/devops/build/Builds/Get?view=azure-devops-rest-5.1) | Helps gather build summaries to quickly identify anomalies.  |
| [Get Build Logs](https://docs.microsoft.com/en-us/rest/api/azure/devops/build/builds/get%20build%20log?view=azure-devops-rest-5.1) | Helps capture logs for specific builds for troubleshooting and performance monitoring. |
| [Get Build Changes](https://docs.microsoft.com/en-us/rest/api/azure/devops/build/builds/get%20build%20changes?view=azure-devops-rest-5.1) | Helps identify code changes within a specific build.         |
| [Get Changes Between Builds](https://docs.microsoft.com/en-us/rest/api/azure/devops/build/builds/get%20changes%20between%20builds?view=azure-devops-rest-5.1) | Helps identify code changes between builds.                  |
| [Get Build Report](https://docs.microsoft.com/en-us/rest/api/azure/devops/build/report/get?view=azure-devops-rest-5.1) | Helps capture the generated build report in html or json formats. |
| Get Build Definitions                                        |                                                              |
| [Get Build Definition Metrics](https://docs.microsoft.com/en-us/rest/api/azure/devops/build/metrics/get%20definition%20metrics?view=azure-devops-rest-5.1) |                                                              |
| Code                                                         |                                                              |
| [Fetch Code Search Results](https://docs.microsoft.com/en-us/rest/api/azure/devops/build/status/get?view=azure-devops-rest-5.1) |                                                              |

### Builds

Build Pipeline executions are represented using the Builds REST API. Within each build, we can find answers such as what the build number is, did it pass or fail, what code changes it contains and who requested it.

## Azure DevOps Connector

[The **Azure DevOps connector**](https://docs.microsoft.com/en-us/connectors/visualstudioteamservices/#actions), available for both **Power Automate** and **Azure Logic Apps**, contain specific actions and triggers that allow Makers to work with the **Azure DevOps REST API**.

### Actions and Triggers

The **Azure DevOps connector** contains both Triggers and Actions. [Triggers](https://docs.microsoft.com/en-us/connectors/visualstudioteamservices/#triggers) can be thought of as service hooks, described in the article "", allowing for integrations and interested parties to register on notable events such as [work item changes](https://docs.microsoft.com/en-us/connectors/visualstudioteamservices/#when-a-work-item-is-updated). Actions allow Makers the ability to send messages back and forth to Azure DevOps. Scenarios might include creating and querying work items, which would be helpful for tracking active work for each sprint or even creating an Issue on error of a Power Automate Flow.

### Scenario: Automating Work Item Creation

In this scenario we have a Power Automate Flow that is failing due to an integration action. The Power Automate Flow, using the technique detailed in "[Power Automate - Run Time Part 2: Tracked Properties and Error Handling](https://community.dynamics.com/crm/b/crminthefield/posts/monitoring-the-power-platform-power-automate---run-time-part-2-tracked-properties-and-error-handling)" gracefully captures a scoped error. Once captured, the Power Automate Flow will process the exception and create a User Story work item.

<insert try catch scope>

Using the results() function and error object we can pass as part of the description or acceptance criteria the error details. Additional details such as Area Path can help alert the Power Automate Support team that an investigation user story is available. The Link URL field could hold the run information from ProcessSimple, allowing the support team to navigate to the specific error.

<insert work item>

### Scenario: Enriching Work Items and Reports

This scenario came up during a recent status call I was on. During each call active work items are discussed in a consolidated list, typically Microsoft Excel. One challenge is that the query export feature within Azure DevOps doesn't include the ability to extract comments or discussion points. This requires the call lead to navigate back to Azure DevOps and open each item to review and/or update. Luckily, using both the Azure DevOps connector and the previously mentioned REST API, we can provide a solution.

<insett flow devops work item reports>

The Power Automate flow in this example, is triggered by a message to a Teams Channel. The message will kick off a Power Automate Flow that will run a previously defined query that can be passed in from the Teams message. The results from the query will be returned and will be iterated through. For each work item returned we can run an optional action called "Get work item details" to supplement each work item. I would suggest if possible to include the summarized data points in the query results to attempt to avoid this step if possible.

Now, to enrich each work item, we will make use of the Azure DevOps connector action "Send an HTTP request to Azure DevOps" to gather comments for each work item. I'll elaborate more on that connector action below.

<insert http request for comments>

Finally, we can generate our Microsoft Excel worksheet and use email, OneDrive, SharePoint, etc. to deliver and store our artifact.

<insert gif>

## The Azure DevOps Connector Action and the REST API

The Azure DevOps Connector action "Send an HTTP request to Azure DevOps" allows Makers an unbelievable amount of flexibility when working with Azure DevOps. Any action available for the REST API can be utilized by the connector. The action is so flexible that if one of the pre built actions, such as Queue a Build, doesn't provide conditions required, we can simply issue the same request using this action in its place.  This is really a testament to the design and interoperability that both of these services offer.

<insert generic http action>

I began working with this action when I wanted to explore other options outside of writing .NET or PowerShell. My goal was to build a fully functional DevOps Canvas App that would allow team members to interact with Azure DevOps without the need to login and watch timers and action icons progress. With that in mind, I'll detail my experience working with the Azure DevOps Connector and Microsoft Power Apps to build a custom front end solution.

## Building a Custom Azure DevOps User Experience

When I was younger I loved playing video games, especially role playing games or RPGs. Over this past winter break I took some time to try a new concept: How can I take something that may be considered somewhat dry by some, and turn it on its head and make it fun. With that in mind, I decided to create an interactive game, writing zero code, that could help include team members from all backgrounds.

### <insert home screen>

The Canvas App needed to be functional, infromative and fun. What could be more fun than using a popular video game from my past?

## Creating a Game using Canvas Apps and Power Automate

Working with Power Apps Canvas Apps, I was quickly able to design multiple screens to host my menu and my different pages that would interact with the Azure DevOps REST API.

<insert side bar navigation>

Each screen encompasses a new area for team members to explore and work or play. This includes reviewing previous builds (reviewing stats), queuing new builds (earning points) and monitoring progress. Along the way, if a user found a new way to optimize the process, they could gain multipliers and score more.

### Reviewing Previous Builds

The Build REST API allows Makers to queue new builds, check the status, review prior builds and analyze trends. Builds include their badges and who initated them.

<insert check build summaries>

Each Build includes additional information allowing for insights similar to a post battle screen.

<insert build final screen>

### Analyzing a Specific Build

Using the Azure DevOps Connector, a request can be made to get an individual build.

<insert http action>

Using the REST API documentation, we can build the request with parameters. Having the ability to add additional query string parameters helps define what is returned which can help speed up the Power Automate Flow or reduce subsequent calls back to the service.

<inset game screen>

#### Timeline and Logs

The Build API request can be extended to show the timeline or logs. Natively neither is included in the build request most likely to keep the payload size manageable.

To request the timeline, useful for capturing statuses and timings of each build action, add the "/Timeline" query string to the Build request.

<insert timeline>

To gather logs for failed builds and their actions, simply swap out the "/Timeline" for "/Logs".

<insert logs flow>

Combining the data from the three requests we can build out the entire build, helping determine how many points the build earned.

```
ce-workshop/_apis/build/builds/<build ID>

ce-workshop/_apis/build/builds/<build ID>/Timeline

ce-workshop/_apis/build/builds/<build ID>/logs
```

<insert game screen with logs and timeline>

Remember, the Canvas App data table object relies on a flattened response, so be sure to work the response from the service to something more manageable.

<insert edit screen>

### Queueing a new Build

Each build within the game represents a new opportunity for users to gain points. Each successful action in the build gains points while each action that fails or doesn't run will take points away. If a build is completely successful a multiplier is added.

<Show a build>

When a build is kicked off, a Canvas App timer is kicked off that requests updates every few seconds. Each time an action is completed, one of the opponents is defeated, allowing for our hero to progress.

<show downed mage>

url: https://raw.githubusercontent.com/aliyoussefi/MonitoringPowerPlatform/c4123cc19f294e7bfecd43f721887143eb658d9d/docs/08.03 - Monitoring-Azure-DevOps - Building a DevOps Game.md

repository: aliyoussefi/MonitoringPowerPlatform

repo_name: aliyoussefi/MonitoringPowerPlatform


text:
WinMXWindowAPI
==============

A small library for interacting with WinMX through the Windows API.

### Notes

This library makes use of the standard Windows api to avoid permission issues.

## License
This work is licensed under the [MIT license](http://en.wikipedia.org/wiki/MIT_License).

repository: WinMXUnlimited/WinMXWindowAPI

repo_name: WinMXUnlimited/WinMXWindowAPI


text:
# ampt-manager

Management service for the AMPT passive network tools monitor

AMPT is a practical framework designed to aid those who operate network IDS
sensors and similar passive security monitoring systems. A tailored approach
is needed to actively monitor the health and functionality of devices that
provide a service based on capturing and inspecting network traffic. AMPT
supports these types of systems by allowing operators to validate traffic
visibility and event logging on monitored network segments. Examples of
systems that can benefit from this type of monitoring are:

* [Suricata IDS][suricata]
* [Snort IDS][snort]
* [Bro IDS][bro]
* [Moloch][moloch]

**ampt-manager** is the core component in the AMPT framework. It is simple to
deploy and provides the following:

* Web-based management console
* Central point for configuration and management of AMPT nodes, including:
  * Monitored network segments
  * AMPT generator nodes
  * AMPT monitor instances
* State of network visibility from the standpoint of monitored segments
* Logging and accounting of events related to monitoring process
* Configurable alerting/notifications when monitors for configured segments
  encounter degraded visibility

Other AMPT components include:

* [ampt-generator][ampt_generator] -  Health check packet generator for the
  AMPT passive network tools monitor
* [ampt-monitor][ampt_monitor] -  Sensor alert monitor core package for the
  AMPT passive network tools monitor

## Installation and usage

See the [Wiki](https://github.com/nids-io/ampt-manager/wiki/) for further
documentation.

[suricata]: https://suricata-ids.org/
[snort]: https://www.snort.org/
[bro]: https://www.bro.org/
[moloch]: https://github.com/aol/moloch
[ampt_generator]: https://github.com/nids-io/ampt-generator
[ampt_monitor]: https://github.com/nids-io/ampt-monitor
[wiki]: https://github.com/nids-io/ampt-manager/wiki/

repository: nids-io/ampt-manager

repo_name: nids-io/ampt-manager


text:
# Learn These Tags Only

There are over a hundred jQuery functions in the library. This is a lot of jQuery! You can easily build anything you can imagine using these functions. Take time to learn the functions we believe are most important. Once you know these, you can be a jQuery expert. For the exercise in this section, make sure to design your page in such a way that you make it **very apparent** the jQuery function you are using and what you expect it to do.

IMPORTANT - For jQuery, we have you go through jQuery's official documentation to learn these tags.  The reason we do this, compared to creating a video for each of these methods, is because we want you to start getting familiar with reading technical documentation and think jQuery's technical documentation is a good place to start. A good developer must know how to read technical documentation and jQuery's documentation is one of the best out there.

## Study only these tags

* **Effects**(functions to do some cool animation effects)
  * .hide()
  * .show()
  * .toggle()
  * .slideUp()
  * .slideDown()
  * .slideToggle()
  * .fadeOut()
  * .fadeIn()
* **CSS**(adding or removing a class for any HTML element/DOM)
  * .addClass()
  * .removeClass()
  * .css()
* **Manipulation**(retrieving or setting value or text in any HTML element)
  * .after()
  * .append()
  * .prepend()
  * .attr()
  * .before()
  * .html()
  * .text()
  * .val()
* **Events**(functions to handle an event)
  * .click()
  * .on()
  * .live() - deprecated (JQuery 1.7)
  * .hover()

Note that for the **manipulation** jQuery functions, there are few distinctions to make. The functions **`.html()`** and **`.text()`** are different in a key way: **`.html()`** can be used to insert new HTML markup, meaning new HTML tags. **`.text()`** is used to get or set just the **text* *value of an **HTML element**. For instance, you could use **`.text()`** to change the text of a paragraph, but if you want to put an ordered list inside of the paragraph, you need to use **`.html()*`*to insert the appropriate tags into the paragraph.

Similarly, **`.append()`** and **`.html()`** do nearly the same thing; they both can alter the HTML content of the selected item. The function **`.append`** will **add** markup to the element in question, whereas **`.html()`** will **overwrite** the markup with whatever is run inside the parentheses. So keep in mind that if you want to **add** content, use **`.append()`**, but if you want to **replace** content, use **`.html()`**.

repository: microsoft/Reactors

gha_language: Jupyter Notebook

repo_name: microsoft/Reactors


text:
## Destructuring in JavaScript

**Destructuring assignment** is one of the most flexible, simplest feature in modern JavaScript. It's a JavaScript expression that makes it possible to unpack values from Arrays, properties from Objects, or even Function params, into distinct variables.

## Destructuring objects

We often reference to the same variable in several places in our codebase and we'd prefer to avoid declaring out the same variable over the over again. For instance, making requests to the server might require an authorization (token) in the header's request. Assume we have a `session` object the holds `token` and `refresh_token` keys for instance

ES5:

```javascript
const token = session.token;
const refreshToken = session.refresh_token;
```

ES6:
```javascript
const {
  token,         // ↓ alias ↓
  refresh_token: refreshToken
} = session;
```

In the ES6 snippet above, the syntax becomes more clear. Just like you could declare multiple comma-separated variables with a single `let` statement, you can also declare multiple variables within curly braces of a destructuring expression. Also there are cases where we want to rename the property name into different one; in that case, you'll use a `: amAlias` . Above we used alias to change the property name from snake-case to camelCase.

## Function parameter

We can use destructuring in function parameters to unpack fields from objects passed as function parameter. If we wanted to implement a function that only takes into account certain properties of parameter, it might be a good idea to reference those properties explicitly by destructuring up front. Destructure everything up front, makes it easy to spot when input doesn't adhere to the contract of a function.

```javascript
const getFullName = ({ user }) =>
  user && `${user.firstName} ${user.lastName}`;

const state = {
    user: {
        firstName: 'Mahmoud',
        lastName: 'Elmahdi'
    }
};

getFullName(state); // Mahmoud Elmahdi
```

## Parsing a returned value from a function

Whenever there’s a function that returns an object or an array, destructuring can make working with that returned value more concise to interact with. The following example shows a `getUser` function that returns an object with user's data, where we grab only the ones we're interested in: `isAdmin` and ignore the rest

```javascript
const getUser = () => ({
    id: 156,
    isAdmin: true,
    fullName: 'Mahmoud Elmahdi',
    email<EMAIL_ADDRESS>    languages: ['Arabic', 'English', 'Russian']
});

const { isAdmin } = getUser();
isAdmin && retrieveSensitiveData();
```

## Array destructuring

Destructuring arrays uses square brackets instead of curly braces. Instead of having to sprinkle your code with implementation details like `x = arr[0]`, with destructuring you can convey your meaning clearly and without explicitly referencing the indices, naming the values instead

![Destructuring arrays](https://cdn.hashnode.com/res/hashnode/image/upload/v1574924989528/8o0c6XpWJ.png)

When destructuring arrays, we also can skip those properties we don't need to reference to

![Destructuring arrays](https://cdn.hashnode.com/res/hashnode/image/upload/v1574925179610/_2A9IevNT.png)

## Useful tips

Add properties conditionally inside object literals with spread operator for properties:

![Add properties conditionally.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1574925317578/PnX6Y7xqb.png)

Add elements inside array literals only if the element is _true_ (**not** `null`/`undefined` or empty)

![Add elements inside array literals.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1574925351058/Of_qFMGEz.png)

repository: elmahdim/blogposts

repo_name: elmahdim/blogposts


text:
---
layout: post102
title:  Interoperability
categories: XAP102NET
weight: 300
parent: document-overview.html
---

{% summary %} {% endsummary %}

{%comment%}
{% summary %}Interoperability between Concrete Object and Document space entries{% endsummary %}

# Overview
{%endcomment%}

XAP offers interoperability between documents and concrete objects via space - it is possible to write objects and read them as documents, and vice versa. This is usually useful in scenarios requiring reading and/or manipulating objects without loading the concrete .NET classes. This page describes how to do it.

# Requirements

When working with documents the user is in charge of creating and registering the space type descriptor manually before writing/reading documents. When working with concrete objects the system implicitly generates a space type descriptor for the object's class using attributes or `gs.xml` files when the class is used for the first time. In order to inter-operate, the same type descriptor should be used for both concrete objects and documents.

If the object's class is in the application's AppDomain, or the object type is already registered in the space, there's no need to register it again - the application will retrieve it automatically when it's used for the first time. For example:

{% highlight java %}
// Create a document template using the POJO class name:
SpaceDocument template = new SpaceDocument(typeof(MyObject).FullName);
// Count all entries matching the template:
int count = spaceProxy.Count(template);
{% endhighlight %}

If the object's class is not available in the classpath or server, the application will throw an exception indicating there's no type descriptor registered for the specified type. In that case, it is possible to manually create a matching type descriptor using the `SpaceTypeDescriptorBuilder` and register it in the space. However, that's not recommended since it essentially requires you to duplicate all the concrete object settings and maintain them if the object class changes.

# Query Result Type

When no interoperability is involved this is a trivial matter - Querying an object type returns objects, querying a document type returns documents.
When we want to mix and match, we need semantics to determine to query result type - Object or Document.

## Template Query

Template query result types are determined by the template class - if the template is an instance of a `SpaceDocumnet` the result(s) will be document(s), otherwise it will be object(s).

## Sql Query

The `SqlQuery` class has a `QueryResultType` settings which can be set at construction. The following options are available:

- `Object` - Return .NET Object(s).
- `Document` - Return space document(s).

{% comment %}
* `NOT_SET` - If the type is registered with a concrete java class, return an Object. Otherwise, return a document. This is the default behavior.
{% endcomment %}

## ID Based Query

In order to support ID queries for documents, use the `IdQuery` class, which encapsulates the type, id, routing and a `QueryResultType` with the corresponding `ISpaceProxy` overload methods: `ReadById`, `ReadIfExistsById`, `TakeById`, `TakeIfExistsById`. The result type is determined by the `QueryResultType`, similar to `SqlQuery`.

Respectively, to support multiple ids queries, use the `IdsQuery` with the corresponding `ReadByIds` and `TakeByIds`.

# Dynamic Properties

By default, type descriptors created from concrete object classes do not support dynamic properties. If a document of such a type with a property that is not defined in the object will be written to the space, an exception will be thrown indicating the property is not defined in the type and the type does not support dynamic properties.
In order to have a concrete class support dynamic properties it should have a property decorated with the \[SpaceDynamicProperties\] and the type of that property must be either DocumentProperties, Dictionary<String, Object> or IDictionary<String, Object>.

{% highlight java %}
[SpaceClass]
public class MyObject
{

  private Dictionary<String, Object> _dynamicProperties

  [SpaceDynamicProperties]
  public Dictionary<String, Object> DynamicProperties
  {
     get{ return _dynamicProperties; }
     set{ _dynamicProperties = value; }
  }

}
{% endhighlight %}

The storage type of the dynamic properties can be explicitly set in the attribute \[SpaceDynamicProperties(StorageType=StorageType.Binary)\] (the default is StorageType.Object).

{% refer %}For more details about storage type refer to [Property Storage Type](./poco-storage-type.html){% endrefer %}

repository: barakb/gigaspaces-wiki-jekyll

extension: markdown

repo_name: barakb/gigaspaces-wiki-jekyll


text:
Gibreel
=======
*distributed cache implemented in Erlang*

Installation
------------

Using rebar:

```
{deps, [
	{gibreel, ".*", {hg, "https://bitbucket.org/jjmrocha/gibreel", "default"}}
]}.
```

Start Gibreel
-------------

Gibreel depends on columbo and cclock, you need to start both before gibreel.

```erlang
ok = application:start(columbo),
ok = application:start(cclock),
ok = application:start(gibreel).
```

gibreel Module
--------------

The module gibreel allows you to create and destroy caches.
The main functions are:

* create_cache/1  **To create a basic cache (using defaults)**
* create_cache/2  **To create a cache with options**
* delete_cache/1  **Delete cache**
* list_caches/0  **List all caches**

### create_cache Function

```erlang
gibreel:create_cache(CacheName :: atom()) ->
	ok | {error, Reason :: any()}.

gibreel:create_cache(CacheName :: atom(), Options :: [Option, ...]) ->
	ok | {error, Reason :: any()}.
```

The available options are:

* __max_age__ - It's a ``` pos_integer() ``` and represents the expiration time of the items stored in the cache, time in seconds, defaults to 0 (items on the cache don't expire)
* __get_value_function__ - It's a function ``` fun((Key :: term()) -> term() | not_found | error) ``` used by the cache to retrieve the value for the key, defaults to ``` none ```
* __max_size__ - It's a ``` pos_integer() ``` and represents the max number of items stored in the cache, when the max size is reached the oldest key-value is deleted to make space for the new one, defaults to ``` none ```
* __cluster_nodes__ - Must be one of the values ``` local | all | [node(), ...] ```, where (defaults to ``` local ```):
	* ``` local ``` - The cache is local
	* ``` all ``` - The cache must synchronize with all cache instances running in the cluster
    * ``` [node(), ...] ``` The cache must synchronize with all cache instances running on the node list
* __purge_interval__ - It's a ``` pos_integer() ``` and represents the running interval (time in seconds) for the purge process, which removes expired items from the cache, defaults to ``` none ``` (purge process don't run)
* __sync_mode__ - Must be one of the values ``` lazy | full ```, where (defaults to ``` lazy ```):
    * ``` lazy ``` - Cache only synchronize the new key-values or when a item is removed
    * ``` full ``` - Cache must synchronize with all cache instances at start

### delete_cache Function

```erlang
gibreel:delete_cache(CacheName :: atom()) -> ok.
```

Deletes the cache.

### list_caches Function

```erlang
gibreel:list_caches() -> [atom(), ...].
```

Lists the names of all caches.

### Examples

#### Using gibreel as a session storage

The webapp server [Kill Bill](https://bitbucket.org/jjmrocha/kill-bill) uses Gibreel to store the session data.

```erlang
Options = [
    {max_age, 1200},
	{purge_interval, 60},
	{cluster_nodes, all},
	{sync_mode, full}
],
gibreel:create_cache(my_webapp_session, Options).
```

#### Using gibreel as a DB cache

The site [Gmailbox.org](https://www.gmailbox.org) uses Gibreel as a DB cache for CouchDB.

```erlang
LoadFunction = fun(Key) ->
	case chair:get_doc(gmailboxDB, Key) of
		{ok, Doc} -> Doc;
		{db_error, Error} ->
			case jsondoc:get_value(<<"error">>, Error) of
				<<"not_found">> -> not_found;
				_ -> error
			end;
		{error, _} -> error
	end
end,
Options = [
	{get_value_function, LoadFunction},
	{max_age, 600},
	{max_size, 10000},
	{cluster_nodes, all}
],
gibreel:create_cache(account_cache, Options).
```

g_cache Module
--------------

The module cache allows you to store, remove and retrieve items from cache.
The main functions are:

* store/3  **Stores a key-value pair on the cache**
* get/2  **Retrieves the value for the key**
* remove/2  **Removes a key-value from the cache**
* touch/2  **Changes the item expiration date**
* size/1  **Return the number o key-value pairs in the cache**
* foldl/3  **Calls a function for all elements of the cache and returns an accumulator**

### store Function

```erlang
g_cache:store(CacheName :: atom(), Key :: term(), Value :: term()) ->
    no_cache | ok.
```

Stores a key-value pair on the cache.

### get Function

```erlang
g_cache:get(CacheName :: atom(), Key :: term()) ->
    {ok, Value :: term()} | not_found | no_cache | error.
```

Retrieves the value for the key.

### remove Function

```erlang
g_cache:remove(CacheName :: atom(), Key :: term()) ->
    no_cache | ok.
```

Removes a key-value from the cache.

### touch Function

```erlang
g_cache:touch(CacheName :: atom(), Key :: term()) -> ok.
```

Changes the item expiration date.

### size Function

```erlang
g_cache:size(CacheName :: atom()) -> no_cache | integer().
```

Return the number o key-value pairs in the cache.

### foldl Function

```erlang
g_cache:foldl(CacheName :: atom(), Fun, Acc :: term()) -> no_cache | term().
```

Calls function Fun on successive elements on the cache, starting with Acc. Fun/2 must return a new accumulator which is passed to the next call. The function returns the final value of the accumulator. Acc is returned if the list is empty.

For example:

```erlang
g_cache:foldl(example, fun({_Key, Value}, Acc) ->
    [Value|Acc]
end, []).
```

repository: jjmrocha/gibreel

repo_name: jjmrocha/gibreel