text:
# Changelog

## 6.7.0 (07/13/2023)

### Enhancements:

- [#956](https://github.com/greenplum-db/pxf/pull/956) Add pxfdelimited_import formatter to support multibyte delimiters for TEXT and CSV profiles
- [#960](https://github.com/greenplum-db/pxf/pull/960) Add support year with more than 4 digits in 'date' or 'timestamp'
- [#973](https://github.com/greenplum-db/pxf/pull/973) Enable write flow for FDW for non-text/csv formats
- [#976](https://github.com/greenplum-db/pxf/pull/976) Restrict PXF to listen to local requests only
- [#979](https://github.com/greenplum-db/pxf/pull/979) Add logging to the LineBreakAccessor for the write
- [#983](https://github.com/greenplum-db/pxf/pull/983) Bump Springboot to 2.7.12
- [#984](https://github.com/greenplum-db/pxf/pull/984) Enable writing data in JSON format using *:json profiles
- [#989](https://github.com/greenplum-db/pxf/pull/989) Bump snappy to <IP_ADDRESS>

### Bug Fixes:

- [#967](https://github.com/greenplum-db/pxf/pull/967) FDW: Fix for skipping the dropped and correctly counting Projection Index
- [#978](https://github.com/greenplum-db/pxf/pull/978) Added erroring out logic for decimal overflow for ORC

## 6.6.0 (04/06/2023)

### Enhancements:

- [#949](https://github.com/greenplum-db/pxf/pull/949) Support for fixedwidth formatter with new `*:fixedwidth` PXF profiles
- [#954](https://github.com/greenplum-db/pxf/pull/954) Update table options names to not include dash character
- [#955](https://github.com/greenplum-db/pxf/pull/955) Bump jackson-databind from <IP_ADDRESS> to <IP_ADDRESS> in /automation

### Bug Fixes:

- [#940](https://github.com/greenplum-db/pxf/pull/940) Introduced options to handle decimal overflow when writing Parquet files

## 6.5.1 (03/19/2023)

### Enhancements:

- [#857](https://github.com/greenplum-db/pxf/pull/857) Changes for supporting PXF for GP7.
- [#900](https://github.com/greenplum-db/pxf/pull/900) Added error handling for FDW read flow
- [#943](https://github.com/greenplum-db/pxf/pull/943) Upgrade gp-common-go-libs to 1.0.11

## 6.5.0 (12/21/2022)

### Enhancements:

- [#872](https://github.com/greenplum-db/pxf/pull/872) Enable automation tests to run against PXF FDW extension
- [#876](https://github.com/greenplum-db/pxf/pull/876) Parquet write array
- [#879](https://github.com/greenplum-db/pxf/pull/879) Add new SPLIT_BY_FILE option for json profiles
- [#880](https://github.com/greenplum-db/pxf/pull/880) Allow setting JDBC session-level parallel instructions for Oracle
- [#885](https://github.com/greenplum-db/pxf/pull/885) Prevent out-of-bounds buffer access
- [#886](https://github.com/greenplum-db/pxf/pull/886) Update jackson-databind to <IP_ADDRESS>
- [#895](https://github.com/greenplum-db/pxf/pull/895) Parquet read array
- [#903](https://github.com/greenplum-db/pxf/pull/903) Bump postgresql from 42.4.1 to 42.4.3

### Bug Fixes:

- [#875](https://github.com/greenplum-db/pxf/pull/875) Fix projection of boolean qualifiers whose attrs are not in SELECT list
- [#879](https://github.com/greenplum-db/pxf/pull/879) Refactor JsonRecordReader and fix incorrect parsing of JSON objects for multi-line JSON
- [#897](https://github.com/greenplum-db/pxf/pull/897) Add close connection if statementRead is null

## 6.4.2 (09/19/2022)

### Bug Fixes:

- [#870](https://github.com/greenplum-db/pxf/pull/870) Relax the requirement that C string length matches Java string length

## 6.4.1 (09/16/2022)

### Bug Fixes:

- [#858](https://github.com/greenplum-db/pxf/pull/858) Add JsonProtocolHandler to use HdfsFileFragmenter for multi-line JSON

## 6.4.0 (08/15/2022)

### Enhancements:

- [#818](https://github.com/greenplum-db/pxf/pull/818) Add support for writing ORC primitive types
- [#836](https://github.com/greenplum-db/pxf/pull/836) Add write support for one-dimensional ORC arrays
- [#842](https://github.com/greenplum-db/pxf/pull/842) Add support for using a PreparedStatement when reading

### Bug Fixes:

- [#833](https://github.com/greenplum-db/pxf/pull/833) Bump aws-java-sdk-s3 from 1.11.472 to 1.12.261
- [#838](https://github.com/greenplum-db/pxf/pull/838) Upgrade org.xerial.snappy:snappy-java to <IP_ADDRESS>
- [#845](https://github.com/greenplum-db/pxf/pull/845) Bump postgresql version from 42.3.3 to 42.4.1

## 6.3.2 (07/20/2022)

### Bug Fixes:

- [#781](https://github.com/greenplum-db/pxf/pull/781) Fix: In case of UnsupportedOperationException, Add an error message.
- [#789](https://github.com/greenplum-db/pxf/pull/789) Upgrade to Springboot 2.5.12
- [#799](https://github.com/greenplum-db/pxf/pull/799) Bump jackson-databind from 2.11.0 to <IP_ADDRESS>
- [#814](https://github.com/greenplum-db/pxf/pull/814) Add data buffer boundary checks to PXF extension
- [#815](https://github.com/greenplum-db/pxf/pull/815) Upgrade ORC version to 1.6.13 to get a fix for ORC-1065
- [#819](https://github.com/greenplum-db/pxf/pull/819) Upgrade Hadoop to 2.10.2
- [#823](https://github.com/greenplum-db/pxf/pull/823) Add unsupported exception in case of hive write

## 6.3.1 (04/27/2022)

### Bug Fixes:

- [#788](https://github.com/greenplum-db/pxf/pull/788) Replace prefix macro with environment variable in scriptlets
- [#794](https://github.com/greenplum-db/pxf/pull/794) Fix NPE in Hive ORC vectorized query execution

## 6.3.0 (03/16/2022)

### Enhancements:

- [#703](https://github.com/greenplum-db/pxf/pull/703) Added Support for Avro Logical Types for Readable External Tables
- [#707](https://github.com/greenplum-db/pxf/pull/707) Enabled Kerberos Constrained Delegation impersonation for secure clusters
- [#752](https://github.com/greenplum-db/pxf/pull/752) Add support for GPDB6 on RHEL 8
- [#754](https://github.com/greenplum-db/pxf/pull/754) Add scripts for modifying PXF extension to support gpupgrade

### Bug Fixes:

- [#738](https://github.com/greenplum-db/pxf/pull/738) Fix: For reading the records correctly from a MultiLine JSON file
- [#756](https://github.com/greenplum-db/pxf/pull/756) Fixed HiveDataFragmenter not closing connections to Hive Metastore
- [#760](https://github.com/greenplum-db/pxf/pull/760) Update bundled postgresql to 42.3.3

## 6.2.3 (01/31/2022)

### Bug Fixes:

- [#720](https://github.com/greenplum-db/pxf/pull/720) Redirect PXF stdout and stderr to files in PXF_LOGDIR
- [#735](https://github.com/greenplum-db/pxf/pull/735) Bumped Log4j2 version to 2.17.1
- [#740](https://github.com/greenplum-db/pxf/pull/740) Bump go version to 1.17.6
- [#741](https://github.com/greenplum-db/pxf/pull/741) Improved performance of iterating over a list of fragments

## 6.2.2 (12/22/2021)

### Bug Fixes:

- [#732](https://github.com/greenplum-db/pxf/pull/732) Downgrade to Spring Boot 2.4.3
- [#733](https://github.com/greenplum-db/pxf/pull/733) Bump log4j2 version to 2.17.0

## 6.2.1 (12/16/2021)

### Bug Fixes:

- [#710](https://github.com/greenplum-db/pxf/pull/710) Allow skipping the header for *:text:multi profiles
- [#719](https://github.com/greenplum-db/pxf/pull/719) Add explicit UnsupportedException for Hive transactional tables
- [#721](https://github.com/greenplum-db/pxf/pull/721) Set default MySQL fetchSize to Integer.MIN_VALUE
- [#726](https://github.com/greenplum-db/pxf/pull/726) pxf-hive: Catch TTransportException when working with metastore client
- [#727](https://github.com/greenplum-db/pxf/pull/727) bump log4j2 version to 2.16.0

## 6.2.0 (09/08/2021)

### Enhancements:

- [#662](https://github.com/greenplum-db/pxf/pull/662) Remove the error-causing check
- [#670](https://github.com/greenplum-db/pxf/pull/670) Upgrade Spring Boot to 2.5.2, Gradle to 7
- [#675](https://github.com/greenplum-db/pxf/pull/675) pxf-hdfs: support for reading lists from ORC files
- [#688](https://github.com/greenplum-db/pxf/pull/688) Introduced operation retries when GSS connection failures are encountered
- [#687](https://github.com/greenplum-db/pxf/pull/687) Enhanced logging to include fragment info and minor alignment changes
- [#689](https://github.com/greenplum-db/pxf/pull/689) external-table: add simple cURL debug callback function

### Bug Fixes:

- [#680](https://github.com/greenplum-db/pxf/pull/680) fix CURLOPT_RESOLVE optimization
- [#691](https://github.com/greenplum-db/pxf/pull/691) Added dataSource to Fragmenter Cache key, made cache expiration configurable
- [#696](https://github.com/greenplum-db/pxf/pull/696) Enum and bytea types are now handled properly for external tables using FORMAT "TEXT" or FORMAT "CSV"
- [#697](https://github.com/greenplum-db/pxf/pull/697) Fixed NullPointerException in GSS failure handling retry logic

## 6.1.0 (06/08/2021)

### Enhancements:

- [#633](https://github.com/greenplum-db/pxf/pull/633) Upgrade go dependencies
- [#636](https://github.com/greenplum-db/pxf/pull/636) Add support for reading and writing arrays in AVRO
- [#638](https://github.com/greenplum-db/pxf/pull/638) Report exception class if there's no exception message
- [#640](https://github.com/greenplum-db/pxf/pull/640) Support reading JSON arrays and objects into Greenplum text columns
- [#644](https://github.com/greenplum-db/pxf/pull/644) Allow configuring connection timeout for data uploads to PXF

## 6.0.1 (05/11/2021)

### Bug Fixes:

- [#624](https://github.com/greenplum-db/pxf/pull/624) Deprecated HiveVectorizedORC profile should follow vectorized execution path
- [#626](https://github.com/greenplum-db/pxf/pull/626) Hive connector should clone SerDe properties per fragment
- [#627](https://github.com/greenplum-db/pxf/pull/627) Fix NullPointerException for ORC textMapper function when the column is repeating
- [#630](https://github.com/greenplum-db/pxf/pull/630) Fix the inconsistency between row count in external table and ORC file

## 6.0.0 (03/25/2021)

### Enhancements:

- [#404](https://github.com/greenplum-db/pxf/pull/404) Migrate PXF to Spring Boot
- [#491](https://github.com/greenplum-db/pxf/pull/491) Remove invalid GemFireXD Profile
- [#486](https://github.com/greenplum-db/pxf/pull/486) Serialize fragment metadata using kryo instead of json for better optimization
- [#457](https://github.com/greenplum-db/pxf/pull/457) Convert PXF-CLI to use go modules instead of dep
- [#498](https://github.com/greenplum-db/pxf/pull/498) Support pushing predicates of type varchar
- [#506](https://github.com/greenplum-db/pxf/pull/506) Restore FDW build
- [#470](https://github.com/greenplum-db/pxf/pull/470) Add support for reading ORC without Hive
- [#500](https://github.com/greenplum-db/pxf/pull/500) Add the InOperatorTransformer TreeVisitor (transform IN operator into chain of ORs)
- [#514](https://github.com/greenplum-db/pxf/pull/514) Improve logging of read stats(ms instead of ns)
- [#512](https://github.com/greenplum-db/pxf/pull/512) Encode header values for custom headers, add disable_ppd option for PXF FDW extension, and add pushing predicates of type varchar down for the PXF FDW extension
- [#495](https://github.com/greenplum-db/pxf/pull/495) Hive profile names now split "protocol" and "format"
- [#521](https://github.com/greenplum-db/pxf/pull/521) Bump Hadoop version to 2.10.1
- [#538](https://github.com/greenplum-db/pxf/pull/538) Add createParent option for SequenceFile during PXF write
- [#535](https://github.com/greenplum-db/pxf/pull/535) Add shortnames and "uncompressed" option for text compression codecs
- [#548](https://github.com/greenplum-db/pxf/pull/548) Update PXF CLI to support PXF on master
- [#546](https://github.com/greenplum-db/pxf/pull/546) Add Prometheus metrics endpoint
- [#555](https://github.com/greenplum-db/pxf/pull/555) Remove fragmenter call from PXF FDW extension
- [#557](https://github.com/greenplum-db/pxf/pull/557) Log OOM issues to PXF_LOGDIR
- [#542](https://github.com/greenplum-db/pxf/pull/542) Pass data encoding and database encoding from PXF client to server
- [#568](https://github.com/greenplum-db/pxf/pull/568) Support different charsets in PXF FDW extension
- [#573](https://github.com/greenplum-db/pxf/pull/573) Add trace and table headers to the request
- [#572](https://github.com/greenplum-db/pxf/pull/572) Add custom tags for MVC
- [#575](https://github.com/greenplum-db/pxf/pull/575) Add charset to Console and RollingFile appender
- [#576](https://github.com/greenplum-db/pxf/pull/576) Log empty profile message at INFO level
- [#569](https://github.com/greenplum-db/pxf/pull/569) Bump PXF external-table extension to 2.0
- [#574](https://github.com/greenplum-db/pxf/pull/574) Add application property for configuring logging level
- [#577](https://github.com/greenplum-db/pxf/pull/577) Enhance MDC with PXF context
- [#579](https://github.com/greenplum-db/pxf/pull/579) Report fragments.sent PXF metric
- [#571](https://github.com/greenplum-db/pxf/pull/571) Add PXF version header to request
- [#583](https://github.com/greenplum-db/pxf/pull/583) Report records.sent metric
- [#586](https://github.com/greenplum-db/pxf/pull/586) Report records.received metric
- [#595](https://github.com/greenplum-db/pxf/pull/595) Add bytes monitoring to PXF
- [#604](https://github.com/greenplum-db/pxf/pull/604) Log error messages with context

### Bug Fixes:

- [#519](https://github.com/greenplum-db/pxf/pull/519) Update the error message when capacity exceeded in PXF

## 5.16.2 (02/23/2021)

### Bug Fixes:

- [#554](https://github.com/greenplum-db/pxf/pull/554) Fix different encoding when using LineRecordReader
- [#553](https://github.com/greenplum-db/pxf/pull/553) Hardcode replicas in fragment
- [#549](https://github.com/greenplum-db/pxf/pull/549) pxfbridge: Return early when context->current_fragment is NULL

## 5.16.1 (01/14/2021)

### Bug Fixes:

- [#526](https://github.com/greenplum-db/pxf/pull/526) pxf-hive: properly escape strings in complex data types

## 5.16.0 (11/05/2020)

### Enhancements:

- [#480](https://github.com/greenplum-db/pxf/pull/480) Enable predicate pushdown for Hive profile when accessing Parquet backed tables
- [#477](https://github.com/greenplum-db/pxf/pull/477) CLI: Add --skip-register flag for pxf [cluster] init
- [#474](https://github.com/greenplum-db/pxf/pull/474) Optimize hive metadata
- [#467](https://github.com/greenplum-db/pxf/pull/467) clarify the pxf.fs.basePath description
- [#472](https://github.com/greenplum-db/pxf/pull/472) Enable column projection for Parquet files read via Hive profile
- [#461](https://github.com/greenplum-db/pxf/pull/461) Increase default maximumPoolSize property in jdbc-site.xml
- [#469](https://github.com/greenplum-db/pxf/pull/469) Specify Hive schema column names and types in HiveAccessor when creating RecordReaders
- [#456](https://github.com/greenplum-db/pxf/pull/456) Add support for File Storage (Attached to every segment host)
- [#453](https://github.com/greenplum-db/pxf/pull/453) Remove Configuration from SessionId
- [#453](https://github.com/greenplum-db/pxf/pull/453) Release UGI if there is an error during the filter execution
- [#451](https://github.com/greenplum-db/pxf/pull/451) Support dropping columns in PXF writable external tables
- [#451](https://github.com/greenplum-db/pxf/pull/451) Support dropping columns in PXF readable external tables
- [#445](https://github.com/greenplum-db/pxf/pull/445) pxf.service.user.name is commented out by default in pxf-site.xml

### Bug Fixes:

- [#460](https://github.com/greenplum-db/pxf/pull/460) Avro: fixing NullPointerException for writing NULL values for SMALLINT and BYTEA columns

## 5.15.1 (09/10/2020)

### Bug Fixes:

- [#418](https://github.com/greenplum-db/pxf/pull/418) Parquet performance improvements for write
- [#433](https://github.com/greenplum-db/pxf/pull/433) Parquet Write: Fix physical and logical storage for DATE types
- [#435](https://github.com/greenplum-db/pxf/pull/435) Upgrade from Tomcat 7.0.100 to 7.0.105
- [#439](https://github.com/greenplum-db/pxf/pull/439) Add lib/native directory in PXF_CONF

## 5.15.0 (08/19/2020)

### Enhancements:

- [#392](https://github.com/greenplum-db/pxf/pull/392) Add support for Avro BZip2 and XZ Compression Codecs
- [#395](https://github.com/greenplum-db/pxf/pull/395) Bump com.fasterxml.jackson.core:jackson-* version from 2.9.x to 2.11.0
- [#410](https://github.com/greenplum-db/pxf/pull/410) Allow skipping the header for *:text profiles
- [#421](https://github.com/greenplum-db/pxf/pull/421) Deprecate THREAD_SAFE custom option

### Bug Fixes:

- [#382](https://github.com/greenplum-db/pxf/pull/382) Add missing dependency for Hive profile when accessing CSV files
- [#415](https://github.com/greenplum-db/pxf/pull/415) Hive: Report the correct error message from HiveMetaStoreClientCompatibility1xx
- [#416](https://github.com/greenplum-db/pxf/pull/416) Fix performance issues when writing wide CSV/TEXT rows

---

## 5.14.0 (06/30/2020)

### Enhancements:

- [#389](https://github.com/greenplum-db/pxf/pull/389) Avro: add compression
- [#391](https://github.com/greenplum-db/pxf/pull/391) Certify Oracle Enterprise Linux 7

### Bug Fixes:

- [#383](https://github.com/greenplum-db/pxf/pull/383) Avro: support writing SMALLINT to Avro

---

## 5.13.0 (06/10/2020)

### Enhancements:

- [#341](https://github.com/greenplum-db/pxf/pull/341) Create external-table directory and PXF RPM

---

## 5.12.1 (06/03/2020)

### Enhancements:

- [#360](https://github.com/greenplum-db/pxf/pull/360) Add additional information regarding the pxf.service.user.name property

### Bug Fixes:

- [#358](https://github.com/greenplum-db/pxf/pull/358) Fix Glob Patterns for Hadoop-Compatible FileSystems

---

## 5.12.0 (05/05/2020)

### Enhancements:

- [#336](https://github.com/greenplum-db/pxf/pull/336) Add User Option to allow invalid input paths
- [#333](https://github.com/greenplum-db/pxf/pull/333) Hive: Support column projection on Hive Profiles

### Bug Fixes:

- [#324](https://github.com/greenplum-db/pxf/pull/324) Parquet: Right trim char types during insert

### Dependency updates:

- [#348](https://github.com/greenplum-db/pxf/pull/348) CVE-2020-10672: Upgrade jackson-databind to version <IP_ADDRESS>
- [#343](https://github.com/greenplum-db/pxf/pull/343) Upgrade hive 2.3.7 and support Java 11 for Hive Profiles
- [#332](https://github.com/greenplum-db/pxf/pull/332) Hive: Add missing transitive dependency when reading parquet files
- [#331](https://github.com/greenplum-db/pxf/pull/331) pxf-cli: Update gp-common-go-libs to latest
- [#315](https://github.com/greenplum-db/pxf/pull/315) Bump greenplum-db/gp-common-go-libs to latest

---

## 5.11.2 (03/20/2020)

#### Minor enhancements:

- [#318](https://github.com/greenplum-db/pxf/pull/318) pxf-public classpath is no longer being used
- [#311](https://github.com/greenplum-db/pxf/pull/311) JDBC: Validate batchsize only on write

### Dependency updates:

- [#316](https://github.com/greenplum-db/pxf/pull/316) Tomcat: Address CVE-2020-1938
- [#313](https://github.com/greenplum-db/pxf/pull/313) Update jackson-databind

---

## 5.11.1 (03/02/2020)

### Bug Fixes:

- [#308](https://github.com/greenplum-db/pxf/pull/308) Fix ESCAPE 'OFF' is not processed correctly on PXF side error
- [#306](https://github.com/greenplum-db/pxf/pull/306) Fix JAVA_HOME from $PXF_CONF/conf/pxf-env.sh being overridden

---

## 5.11.0 (02/25/2020)

#### Enhancements:

- [#302](https://github.com/greenplum-db/pxf/pull/302) pxf cluster sync: support deletion of extraneous files
- [#304](https://github.com/greenplum-db/pxf/pull/304) Harden PXF's Tomcat configuration
- [#300](https://github.com/greenplum-db/pxf/pull/300) Implement `pxf cluster restart`
- [#295](https://github.com/greenplum-db/pxf/pull/295) (parquet-refactor) Use the first version of Guava that has a stable Cache API
- [#287](https://github.com/greenplum-db/pxf/pull/287) Update GCS connector jar in automation/prod
- [#286](https://github.com/greenplum-db/pxf/pull/286) Parquet record filter

### Bug Fixes:

- [#305](https://github.com/greenplum-db/pxf/pull/305) pxf cluster init: enforce JAVA_HOME is set
- [#299](https://github.com/greenplum-db/pxf/pull/299) Log org.apache.parquet at WARN level
- [#292](https://github.com/greenplum-db/pxf/pull/292) Fix compilation with JDK 11.
- [#290](https://github.com/greenplum-db/pxf/pull/290) Log ClientAbortException at debug level

---

## 5.10.1 (01/07/2020)

#### Enhancements:

- [#276](https://github.com/greenplum-db/pxf/pull/276) Refactor filter parser code (Non-user facing)

#### Bug Fixes:

- [#283](https://github.com/greenplum-db/pxf/pull/283) Fix parquet write decimal
- [#280](https://github.com/greenplum-db/pxf/pull/280) Introduced pxf.session.user property and JDBC conn pool qualifier

---

## 5.10.0 (12/02/2019)

#### Enhancements:

- [#248](https://github.com/greenplum-db/pxf/pull/268) Enable Avro write
- [#261](https://github.com/greenplum-db/pxf/pull/261) Add Support for impersonation per server
- [#257](https://github.com/greenplum-db/pxf/pull/257) Add Support for Kerberized Hive 3
- [#254](https://github.com/greenplum-db/pxf/pull/254) Merge pxf impersonation jdbc
- [#247](https://github.com/greenplum-db/pxf/pull/247) Add support for multiple kerberos Hadoop and Hive servers

#### Bug Fixes:

- [#268](https://github.com/greenplum-db/pxf/pull/268) Fallback on using LineRecordReader when reading encrypted files

---

## 5.9.2 (10/28/2019)

#### Bug Fixes:

- [#253](https://github.com/greenplum-db/pxf/pull/253) Improve performance of HdfsFileFragmenter

---

## 5.9.1 (10/15/2019)

#### Bug Fixes:

- [#251](https://github.com/greenplum-db/pxf/pull/251) Fix regression in *:text:multi profiles when using wildcards

---

## 5.9.0 (09/25/2019)

#### Enhancements:

- [#243](https://github.com/greenplum-db/pxf/pull/243) Upgrade jackson libraries to 2.9.10
- [#235](https://github.com/greenplum-db/pxf/pull/235) Certify support for Hive 3.1
- [#226](https://github.com/greenplum-db/pxf/pull/226) Add OR and NOT support for JDBC filter pushdown
- [#236](https://github.com/greenplum-db/pxf/pull/236) Upgrade tomcat to version 7.0.96
- [#230](https://github.com/greenplum-db/pxf/pull/230) Add support for Hive 2 (Up to Hive 2.3.6)

#### Notes:

- PXF does not support Hive when running Java 11. As a workaround run PXF on Java 8.

---

## 5.8.2 (09/08/2019)

#### Bug Fixes:

- [#228](https://github.com/greenplum-db/pxf/pull/228) Make JDBC profile not fail when MAPR JAR files override default Hadoop ones
- [#217](https://github.com/greenplum-db/pxf/pull/217) CLI: reset on standby master and don't allow cluster init without PXF_CONF set #217
- [#224](https://github.com/greenplum-db/pxf/pull/224) Fix cloud access when Kerberized Hadoop is present

---

## 5.8.1 (08/22/2019)

#### Enhancements:

- Enable multinode testing against GCP dataproc. Run automation tests against Hadoop 2.9.2 and Hive 2.3.5

---

## 5.8.0 (08/01/2019)

#### Bug Fixes:

- [#211](https://github.com/greenplum-db/pxf/pull/211) Preserve error when re-throwing IOException (#211)

#### Enhancements:

- [#187](https://github.com/greenplum-db/pxf/pull/187) Implement S3 Select
- [#189](https://github.com/greenplum-db/pxf/pull/189) Implement cluster reset command
- [#191](https://github.com/greenplum-db/pxf/pull/191) Support config option to specify the server configuration directory (#191)
- [#198](https://github.com/greenplum-db/pxf/pull/198) Support serializing a list of OneFields to CSV (#198)
- [#201](https://github.com/greenplum-db/pxf/pull/201) Add JDK11 to PXF docker base dev image (#201)
- [#202](https://github.com/greenplum-db/pxf/pull/202) Support NOT and OR operators for S3 Select
- [#203](https://github.com/greenplum-db/pxf/pull/203) Support reading and writing of timestamp with time zone for Parquet (#203)
- [#206](https://github.com/greenplum-db/pxf/pull/206) Add S3 Select support for Parquet using S3-SELECT=AUTO (#206)
- [#207](https://github.com/greenplum-db/pxf/pull/207) Enable support for PXF server to run with Java-11 (#207)
- [#212](https://github.com/greenplum-db/pxf/pull/212) Use format options for S3 Select (#212)
- [#213](https://github.com/greenplum-db/pxf/pull/213) Rename S3-SELECT option -> S3_SELECT (#213)

---

## 5.7.0 (07/08/2019)

#### Bug Fixes:

- [#193](https://github.com/greenplum-db/pxf/pull/193) Fix uncompressed write parquet (#193)
- [#170](https://github.com/greenplum-db/pxf/pull/170) JDBC: Query data from ranges outside of partition range (#170)
- [#192](https://github.com/greenplum-db/pxf/pull/192) JsonResolver: throw BadRecordException on bad JSON

#### Enhancements:

- [#196](https://github.com/greenplum-db/pxf/pull/196) Purge codehaus from codebase, and replace it with fasterXML library (#196)

---

## 5.6.0 (06/19/2019)

#### Bug Fixes:

- [#182](https://github.com/greenplum-db/pxf/pull/182) Run a named query that ends with semicolon

#### Enhancements:

- [#188](https://github.com/greenplum-db/pxf/pull/188) Support for FDW
- [#186](https://github.com/greenplum-db/pxf/pull/186) Enable JDBC Connection Pooling
- [#183](https://github.com/greenplum-db/pxf/pull/183) Upgrade postgres driver to version 42.2.5

---

## 5.5.1 (06/03/2019)

#### Bug Fixes:

- [#180](https://github.com/greenplum-db/pxf/pull/180) Upgrade the Postgres JDBC Driver version

---

## 5.5.0 (05/31/2019)

#### Bug Fixes:

- [#176](https://github.com/greenplum-db/pxf/pull/176) Upgrade jackson 2 version from 2.9.8 -> 2.9.9

#### Enhancements:

- [#171](https://github.com/greenplum-db/pxf/pull/171) Enable JDBC connection to Hive and JDBC-specific user impersonation per server
- [#178](https://github.com/greenplum-db/pxf/pull/178) Make pxf threads configurable
- [#172](https://github.com/greenplum-db/pxf/pull/172) Support user-specific configuration in server
- [#169](https://github.com/greenplum-db/pxf/pull/169) HdfsFileFragmenter
- [#162](https://github.com/greenplum-db/pxf/pull/162) Kill JVM/Tomcat on OutOfMemoryError
- [#160](https://github.com/greenplum-db/pxf/pull/160) JDBC: Optimize resolver for INSERT queries

---

## 5.4.0 (05/13/2019)

#### Bug Fixes:

- [#161](https://github.com/greenplum-db/pxf/pull/161) Fix Oracle timestamp wrapping

#### Enhancements:

- [#157](https://github.com/greenplum-db/pxf/pull/157) JDBC profile can execute a query to read data from an external DB
- [#158](https://github.com/greenplum-db/pxf/pull/158) Add support to read multiline files as a single row

---

## 5.3.2 (05/06/2019)

#### Bug Fixes:

- [#156](https://github.com/greenplum-db/pxf/pull/156) JDBC statement properties including fetch size and timeout

---

## 5.3.1 (04/27/2019)

#### Bug Fixes:

- [#151](https://github.com/greenplum-db/pxf/pull/151) PXF cli: fix regression with version command

#### Enhancements:

- [#152](https://github.com/greenplum-db/pxf/pull/152) Ensure pxf version can be run before pxf init

---

## 5.3.0 (04/26/2019)

#### Bug Fixes:

- [#147](https://github.com/greenplum-db/pxf/pull/147) Reverse direction of rsync in pxf sync command
- [#144](https://github.com/greenplum-db/pxf/pull/144) Remove support for Logical operator NOT with Hive Partition Filtering. NOT is an unsupported logical operator
- [#138](https://github.com/greenplum-db/pxf/pull/138) Hive partition filtering with support for all Logical Operators
- [#134](https://github.com/greenplum-db/pxf/pull/134) pxf cluster: stop checking that hostname is master

#### Enhancements:

- [#150](https://github.com/greenplum-db/pxf/pull/150) Add debug statements for the JDBC connection
- [#149](https://github.com/greenplum-db/pxf/pull/149) pxf cli: Add cluster status command
- [#142](https://github.com/greenplum-db/pxf/pull/142) Allow configuration of JDBC transaction isolation. Implements [#130](https://github.com/greenplum-db/pxf/issues/130)
- [#145](https://github.com/greenplum-db/pxf/pull/145) Added integration test for JDBC session parameters
- [#135](https://github.com/greenplum-db/pxf/pull/135) Cache Fragmenter calls to improve memory consumption during the fragmenter call
- [#136](https://github.com/greenplum-db/pxf/pull/136) pxf-cli: Support sync and init on standby master
- [#141](https://github.com/greenplum-db/pxf/pull/141) pxf-api: Fix BaseConfigurationFactory logging
- [#118](https://github.com/greenplum-db/pxf/pull/118) PXF-JDBC: Enable external database configuration and connection settings modification. Implements [#129](https://github.com/greenplum-db/pxf/issues/129)
- [#133](https://github.com/greenplum-db/pxf/pull/133) Add Changelog
- pxf-cli: Use rsync on master host

---

## 5.2.1 (04/04/2019)

#### Enhancements:

- [#115](https://github.com/greenplum-db/pxf/pull/115)
  PXF no longer expects the path to contain
  transaction and segment IDs during write. PXF will
  now construct the write path for Hadoop-Compatible
  FileSystems to include transaction and segment IDs.

---

## 5.2.0 (04/04/2019)

#### Enhancements:

- [#119](https://github.com/greenplum-db/pxf/pull/119) Remove PXF-Ignite plugin. The Ignite plugin is
  removed in favor of Ignite's JDBC driver.
- Adds more visibility to external contributors by exposing
  Pull Request pipelines. It allows external contributors
  to debug issues when submitting Pull Requests.

#### Bug Fixes:

- [#126](https://github.com/greenplum-db/pxf/pull/126) PXF Port Fix. Fixes issue in PXF when setting
  PXF_PORT and then starting PXF. Fixes issue [#93](https://github.com/greenplum-db/pxf/issues/93)

---

## 5.1.1 (03/26/2019)

#### Bug Fixes:

- [#116](https://github.com/greenplum-db/pxf/pull/116) Always use doAs for Kerberos with Hive, add
  request's hive-site.xml to HiveConf explicitly. Fixes
  issues with Kerberized Hive, where UGI was not being set.

---

## 5.1.0 (03/26/2019)

#### Bug Fixes:

- [#80](https://github.com/greenplum-db/pxf/pull/80) Throw IOException when fs.mkdirs() returns false

#### Enhancements:

- Improve Documentation
- [#114](https://github.com/greenplum-db/pxf/pull/114) enable file-based configuration for JDBC plugin
- [#113](https://github.com/greenplum-db/pxf/pull/113) added PARQUET_VERSION parameter and tests
- [#112](https://github.com/greenplum-db/pxf/pull/112) Support additional parquet write config options
- [#111](https://github.com/greenplum-db/pxf/pull/111) Fixed propagation of write exception from the JDBC plugin
- [#110](https://github.com/greenplum-db/pxf/pull/110) Parquet column projection
- [#108](https://github.com/greenplum-db/pxf/pull/108) Enabled column projection pushdown for JDBC profile
- [#101](https://github.com/greenplum-db/pxf/pull/101) Update logging configuration to limit Hadoop INFO logging
- Add descriptive message when JAVA_HOME is not set
- [#98](https://github.com/greenplum-db/pxf/pull/98) PXF-JDBC: quote column names
- [#95](https://github.com/greenplum-db/pxf/pull/95) Enable license generation for PXF
- [#94](https://github.com/greenplum-db/pxf/pull/94) Column projection support changes
- [#92](https://github.com/greenplum-db/pxf/pull/92) Enhanced unit test for repeated primitive Parquet types
- [#91](https://github.com/greenplum-db/pxf/pull/91) Create new groups for hive and hbase tests
- [#89](https://github.com/greenplum-db/pxf/pull/89) Implement optimized version of isTextForm
- [#88](https://github.com/greenplum-db/pxf/pull/88) Support Parquet repeated primitive types serialized into JSON
- [#87](https://github.com/greenplum-db/pxf/pull/87) Updated library versions with security issues
- [#86](https://github.com/greenplum-db/pxf/pull/86) Remove Parquet fragmenter; defer schema read to accessor
- Performance Tests
- [#81](https://github.com/greenplum-db/pxf/pull/81) Upgrade to hadoop version 2.9.2
- [#77](https://github.com/greenplum-db/pxf/pull/77) Add MapR Support for HDFS

---

## 5.0.1 (01/15/2019)
*No changelog for this release.*

---

## 5.0.0 (01/14/2019)
*Changelog needed here.*

---

## 4.1.0 (12/04/2018)
*Changelog needed here.*

---

## 4.0.3 (10/16/2018)
*Changelog needed here.*

---

## 4.0.2 (10/12/2018)
*Changelog needed here.*

---

## 4.0.1 (10/12/2018)
*Changelog needed here.*

---

## 4.0.0 (10/11/2018)
*Changelog needed here.*

---

repository: greenplum-db/pxf

repo_name: greenplum-db/pxf


text:
# generator-hybrid [![NPM version][npm-image]][npm-url]  [![Dependency Status][daviddm-image]][daviddm-url]

A [Yeoman](http://yeoman.io) generator that sets up a hybrid multi platform project for concurrently developing native mobile apps (iOS and Andoid), a web-portal, and a desktop app. It trys to follow the [Angular Style Guide](johnpapa/angular-styleguide) whenever possible.

The technologies used include:

* Mobile Apps: Ionic Framework
* Web Portal: AngularJS
* Desktop: Electron (*todo*)

**Note**: This is a work in progress. It's getting worked on as fast as possible between day-to-day obligations. :)

## Installation

First, install [Yeoman](http://yeoman.io) and generator-hybrid using [npm](https://www.npmjs.com/) (we assume you have pre-installed [node.js](https://nodejs.org/)).

```bash
npm install -g yo
npm install -g generator-hybrid
```

Then generate your new project:

```bash
mkdir new_project
cd new_project
yo hybrid
```

If you told generator-hybrid to install dependencies (npm and bower), then your projects should be good to go. If you said no to this option, you're on your own to get the dependencies installed... but it's not that hard. `npm install` in either the `web` or `mobile` directory will run in the `install.js` script, which includes running bower install.

### Mobile
```bash
$ cd mobile
$ ionic serve -b
```
Then browse to http://localhost:8100

### Web
```bash
$ cd web
$ gulp serve
```
Then browse to http://localhost:8088 (unless you changed the default port during the install).

## Todo

See the [issue tracker](https://github.com/etsuo/generator-hybrid/issues)

## Config
If you want to set your default answers, create a file in your home directory (`cd ~`) called `.hybridconfig.json`. For example:

```json
{
   "packageVersion": "0.0.1",
   "packageAuthor": "",
   "packageAuthorEmail": "",
   "packageAuthorWeb": "",
   "packageLicense": ["UNLICENSED", "MIT", "Apache-2.0"],
   "packagePrivate": true,
   "installMobile": true,
   "installWeb": true,
   "webCssLibrary": "AngularMaterial",
   "installDeps": true,
   "initGit": true
}
```
You can include as many or as few of these options as you want to override. What's show above are the defaults the generator will fall back to if you don't specify an override in `.hydbridconfig.json`.

Keep in mind that the license types should be valid [SPDX values](https://spdx.org/licenses/). If you do not wish to extend licensing rights to others, you should include "UNLICENSED" as an option. For version numbers, you must provide a valid [node semver](https://github.com/npm/node-semver).

If you do not supply a `.hybridconfig.json` file in your home directory, then the generator will fall back to reasonable defaults.

## Headless
`yo hybrid --headless -n 'some-name' -d 'some project description'` will run generator-hybrid in headless mode.

The `-n` option should be a package.json `name` compatible value.

## Contributing

### Reporting bugs
Open an [issue](https://github.com/etsuo/generator-hybrid/issues). This helps more than you could imagine with just about any open-source project. We have no way of testing this on every possible combination of OS X, Windows, and Linux/BSD.

### Make suggestions
This project serves some pretty specific needs of a group of us, but we figured it might serve the needs or a large community so we beefed it up some and make it more usable outside of our really limited set of needs. If you have an idea as to how we could improve this project, suggest it to us. You might end up helping more people than you realize! :)

### Coding
Fork the project, then work off your develop branch or a feature branch. When you're ready, submit a pull request back against develop.

Before making your changes, however, you should open an [issue](https://github.com/etsuo/generator-hybrid/issues) to communicate what you're doing to sync up with other work that's being done.

Also, you might want to make sure that everything works when you do an `npm install -g generator-hybrid` by doing an install of your forked changes. For example: `npm install -g git+ssh://git@github.com:etsuo/generator-hybrid.git#develop`

If you're not familiar with installing npm packages directly from github.com, see the [npm install documentation](https://docs.npmjs.com/cli/install).

Another helpful tip is to use `npm link`. Once you have cloned your fork to your local system, from within the root of the `generator-hyrbid` directory, type [`npm link`](https://docs.npmjs.com/cli/link). Your hybrid generator is now your local copy for testing purposes.

## Supported Platforms
This is tested on modern releases of Apple OS X, Microsoft Windows, and Ubuntu Linux. If you're running into problems on one of these platforms, please open an [issue](https://github.com/etsuo/generator-hybrid/issues). Make sure to include your OS and version. If you're using a different version of Linux/Unix/BSD, feel free to open an [issue](https://github.com/etsuo/generator-hybrid/issues) - we might be able to do something about it... we might not... never hurts to try.

## Credits
Here are some of the main projects that this generator uses:

## License

MIT © [J.P. Poveda](https://github.com/etsuo/generator-hybrid)

[npm-image]: https://badge.fury.io/js/generator-hybrid.svg
[npm-url]: https://npmjs.org/package/generator-hybrid
[travis-image]: https://travis-ci.org/etsuo/generator-hybrid.svg?branch=master
[travis-url]: https://travis-ci.org/etsuo/generator-hybrid
[daviddm-image]: https://david-dm.org/etsuo/generator-hybrid.svg?theme=shields.io
[daviddm-url]: https://david-dm.org/etsuo/generator-hybrid

repository: philipbrack/generator-hybrid

branch_name: refs/heads/develop

extension: md

gha_language: JavaScript

license_type: permissive

repo_name: philipbrack/generator-hybrid


text:
# mblen

Simple CLI for decomposing / inspecting UTF-8 strings.

## Installation

Binaries are availible for Darwin (macOS), Linux and Windows on the release page:

https://github.com/donatj/mblen/releases

### From Source

```bash
go install github.com/donatj/mblen@latest
```

## Examples

```bash
$ mblen 🌋
       rune: 🌋
        ord: 127755
byte length: 4
       name: VOLCANO

$ mblen 🇰🇷
       rune: 🇰
        ord: 127472
byte length: 4
       name: REGIONAL INDICATOR SYMBOL LETTER K

       rune: 🇷
        ord: 127479
byte length: 4
       name: REGIONAL INDICATOR SYMBOL LETTER R
```

Also if no arguments are given it will read from STDIN.

```bash
$ echo 日本語 | mblen
       rune: 日
        ord: 26085
byte length: 3
       name: SUN; DAY; DAYTIME

       rune: 本
        ord: 26412
byte length: 3
       name: ROOT, ORIGIN, SOURCE; BASIS

       rune: 語
        ord: 35486
byte length: 3
       name: LANGUAGE, WORDS; SAYING, EXPRESSION
```

license: MIT

repository: donatj/mblen

branch_name: refs/heads/master

gha_language: Makefile

gha_license_id: MIT

repo_name: donatj/mblen


text:
# [Code & Robots - Open Source robot app + DIY kit](http://codeandrobots.com) ⚡
[![js-standard-style](https://img.shields.io/badge/code%20style-standard-brightgreen.svg?style=flat)](http://standardjs.com/)

## The Code & Robots Open Source project

- Control your robots using the Code & Robots [Android](https://play.google.com/store/apps/details?id=com.codeandrobots.beta&ah=fmxnGH-WXpRTFOPNCggRzlARIIk) and [iOS](https://itunes.apple.com/us/app/code-robots/id1462402633?mt=8) apps
   - Currently supports the [Otto](https://www.ottodiy.com) and [Nybble](https://www.indiegogo.com/projects/nybble-world-s-cutest-open-source-robotic-kitten) robots
   - More coming soon, including support for custom bluetooth & wifi operated robots
- Design your own robot mobile app using the Code & Robots Figma design with 10+ ready made screens to get you started
- Build your own robot mobile app based on the Code & Robots open source mobile app project
- [Contact<EMAIL_ADDRESS>if you'd like to contribute to this project or to discuss working together on your robot project

## Android & iOS app

- Download the Android app (Beta) on the [Google Play Store](https://play.google.com/store/apps/details?id=com.codeandrobots.beta&ah=fmxnGH-WXpRTFOPNCggRzlARIIk)
- Download the iOS app on the [App Store](https://itunes.apple.com/us/app/code-robots/id1462402633?mt=8)

## Open Source

Code & Robots is completly FREE under the [MIT license](https://github.com/codeandrobots/codeandrobots/blob/master/LICENSE). You can even use it commercially and we welcome all contributions, see our [contributing guide](CONTRIBUTING.md) to get started.

## :rocket: How to setup and run the app

### Troubleshooting

There are quite a few gotchas when setting up and running the app right now. We're working towards a better experience to get started but it's best if you visit the [Troubleshooting](TROUBLESHOOTING.md) guide before starting and refer to it if you run into problems. For further support, send an email to [codeandrobotshq@gmail.com](mailto:codeandrobotshq@gmail.com).

### Setup

If you're new to mobile app development with React Native then here are some crash courses to bring you up to speed:
  * [React Native crash course video](https://www.youtube.com/watch?v=mkualZPRZCs)
  * [JavaScript OOP Crash Course (ES5 & ES6)](https://www.youtube.com/watch?v=vDJpGenyHaA)

**Step 1:** Install and setup React Native
  * Mac or Linux
    * See [React Native getting started doc](https://facebook.github.io/react-native/docs/getting-started)
  * Windows
    * See [Windows Setup doc](https://github.com/codeandrobots/codeandrobots-app/blob/master/SETUP_WINDOWS.md)

**Step 2:** git clone this repo
  * Mac or Linux
    * ```cd ~```
    * ```git clone https://github.com/codeandrobots/codeandrobots-app.git```
  * Windows
    * ```cd C:\Users\%username%```
    * ```git clone https://github.com/codeandrobots/codeandrobots-app.git```

**Step 3:** cd to the cloned repo
  * ```cd codeandrobots-app```

**Step 4:** Install the Application with Yarn
  * ```yarn install --ignore-engines```

**Step 5:** Reinstall husky to setup git hooks
  * ```npm install husky@next --save-dev```

**Step 6:** Copy `.env.example` to `.env`
  * Mac or Linux
    * ```cp .env.example .env```
  * Windows
    * ```copy .env.example .env```

**Step 7:** Update [App Properties](#app-properties) in ```.env``` if necessary

**Step 8:** Install and run the app
  * iOS
    * Make sure [XCode](https://developer.apple.com/xcode/) is installed
    * run `react-native run-ios`
  * Android
    * [Use your Android device](https://facebook.github.io/react-native/docs/running-on-device) or run on an [Android Emulator](https://medium.com/@Charles_Stover/create-a-react-native-app-on-an-android-emulator-1c0d94f288ae) or run on [Genymotion](https://www.genymotion.com)
    * run `react-native run-android --variant=devDebug`

### App Properties

When running the app locally, it will rely on the properties defined in your local `.env` file.

Have a look at [.env.example](https://github.com/codeandrobots/codeandrobots-kit/blob/master/app/.env.example) for more information about app properties.

### Running on a real device

Have a look at https://facebook.github.io/react-native/docs/running-on-device to get your device setup.

When running an API **locally** and the app on a real device, you will need to find and use the primary IP address of your local machine (i.e. **not** localhost).
1. `ipconfig getifaddr en0` (only works on macOS)
2. Serve your backend API using the primary IP address (e.g. `rails s -b [primary local ip]`)
3. Update **API_BASE_URL** to use the primary IP address (e.g. `http://[primary local ip]:3000/api/v1/`)

## :no_entry_sign: Standard Compliant

This project adheres to [Standard](https://github.com/standard/standard).

**Lint on Commit**

This is implemented using [husky](https://github.com/typicode/husky). There is no additional setup needed.

**Bypass Lint**

If you have to bypass lint for a special commit that you will come back and clean (pushing something to a branch etc.) then you can bypass git hooks with adding `--no-verify` to your commit command.

**Understanding Linting Errors**

The linting rules are from JS Standard and React-Standard. [Regular JS errors can be found with descriptions here](http://eslint.org/docs/rules/), while [React errors and descriptions can be found here](https://github.com/yannickcr/eslint-plugin-react).

### Testing

Before running tests you will need to install Jest.

Unit and integration tests automatically run on every ```git commit``` and ```git push```.

Unit and integration tests:
```
yarn test
```

#### View app stories in Storybook mode

1. In a new terminal, run storybook `yarn storybook`
2. In a new terminal, run the app `react-native run-ios` or `react-native run-android --variant=devDebug`
3. Choose app stories from the Storybook navigator within the app or in the browser

#### End to End Testing

There are no end to end tests right now as the app development is in flux but it's a good idea to add them in the future.

repository: dhtbo/codeandrobots-app

repo_name: dhtbo/codeandrobots-app


text:
# MA0104 - Do not create a type with a name from the BCL

````c#
public class String // MA0104
{
}
````

You can configure the types / namespaces to consider in the `editorconfig` file

````
MA0104.namepaces_regex = ^System($|\.)
MA0104.use_preview_types = true # use types from preview versions of .NET
````

branch_name: refs/heads/main

gha_language: C#


text:
Tracking in tangos
==================

Often it's helpful to track sets of particles or other tracers within a simulation.
For example, one might select inflowing or outflowing gas and then inspect its origin
at earlier timesteps or destination at later timesteps.

_Tangos_ enables this kind of tracking. In the following introduction we'll make use of the
[ChaNGA tutorial dataset](first_steps_changa+ahf.md). The steps can easily be adapted for other
formats.

Selecting particles
-------------------

The first step is to select particles of interest. Let's find the particles in a halo with densities
higher than 0.1 protons per cubic centimetre at a particular time. Within a python session type the following:

```python
import tangos, pynbody
particles = tangos.get_halo("tutorial_changa/%960/1").load()
high_rho_gas = particles.gas[pynbody.filt.HighPass('rho',"0.1 m_p cm^-3")]
```

Now we'll use those particles to generate a  tracker:
```python
from tangos import tracking
tracking.new("tutorial_changa", high_rho_gas)
```

If logging is enabled you may see messages about creation of the required
database objects. The `tracking.new` function returns the identifying number of the
tracker which is unique within the simulation. Assuming this is the first tracker
you created, the number will be 1, in which case you will find you can now get the corresponding
objects throughout time:
```python
particles_step_832 = tangos.get_item("tutorial_changa/%832/tracker_1").load()
```
In the example above, tangos returns the corresponding particles at step 832. To be clear,
that's not necessarily the particles that exceed the threshold density at step 832 – it's the
particles that will end up satisfying the criterion at our original step 960.

The normal use for trackers is in conjunction with `tangos write`: we can now use the
tracked particles pretty much like any halo, as follows.

Calculating properties for trackers
-----------------------------------

Let's calculate the mean gas density for the tracked particles across time. For this
we leave the python session and return to the UNIX shell. Run:

```
tangos write mean_rho --for tutorial_changa --type tracker
```
Here,
 * `tangos write` is the standard command used in the earlier [tutorial](first_steps_changa+ahf.md)
 * `mean_rho` is a simple built-in property that calculates the mean density of the tracked region in
   proton masses per cm^3.
   Of course, the real power is in being able to define your [own properties](custom_properties.md), but this will do for now.
   You do not need to make any modifications to properties to make them work with trackers; _tangos_ takes
   responsibility for figuring out and passing in the tracked particles to your calculation.
 * `--type tracker` tells _tangos_ to calculate for trackers rather than regular halos

Check the results
-----------------

Finally, let's check the results. This can be done from the web interface (where trackers appear next
to the main halo list) or in python as follows:

```python
import tangos, pylab
time, rho = tangos.get_halo("tutorial_changa/%960/tracker_1").calculate_for_progenitors("t()","mean_rho")
pylab.plot(time,rho)
```

repository: pynbody/tangos

gha_language: Python

repo_name: pynbody/tangos


text:
# HTTP Client

HalExplorer does not come with a HTTP Client baked in. This gives the user
the most flexibility to utilize the most appropriate HTTP client for their
situation.

Whatever client is used must use an adapter to proxy the HTTP requests to the
client. Examine `HalExplorer/ClientAdapters/AdapterInterface` for more
information.

All HTTP Clients used *MUST* return [PSR-7][1] responses in order to work with
HalExplorer.

That being said, HalExplorer was built with `guzzlehttp/guzzle` in mind
and the default adapter works wonderfully with that package.

```php
// Using the default adapter with Guzzle 6
use GuzzleHttp\Client;
use HalExplorer\ClientAdapters\Adapter;

$client = new Client();
$adapter = new Adapter();

$adapter->setClient($client);
```

##Custom `ClientAdapter`

Feel free to create your own adapter for your favorite HTTP Client.
Adapters must implement `HalExplorer\ClientAdapters\AdapterInterface`.

All adapter methods will receive the resource endpoint and an array of options
to pass along to the HTTP client. Internally these options come formatted as a
[guzzle request options][0] array. Adapters should modify this as needed to fit
the needs of their particular HTTP Client.

[0]: http://guzzle.readthedocs.org/en/latest/request-options.html
[1]: http://www.php-fig.org/psr/psr-7

repository: Jmeyering/hal-explorer

gha_language: PHP

repo_name: Jmeyering/hal-explorer


text:
# Godot Command
An implementation of the [Command pattern](http://gameprogrammingpatterns.com/command.html), designed as a module for the Godot engine.


text:
# Change Log

## [1.0.6](https://github.com/grtjn/mlvagrant/tree/1.0.6) (2019-07-01)
[Full Changelog](https://github.com/grtjn/mlvagrant/compare/1.0.5...1.0.6)

**Implemented enhancements:**

- MarkLogic 9.0-4 has separate Converters installer [\#122](https://github.com/grtjn/mlvagrant/issues/122)
- Support MarkLogic 10 [\#135](https://github.com/grtjn/mlvagrant/issues/135)
- Remove bower, tomcat and other things that should not be running alongside MarkLogic on the same VM [\#134](https://github.com/grtjn/mlvagrant/issues/134)
- Upgrade to LTS Node v10  [\#133](https://github.com/grtjn/mlvagrant/issues/133)
- Add pm2-logrotate to pm2 install [\#130](https://github.com/grtjn/mlvagrant/issues/130)
- Add centos-6.9 and centos-7.3 baseboxes [\#115](https://github.com/grtjn/mlvagrant/issues/115)
- Upgrading/installing git 2 [\#108](https://github.com/grtjn/mlvagrant/issues/108)

**Fixed bugs:**

- Trying to install ML 9.0-9 failed dependency [\#132](https://github.com/grtjn/mlvagrant/issues/132)
- VMs don't attempt to prevent clock skew [\#127](https://github.com/grtjn/mlvagrant/issues/127)
- Upgrade Vagrant wipes out /opt/vagrant directory [\#126](https://github.com/grtjn/mlvagrant/issues/126)
- Trying to install MarkLogicConverters-9.0-5.x86\_64 fails - missing libs [\#125](https://github.com/grtjn/mlvagrant/issues/125)
- re: CentOS 7.3,  vagrant up hangs on SSH step [\#124](https://github.com/grtjn/mlvagrant/issues/124)
- Attempting Install and Reinstall Throwing Lots of Errors \(See log\) [\#123](https://github.com/grtjn/mlvagrant/issues/123)
- Centos-7.3 connection timeout [\#116](https://github.com/grtjn/mlvagrant/issues/116)

**Closed issues:**

- Upgrade to LTS Node v8 [\#121](https://github.com/grtjn/mlvagrant/issues/121)
- Add TOC at top of README [\#117](https://github.com/grtjn/mlvagrant/issues/117)

**Merged pull requests:**

- Prevent clockskew [\#120](https://github.com/grtjn/mlvagrant/pull/120) ([Audarth](https://github.com/Audarth))

## [1.0.5](https://github.com/grtjn/mlvagrant/tree/1.0.5) (2017-06-26)
[Full Changelog](https://github.com/grtjn/mlvagrant/compare/1.0.4...1.0.5)

**Implemented enhancements:**

- Setup of pm2 startup script on Centos/RH 7 [\#114](https://github.com/grtjn/mlvagrant/issues/114)
- Reloading MarkLogic [\#112](https://github.com/grtjn/mlvagrant/issues/112)
- Upgrade NodeJS [\#100](https://github.com/grtjn/mlvagrant/issues/100)
- Dynamically search ML installers [\#53](https://github.com/grtjn/mlvagrant/issues/53)

**Fixed bugs:**

- Cannot use links for resource folders [\#113](https://github.com/grtjn/mlvagrant/issues/113)

## [1.0.4](https://github.com/grtjn/mlvagrant/tree/1.0.4) (2017-05-12)
[Full Changelog](https://github.com/grtjn/mlvagrant/compare/1.0.3...1.0.4)

**Fixed bugs:**

- Update Vagrantfile to stop vagrant-vbguest from auto-installing guestadditions [\#111](https://github.com/grtjn/mlvagrant/issues/111)
- Vagrant still not working optimal with vbox 5.1? [\#106](https://github.com/grtjn/mlvagrant/issues/106)

**Merged pull requests:**

- Git should ignore software .vagrant directories [\#109](https://github.com/grtjn/mlvagrant/pull/109) ([vladistan](https://github.com/vladistan))

## [1.0.3](https://github.com/grtjn/mlvagrant/tree/1.0.3) (2016-11-25)
[Full Changelog](https://github.com/grtjn/mlvagrant/compare/1.0.2...1.0.3)

**Implemented enhancements:**

- Upgrade to latest ML installers.. [\#102](https://github.com/grtjn/mlvagrant/issues/102)

**Fixed bugs:**

- hostmanager fails on centos-7.2 basebox [\#105](https://github.com/grtjn/mlvagrant/issues/105)
- Vagrant provision failing on VirtualBox 5.1.6 [\#103](https://github.com/grtjn/mlvagrant/issues/103)
- Issues mounting folders with VBox 5.1 [\#101](https://github.com/grtjn/mlvagrant/issues/101)
- Centos 7.1/7.2 vm issues [\#98](https://github.com/grtjn/mlvagrant/issues/98)

**Closed issues:**

- Increasing disk space beyond the Bento basebox default of 40Gb [\#90](https://github.com/grtjn/mlvagrant/issues/90)
- Check out Vagrant 1.8 and Otto project [\#86](https://github.com/grtjn/mlvagrant/issues/86)
- File download aborts, vagrant up cannot continue [\#84](https://github.com/grtjn/mlvagrant/issues/84)
- Document how to change mem/cpu [\#83](https://github.com/grtjn/mlvagrant/issues/83)

## [1.0.2](https://github.com/grtjn/mlvagrant/tree/1.0.2) (2016-09-09)
[Full Changelog](https://github.com/grtjn/mlvagrant/compare/1.0.1...1.0.2)

**Implemented enhancements:**

- Add pm2 init to bootstrapping [\#97](https://github.com/grtjn/mlvagrant/issues/97)
- Add support for ML9 EA2 [\#95](https://github.com/grtjn/mlvagrant/issues/95)
- Add httpd install to bootstrapping [\#92](https://github.com/grtjn/mlvagrant/issues/92)
- Add comments on Proxying to README [\#82](https://github.com/grtjn/mlvagrant/issues/82)
- Add support for ssl and ldap cmd [\#76](https://github.com/grtjn/mlvagrant/issues/76)

**Fixed bugs:**

- Setting static IP Address in clustered configuration [\#99](https://github.com/grtjn/mlvagrant/issues/99)

**Merged pull requests:**

- Add network proxy configuration settings [\#96](https://github.com/grtjn/mlvagrant/pull/96) ([jongiddy](https://github.com/jongiddy))

## [1.0.1](https://github.com/grtjn/mlvagrant/tree/1.0.1) (2016-04-12)
[Full Changelog](https://github.com/grtjn/mlvagrant/compare/1.0.0...1.0.1)

**Implemented enhancements:**

- Add support for ML9 [\#91](https://github.com/grtjn/mlvagrant/issues/91)
- Upgrade install to ML 8.0-4 [\#88](https://github.com/grtjn/mlvagrant/issues/88)
- Create/copy Bento CentOS 7.2 box [\#87](https://github.com/grtjn/mlvagrant/issues/87)
- Add support for unzip [\#81](https://github.com/grtjn/mlvagrant/issues/81)

**Fixed bugs:**

- First time backup-cache fails [\#79](https://github.com/grtjn/mlvagrant/issues/79)
- Checking if box 'chef/centos-6.5' is up to date: 404 Not Found [\#68](https://github.com/grtjn/mlvagrant/issues/68)

**Merged pull requests:**

- Bump Marklogic version to 8.0.4 [\#94](https://github.com/grtjn/mlvagrant/pull/94) ([vladistan](https://github.com/vladistan))

## [1.0.0](https://github.com/grtjn/mlvagrant/tree/1.0.0) (2015-09-08)
**Implemented enhancements:**

- Make bootstrap run on CentOS 5 [\#74](https://github.com/grtjn/mlvagrant/issues/74)
- Don't do full update, and dev tools by default [\#73](https://github.com/grtjn/mlvagrant/issues/73)
- Republish bento base boxes [\#71](https://github.com/grtjn/mlvagrant/issues/71)
- Chef boxes no longer available [\#67](https://github.com/grtjn/mlvagrant/issues/67)
- Make sure VAGRANT\_DOTFILE\_PATH is set correctly [\#63](https://github.com/grtjn/mlvagrant/issues/63)
- Allow public network as option [\#62](https://github.com/grtjn/mlvagrant/issues/62)
- Add dev tools installation [\#61](https://github.com/grtjn/mlvagrant/issues/61)
- Add examples of all settings to project.properties [\#60](https://github.com/grtjn/mlvagrant/issues/60)
- Suppress unnecessary NPM output [\#59](https://github.com/grtjn/mlvagrant/issues/59)
- Support for chef/centos7.0 [\#51](https://github.com/grtjn/mlvagrant/issues/51)
- Improve restart check [\#50](https://github.com/grtjn/mlvagrant/issues/50)
- Option to use internal network instead public for clusters [\#45](https://github.com/grtjn/mlvagrant/issues/45)
- Upgrade to ML 6.0-6 and 7.0-5.2 [\#44](https://github.com/grtjn/mlvagrant/issues/44)
- Update to support ML 7.0-5.1 and 8.0-3 [\#40](https://github.com/grtjn/mlvagrant/issues/40)
- Make installer names configurable [\#39](https://github.com/grtjn/mlvagrant/issues/39)
- Upgrade install to ML 7.0-5 and MLCP 1.2-4 [\#36](https://github.com/grtjn/mlvagrant/issues/36)
- Git post-receive hook needs to be improved [\#32](https://github.com/grtjn/mlvagrant/issues/32)
- Upgrade install to ML 8.0-2 and MLCP 1.3-2 [\#31](https://github.com/grtjn/mlvagrant/issues/31)
- Make VM names customizable [\#25](https://github.com/grtjn/mlvagrant/issues/25)
- Consider switching to private\_network as default [\#24](https://github.com/grtjn/mlvagrant/issues/24)
- Make mem and cpus easier to customize [\#23](https://github.com/grtjn/mlvagrant/issues/23)
- Make installation of things like tomcat optional [\#22](https://github.com/grtjn/mlvagrant/issues/22)
- Update ML and MLCP versions [\#20](https://github.com/grtjn/mlvagrant/issues/20)
- Allow running bootstrap scripts outside mlvagrant as well [\#17](https://github.com/grtjn/mlvagrant/issues/17)
- Support project-specific licences [\#16](https://github.com/grtjn/mlvagrant/issues/16)
- Support for command-line params and a project.properties [\#15](https://github.com/grtjn/mlvagrant/issues/15)
- Add latest version of ML8 EA and MLCP 1.3 EA [\#12](https://github.com/grtjn/mlvagrant/issues/12)
- Install tomcat [\#11](https://github.com/grtjn/mlvagrant/issues/11)
- setup-ml scripts only support v7+ [\#9](https://github.com/grtjn/mlvagrant/issues/9)
- Filename of rpm files are "hardcoded" in install-ml-CentOS.sh [\#8](https://github.com/grtjn/mlvagrant/issues/8)
- Automate replication of built-in databases [\#7](https://github.com/grtjn/mlvagrant/issues/7)
- Install latest ML versions [\#3](https://github.com/grtjn/mlvagrant/issues/3)
- Copy yum cache between VMs to speed up download [\#2](https://github.com/grtjn/mlvagrant/issues/2)

**Fixed bugs:**

- Yum cache multiplied at backup/restore to/from host [\#75](https://github.com/grtjn/mlvagrant/issues/75)
- Line-ends in .properties causing trouble on Windows [\#70](https://github.com/grtjn/mlvagrant/issues/70)
- /vagrant/project.properties: no such file or directory [\#66](https://github.com/grtjn/mlvagrant/issues/66)
- dependency warnings on provision - cluster not configured [\#65](https://github.com/grtjn/mlvagrant/issues/65)
- cp: cannot stat `/space/software/yum' [\#64](https://github.com/grtjn/mlvagrant/issues/64)
- no implicit conversion of nil into String \(TypeError\) [\#57](https://github.com/grtjn/mlvagrant/issues/57)
- /usr/local/bin/vagrant: No such file or directory [\#56](https://github.com/grtjn/mlvagrant/issues/56)
- yum write permissions [\#55](https://github.com/grtjn/mlvagrant/issues/55)
- Tomcat error when running vagrant provision [\#54](https://github.com/grtjn/mlvagrant/issues/54)
- Make sure scripts still run stand-alone [\#52](https://github.com/grtjn/mlvagrant/issues/52)
- Make script names have consistent case [\#48](https://github.com/grtjn/mlvagrant/issues/48)
- Install tomcat error [\#47](https://github.com/grtjn/mlvagrant/issues/47)
- http://download-i2.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm is not valid anymore [\#43](https://github.com/grtjn/mlvagrant/issues/43)
- Gulp and Bower not installing [\#30](https://github.com/grtjn/mlvagrant/issues/30)
- Ignore network domain suffix in hostname [\#14](https://github.com/grtjn/mlvagrant/issues/14)
- Install java [\#10](https://github.com/grtjn/mlvagrant/issues/10)
- MLCP script wrong zip name [\#1](https://github.com/grtjn/mlvagrant/issues/1)

**Closed issues:**

- Document how to use bootstrap scripts outside Vagrant [\#72](https://github.com/grtjn/mlvagrant/issues/72)
- Document usage of hostmanager command [\#33](https://github.com/grtjn/mlvagrant/issues/33)
- Describe how to scale up and down [\#19](https://github.com/grtjn/mlvagrant/issues/19)
- Add latest features to docs [\#18](https://github.com/grtjn/mlvagrant/issues/18)
- Provide Windows-specific instructions [\#13](https://github.com/grtjn/mlvagrant/issues/13)
- Add a Contributing.md [\#6](https://github.com/grtjn/mlvagrant/issues/6)
- Document required license, and how to change [\#4](https://github.com/grtjn/mlvagrant/issues/4)

**Merged pull requests:**

- \#39 - Defined configurable properties for ML installer and MLCP insta… [\#49](https://github.com/grtjn/mlvagrant/pull/49) ([daveegrant](https://github.com/daveegrant))
- Added additional parameters to support synced folder and ip-adress [\#42](https://github.com/grtjn/mlvagrant/pull/42) ([mstellwa](https://github.com/mstellwa))
- PR for Issue \#40 - Adding Support for ML 8.0-3 and MLCP 1.3-3 [\#41](https://github.com/grtjn/mlvagrant/pull/41) ([daveegrant](https://github.com/daveegrant))
- Updates to use latest version of ML 7 and MLCP. [\#37](https://github.com/grtjn/mlvagrant/pull/37) ([daveegrant](https://github.com/daveegrant))
- Upgrade to MarkLogic 8.0-2 [\#35](https://github.com/grtjn/mlvagrant/pull/35) ([patrickmcelwee](https://github.com/patrickmcelwee))
- Fixes for \#30 and \#13 [\#34](https://github.com/grtjn/mlvagrant/pull/34) ([daveegrant](https://github.com/daveegrant))
- Fixed case sensitivy problem with provision script [\#27](https://github.com/grtjn/mlvagrant/pull/27) ([vladistan](https://github.com/vladistan))
- Fixed up handling of project.properties file [\#26](https://github.com/grtjn/mlvagrant/pull/26) ([vladistan](https://github.com/vladistan))

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

repository: grtjn/mlvagrant

gha_language: Shell

repo_name: grtjn/mlvagrant


text:
# dbus-sensors

dbus-sensors is a collection of sensor applications that provide the
xyz.openbmc_project.Sensor collection of interfaces. They read sensor values
from hwmon, d-bus, or direct driver access to provide readings. Some advance
non-sensor features such as fan presence, pwm control, and automatic cpu
detection (x86) are also supported.

## key features

- runtime re-configurable from d-bus (entity-manager or the like)

- isolated: each sensor type is isolated into its own daemon, so a bug in one
  sensor is unlikely to affect another, and single sensor modifications are
  possible

- async single-threaded: uses sdbusplus/asio bindings

- multiple data inputs: hwmon, d-bus, direct driver access

## dbus interfaces

A typical dbus-sensors object support the following dbus interfaces:

```
Path        /xyz/openbmc_project/sensors/<type>/<sensor_name>

Interfaces  xyz.openbmc_project.Sensor.Value
            xyz.openbmc_project.Sensor.Threshold.Critical
            xyz.openbmc_project.Sensor.Threshold.Warning
            xyz.openbmc_project.State.Decorator.Availability
            xyz.openbmc_project.State.Decorator.OperationalStatus
            xyz.openbmc_project.Association.Definitions

```

Sensor interfaces collection are described
[here](https://github.com/openbmc/phosphor-dbus-interfaces/tree/master/yaml/xyz/openbmc_project/Sensor).

Consumer examples of these interfaces are
[Redfish](https://github.com/openbmc/bmcweb/blob/master/redfish-core/lib/sensors.hpp),
[Phosphor-Pid-Control](https://github.com/openbmc/phosphor-pid-control),
[IPMI SDR](https://github.com/openbmc/phosphor-host-ipmid/blob/master/dbus-sdr/sensorcommands.cpp).

## Reactor

dbus-sensor daemons are [reactors](https://github.com/openbmc/entity-manager)
that dynamically create and update sensors configuration when system
configuration gets updated.

Using asio timers and async calls, dbus-sensor daemons read sensor values and
check thresholds periodically. PropertiesChanged signals will be broadcasted for
other services to consume when value or threshold status change. OperationStatus
is set to false if the sensor is determined to be faulty.

A simple sensor example can be found
[here](https://github.com/openbmc/entity-manager/blob/master/docs/my_first_sensors.md).

## configuration

Sensor devices are described using Exposes records in configuration file. Name
and Type fields are required. Different sensor types have different fields.
Refer to entity manager
[schema](https://github.com/openbmc/entity-manager/blob/master/schemas/legacy.json)
for complete list.

## sensor documentation

- [ExternalSensor](https://github.com/openbmc/docs/blob/master/designs/external-sensor.md)
  virtual sensor

repository: openbmc/dbus-sensors

repo_name: openbmc/dbus-sensors


text:
Given two words *word1* and *word2*, find the minimum number of steps required to make *word1* and *word2* the same, where in each step you can delete one character in either string.

**Example 1:**

Input: "sea", "eat"
Output: 2
Explanation: You need one step to make "sea" to "ea" and another step to make "eat" to "ea".

**Note:**

 1. The length of given words won't exceed 500.
 2. Characters in given words can only be lower-case letters.

### [Editorial](https://leetcode.com/articles/delete-operation-for-two-strings/)

repository: liupangzi/codekata

repo_name: liupangzi/codekata


text:
# Install PECL/PEAR Extension
- install php (from package manager or compile from source)
    - make sure you have 'php' and 'phpize' executable in PATH (check with command: `which php` and `which phpize`)
- install pear
    - `wget http://pear.php.net/go-pear.phar`
    - `php go-pear.phar`
    - you will be asked (interactive terminal) on where to install
    - follow instruction in interactive terminal
    - add the installation ./bin directory to PATH
    - check if installation successful: `which pear` and `which pecl`
- install `autoconf` (use package manager)
- install package: `pecl install xdebug`
- include installed extension in php.ini
- use proxy: `pear config-set http_proxy http://localhost:3128`

## Example
- xdebug
    - latest package: `pecl install xdebug`
    - certain version: `pecl install xdebug-3.1.6` (for example for php-7.4)
- memcached
    - install dependency: `apt install libmemcached-dev`
    -

repository: Kristian-Tan/notes

path: /php/Install pecl-pear extension.md

filename: Install pecl-pear extension.md

repo_name: Kristian-Tan/notes


text:
# SixDegreesOfNetflix

Inspired by [Six Degrees of Kevin Bacon](https://en.wikipedia.org/wiki/Six_Degrees_of_Kevin_Bacon). Given two actors, the app will tell you the relationship path between them. For example, when giving Johnny Depp and Tom Cruise, you may get

* Johnny Depp acted in Fear and Loathing in Las Vegas with Cameron Diaz
* Cameron Diaz acted in Vanilla Sky with Tom Cruise

The data comes from the  [The Movie Database](https://www.themoviedb.org)'s API so the results will only be as good as their data set. Additionally, the data is loaded into a database at the point that a user submits the form with the two actors. Because of that, I explicitly limit the number of requests to the API so that they aren't DOS'd on accident. Keep this in mind if the results aren't quite accurate or when you notice that loading the page takes a long time :)

This app was mostly developed so I could learn about the [CosmosDB Graph API](https://docs.microsoft.com/en-us/azure/cosmos-db/graph-introduction), [NSubstitute](http://nsubstitute.github.io/), and [ASP.Net Core](https://docs.microsoft.com/en-us/aspnet/core/).

## Development

### TMDB

This project requires an API key from [The Movie Database](https://www.themoviedb.org).

1. Register for TMDB and request API access.
2. Find the **version 3** API key in your account settings.
3. Create an environment variable named _TmdbV3ApiKey_ and set its value to your version 3 API key.

### Cosmos DB

This project uses CosmosDB as the data store.

1. Install and start the CosmosDB emulator by following [these instructions](https://docs.microsoft.com/en-us/azure/cosmos-db/local-emulator).
2. Open the solution in Visual Studio 2017. Your mileage may vary with other development environments (Rider, VSCode).
3. Run the integration tests. This will create a database and a test collection if everything is working correctly.
4. Run the website. This will create the database if it doesn't already exist and also the collection.
5. Put in Tom Cruise and Cameron Diaz. You'll see that they worked together on Vanilla Sky.

## Contributing

Pull requests are welcome, if unlikely :-).

repository: nelsonwellswku/SixDegreesOfNetflix

branch_name: refs/heads/dev

repo_name: nelsonwellswku/SixDegreesOfNetflix


text:
---
# Documentation: https://sourcethemes.com/academic/docs/managing-content/

title: "The Best Bad Dream"
summary: ""
authors: []
tags: [Books]
categories: []
date: 2012-07-17T21:15:53-04:00

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

# Featured image
# To use, add an image named `featured.jpg/png` to your page's folder.
# Focal points: Smart, Center, TopLeft, Top, TopRight, Left, Right, BottomLeft, Bottom, BottomRight.
image:
  caption: ""
  focal_point: ""
  preview_only: false

# Custom links (optional).
#   Uncomment and edit lines below to show custom links.
links:
- name: Buy on Amazon
  url: https://www.amazon.com/Best-Bad-Dream-Robert-Ward-ebook/dp/B006T9BHKS
  icon_pack: fab
  icon: amazon

url_code: ""
url_pdf: ""
url_slides: ""
url_video: ""

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

A fed’s debt to a sexy snitch leads to a darkly funny nightmare of double-crosses and sinister motives.

All FBI Agent Jack Harper wants is a heavenly vacation in Baja: sand, surf, and fishing. Then he gets a phone call from hell: it’s his for-lack-of-a-better-word girlfriend, Michelle Wu. The hot con-artist, and irresistible chop-shop queen needs Jack’s help in finding her kidnapped sister, a nurse working a posh Taos health spa for seniors. Michelle’s got an idea who’d gain from it: a biker she wronged who’s got a rotten sweet tooth for revenge. But Jack must be nuts to think the case would end with a homicidal gang called Sons of Satan. It’s just beginning, and where it leads Jack, his partner Oscar Hidalgo, and Michelle is down a dark road with so many sharp turns and twists it could snap a neck.

So buckle up for The Best Bad Dream by the PEN West prize-winning “heir to the pulp fiction tradition” (BookReporter.com). And we dare you: “Name another novel that starts out with New Age satire and winds up with a bizarro oldster version of Texas Chainsaw Massacre. Ward’s no-holds-barred style and fevered imagination will . . . hit the spot for a special kind of bent reader” (Booklist).

repository: rwward/rmw-site

repo_name: rwward/rmw-site


text:
# Git.Interview

## Description
```
GIT.Interview is a web-application that helps developers prepare for interview questions.
The user can search topic of interest, create an account in our website and post new questions and answers.
This is an application that utilizes Passport authentication, Express and Sequelize.
```
## Table of Content
 1. [Usage](#usage)
 2. [Technology](#technology)
 3. [Installation](#installation)
 4. [Links](#links)
 5. [Image](#image)
 6. [Contribution](#contribution)
 7. [Licence](#licence)
 8. [Questions](#questions)

## Usage
```
As a developer
I want to prep for future interviews,
By having quick access to popular interview questions, along with different solutions.
As a user, I want to be able to vote on which solution is most helpful.

```
## Technology
   This application was built with:
   * JavaScript
   * Node.js
   * Express
   * Handlebars
   * Sequelize
   * MySQL
   * Heroku
   * HTML
   * Bootstrap
   * Color Adobe
   * Hatchful
   * email-validator
   * Passport Authentication
   * eslint
   * bcryptjs

## Installation
   * Make sure you have node installed in your machine and have cloned this repo.
   * Run : ```npm install``` in order to install all dependencies
   * Run : ```node server.js``` and the application will start
   * Navigate to the localhost port: http://localhost:8080 in the browser.

## Links
   * Deployed Link: https://git-interview21.herokuapp.com/
   * Repo Link:     https://github.com/MSU-developmentTeam/Git.Interview

## Image
![Git.Interview](/public/assets/Images/Screenshots/main-page.png)

## Contribution
   * Enxhi Salaj
   * Pierce Rogg
   * Marlee Eyre
   * Sam Bishop
   * Alex Tatum.
   * Muneeb Ali

## Licence
![License badge](https://img.shields.io/badge/license-MIT-green)

## Questions
    * If you have any questions, email any memmber of the development team at:
    Enxhi<EMAIL_ADDRESS>    Pierce<EMAIL_ADDRESS>    Marlee<EMAIL_ADDRESS>    Sam<EMAIL_ADDRESS>    Alex<EMAIL_ADDRESS>    Muneeb<EMAIL_ADDRESS>


text:
# KuramotoSim

The Kuramoto model is able to describe a huge variety of examples of synchronization in the real world. We re-consider it through the framework of the network science and study the phenomenon of a particular interest, agent clustering.
We propose a framework, which is able to describe clusterization in systems of intelligent agents given their outputs.
The current repository consists of simulation environments, which implement the framework and visualize dynamics of a system based on the local communication protocol and the topology of connections.

Run `MathematicsMPDI_simulator2.ipynb` to obtain the most recent results.

Check our papers: https://link.springer.com/chapter/10.1007%2F978-3-030-59535-7_35
and https://www.mdpi.com/2227-7390/9/1/22

repository: denisuzhva/KuramotoSim

repo_name: denisuzhva/KuramotoSim


text:
# Face Recognition
## Features

#### Find faces in pictures

Find all the faces that appear in a picture:

![](https://cloud.githubusercontent.com/assets/896692/23625227/42c65360-025d-11e7-94ea-b12f28cb34b4.png)

```python
import face_recognition
image = face_recognition.load_image_file("your_file.jpg")
face_locations = face_recognition.face_locations(image)
```

#### Find and manipulate facial features in pictures

Get the locations and outlines of each person's eyes, nose, mouth and chin.

![](https://cloud.githubusercontent.com/assets/896692/23625282/7f2d79dc-025d-11e7-8728-d8924596f8fa.png)

```python
import face_recognition
image = face_recognition.load_image_file("your_file.jpg")
face_landmarks_list = face_recognition.face_landmarks(image)
```

Finding facial features is super useful for lots of important stuff.


text:
# sorter-analytics

A Google Cloud Function project for ingesting character sorter results into a
BigQuery database.

## Format

## POST Payload format

The input format payload is a JSON object with two values: of a source to match
the paylod to, and and ordered JSON array of results. The results should be
ordered in descending order, with rank 1 in the sorter coming first in the array.

```json
{
  "source": "touhou",
  "results": [
    "Hakurei Reimu",
    "Remilia Scarlet",
    "Yakumo Yukari",
  ]
}
```

## Storage Format

On Google BigQuery's end, sorters are stored in a singular table with the
following columns:

|Column|Type|Mode|Description
|:--|:--|:--|:--|
|`source`|STRING|Required|Which dataset the sorter derived from.|
|`created`|DATETIME|Required|The date the sorter was created|
|`results`|INTEGER|Repeated|The hashed IDs of every entry that was input.|

**ID Format**: To save space in storing the results, the string inputs are hashed
using [xxHash-64](https://github.com/Cyan4973/xxHash) to produce a 64-bit integer
ID. These IDs are not expected to be transferable or matchable across multiple
datasets. For all intents and purposes of this project, no source should contain
enough elements for the resultant 64-bit hash to see serious issues with hash
collisions.

## Adding additional sources

This ingest function performs input vallidation based on known datasets. To add
additional, add a new file under `sources/` with a list of all of the expected
names, one per line.

**Supported Sources**

 * `touhou`: https://github.com/execfera/charasort

## Development

This project requires the Google Cloud SDK to be installed and uses Python 3.7.1.

To set up a development enviroment, it is suggested to use virtualenv to help
manage packages.

```bash
# Install Google Cloud SDK
sudo apt-get install google-cloud-sdk

# Clone the project
git clone https://github.com/james7132/sorter-analytics
cd sorter-analytics

# Create a virtualenv for the project
virtualenv -p python3 venv
source venv/bin/activate

# Install dependencies
pip install -r requirements.txt
```


text:
---
layout: default
---

# 1993-10-03 - Re: ITAR: Business?

## Header Data

From<EMAIL_ADDRESS>To<EMAIL_ADDRESS>Message Hash: 974d7b3b76769799d3968f173b3b11be739ff02c4fa3ac4be1a375f1d4d3b7fb

Message ID<EMAIL_ADDRESS>Reply To: _N/A_

UTC Datetime: 1993-10-03 14:54:32 UTC

Raw Date: Sun, 3 Oct 93 07:54:32 PDT

## Raw message

```
{% raw  %}From<EMAIL_ADDRESS>Date: Sun, 3 Oct 93 07:54:32 PDT
To<EMAIL_ADDRESS>Subject: Re: ITAR: Business?
Message-ID<EMAIL_ADDRESS>MIME-Version: 1.0
Content-Type: text/plain

>P.S. Heard on the news about how Syria is flooding us with near-perfect
>counterfeit $100's? Complete with magnetic ink and security strip. Treasury
>is scared green, and the CIA is helping to stop it. We need digicash now!

Where did you hear of this?

-------------------------------------------------------------------------
To find out more about the anon service, send mail to<EMAIL_ADDRESS>Due to the double-blind, any mail replies to this message will be anonymized,
and an anonymous id will be allocated automatically. You have been warned.
Please report any problems, inappropriate use etc. to<EMAIL_ADDRESS>

{% endraw %}
```

## Thread

+ Return to [October 1993](/archive/1993/10)

+ Return to "[an36440@anon.penet.fi](/authors/an36440_at_anon_penet_fi)"

+ 1993-10-03 (Sun, 3 Oct 93 07:54:32 PDT) - Re: ITAR: Business? -<EMAIL_ADDRESS>


text:
# Release procedure

This document describes how to create a new SHOGun2 release. The process assumes
you want to deploy from a linux machine.

## Prerequisites (only once)

* Create a PGP signature and distribute your public key as described in the
  [sonatype documentation](http://central.sonatype.org/pages/working-with-pgp-signatures.html)

* Set up SSH access to GitHub as described on the
  [GitHub help page](https://help.github.com/articles/generating-ssh-keys/)

* Adjust and add the following block to your local maven `settings.xml`
  (typically in `~/.m2/settings.xml`):

```xml
<settings>
  <servers>
      <server>
          <id>ossrh</id>
          <username>shogun2</username>
          <password>{{CAN_BE_REQUESTED}}</password>
      </server>
  </servers>
  <profiles>
      <profile>
          <id>ossrh</id>
          <activation>
              <activeByDefault>true</activeByDefault>
          </activation>
          <properties>
              <gpg.executable>gpg</gpg.executable>
              <gpg.keyname>{{GPG_KEYNAME}}</gpg.keyname>
              <gpg.passphrase>{{GPG_PASSPHRASE}}</gpg.passphrase>
          </properties>
      </profile>
  </profiles>
</settings>
```

## Release process (for every release)

### Update source files

* In the `src` directory of a clone of **your** SHOGun2 fork.

* Checkout the latest `master` branch and update it with the latest form the
  canonical upstream repository
  ```bash
  $ git checkout master
  $ git pull https://github.com/terrestris/shogun2.git master
  ```

* The command `git status` should report that the working directory is clean.

### Run `./release.sh`

* Run the utility script `release.sh` from a terminal. Provide two arguments,
  the version identifier for the version you are about to release and another
  one for the next development cycle. E.g. if you want to release version
  `0.0.7`, the command would read:
  ```bash
  # in the scripts/ directory
  $ ./release.sh "0.0.7" "0.0.8-SNAPSHOT"
  ```

* The script will ask you for final confirmation before it does the real release
  work. Behind the scenes it will create git commits and tags, push them and
  also push generated and signed release artifacts to sonatype.
  * if you are asked to confirm the authenticity of a host, do so
  * you usually shouldn't be prompted for any passwords.

* If everything went well, one of the final lines in the terminal should read
  `BUILD SUCCESS`. Additionally (currently 4) new commits should show up on the
  canonical repository: https://github.com/terrestris/shogun2/commits/master. They
  should be made under your identity and the messages should all start with
  `[maven-release-plugin]`. The `tags`-page over at github should list a new
  tag for your version, e.g. `v0.0.7`.

### Move artifacts on sonatype

* There is only one final step needed: We have to manually move the deployed
  artifacts from the sonatype staging area to the release area. We *could*
  automate this, but decided against this so we have an additional sanity-check.

* Open https://oss.sonatype.org/ and login as user `shogun2` (password on
  request).
  * Go to `Staging Repositories` in the `Build Promotion` section.
  * Scroll down the list on the right until you see a repository named
    `deterrestris-xxxx`. If you see two or more repositories, you may
    have been uploading with changing IPs. Make sure you use a single
    IP to upload all files.
  * Find the repository you created by clicking the repository row and
    examining the details. Look at the `Owner` property. If the listed
    IP-address matches your IP, you found the correct repo.
  * Once you have selected the correct row, click the `Close`-button at the
    top-toolbar. A window to confirm the task will open. Add a short
    description: e.g. `Release v0.0.7`, and then click the `Confirm`-button.
  * Once confirmed, sonatype does some background work for the release. We can
    continue once all checks for the repository have passed (To see these, just
    select the row of the correct repository). Once all checks have passed, the
    `Release`-button in the upper toolbar will enabled / clickable.
  * Select the correct repository and click the `Release`-button.
  * Another window will pop up asking for confirmation. Enter a comment like
    above and click `Confirm`. The checkbox for `Automatically Drop` can be
    left checked.
  * If everything went well (and some time has passed), the repository should
    no longer be listed in the grid of `Staging Repositories`.
  * You can check if the release was successful by searching in the `Artifact
    Search` for `de.terrestris`; all artifacts (currently 10) should list the
    just released version.

### Release an already tagged version

* If you accidentally used multiple IPs or something else went wrong
  during the release, you can perform the following steps to release
  an already tagged version:
  * Check out the tag: `git checkout vx.y.z`
  * Build and upload the artifacts: `mvn clean install deploy -P release-artifact`
  * Repeat the steps described above on https://oss.sonatype.org/

### That's it…

* …it will take some time for the new release to show up on the following sites:

  * http://mvnrepository.com/artifact/de.terrestris/shogun2
  * http://search.maven.org/#search%7Cga%7C1%7Cg%3A%22de.terrestris%22

repository: jansule/shogun-core

repo_name: jansule/shogun-core


text:
CorrugatedIron - a .NET client for Riak
=======================================

**CorrugatedIron** is a .NET library which makes it easy to communicate with [Riak](http://riak.basho.com/), [Basho](http://www.basho.com/)'s fault-tolerante, distributed KV store.

The easiest way to get hold of it is to install the [Nuget package](http://www.nuget.org/Packages/CorrugatedIron/).

Travis-CI Build Status
----------------------

* Master: [![Branch: master](https://travis-ci.org/DistributedNonsense/CorrugatedIron.png?branch=master)](https://travis-ci.org/DistributedNonsense/CorrugatedIron)
* Develop: [![Branch: develop](https://travis-ci.org/DistributedNonsense/CorrugatedIron.png?branch=develop)](https://travis-ci.org/DistributedNonsense/CorrugatedIron)

Authors
-------

* [OJ Reeves](http://buffered.io)
* [Jeremiah Peschka](http://facility9.com/)

Documentation
-------------

Documentation for the project can be found on the [project website](http://corrugatediron.org/).

Release Notes
-------------

Please see the [Release Notes](RELEASE_NOTES.md) document.

License
-------

**CorrugatedIron** is Open Source software released under the Apache 2.0 License.
Please see the [LICENSE](http://corrugatediron.org/LICENSE.txt) file for full license details.

repository: alexmoore/CorrugatedIron

repo_name: alexmoore/CorrugatedIron


text:
---
title: 'Imagedata: A Python library to handle medical image data in NumPy array subclass Series'

tags:
  - dicom
  - python
  - medical imaging
  - pydicom
  - pynetdicom
  - itk
  - nifti

authors:
  - name: Erling Andersen
    orcid: 0000-0001-8268-1206
    affiliation: "1, 2"

affiliations:
  - name: Haukeland University Hospital, Dept. of Clinical Engineering, N-5021 Bergen, Norway
    index: 1
  - name: Mohn Medical Imaging and Visualization Centre, Haukeland University Hospital, Dept. of Radiology, N-5021 Bergen, Norway
    index: 2

date: 14 January 2022
bibliography: paper.bib
---

# Summary

`Imagedata` is a python library to read and write medical image data into
`Series` objects.
In particular, imagedata will read, sort and write DICOM\textsuperscript{\textregistered}
3D and 4D series based on defined attributes.
As far as possible, imagedata will handle geometry information between
the medical image data formats
like DICOM, NIfTI [@nifti1] and ITK [@itk2002].

Imagedata provides a Series class inheriting the `numpy.ndarray` class [@harris2020array],
adding DICOM data structures.
Plugins provide functions to import and export DICOM and other data formats.
The DICOM plugin can read complete series, sorting the data as requested into
multidimensional arrays.
Input and output data can be accessed on various locations, including local files,
DICOM servers and XNAT servers [@marcus2007].
The Series class enables NumPy and derived libraries (like SciPy [@2020SciPy-NMeth])
to work on medical images, simplifying input and output.

A feature is the conversion between different image formats.
_E.g._, a pipeline based on a clinical DICOM series can be converted to NIfTI,
processed by some NIfTI-based tool (_e.g._ FSL [@FSL2004]).
Finally, the result can be converted back to DICOM and stored as a new series in
PACS (Picture Archive and Communication system).

A viewer is included, allowing the display of a stack of images,
including modifying window width and centre, and scrolling through 3D and 4D image stacks.
A region of interest (ROI) can be drawn, resulting in a mask as a NumPy ndarray,
or as an outline.

# Statement of need

DICOM is the standard image format and protocol when working with clinical
medical images in a hospital.
In tomographic imaging, the legacy DICOM formats
like computed tomography (CT) and magnetic resonance (MR)
information object definitions (IOD),
are in common use.
These formats store slices file by file, leaving the sorting of the
files to the user.
The more recent enhanced formats which can accommodate a complete 3D or 4D acquisition in
one file, are only slowly adopted by manufacturers of medical equipment.

Working with legacy DICOM medical images in python can be accomplished using libraries
like `pydicom` [@darcy_mason_2021_5543955], `GDCM` [@GDCMReferenceManual],
`NiBabel` [@nibabel2020] or `ITK`.
Pydicom and GDCM are native DICOM libraries. As such, they do not
provide access to medical images stored in other formats.
NiBabel and ITK are mostly focused on NIfTI and ITK MetaIO image formats, respectively.
These formats are popular in research tools. However, DICOM support is rudimentary.
All these libraries typically leave the sorting of legacy DICOM image files to the user.

`Highdicom` [@bridge2021highdicom] focus on parametric maps, annotations
and segmentations, using enhanced DICOM images.
Highdicom does an excellent job of promoting the enhanced DICOM standards,
including storage of `boolean` and floating-point data.
The handling of legacy DICOM objects are left to pydicom.

NumPy ndarrays is the data object of choice for numerical computations in Python.
Imagedata extends NumPy arrays with DICOM
information and functionality.
Additionally, importing and exporting images to other image formats is available
through the plugin architecture.

When setting up pipelines to process clinical data, patient information
should be maintained throughout to ensure patient safety. If the
process involves DICOM data only, this requirement is easily fulfilled.
However, some popular image processing systems require formats that do
not maintain patient information. The ability to attach DICOM metadata
to these other formats let the user exploit a wider set of image
processing software.

`Imagedata` builds on several of these libraries,
attempting to solve the problem of sorting legacy DICOM images,
providing NumPy ndarrays, and accessing medical images in various formats.

# Architecture

The `Series` class is a `numpy.ndarray` subclass.
A Series object is instantiated from an image source, either from input files,
from a server connection, or from an ndarray.
DICOM metadata is handled by a `Header` class, which also maintains an `Axes` class
defining the axes of the array dimensions.

Handling specific image data formats are done by `Formats` plugins,
while `Archives` plugins give access to files stored both
in the filesystem and in compressed archives.
The `Transports` plugins let the user access networked resources given by a _URL_.
See the plugin architecture and main classes in \autoref{fig:plugins}.
_E.g._, an xnat:// _URL_ will employ the `XnatTransport` plugin
to fetch a compressed zip archive,
and the `ZipfileArchive` will extract individual files from the archive.

Plugins are defined using python's `entry_point` [@pythonEntryPoints] mechanism.
The naming convention requires any plugin to advertise itself on the `imagedata_plugins` list.

![Plugin architecture and main classes of the imagedata package.
The Series class is subclassed from numpy.ndarray.
Handling specific image data formats are done by Formats plugins,
while Archives plugins give access to files stored both in the filesystem
and in compressed archives.
The Transports plugins let the user access networked resources given
by a _URL_.\label{fig:plugins}](docs/Plugin_Architecture.png){ width=75% }

# Examples

In this section, we demonstrate the use of imagedata in the python language.
In addition, there is a console application `image_data` which comes in handy when
the sole purpose is to convert and store an image dataset from one format
to another.

## Compute mean of two datasets

A basic example reading two time series from folders _dirA_ and _dirB_,
and writing their mean to folder _dirMean_.
The format of the input data is automatically detected, and is not specified:

~~~
from imagedata.series import Series
a = Series('dirA', 'time')
b = Series('dirB', 'time')
assert a.shape == b.shape, "Shape of a and b differ"

# Notice how series a and b are treated as NumPy arrays
c = (a + b) / 2
c.write('dirMean')
~~~

## Sorting

Sorting of DICOM slices is an important feature.
Imagedata will sort slices into volumes based on slice location.
Volumes may be sorted on various DICOM attributes:

* 'time': Dynamic time series, sorted on acquisition time
* 'b': Diffusion weighted series, sorted on diffusion _b_ value
* 'fa': Flip angle series, sorted on MR flip angle
* 'te': Sort on MR echo time _TE_

In addition, volumes can be sorted on user-defined attributes.

Some non-DICOM formats do not specify the labelling of 4D data.
In this case, the sorting can be specified manually.

## Slicing

Like ndarray, the Series object can be sliced.
The imagedata package attempts to maintain the geometry of the sliced data.

~~~
>>> ...
>>> # Extract slice no. 5
>>> slice5 = si[5,…]
>>> slice5.sliceLocations
array(6.8)
>>> # Save slice 5 to slice5/ folder
>>> slice5.write(’slice5/’)
~~~

## Viewing

A viewer based on `matplotlib imshow` [@Hunter:2007] is included.
The viewer lets the user scroll through the image stack,
and step through the tags of a 4D dataset.
These operations are implemented:

* Read-out voxel value: Move mouse over.
* Window/level adjustment: Move mouse with left key pressed.
* Scroll through slices of an image stack: Mouse scroll wheel, or up/down array keys.
* Step through tags (time, b-values, etc.): Left/right array keys.
* Page through series in a multi-series display: PageUp/PageDown keys.

~~~
# View a Series instance
a.show()

# View both a and b Series
a.show(b)

# View several Series
a.show([b, c, d])
~~~

## Draw a region of interest

A region of interest (ROI) can be drawn, producing a mask as a NumPy ndarray.
This example will obtain a mask image `segment`,
convert the original grayscale image into a corresponding RGB image,
and mask the green and blue color bands inside the ROI.

~~~
from imagedata.series import Series

T2 = Series('801_Obl T2 TSE HR SENSE/')
segment = T2.get_roi()

# Convert grayscale image to RGB image
T2rgb = T2.to_rgb()
segment_indices = segment == 1

# Clear green and blue components inside segment,
# leaving the red component
T2rgb[segment_indices, 1:] = 0

# Display final image where pixels inside the ROI are red
T2rgb.show()
~~~

## Converting data from DICOM and back

Some workflows process patient data using a tool that do not accept DICOM data.
In order to maintain the coupling to patient data, the data can be converted to
_e.g._ NIfTI and back.

### Example using the console application image_data

~~~
# Original DICOM data in dicomDir/
image_data --of nifti niftiDir dicomDir

# Now process on Nifti data in niftiDir/,
# ...
# leaving the result in niftiResult/.

# Convert the niftiResult back to DICOM,
# using dicomDir as a template
image_data --of dicom --template dicomDir dicomResult niftiResult

# The resulting dicomResult will be a new DICOM series
# that could be added to a PACS

# Set series number and series description before
# transmitting to PACS using DICOM transport
image_data --sernum 1004 --serdes 'Processed data' \
           dicom://server:104/AETITLE dicomResult
~~~

### Example using python code

This code will store the Series data in a NIfTI format, letting some
NIfTI-dependent code produce a result in _niftiResult_.
This NIfTI dataset is loaded into a Series object, using the original
DICOM data as template to maintain patient and study metadata.
Finally, the new dataset is sent to a DICOM server
using the DICOM protocol.

~~~
import tempfile
from imagedata.series import Series
a = Series('dicomDir')

# Prepare temporary storage for NIfTI data
with tempfile.TemporaryDirectory() as niftiDir, \
    tempfile.TemporaryDirectory() as niftiResult:
    # Explicitly select nifti as output format
    a.write(niftiDir, formats=['nifti'])

    # Now process on NIfTI data in niftiDir
    # ...
    # leaving the result in niftiResult

    # Load the NIfTI data, using original Series `a' as template
    b = Series(niftiResult, template=a)

# Set series number and series description before
# transmitting to PACS using DICOM transport
b.seriesNumber = 1004
b.seriesDescription = 'Processed data'
b.write('dicom://server:104/AETITLE')
~~~

# Acknowledgements

This work is partly funded by a grant from the Regional Health Authority of
Western Norway (Helse Vest RHF) (grant no. 911745).
The authors want to thank Erlend Hodneland for valuable discussions and feedback.

# References


text:
# scan_with_read_at_100k

The goal of this program is to see if it can detect anything unexpected when
continuously scanning the I2C bus with `i2c_read_blocking` using a baudrate of
100k. Ideally, there should be no errors.

Assuming there is a MCP9808 (0x18), TCS34725 (0x29) and BME280 (0x76) on the
I2C bus, this program should output the information shown below.

**Important**: If other devices are on the I2C bus, the array `DEVICE_ADDRS`
at the top of `scan_with_read_at_100k.c` will need to be changed accordingly.

```
100 scans, 0 errors
200 scans, 0 errors
300 scans, 0 errors
400 scans, 0 errors
500 scans, 0 errors
600 scans, 0 errors
700 scans, 0 errors
800 scans, 0 errors
900 scans, 0 errors
1000 scans, 0 errors
...
```


text:
# angular-mocks-node

AngularJS' [ngMock](https://docs.angularjs.org/api/ngMock) module provided as a CommonJS module.

Paired with [angular-node](https://www.npmjs.org/package/angular-node), you can use this module to take advantage of `ngMock` on the server side.  Run your tests headlessly!

## Rationale

The [angular-mocks](https://www.npmjs.org/package/angular-mocks) module provides a couple convenience functions (`module()`, `inject()`) which are not present if certain variables do not exist in the global context (`window`).

In NodeJS, there's very little in the global context, and there's no `window`.

This module sets the table for `ngMock`, and allows `module()` and `inject()` to be exposed on the `angular.mock` object.

## Example

```js

var ngMock = require('angular-mocks-node');

describe('my suite', function() {

  beforeEach(ngMock.module('myModule'));

  it('should do such-and-such', ngMock.inject(function(MyService) {
    // make assertions
  });
});
```

## Notes

The `angular.mock` object is both exported by the `angular-mocks-node` module, as well as exposed on the `angular` object:

```js
var angular = require('angular-node');
var ngMock = require('angular-mocks-node');
angular.mock === ngMock; // true
```

## Supported Test Frameworks

- [Mocha](http://mochajs.org)
- [Jasmine](http://jasmine.github.io)
- Anything else, really, but you won't get the convenience functions, because `ngMock` is written that way.

## Maintainer

[Christopher Hiller](http://boneskull.github.io)

## License

MIT

repository: boneskull/angular-mocks-node

repo_name: boneskull/angular-mocks-node