text:
# Awesome Serverless [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome)

[<img src="https://rawgit.com/justserverless/awesome-serverless/master/logo-serverless.jpg" align="right" width="100">](http://serverless.com)

> A curated list of resources regarding the [Serverless Framework](https://serverless.com) (formerly JAWS) and the serverless architecture.

*Inspired by the [awesome](https://github.com/sindresorhus/awesome) list project.*

**Say *hello* on [Twitter](https://twitter.com/pmmuens).**

## Table of contents

- [General](#general)
- [Blogs](#blogs)
- [Blog posts](#blog-posts)
- [Screencasts](#screencasts)
- [Talks](#talks)
- [Projects / Services](#projects--services)
- [Related projects](#related-projects)
- [Plugins](#plugins)
- [Literature / Education](#literature--education)
- [Professional services](#professional-services)
- [Content Management Systems](#content-management-systems)
- [Deprecated](#deprecated)
  - [General](#general)
  - [Blog posts (v0.5)](#blog-posts-v05)
  - [Projects (v0.5)](#projects-v05)
  - [Plugins (v0.5)](#plugins-v05)
  - [Modules](#modules)
  - [Literature](#literature)

---

## General

- [Homepage](http://serverless.com) - Official homepage.
- [Documentation](http://docs.serverless.com) - Documentation.
- [GitHub organization](http://github.com/serverless) - Official GitHub organization.
- [Twitter](https://twitter.com/goserverless) - Official Twitter account.
- [Forum](http://forum.serverless.com) - Official Serverless forum.
- [Meetups](http://serverlessmeetups.com) - List with all official Serverless meetups.
- [YouTube](https://www.youtube.com/channel/UCFYG383lawh9Hrs_DEKTtdg) - Serverless YouTube account.
- [Stack Overflow](http://stackoverflow.com/questions/tagged/serverless-framework) - Stack Overflow questions.
- [Gitter Chat](https://gitter.im/serverless/serverless) - Chat with the community.
- [ServerlessConf](http://serverlessconf.io) - Serverless specialized conference.
- [Serverless Weekly](https://serverless.email) - A weekly newsletter about serverless architectures and paradigms.
- [Serverless working group](https://github.com/cncf/wg-serverless) - CNCF serverless working group.
- [Serverless Summit](http://inserverless.com) - Conference about serverless technologies / computing.
- [Serverless Plugin Directory](https://www.serverlessconsultants.com/plugins/) - A directory of Serverless Framework plugins.
- [Serverless Stack](https://serverless-stack.com) - Building and deploying full-stack apps using the Serverless Framework and React on AWS ([GitHub repo](https://github.com/AnomalyInnovations/serverless-stack-com)).
- [OpenEvents](https://openevents.io) - A specification for describing event data in a common way.
- [The power of serverless](https://thepowerofserverless.info) - Overview why serverless is a great choice - especially for frontend developers.

## Blogs

- [Serverless Code](https://serverlesscode.com) - Blog about everything serverless related.
- [Serverless Zone](https://serverless.zone) - Everything Serverless related.
- [Serverless Blog](http://blog.serverless.com) - Official blog of the Serverless Framework.
- [Serverless Stories](https://medium.com/serverless-stories) - Medium publication from the team behind the Serverless Framework.
- [Going Serverless](http://www.goingserverless.com) - Blog about serverless architectures and the Serverless Framework.
- [Foobar Tech](https://foobar123.com/@marciavillalba) - Blog about serverless architectures and programming in general.
- [Serverless Guy](http://www.serverlessguy.com/) - Blog about a "life without servers".
- [Serverless City](http://www.serverless.city/) - News, products, opinions, howtos, and everything you need to know to be a Serverless Citizen.
- [FaaS Forward](https://faaslane.wordpress.com) - Learning & living on the FaaS-Lane.
- [ServerlessOps](http://www.serverlessops.io) - Design, build and run reliable serverless systems.

## Blog posts

- [Serverless computing requires a shift in mindset](https://blogs.wsj.com/cio/2018/10/30/serverless-computing-requires-a-shift-in-mindset/) - Why IT leaders must communicate business value when talking about serverless solutions.
- [Hosted vs. installable serverless platforms](https://thenewstack.io/serverless-roadmaps-platforms/) - Survey which covers hosted vs. installable serverless solutions.
- [Launching TriggerMesh](https://triggermesh.com/2018/11/01/launching-triggermesh/) - TriggerMesh (serverless management platform on top of knative) announcement blog post.
- [Serverless without containers](https://blog.cloudflare.com/cloud-computing-without-containers/) - How Cloudflare utilizes the v8 engine to isolate and run Cloudflare Workers written in Node.js.
- [Takeaways from ServerlessNYC 2018](https://www.jeremydaly.com/takeaways-from-serverlessnyc-2018/) - Key takeaways from the ServerlessNYC 2018 conference.
- [Serverless & Functions - Not one and the same](https://hackernoon.com/serverless-functions-not-one-and-the-same-150eb070d9a3) - Post about the differences between serverless computing and FaaS.
- [Serverless for startups](https://medium.com/swlh/serverless-for-startups-its-the-fastest-way-to-build-your-technology-idea-a0f0b5efe2f3) - Why serverless is the fastest way to build a technology idea.
- [Serverless monitoring, security, frameworks, tools](https://thenewstack.io/serverless-roadmaps-monitoring-security-frameworks-tools/) - Post about the different serverless monitoring, security, framework and tooling solutions.
- [Writing portable serverless applications](https://medium.com/datreeio/writing-portable-serverless-applications-252fd8623bce) - Post on how to write portable serverless applications that can run on different compute environments.
- [Serverless sea change](https://www.infoq.com/articles/serverless-sea-change) - Article which defines and explains how serverless is different from other application architectures.

## Screencasts

- [Build apps faster with Azure Serverless](https://www.youtube.com/watch?v=OnJt4qfsfOc) - Walkthrough of the Microsoft Azure Functions serverless offering.
- [FaaS performance comparison](https://www.youtube.com/watch?v=JS2h8pmqsww) - Comparing serverless function performance.
- [Introduction to Kubeless](https://www.youtube.com/watch?v=ROA7Ig7tD5s) - Video which introduces the Kubeless project and their Serverless Framework integration.
- [What's new in Serverless v1.22](https://www.youtube.com/watch?v=ykkeliDAs-c) - Video walkthrough about all the new features in Serverless v1.22.
- [Kuhiro: Birth of the NearCloud](https://www.youtube.com/watch?v=BQXCn6xBYzA) - Video which explains the concepts of NearCloud.
- [How to build a regionally distributed serverless architecture](https://www.youtube.com/watch?v=6uijFRFURPQ) - Webinar on how to build a regionally distributed serverless architecture.
- [Autoscaling DynamoDB with the Serverless Framework](https://www.youtube.com/watch?v=HVQVEjNpMeQ) - Walkthrough on how to use DynamoDB autoscaling functionality with the Serverless Framework.
- [Building React + Serverless full stack apps](https://www.youtube.com/watch?v=UGrGce6-cX4) - How to build full stack apps using React and the Serverless Framework.
- [Become a serverless black belt](https://www.youtube.com/watch?v=4nrRt0dOcFk) - AWS online tech talk on how to optimize serverless applications.
- [Jazz serverless developer teaser](https://www.youtube.com/watch?v=6Kp1yxMjn1k) - T-Mobiles Jazz serverless developer teaser.

## Talks

- [The serverless and event-driven future](https://www.youtube.com/watch?v=TZPPjAv12KU) - How the Event Gateway enables a new way to build event-driven applications.
- [Serverless, Not So FaaS](https://www.youtube.com/watch?v=_1-5YFfJCqM) - CloudNativeCon 2018 Keynote by Kelsey Hightower, Kubernetes Community Member, Google.
- [Bringing serverless to Rock 'n Roll](http://www.thecloudcast.net/2018/05/the-cloudcast-348-bringing-serverless.html) - Podcast on how Fender utilizes serverless technologies for their digital learning platform.
- [Using the Event Gateway to build serverless multi-cloud applications](https://www.youtube.com/watch?v=h1PIqbi93eE) - How the Event Gateway can be used to build multi-cloud applications.
- [Deep dive into serverless](https://www.slideshare.net/AmazonWebServices/deep-dive-on-serverless-application-development-102837125) - Slide deck about serverless application development.
- [Discussing serverless](https://soundcloud.com/thenewstackanalysts/discussing-serverless-with-symphoniaio-and-serverless-inc) - Podcast about the serverless landscape.
- [Confusion in the land of the serverless](https://www.youtube.com/watch?v=Y6B3Eqlj9Fw) - Sam Newmans talk about serverless technologies at GOTO 2018.
- [Serverless state of the union](https://www.youtube.com/watch?v=q7mFl9sLiCY) - Austen Collins keynote talk about serverless and the state of the union at the Open Source Summit 2018.
- [ServerlessConf SF 2018 videos](https://acloud.guru/series/serverlessconf-sf-2018) - Talks from the ServerlessConf SF 2018.
- [Serverless at iRobot](https://www.infoq.com/podcasts/serverless-build-connected-robots) - How serverless technologies are used at iRobot.

## Projects / Services

- [Official joke API](https://github.com/15Dkatz/official_joke_api) - Vue Jokester application backend.
- [Event Gateway Getting Started](https://github.com/serverless/event-gateway-getting-started) - Walkthrough application for using the Event Gateway.
- [Utils](https://github.com/serverless/utils) - General Serverless utilities.
- [CloudWatch public metrics](https://github.com/RafalWilinski/cloudwatch-public-metrics) - Expose AWS CloudWatch metrics as a public HTML page.
- [Invoicely](https://github.com/EwanValentine/invoicely) - Invoice automation tool.
- [World Cup Slackbot](https://github.com/phstc/serverless-world-cup-slack-bot) - Post 2018 FIFA World Cup Russia™ matches events to Slack.
- [Serverless Express](https://github.com/mikestaub/serverless-express) - Run your unmodified express app on AWS Lambda via the Serverless Framework.
- [TypeScript composite monorepo](https://github.com/tommedema/serverless-mono-example) - Yarn / Lerna workspaces with Typescript 3.0 composite references using `nohoist` for compatible serverless application packaging.
- [Next serverless](https://github.com/cyrilwanner/next-serverless) - Deploys your next.js application to AWS Lambda.
- [Serverless Central](https://github.com/zotoio/serverless-central) - Sample Lambda monorepo.

## Related projects

- [FaaS boilerplates](https://github.com/hasura/cloud-functions-boilerplates) - Boilerplates for FaaS offerings that work in conjunction with Hasura GraphQL Engine's event triggers.
- [CloudCompose](https://cloudcompose.io) - An open community marketplace for serverless functions and workflows.
- [Mutton](https://github.com/hmngwy/mutton) - A Python shim library for better AWS Lambda handlers.
- [Begin](https://begin.com) - Create AWS serverless apps, APIs, and sites with databases, sessions, and full CI/CD.
- [Operiant](https://operiant.com) - Connect your event streams to actions.
- [TriggerMesh](https://triggermesh.com) - Serverless cloud with a library of event triggers to enable hybrid cloud and workload portability.
- [Handly](https://github.com/harijoe/handly) - A wrapper for serverless handlers to prevent silly mistakes.
- [Serverless boilerplate](https://github.com/harijoe/serverless-boilerplate) - Minimal yet super-functional Serverless boilerplate.
- [Firecracker](https://github.com/firecracker-microvm/firecracker) - Secure and fast microVMs for serverless computing.
- [Cirrus](https://github.com/ucbrise/cirrus) - Serverless machine learning framework.

## Plugins

- [Local environment](https://github.com/piercus/serverless-local-environment) - Set local environment variables.
- [Offline SSM](https://github.com/janders223/serverless-offline-ssm) - Read SSM parameters from a `.env` file instead of AWS.
- [Nocode](https://github.com/ServerlessOpsIO/serverless-nocode) - Deploy nocode via the Serverless Framework.
- [Canary deployments](https://github.com/davidgf/serverless-plugin-canary-deployments) - Implement canary deployments of AWS Lambda functions.
- [Flow-based programming](https://github.com/p0wl/serverless-fbp) - Flow-based programming plugin for Serverless.
- [Go serverless](https://github.com/thepauleh/goserverless) - GoFormation for the Serverless Framework. Create Serverless configs with Go structs.
- [Event Gateway](https://github.com/serverless/serverless-event-gateway-plugin) - Event Gateway plugin for the Serverless Framework.
- [Fn](https://github.com/fnproject/serverless-fn) - Fn provider plugin.
- [Cloudflare Workers](https://github.com/cloudflare/serverless-cloudflare-workers) - Provider plugin for Cloudflare Workers.
- [S3 Deploy](https://github.com/funkybob/serverless-s3-deploy) - Plugin to deploy files to an S3 Bucket.

## Literature / Education

- [Going serverless](https://leanpub.com/going-serverless) - Building scalable applications with the Serverless Framework and AWS Lambda.
- [AWS Lambda, Kinesis & Serverless Framework](https://www.udemy.com/code-along-aws-lambda-kinesis-serverless-framework/) - Udemy Course on the Serverless Framework.
- [The Serverless Framework: Quick Start](http://codemore.teachable.com/p/serverless-framework-qs-node) - Video course which provides a quick start for the Serverless Framework.
- [Intro to the Serverless Framework](http://codemore.teachable.com/p/serverless-framework-node) - Introduction course for the Serverless Framework.
- [ServerlessLab](https://serverlesslab.com) - Effective serverless, AWS Lambda and Node.js training.
- [Serverless Applications with AWS](http://bit.ly/serverless-apps-aws) - Introduction course with AWS and Serverless Framework. Build a production like app using the most common AWS Serverless services.
- [Event Gateway Workshop](https://github.com/serverless/event-gateway-workshop) - Learn what the Event Gateway is, how it works and build your first event-driven multi-cloud application.
- [Serverless streaming architectures](https://d1.awsstatic.com/serverless/Whitepaper/Stream%20Processing%20Whitepaper.pdf) - Serverless streaming architectures and best practices.
- [Develop a Serverless Backend using Node.js on AWS Lambda](https://egghead.io/courses/develop-a-serverless-backend-using-node-js-on-aws-lambda) - Learn how to create a serverless API and connecting it to DynamoDB leveraging Lambda's new async / await syntax.
- [Agile development for serverless platforms](https://www.manning.com/books/agile-development-for-serverless-platforms) - How to apply agile practices in fully serverless architectures.

## Professional services

- [Trek10](http://trek10.com) - Consultancy.
- [Parallax](https://parall.ax/) - Consultancy.
- [SC5 Online](https://sc5.io) - Serverless agency.
- [Carrot creative](https://carrot.is) - Agency.
- [Microapps](http://microapps.com) - Agency.
- [Apiwise](http://www.apiwise.nl) - Agency.
- [Useful.io](http://useful.io) - Agency.
- [WhaleTec](https://whaletech.co) - Consultancy.
- [Hop Labs](http://hoplabs.com) - Consultancy.
- [Webscale](https://webscale.fi/briefly-in-english/) - Consultancy.
- [API talent](http://www.apitalent.co.nz) - Consultancy.
- [Branded Crate](https://www.brandedcrate.com/) - Agency.
- [Cloudonaut](https://cloudonaut.io/serverless-consulting/) - Consultancy.
- [PromptWorks](https://www.promptworks.com/serverless/) - Consultancy.
- [Craftship](https://craftship.io) - Consultancy.
- [EPX Labs](http://www.epxlabs.com) - Consultancy.
- [Red Badger](https://red-badger.com) - Agency.
- [Langa](http://langa.io) - Agency.
- [Emerging Technology Advisors](https://www.emergingtechnologyadvisors.com) - Consultancy.
- [OneSpeed](https://onespeed.io) - Agency.
- [Seraro](http://www.seraro.com) - Agency.
- [Superluminar](https://superluminar.io) - Agency.

## Content Management Systems

- [Tipe](https://tipe.io) - Next generation serverless CMS. Create your content with powerful editing tools and access it from anywhere with a GraphQL or REST API.

---

## Deprecated

> Deprecated stuff. Kept for completeness.

### General

- [Community repository](https://github.com/serverless/serverless-community) - Resources for the community.
- [Readme.io](https://serverless.readme.io) - Official documentation.
- [Community plugins](https://github.com/serverless/community-plugins) - Repository for Serverless community plugins.
- [AWSM](https://github.com/awsm-org/awsm) - Official GitHub organization for modules.
- [Getting started with JAWS on AWS](https://aws.amazon.com/de/blogs/compute/getting-started-with-jaws-on-amazon-web-services/) - Getting started guide with Serverless by Amazon (might be deprecated).
- [Serverless starter](https://github.com/serverless/serverless-starter) - Boilerplate for new projects.
- [JAWS local server](https://github.com/martinlindenberg/JawsLocalServer) - Local server which lets you execute Lambda functions locally.
- [Shark Notes](https://github.com/JustServerless/shark-notes) - Full note taking tool (frontend and backend) which shows how to do CRUD with Serverless.
- [Serverless Registry](https://justserverless.github.io/serverless-registry) - Unofficial plugin and module search.

### Blog posts (v0.5)

- [Serverless Framework tutorial - Part 1](http://blog.zerosharp.com/serverless-framework-part-1-up-and-running/) - Part 1 of the Serverless Framework tutorial by [zerosharp](http://zerosharp.com).
- [Serverless Framework tutorial - Part 2](http://blog.zerosharp.com/serverless-framework-part-2-typescript-and-mocha/) - Part 2 of the Serverless Framework tutorial by [zerosharp](http://zerosharp.com).
- [Serverless Framework tutorial - Part 3](http://blog.zerosharp.com/serverless-framework-part-3-the-guts/) - Part 3 of the Serverless Framework tutorial by [zerosharp](http://zerosharp.com).
- [Serverless Framework tutorial - Part 4](http://blog.zerosharp.com/serverless-framework-part-4-connecting-the-parts/) - Part 4 of the Serverless Framework tutorial by [zerosharp](http://zerosharp.com).
- [Serverless Framework tutorial - Part 5](http://blog.zerosharp.com/serverless-framework-part-5-pulling-in-a-node-package/) - Part 5 of the Serverless Framework tutorial by [zerosharp](http://zerosharp.com).

### Projects (v0.5)

- [Demo with DynamoDB](https://github.com/abalone0204/serverless-demo-with-dynamodb-node) - Simple REST API with the Serverless Framework.

### Plugins (v0.5)

- [Plugin boilerplate](https://github.com/serverless/serverless-plugin-boilerplate) - Boilerplate code if you want to develop your own plugin.
- [Serverless resources validation](https://github.com/tmilewski/serverless-resources-validation-plugin) - Plugin which validates your CloudFormation template.
- [Alerting](https://github.com/martinlindenberg/serverless-plugin-alerting) - Add Cloudwatch Alarms with SNS notifications.
- [Lambda prune](https://github.com/Nopik/serverless-lambda-prune-plugin) - Automatically remove unused Lambda functions.
- [Autoprune](https://github.com/kennu/serverless-plugin-autoprune) - Automatically remove unused Lambda functions.
- [Swagger](https://github.com/marklawlor/serverless-swagger) - Swagger.io plugin.
- [CORS](https://github.com/joostfarla/serverless-cors-plugin) - CORS plugin.
- [Serve](https://github.com/Nopik/serverless-serve) - Test your lambda functionality locally.
- [Base path plugin](https://github.com/daffinity/serverless-base-path-plugin) - Setting a base path for all API Gateway endpoints in a component.
- [SNS](https://github.com/martinlindenberg/serverless-plugin-sns) - Plugin for SNS support.
- [Cronjob](https://github.com/martinlindenberg/serverless-plugin-cronjob) - Plugin for Cronjobs.
- [API Blueprint](https://github.com/hiroara/serverless-api-blueprint) - API documentation generator.
- [VPC](https://github.com/martinlindenberg/serverless-plugin-vpc) - VPC support.
- [Client S3](https://github.com/serverless/serverless-client-s3) - Handle static asset serving (like static frontends) via S3.
- [Offline](https://github.com/dherault/serverless-offline/tree/serverless_0.5) - An alternative to the Serve plugin, with Velocity templates support.
- [Serverless optimizer](https://github.com/asprouse/serverless-optimizer-plugin) - Fork of the optimizer plugin which uses Webpack.
- [JSHint](https://github.com/joostfarla/serverless-jshint-plugin) - Detect errors and potential problems in your Lambda functions.
- [Webpack](https://github.com/asprouse/serverless-webpack-plugin) - Use Webpack to optimize your Serverless Node.js Functions.
- [Runtime Babel](https://github.com/serverless/serverless-runtime-babel) - Babel runtime for the Serverless framework (so that ES6 and ES7 syntax can be used).
- [Runtime Streamline](https://github.com/marclar/serverless-runtime-streamline) - Streamline.js for Serverless.
- [Meta Sync](https://github.com/serverless/serverless-meta-sync) - Synchronize project credentials via AWS.
- [GraphiQL](https://github.com/marclar/serverless-graphiql) - Deploys a GraphiQL client to a public S3 bucket.
- [S3](https://github.com/camhart/sls-s3) - Deploy files to S3.
- [Swagger](https://github.com/serverless/serverless-swagger-plugin) - Swagger plugin.
- [Synchronous resource](https://github.com/stelligent/serverless-synchronous-resource-plugin) - Plugin for deploying custom CFN stacks.
- [Models](https://github.com/HyperBrain/serverless-models-plugin) - Plugin for model support.
- [Mocha](https://github.com/SC5/serverless-mocha-plugin) - Plugin to use Mocha.js.
- [Package](https://github.com/HyperBrain/serverless-package-plugin) - Adds function packaging.
- [Sentry](https://github.com/arabold/serverless-sentry-plugin) - Sentry integration for Serverless.
- [Autoprune](https://github.com/arabold/serverless-autoprune-plugin) - Delete old lambdas.
- [Secrets](https://github.com/trek10inc/serverless-secrets) - Secret management.
- [Vandium](https://github.com/vandium-io/vandium-serverless) - Vandium PlugIn for Serverless.
- [Command line event args](https://github.com/horike37/serverless-command-line-event-args) - Pass JSON to serverless via the command line.
- [Unit test boilerplate](https://github.com/horike37/serverless-unittest-boilerplate) - Boilerplate for unit testing with Serverless.
- [Dependency install](https://github.com/99xt/serverless-dependency-install) - Serverless plugin for managing dependencies.
- [DynamoDB local](https://github.com/99xt/serverless-dynamodb-local) - Use DynamoDB locally with Serverless.
- [Cognito manager](https://github.com/trek10inc/serverless-cognito-manager) - Easy cognito management for Serverless projects.
- [Hook scripts](https://github.com/kennu/serverless-plugin-hookscripts) - Run code whenever a Serverless action is run.
- [Header function](https://github.com/blackevil245/serverless-header-function) - Automatically run a JavaScript script on every Serverless action hooks.
- [Runtime Node.js 6.10](https://github.com/creditiq/serverless-runtime-node610) - Support for the Node.js 6.10 runtime.
- [Swagger export](https://github.com/kennu/serverless-plugin-swagger-export) - Generate a Swagger JSON definition from your Serverless project.

### Modules

- [npm registry](https://github.com/Inbot/awsm-npm-registry) - npm registry.
- [Users](https://github.com/dekz/awsm-users) - AWSM module for authentication.
- [Test AWS users library](https://github.com/oren/test-awsm-users) - Test AWSM users.
- [Stripe webhook](https://github.com/eahefnawy/serverless-stripe-webhook) - Webhook for Stripe payments.
- [Slack webhook](https://github.com/eahefnawy/serverless-slack-webhook) - Webhook for Slack.
- [Slack](https://github.com/serverless/serverless-slack) - Slack boilerplate functionality.
- [Examples](https://github.com/remicastaing/serverless-examples) - Module with example functions.
- [Slackbot](https://github.com/serverless/serverless-slackbot) - Module to create your own slackbot.
- [Images](https://github.com/awsm-org/awsm-images) - Image modifications.

- [S3 token vendor](https://github.com/binoculars/awsm-s3tokenvendor) - Return upload tokens for S3 objects.
- [Loggly](https://github.com/jwulf/awsm-loggly) - Provide logging to your lambdas.
- [Middleware](https://github.com/jwulf/awsm-middleware) - Middleware for your project.
- [GitHub Webhook](https://github.com/bisque33/awsm-github-webhook) - GitHub webhook support.
- [Comments](https://github.com/donleyp/awsm-comments) - Implements comments using DynamoDB.
- [3scale](https://github.com/jerzyn/awsm-3scale) - Integrates 3scale API management platform.

### Literature

- [Learn Serverless - By Philipp Müns](https://github.com/JustServerless/learnserverless-book) - Book focused on the serverless.com framework. **Note:** Deprecated.

repository: discrete-void/awesome-serverless

repo_name: discrete-void/awesome-serverless


text:
---
layout: page
title: Reading group
permalink: /reading-group/
---

### Details
**Organizers**: Vikram Narayanan, Anton Burtsev

**Email**: narayav1 at uci dot edu, aburtsev at uci dot edu

**Meeting time/place**: Friday, 2:00pm-3:00pm (held remotely)

We read and discuss a broad range of papers related to systems research. The
topics range from novel system designs (generally results from recent systems
conferences) to low-level details of new and existing features of modern CPUs
(e.g., SGX, fat pointers (MPX), QPI and cache-coherence, etc.)

### Schedule

#### Fall 2020

| Date | Paper | Presenter |
| :------------- | :---------- | :----------- |
| Nov 20  | [Size-aware Sharding For Improving Tail Latencies in In-memory Key-value Stores](https://www.usenix.org/conference/nsdi19/presentation/didona) |  |
| Nov 16  | [MICA: A Holistic Approach to Fast In-Memory Key-Value Storage](https://www.usenix.org/conference/nsdi14/technical-sessions/presentation/lim)   |   |
| Nov 6   | [hXDP: Efficient Software Packet Processing on FPGA NICs](https://www.usenix.org/conference/osdi20/presentation/brunella)   |   |
| Nov 3   | [Theseus: an Experiment in Operating System Structure and State Management](https://www.usenix.org/conference/osdi20/presentation/boos)  | |

license: MIT

branch_name: refs/heads/master

extension: md

gha_language: HTML

gha_license_id: MIT

license_type: permissive


text:
---

## Exercise - Basics Overview Pre-requisites

- Download the source code, slides, handouts from
    - [compendiumdev.co.uk/page/atautorest](https://compendiumdev.co.uk/page/atautorest)
- Download the app from
    - [github.com/eviltester/TestingApp/releases](https://github.com/eviltester/TestingApp/releases)
    - compendium-of-test-apps-1-3-3.jar

---

## Exercise  - Basics Overview

- Run the app
    - `java -jar compendium-of-test-apps-1-3-3.jar`
- visit [localhost:4567/listicator/](http://localhost:4567/listicator/)
- open the source code in IDE and run `RestAssuredBasicsTest` class
- read over the REST Assured Docs
    - [github.com/rest-assured/rest-assured#documentation](https://github.com/rest-assured/rest-assured#documentation)
- Experiment with some of the tests, try different JSONPath and XMLPath values

repository: muusee/automating-rest-api

repo_name: muusee/automating-rest-api


text:
# _Meal Tracker_

##### This is a single page application for tracking meals

## Using

 Angular2, Node, npm, Bower, Gulp, SASS<br>

Working with this repo
------------
Fork the repository at: https://github.com/stok0102/meal-tracker

Build gulp dependencies:
```
$ npm install
```

Build Bower dependencies:
```
$ bower install
```

Build your development server with your gulp asset pipeline
```
$ gulp build
```

Start your server:
```
$ gulp serve
```
If the task runs without errors, the page will open in a browser window.

License
-------

MIT License. Copyright © 2016 "Caleb Stokka"


text:
Slicing" is where you assign an object of a derived class to an instance of a base class, thereby losing part of the information - some of it is "sliced" away.

For example,

```cpp
class A {
   int foo;
};

class B : public A {
   int bar;
};
```

So an object of type `B` has two data members, `foo` and `bar`.

Then if you were to write this:

```cpp
B b;

A a = b;
```

Then the information in `b` about member bar is lost in `a`.

repository: kamarkiewicz/cpp-utils

repo_name: kamarkiewicz/cpp-utils


text:
# @graphql-codegen/visitor-plugin-common

## 4.0.1

### Patch Changes

- [#9497](https://github.com/dotansimha/graphql-code-generator/pull/9497) [`2276708d0`](https://github.com/dotansimha/graphql-code-generator/commit/2276708d0ea2aab4942136923651226de4aabe5a) Thanks [@eddeee888](https://github.com/eddeee888)! - Revert default ID scalar input type to string

  We changed the ID Scalar input type from `string` to `string | number` in the latest major version of `typescript` plugin. This causes issues for server plugins (e.g. typescript-resolvers) that depends on `typescript` plugin. This is because the scalar type needs to be manually inverted on setup which is confusing.

## 4.0.0

### Major Changes

- [#9375](https://github.com/dotansimha/graphql-code-generator/pull/9375) [`ba84a3a27`](https://github.com/dotansimha/graphql-code-generator/commit/ba84a3a2758d94dac27fcfbb1bafdf3ed7c32929) Thanks [@eddeee888](https://github.com/eddeee888)! - Implement Scalars with input/output types

  In GraphQL, Scalar types can be different for client and server. For example, given the native GraphQL ID:

  - A client may send `string` or `number` in the input
  - A client receives `string` in its selection set (i.e output)
  - A server receives `string` in the resolver (GraphQL parses `string` or `number` received from the client to `string`)
  - A server may return `string` or `number` (GraphQL serializes the value to `string` before sending it to the client )

  Currently, we represent every Scalar with only one type. This is what codegen generates as base type:

  ```ts
  export type Scalars = {
    ID: string;
  };
  ```

  Then, this is used in both input and output type e.g.

  ```ts
  export type Book = {
    __typename?: 'Book';
    id: Scalars['ID']; // Output's ID can be `string` 👍
  };

  export type QueryBookArgs = {
    id: Scalars['ID']; // Input's ID can be `string` or `number`. However, the type is only `string` here 👎
  };
  ```

  This PR extends each Scalar to have input and output:

  ```ts
  export type Scalars = {
    ID: {
      input: string | number;
      output: string;
    };
  };
  ```

  Then, each input/output GraphQL type can correctly refer to the correct input/output scalar type:

  ```ts
  export type Book = {
    __typename?: 'Book';
    id: Scalars['ID']['output']; // Output's ID can be `string` 👍
  };

  export type QueryBookArgs = {
    id: Scalars['ID']['input']; // Input's ID can be `string` or `number` 👍
  };
  ```

  Note that for `typescript-resolvers`, the type of ID needs to be inverted. However, the referenced types in GraphQL input/output types should still work correctly:

  ```ts
  export type Scalars = {
    ID: {
      input: string;
      output: string | number;
    }
  }

  export type Book = {
    __typename?: "Book";
    id: Scalars["ID"]['output']; // Resolvers can return `string` or `number` in ID fields 👍
  };

  export type QueryBookArgs = {
    id: Scalars["ID"]['input']; // Resolvers receive `string` in ID fields 👍
  };

  export type ResolversTypes = {
    ID: ID: ResolverTypeWrapper<Scalars['ID']['output']>; // Resolvers can return `string` or `number` in ID fields 👍
  }

  export type ResolversParentTypes = {
    ID: Scalars['ID']['output']; // Resolvers receive `string` or `number` from parents 👍
  };
  ```

  ***

  Config changes:

  1. Scalars option can now take input/output types:

  ```ts
  config: {
    scalars: {
      ID: {
        input: 'string',
        output: 'string | number'
      }
    }
  }
  ```

  2. If a string is given (instead of an object with input/output fields), it will be used as both input and output types:

  ```ts
  config: {
    scalars: {
      ID: 'string'; // This means `string` will be used for both ID's input and output types
    }
  }
  ```

  3. BREAKING CHANGE: External module Scalar types need to be an object with input/output fields

  ```ts
  config: {
    scalars: {
      ID: './path/to/scalar-module';
    }
  }
  ```

  If correctly, wired up, the following will be generated:

  ```ts
  // Previously, imported `ID` type can be a primitive type, now it must be an object with input/output fields
  import { ID } from './path/to/scalar-module';

  export type Scalars = {
    ID: { input: ID['input']; output: ID['output'] };
  };
  ```

  ***

  BREAKING CHANGE: This changes Scalar types which could be referenced in other plugins. If you are a plugin maintainer and reference Scalar, please update your plugin to use the correct input/output types.

- [`bb66c2a31`](https://github.com/dotansimha/graphql-code-generator/commit/bb66c2a31985c1375912ccd6b2b02933f313c9c0) Thanks [@n1ru4l](https://github.com/n1ru4l)! - Require Node.js `>= 16`. Drop support for Node.js 14

### Minor Changes

- [#9196](https://github.com/dotansimha/graphql-code-generator/pull/9196) [`3848a2b73`](https://github.com/dotansimha/graphql-code-generator/commit/3848a2b73339fe9f474b31647b71e75b9ca52a96) Thanks [@beerose](https://github.com/beerose)! - Add `@defer` directive support

  When a query includes a deferred fragment field, the server will return a partial response with the non-deferred fields first, followed by the remaining fields once they have been resolved.

  Once start using the `@defer` directive in your queries, the generated code will automatically include support for the directive.

  ```jsx
  // src/index.tsx
  import { graphql } from './gql';
  const OrdersFragment = graphql(`
    fragment OrdersFragment on User {
      orders {
        id
        total
      }
    }
  `);
  const GetUserQuery = graphql(`
    query GetUser($id: ID!) {
      user(id: $id) {
        id
        name
        ...OrdersFragment @defer
      }
    }
  `);
  ```

  The generated type for `GetUserQuery` will have information that the fragment is _incremental,_ meaning it may not be available right away.

  ```tsx
  // gql/graphql.ts
  export type GetUserQuery = { __typename?: 'Query'; id: string; name: string } & ({
    __typename?: 'Query';
  } & {
    ' $fragmentRefs'?: { OrdersFragment: Incremental<OrdersFragment> };
  });
  ```

  Apart from generating code that includes support for the `@defer` directive, the Codegen also exports a utility function called `isFragmentReady`. You can use it to conditionally render components based on whether the data for a deferred
  fragment is available:

  ```jsx
  const OrdersList = (props: { data: FragmentType<typeof OrdersFragment> }) => {
    const data = useFragment(OrdersFragment, props.data);
    return (
      // render orders list
    )
  };

  function App() {
    const { data } = useQuery(GetUserQuery);
    return (
      {data && (
        <>
          {isFragmentReady(GetUserQuery, OrdersFragment, data)
  					&& <OrdersList data={data} />}
        </>
      )}
    );
  }
  export default App;
  ```

- [#9339](https://github.com/dotansimha/graphql-code-generator/pull/9339) [`50471e651`](https://github.com/dotansimha/graphql-code-generator/commit/50471e6514557db827cd26157262401c6c600a8c) Thanks [@AaronMoat](https://github.com/AaronMoat)! - Add excludeTypes config to resolversNonOptionalTypename

  This disables the adding of `__typename` in resolver types for any specified typename. This could be useful e.g. if you're wanting to enable this for all new types going forward but not do a big migration.

  Usage example:

  ```typescript
  const config: CodegenConfig = {
    schema: 'src/schema/**/*.graphql',
    generates: {
      'src/schema/types.ts': {
        plugins: ['typescript', 'typescript-resolvers'],
        config: {
          resolversNonOptionalTypename: {
            unionMember: true,
            excludeTypes: ['MyType'],
          },
        },
      },
    },
  };
  ```

- [#9229](https://github.com/dotansimha/graphql-code-generator/pull/9229) [`5aa95aa96`](https://github.com/dotansimha/graphql-code-generator/commit/5aa95aa969993043ba5e9d5dabebd7127ea5e22c) Thanks [@eddeee888](https://github.com/eddeee888)! - Use generic to simplify ResolversUnionTypes

  This follows the `ResolversInterfaceTypes`'s approach where the `RefType` generic is used to refer back to `ResolversTypes` or `ResolversParentTypes` in cases of nested Union types

- [#9304](https://github.com/dotansimha/graphql-code-generator/pull/9304) [`e1dc75f3c`](https://github.com/dotansimha/graphql-code-generator/commit/e1dc75f3c598bf7f83138ca533619716fc73f823) Thanks [@esfomeado](https://github.com/esfomeado)! - Added support for disabling suffixes on Enums.

- [#9229](https://github.com/dotansimha/graphql-code-generator/pull/9229) [`5aa95aa96`](https://github.com/dotansimha/graphql-code-generator/commit/5aa95aa969993043ba5e9d5dabebd7127ea5e22c) Thanks [@eddeee888](https://github.com/eddeee888)! - Extract interfaces to ResolversInterfaceTypes and add to resolversNonOptionalTypename

  1. `ResolversInterfaceTypes` is a new type that keeps track of a GraphQL interface and its implementing types.

  For example, consider this schema:

  ```graphql
  extend type Query {
    character(id: ID!): CharacterNode
  }

  interface CharacterNode {
    id: ID!
  }

  type Wizard implements CharacterNode {
    id: ID!
    screenName: String!
    spells: [String!]!
  }

  type Fighter implements CharacterNode {
    id: ID!
    screenName: String!
    powerLevel: Int!
  }
  ```

  The generated types will look like this:

  ```ts
  export type ResolversInterfaceTypes<RefType extends Record<string, unknown>> = {
    CharacterNode: Fighter | Wizard;
  };

  export type ResolversTypes = {
    // other types...
    CharacterNode: ResolverTypeWrapper<ResolversInterfaceTypes<ResolversTypes>['CharacterNode']>;
    Fighter: ResolverTypeWrapper<Fighter>;
    Wizard: ResolverTypeWrapper<Wizard>;
    // other types...
  };

  export type ResolversParentTypes = {
    // other types...
    CharacterNode: ResolversInterfaceTypes<ResolversParentTypes>['CharacterNode'];
    Fighter: Fighter;
    Wizard: Wizard;
    // other types...
  };
  ```

  The `RefType` generic is used to reference back to `ResolversTypes` and `ResolversParentTypes` in some cases such as field returning a Union.

  2. `resolversNonOptionalTypename` also affects `ResolversInterfaceTypes`

  Using the schema above, if we use `resolversNonOptionalTypename` option:

  ```typescript
  const config: CodegenConfig = {
    schema: 'src/schema/**/*.graphql',
    generates: {
      'src/schema/types.ts': {
        plugins: ['typescript', 'typescript-resolvers'],
        config: {
          resolversNonOptionalTypename: true, // Or `resolversNonOptionalTypename: { interfaceImplementingType: true }`
        },
      },
    },
  };
  ```

  Then, the generated type looks like this:

  ```ts
  export type ResolversInterfaceTypes<RefType extends Record<string, unknown>> = {
    CharacterNode: (Fighter & { __typename: 'Fighter' }) | (Wizard & { __typename: 'Wizard' });
  };

  export type ResolversTypes = {
    // other types...
    CharacterNode: ResolverTypeWrapper<ResolversInterfaceTypes<ResolversTypes>['CharacterNode']>;
    Fighter: ResolverTypeWrapper<Fighter>;
    Wizard: ResolverTypeWrapper<Wizard>;
    // other types...
  };

  export type ResolversParentTypes = {
    // other types...
    CharacterNode: ResolversInterfaceTypes<ResolversParentTypes>['CharacterNode'];
    Fighter: Fighter;
    Wizard: Wizard;
    // other types...
  };
  ```

### Patch Changes

- [#9449](https://github.com/dotansimha/graphql-code-generator/pull/9449) [`4d9ea1a5a`](https://github.com/dotansimha/graphql-code-generator/commit/4d9ea1a5a94cd3458c1bd868ce1ab1cb806257f2) Thanks [@n1ru4l](https://github.com/n1ru4l)! - dependencies updates:

  - Updated dependency [`<EMAIL_ADDRESS><EMAIL_ADDRESS>(from `^1.3.0`, in `dependencies`)
  - Updated dependency [`<EMAIL_ADDRESS><EMAIL_ADDRESS>(from `^6.5.0`, in `dependencies`)
  - Updated dependency [`<EMAIL_ADDRESS><EMAIL_ADDRESS>(from `^9.0.0`, in `dependencies`)

- [#9414](https://github.com/dotansimha/graphql-code-generator/pull/9414) [`ca02ad172`](https://github.com/dotansimha/graphql-code-generator/commit/ca02ad172a0e8f52570fdef4271ec286d883236d) Thanks [@beerose](https://github.com/beerose)! - Include nested fragments in string documentMode

- [#9369](https://github.com/dotansimha/graphql-code-generator/pull/9369) [`5950f5a68`](https://github.com/dotansimha/graphql-code-generator/commit/5950f5a6843cdd92b9d5b8ced3a97b68eadf9f30) Thanks [@asmundg](https://github.com/asmundg)! - Output valid type names with mergeFragmentTypes

- Updated dependencies [[`4d9ea1a5a`](https://github.com/dotansimha/graphql-code-generator/commit/4d9ea1a5a94cd3458c1bd868ce1ab1cb806257f2), [`f46803a8c`](https://github.com/dotansimha/graphql-code-generator/commit/f46803a8c70840280529a52acbb111c865712af2), [`63827fabe`](https://github.com/dotansimha/graphql-code-generator/commit/63827fabede76b2380d40392aba2a3ccb099f0c4), [`bb66c2a31`](https://github.com/dotansimha/graphql-code-generator/commit/bb66c2a31985c1375912ccd6b2b02933f313c9c0)]:
  -<EMAIL_ADDRESS>
## 3.1.1

### Patch Changes

- [#9301](https://github.com/dotansimha/graphql-code-generator/pull/9301) [`386cf9044`](https://github.com/dotansimha/graphql-code-generator/commit/386cf9044a41d87ed45069b22d26b30f4b262a85) Thanks [@wassim-k](https://github.com/wassim-k)! - Fix fragment imports for near-operation-file with graphQLTag

- [#9231](https://github.com/dotansimha/graphql-code-generator/pull/9231) [`402cb8ac0`](https://github.com/dotansimha/graphql-code-generator/commit/402cb8ac0f0c347b186d295c4b69c19e25a65d00) Thanks [@eddeee888](https://github.com/eddeee888)! - Implement resolversNonOptionalTypename for mapper cases

## 3.1.0

### Minor Changes

- [#9146](https://github.com/dotansimha/graphql-code-generator/pull/9146) [`9f4d9c5a4`](https://github.com/dotansimha/graphql-code-generator/commit/9f4d9c5a479d34da25df8e060a8c2b3b162647dd) Thanks [@eddeee888](https://github.com/eddeee888)! - [typescript-resolvers] Add `resolversNonOptionalTypename` config option.

  This is extending on `ResolversUnionTypes` implemented in https://github.com/dotansimha/graphql-code-generator/pull/9069

  `resolversNonOptionalTypename` adds non-optional `__typename` to union members of `ResolversUnionTypes`, without affecting the union members' base intefaces.

  A common use case for non-optional `__typename` of union members is using it as the common field to work out the final schema type. This makes implementing the union's `__resolveType` very simple as we can use `__typename` to decide which union member the resolved object is. Without this, we have to check the existence of field/s on the incoming object which could be verbose.

  For example, consider this schema:

  ```graphql
  type Query {
    book(id: ID!): BookPayload!
  }

  type Book {
    id: ID!
    isbn: String!
  }

  type BookResult {
    node: Book
  }

  type PayloadError {
    message: String!
  }

  union BookPayload = BookResult | PayloadError
  ```

  _With optional `__typename`:_ We need to check existence of certain fields to resolve type in the union resolver:

  ```ts
  // Query/book.ts
  export const book = async () => {
    try {
      const book = await fetchBook();
      // 1. No `__typename` in resolver results...
      return {
        node: book,
      };
    } catch (e) {
      return {
        message: 'Failed to fetch book',
      };
    }
  };

  // BookPayload.ts
  export const BookPayload = {
    __resolveType: parent => {
      // 2. ... means more checks in `__resolveType`
      if ('message' in parent) {
        return 'PayloadError';
      }
      return 'BookResult';
    },
  };
  ```

  _With non-optional `__typename`:_ Resolvers declare the type. This which gives us better TypeScript support in resolvers and simplify `__resolveType` implementation:

  ```ts
  // Query/book.ts
  export const book = async () => {
    try {
      const book = await fetchBook();
      // 1. `__typename` is declared in resolver results...
      return {
        __typename: 'BookResult', // 1a. this also types `node` for us 🎉
        node: book,
      };
    } catch (e) {
      return {
        __typename: 'PayloadError',
        message: 'Failed to fetch book',
      };
    }
  };

  // BookPayload.ts
  export const BookPayload = {
    __resolveType: parent => parent.__typename, // 2. ... means a very simple check in `__resolveType`
  };
  ```

  _Using `resolversNonOptionalTypename`:_ add it into `typescript-resolvers` plugin config:

  ```ts
  // codegen.ts
  const config: CodegenConfig = {
    schema: 'src/schema/**/*.graphql',
    generates: {
      'src/schema/types.ts': {
        plugins: ['typescript', 'typescript-resolvers'],
        config: {
          resolversNonOptionalTypename: true, // Or `resolversNonOptionalTypename: { unionMember: true }`
        },
      },
    },
  };
  ```

### Patch Changes

- [#9206](https://github.com/dotansimha/graphql-code-generator/pull/9206) [`e56790104`](https://github.com/dotansimha/graphql-code-generator/commit/e56790104ae56d6c5b48ef71823345bd09d3b835) Thanks [@eddeee888](https://github.com/eddeee888)! - Fix `ResolversUnionTypes` being used in `ResolversParentTypes`

  Previously, objects with mappable fields are converted to Omit format that references its own type group or `ResolversTypes` or `ResolversParentTypes` e.g.

  ```ts
  export type ResolversTypes = {
    Book: ResolverTypeWrapper<BookMapper>;
    BookPayload: ResolversTypes['BookResult'] | ResolversTypes['StandardError'];
    // Note: `result` on the next line references `ResolversTypes["Book"]`
    BookResult: ResolverTypeWrapper<Omit<BookResult, 'result'> & { result?: Maybe<ResolversTypes['Book']> }>;
    StandardError: ResolverTypeWrapper<StandardError>;
  };

  export type ResolversParentTypes = {
    Book: BookMapper;
    BookPayload: ResolversParentTypes['BookResult'] | ResolversParentTypes['StandardError'];
    // Note: `result` on the next line references `ResolversParentTypes["Book"]`
    BookResult: Omit<BookResult, 'result'> & { result?: Maybe<ResolversParentTypes['Book']> };
    StandardError: StandardError;
  };
  ```

  In https://github.com/dotansimha/graphql-code-generator/pull/9069, we extracted resolver union types to its own group:

  ```ts
  export type ResolversUnionTypes = {
    // Note: `result` on the next line references `ResolversTypes["Book"]` which is only correct for the `ResolversTypes` case
    BookPayload: (Omit<BookResult, 'result'> & { result?: Maybe<ResolversTypes['Book']> }) | StandardError;
  };

  export type ResolversTypes = {
    Book: ResolverTypeWrapper<BookMapper>;
    BookPayload: ResolverTypeWrapper<ResolversUnionTypes['BookPayload']>;
    BookResult: ResolverTypeWrapper<Omit<BookResult, 'result'> & { result?: Maybe<ResolversTypes['Book']> }>;
    StandardError: ResolverTypeWrapper<StandardError>;
  };

  export type ResolversParentTypes = {
    Book: BookMapper;
    BookPayload: ResolversUnionTypes['BookPayload'];
    BookResult: Omit<BookResult, 'result'> & { result?: Maybe<ResolversParentTypes['Book']> };
    StandardError: StandardError;
  };
  ```

  This change creates an extra `ResolversUnionParentTypes` that is referenced by `ResolversParentTypes` to ensure backwards compatibility:

  ```ts
  export type ResolversUnionTypes = {
    BookPayload: (Omit<BookResult, 'result'> & { result?: Maybe<ResolversParentTypes['Book']> }) | StandardError;
  };

  // ... and the reference is changed in ResolversParentTypes:
  export type ResolversParentTypes = {
    // ... other fields
    BookPayload: ResolversUnionParentTypes['BookPayload'];
  };
  ```

- [#9194](https://github.com/dotansimha/graphql-code-generator/pull/9194) [`acb647e4e`](https://github.com/dotansimha/graphql-code-generator/commit/acb647e4efbddecf732b6e55dc47ac40c9bdaf08) Thanks [@dstaley](https://github.com/dstaley)! - Don't emit import statements for unused fragments

- Updated dependencies [[`b7dacb21f`](https://github.com/dotansimha/graphql-code-generator/commit/b7dacb21fb0ed1173d1e45120dc072e29231ed29), [`f104619ac`](https://github.com/dotansimha/graphql-code-generator/commit/f104619acd27c9d62a06bc577737500880731087)]:
  -<EMAIL_ADDRESS>
## 3.0.2

### Patch Changes

- [#9110](https://github.com/dotansimha/graphql-code-generator/pull/9110) [`ba0610bbd`](https://github.com/dotansimha/graphql-code-generator/commit/ba0610bbd4578d8a82078014766f56d8ae5fcf7a) Thanks [@gilgardosh](https://github.com/gilgardosh)! - Custom mappers with placeholder will apply omit

- [#9069](https://github.com/dotansimha/graphql-code-generator/pull/9069) [`4b49f6fbe`](https://github.com/dotansimha/graphql-code-generator/commit/4b49f6fbed802907b460bfb7b6e9a85f88c555bc) Thanks [@eddeee888](https://github.com/eddeee888)! - Extract union types to ResolversUnionTypes

- [#8895](https://github.com/dotansimha/graphql-code-generator/pull/8895) [`b343626c9`](https://github.com/dotansimha/graphql-code-generator/commit/b343626c978b9ee0f14e314cea6c01ae3dad057c) Thanks [@benkroeger](https://github.com/benkroeger)! - Preserve .js extension when importDocumentNodeExternallyFrom and emitLegacyCommonJSImports is false

## 3.0.1

### Patch Changes

- [#8879](https://github.com/dotansimha/graphql-code-generator/pull/8879) [`8206b268d`](https://github.com/dotansimha/graphql-code-generator/commit/8206b268dfb485a748fd7783a163cb0ee9931491) Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates:

  - Updated dependency<EMAIL_ADDRESS>↗](https://www.npmjs.com/package/tslib/v/2.5.0) (from `~2.4.0`, in `dependencies`)

- [#8971](https://github.com/dotansimha/graphql-code-generator/pull/8971) [`6b6fe3cbc`](https://github.com/dotansimha/graphql-code-generator/commit/6b6fe3cbcc7de748754703adce0f62f3e070a098) Thanks [@n1ru4l](https://github.com/n1ru4l)! - Always inline referenced fragments within their document. This prevents issues with duplicated fragments or missing fragments.

- Updated dependencies [[`8206b268d`](https://github.com/dotansimha/graphql-code-generator/commit/8206b268dfb485a748fd7783a163cb0ee9931491), [`a118c307a`](https://github.com/dotansimha/graphql-code-generator/commit/a118c307a35bbb97b7cbca0f178a88276032a26c), [`a3309e63e`](https://github.com/dotansimha/graphql-code-generator/commit/a3309e63efed880e6f74ce6fcbf82dd3d7857a15)]:
  -<EMAIL_ADDRESS>
## 3.0.0

### Major Changes

- [#8885](https://github.com/dotansimha/graphql-code-generator/pull/8885) [`fd0b0c813`](https://github.com/dotansimha/graphql-code-generator/commit/fd0b0c813015cae4f6f6bda5f4c5515e544eb76d) Thanks [@n1ru4l](https://github.com/n1ru4l)! - drop Node.js 12 support

### Patch Changes

- [#8871](https://github.com/dotansimha/graphql-code-generator/pull/8871) [`fc79b65d4`](https://github.com/dotansimha/graphql-code-generator/commit/fc79b65d4914fd25ae6bd5d58ebc7ded573a08a5) Thanks [@B2o5T](https://github.com/B2o5T)! - eslint fixes

- Updated dependencies [[`fc79b65d4`](https://github.com/dotansimha/graphql-code-generator/commit/fc79b65d4914fd25ae6bd5d58ebc7ded573a08a5), [`fd0b0c813`](https://github.com/dotansimha/graphql-code-generator/commit/fd0b0c813015cae4f6f6bda5f4c5515e544eb76d)]:
  -<EMAIL_ADDRESS>
## 2.13.8

### Patch Changes

- [#8816](https://github.com/dotansimha/graphql-code-generator/pull/8816) [`a98198524`](https://github.com/dotansimha/graphql-code-generator/commit/a9819852443884b43de7c15040ccffc205f9177a) Thanks [@charle692](https://github.com/charle692)! - Fix issue where visitor-plugin-common emitted ESM imports for Operations when emitLegacyCommonJSImports is true

## 2.13.7

### Patch Changes

- [#8755](https://github.com/dotansimha/graphql-code-generator/pull/8755) [`eb454d06c`](https://github.com/dotansimha/graphql-code-generator/commit/eb454d06c977f11f7d4a7b0b07eb80f8fd590560) Thanks [@schmod](https://github.com/schmod)! - avoid using TypeScript namespace imports for enums

## 2.13.6

### Patch Changes

- [#8771](https://github.com/dotansimha/graphql-code-generator/pull/8771) [`ed87c782b`](https://github.com/dotansimha/graphql-code-generator/commit/ed87c782bf3292bfbee772c6962d6cbc43a9abe7) Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates:
  - Updated dependency [`<EMAIL_ADDRESS><EMAIL_ADDRESS>(from `^8.8.0`, in `dependencies`)
- Updated dependencies [[`ed87c782b`](https://github.com/dotansimha/graphql-code-generator/commit/ed87c782bf3292bfbee772c6962d6cbc43a9abe7), [`6c6b6f2df`](https://github.com/dotansimha/graphql-code-generator/commit/6c6b6f2df88a3a37b437a25320dab5590f033316)]:
  -<EMAIL_ADDRESS>
## 2.13.5

### Patch Changes

- [`46f75304a`](https://github.com/dotansimha/graphql-code-generator/commit/46f75304a69a13e8b5f58303f65c81b30a2ad96a) Thanks [@saihaj](https://github.com/saihaj)! - fix the version of `<EMAIL_ADDRESS>
- Updated dependencies [[`307a5d350`](https://github.com/dotansimha/graphql-code-generator/commit/307a5d350643dd065d228b04ef3b4bd70cac0e81)]:
  -<EMAIL_ADDRESS>
## 2.13.4

### Patch Changes

- [#8686](https://github.com/dotansimha/graphql-code-generator/pull/8686) [`a6c2097f4`](https://github.com/dotansimha/graphql-code-generator/commit/a6c2097f4789c0cce4296ce349790ce29943ed22) Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates:
  - Updated dependency<EMAIL_ADDRESS>↗](https://www.npmjs.com/package/change-case-all/v/1.0.15) (from `1.0.14`, in `dependencies`)
- Updated dependencies [[`a6c2097f4`](https://github.com/dotansimha/graphql-code-generator/commit/a6c2097f4789c0cce4296ce349790ce29943ed22), [`f79a00e8a`](https://github.com/dotansimha/graphql-code-generator/commit/f79a00e8ae073eab426ca08795c924e716123482), [`c802a0c0b`](https://github.com/dotansimha/graphql-code-generator/commit/c802a0c0b775cfabc5ace3e7fb6655540c6c4d84)]:
  -<EMAIL_ADDRESS>
## 2.13.3

### Patch Changes

- [#8664](https://github.com/dotansimha/graphql-code-generator/pull/8664) [`62f655452`](https://github.com/dotansimha/graphql-code-generator/commit/62f6554520955dd675e11c920f35ef9bf0aaeffe) Thanks [@jdmoody](https://github.com/jdmoody)! - Fix issue where selection set flattening uses the wrong parent type

## 2.13.2

### Patch Changes

- [#8586](https://github.com/dotansimha/graphql-code-generator/pull/8586) [`ef4c2c9c2`](https://github.com/dotansimha/graphql-code-generator/commit/ef4c2c9c233c68830f10eb4c167c7cceead27122) Thanks [@levrik](https://github.com/levrik)! - Fix incompatibility between `@oneOf` input types and declaration kind other than `type`

## 2.13.1

### Patch Changes

- [#8525](https://github.com/dotansimha/graphql-code-generator/pull/8525) [`63dc8f205`](https://github.com/dotansimha/graphql-code-generator/commit/63dc8f2054e27b944f7d8dc59db8afa85760a127) Thanks [@charlypoly](https://github.com/charlypoly)! - remove `DetailledError`, not supported by Listr renderer

- Updated dependencies [[`63dc8f205`](https://github.com/dotansimha/graphql-code-generator/commit/63dc8f2054e27b944f7d8dc59db8afa85760a127)]:
  -<EMAIL_ADDRESS>
## 2.13.0

### Minor Changes

- [#8498](https://github.com/dotansimha/graphql-code-generator/pull/8498) [`a46b8d99c`](https://github.com/dotansimha/graphql-code-generator/commit/a46b8d99c797283d773ec14163c62be9c84d4c2b) Thanks [@charlypoly](https://github.com/charlypoly)! - Fragment masking ` $fragmentName` and ` $fragmentRefs` are optionals

## 2.12.2

### Patch Changes

- [#8432](https://github.com/dotansimha/graphql-code-generator/pull/8432) [`1bd7f771c`](https://github.com/dotansimha/graphql-code-generator/commit/1bd7f771ccb949a5a37395c7c57cb41c19340714) Thanks [@mvestergaard](https://github.com/mvestergaard)! - Remove extension from operations file import

## 2.12.1

### Patch Changes

- [#8189](https://github.com/dotansimha/graphql-code-generator/pull/8189) [`b408f8238`](https://github.com/dotansimha/graphql-code-generator/commit/b408f8238c00bbb4cd448501093856c06cfde50f) Thanks [@n1ru4l](https://github.com/n1ru4l)! - Fix CommonJS TypeScript resolution with `moduleResolution` `node16` or `nodenext`

- [#8185](https://github.com/dotansimha/graphql-code-generator/pull/8185) [`47d0a57e2`](https://github.com/dotansimha/graphql-code-generator/commit/47d0a57e27dd0d2334670bfc6c81c45e00ff4e74) Thanks [@chrisands](https://github.com/chrisands)! - Fix emitLegacyCommonJSImports to being passed

- Updated dependencies [[`b408f8238`](https://github.com/dotansimha/graphql-code-generator/commit/b408f8238c00bbb4cd448501093856c06cfde50f)]:
  -<EMAIL_ADDRESS>
## 2.12.0

### Minor Changes

- 2cbcbb371: Add new flag to emit legacy common js imports. Default it will be `true` this way it ensure that generated code works with [non-compliant bundlers](https://github.com/dotansimha/graphql-code-generator/issues/8065).

  You can use the option in your config:

  ```yaml
  schema: 'schema.graphql'
   documents:
     - 'src/**/*.graphql'
   emitLegacyCommonJSImports: true
  ```

  Alternative you can use the CLI to set this option:

  ```bash
  $ codegen --config-file=config.yml --emit-legacy-common-js-imports
  ```

### Patch Changes

- Updated dependencies [2cbcbb371]
  -<EMAIL_ADDRESS>
## 2.11.1

### Patch Changes

- 525ad580b: Revert breaking change for Next.js applications that are incapable of resolving an import with a `.js` extension.

## 2.11.0

### Minor Changes

- 68bb30e19: Attach `.js` extension to imports starting with either a `.` or `/` character.
- d84afec09: Support TypeScript ESM modules (`"module": "node16"` and `"moduleResolution": "node16"`).

  [More information on the TypeScript Release Notes.](https://devblogs.microsoft.com/typescript/announcing-typescript-4-7/#ecmascript-module-support-in-node-js)

### Patch Changes

- Updated dependencies [d84afec09]
- Updated dependencies [a4fe5006b]
- Updated dependencies [8e44df58b]
  -<EMAIL_ADDRESS>
## 2.10.0

### Minor Changes

- aa1e6eafd: Add @Deprecated support for input

### Patch Changes

- a42fcbfe4: docs: Swapping rootValueType with directiveContextTypes for correctness
- 8b10f22be: Ensure falsy enum values are still mapped

## 2.9.1

### Patch Changes

- d16bebacb: Update @graphql-tools/relay-operation-optimizer package;

  - Previously that package used relay-compiler@12 which has graphql v15 as a peer dependency and it was causing peer dependency warnings if user installs a different version of `graphql` package. Now we forked and released v12 under a different name and removed version range for `graphql` in `peerDependencies` of `relay-compiler`

## 2.9.0

### Minor Changes

- c3d7b7226: support the `@oneOf` directive on input types.

## 2.8.0

### Minor Changes

- f1fb77bd4: feat: Add option to squash exactly similar fragment types

## 2.7.6

### Patch Changes

- 9a5f31cb6: New option `onlyEnums` for Typescript

## 2.7.5

### Patch Changes

- 2966686e9: Generate $fragmentName for fragment subtypes for fragment masking

## 2.7.4

### Patch Changes

- 337fd4f77: WP: [typescript-resolvers] Add directiveContextTypes option

## 2.7.3

### Patch Changes

- 54718c039: Improve @Deprecated Enum Type developer experience

## 2.7.2

### Patch Changes

- 11d05e361: fix(resolvers): fix conflict between `typesPrefix: true` and `enumPrefix: false`

## 2.7.1

### Patch Changes

- fd55e2039: fix incorrect type generation when using the inlineFragmentTypes 'combine' option that resulted in generating masked fragment output.

## 2.7.0

### Minor Changes

- 1479233df: Add new `inlineFragmentTypes` mode `'mask'`, which allows generating masked fragment types.

## 2.6.0

### Minor Changes

- bef4376d5: fix: RequireFields generic making all other fields optional

### Patch Changes

- c8ef37ae0: fix(typescript-resolvers): Fix optional field types
- be7cb3a82: Performance work: resolvers plugins, documents loading
- Updated dependencies [754a33715]
  -<EMAIL_ADDRESS>
## 2.5.2

### Patch Changes

- 6002feb3d: Fix exports in package.json files for react-native projects
- Updated dependencies [6002feb3d]
  -<EMAIL_ADDRESS>
## 2.5.1

### Patch Changes

- a9f1f1594: Use maybeValue as default output for optionals on preResolveTypes: true
- 9ea6621ec: add missing ListType method parameters

## 2.5.0

### Minor Changes

- 97ddb487a: feat: GraphQL v16 compatibility

### Patch Changes

- Updated dependencies [97ddb487a]
  -<EMAIL_ADDRESS>
## 2.4.0

### Minor Changes

- ad02cb9b8: Fixed an issue where ResolversParentTypes referenced non-existing fields of ResolversParentTypes when the corresponding type was a mapped enum.

## 2.3.0

### Minor Changes

- b9e85adae: feat(visitor-plugin-common): support custom scalar type from extensions

### Patch Changes

- 3c2c847be: Fix dedupleFragments option for typescript-react-query (and possibly others)
- Updated dependencies [7c60e5acc]
  -<EMAIL_ADDRESS>
## 2.2.1

### Patch Changes

- 0b090e31a: Apply proper indentation to DirectiveArgs types

## 2.2.0

### Minor Changes

- d6c2d4c09: Allow declaring Argument and InputType field mappings based on directive annotations.

  **WARNING:** Using this option does only change the type definitions.

  For actually ensuring that a type is correct at runtime you will have to use schema transforms (e.g. with [@graphql-tools/utils mapSchema](https://www.graphql-tools.com/docs/schema-directives)) that apply those rules! Otherwise, you might end up with a runtime type mismatch which could cause unnoticed bugs or runtime errors.

  Please use this configuration option with care!

  ```yaml
  plugins:
    config:
      directiveArgumentAndInputFieldMappings:
        asNumber: number
  ```

  ```graphql
  directive @asNumber on ARGUMENT_DEFINITION | INPUT_FIELD_DEFINITION

  input MyInput {
    id: ID! @asNumber
  }

  type User {
    id: ID!
  }

  type Query {
    user(id: ID! @asNumber): User
  }
  ```

  Usage e.g. with `typescript-resolvers`

  ```ts
  const Query: QueryResolvers = {
    user(_, args) {
      // args.id is of type 'number'
    },
  };
  ```

- 5086791ac: Allow overwriting the resolver type signature based on directive usages.

  **WARNING:** Using this option does only change the generated type definitions.

  For actually ensuring that a type is correct at runtime you will have to use schema transforms (e.g. with [@graphql-tools/utils mapSchema](https://www.graphql-tools.com/docs/schema-directives)) that apply those rules! Otherwise, you might end up with a runtime type mismatch which could cause unnoticed bugs or runtime errors.

  Example configuration:

  ```yaml
  config:
    # This was possible before
    customResolverFn: ../resolver-types.ts#UnauthenticatedResolver
    # This is new
    directiveResolverMappings:
      authenticated: ../resolvers-types.ts#AuthenticatedResolver
  ```

  Example mapping file (`resolver-types.ts`):

  ```ts
  export type UnauthenticatedContext = {
    user: null;
  };

  export type AuthenticatedContext = {
    user: { id: string };
  };

  export type UnauthenticatedResolver<TResult, TParent, _TContext, TArgs> = (
    parent: TParent,
    args: TArgs,
    context: UnauthenticatedContext,
    info: GraphQLResolveInfo
  ) => Promise<TResult> | TResult;

  export type AuthenticatedResolver<TResult, TParent, _TContext, TArgs> = (
    parent: TParent,
    args: TArgs,
    context: AuthenticatedContext,
    info: GraphQLResolveInfo
  ) => Promise<TResult> | TResult;
  ```

  Example Schema:

  ```graphql
  directive @authenticated on FIELD_DEFINITION

  type Query {
    yee: String
    foo: String @authenticated
  }
  ```

### Patch Changes

- feeae1c66: Do not throw an error when trying to merge inline fragment usages.

## 2.1.2

### Patch Changes

- 6470e6cc9: fix(plugin-helpers): remove unnecessary import
- 263570e50: Don't generate duplicate imports for the same identifier
- Updated dependencies [6470e6cc9]
- Updated dependencies [35199dedf]
  -<EMAIL_ADDRESS>
## 2.1.1

### Patch Changes

- aabeff181: Don't generate import statements for fragments declared in the file we're outputting to

## 2.1.0

### Minor Changes

- 290170262: add getOperationVariableName function to ClientSideBasePluginConfig class
- 440172cfe: support ESM

### Patch Changes

- 24185985a: bump graphql-tools package versions
- Updated dependencies [24185985a]
- Updated dependencies [39773f59b]
- Updated dependencies [440172cfe]
  -<EMAIL_ADDRESS>
## 2.0.0

### Major Changes

- d80efdec4: Change `preResolveTypes` default to be `true` for more readable types
- b0cb13df4: Update to latest `graphql-tools` and `graphql-config` version.

  ‼ ‼ ‼ Please note ‼ ‼ ‼:

  This is a breaking change since Node 10 is no longer supported in `graphql-tools`, and also no longer supported for Codegen packages.

### Patch Changes

- d80efdec4: Add option `inlineFragmentTypes` for deep inlining fragment types within operation types. This `inlineFragmentTypes` is set to `inline` by default (Previous behaviour is `combine`).

  This behavior is the better default for users that only use Fragments for building operations and then want to have access to all the data via the operation type (instead of accessing slices of the data via fragments).

- Updated dependencies [b0cb13df4]
  -<EMAIL_ADDRESS>
## 1.22.0

### Minor Changes

- 9005cc17: add `allowEnumStringTypes` option for allowing string literals as valid return types from resolvers in addition to enum values.\_

### Patch Changes

- df19a4ed: Allow multiple `{T}` instances in defaultMapper
- Updated dependencies [470336a1]
  -<EMAIL_ADDRESS>
## 1.21.3

### Patch Changes

- 6762aff5: Fix for array types with @skip @include directives

## 1.21.2

### Patch Changes

- 6aaecf1c: Fix issues with missing sub-fragments when skipTypename: true

## 1.21.1

### Patch Changes

- cf1e5abc: Introduce new feature for removing duplicated fragments

## 1.21.0

### Minor Changes

- 8da7dff6: Skip typechecking on generated values by casting to unknown

### Patch Changes

- dfd25caf: chore(deps): bump graphql-tools versions
- Updated dependencies [dfd25caf]
  -<EMAIL_ADDRESS>
## 1.20.0

### Minor Changes

- f0b5ea53: Add entireFieldWrapperValue configuration option, to wrap arrays
- 097bea2f: Added new configuration settings for scalars: `strictScalars` and `defaultScalarType`

### Patch Changes

- d9212aa0: fix(visitor-plugin-common): guard for a runtime type error
- Updated dependencies [d9212aa0]
  -<EMAIL_ADDRESS>
## 1.19.1

### Patch Changes

- 23862e7e: fix(naming-convention): revert and pin change-case-all dependency for workaround #3256
- Updated dependencies [23862e7e]
  -<EMAIL_ADDRESS>
## 1.19.0

### Minor Changes

- d4942d04: NEW CONFIG (`onlyResolveTypeForInterfaces`): Allow to generate only \_\_resolveType for interfaces

### Patch Changes

- e947f8e3: Allow to have declarationKind of type: class, interface: interface
- 29b75b1e: enhance(docs): improve docs for naming convention
- 1f6f3db6: Fix for @skip @include directives upon arrays
- 29b75b1e: enhance(namingConvention): use change-case-all instead of individual packages for naming convention
- Updated dependencies [29b75b1e]
  -<EMAIL_ADDRESS>
## 1.18.3

### Patch Changes

- 5749cb8a: chore: fix type-level incompatibilities of the `avoidOptionals`
- 5a12fe58: fix type error on parsing enums

## 1.18.2

### Patch Changes

- ca66569f: Fix issues with undefined calls for str.replace

## 1.18.1

### Patch Changes

- 63be0f40: Fix issues with empty interfaces causing syntax issues
- 190482a1: add support for fragment variables
- 4444348d: Correctly escape enum values defined in the GraphQLSchema object
- 142b32b3: Better support for @skip/@include directives with complex selection sets
- 42213fa0: Strip trailing whitespace from some output

## 1.18.0

### Minor Changes

- bd4bf7cf: feat(visitor-plugin-common): add ignoreEnumValuesFromSchema to ignore enum values from GraphQLSchema

## 1.17.22

### Patch Changes

- 64293437: Support for input lists coercion
- fd5843a7: Fixed a bug where some import namespacing is missed when generating resolver types.
- d75051f5: generate correct types for fragments with an interface type condition that are spread on an interface field.

## 1.17.21

### Patch Changes

- 8356f8a2: Extended behaviour to allow support in `internalResolversPrefix` flag for resolvers plugin

## 1.17.20

### Patch Changes

- 1183d173: Bump all packages to resolve issues with shared dependencies
- Updated dependencies [1183d173]
  -<EMAIL_ADDRESS>
## 1.17.19

### Patch Changes

- 99819bf1: Improve DocumentNode optimization for plugins that generate it
- c3b59e81: Extract buildMapperImport to external function

## 1.17.18

### Patch Changes

- faa13973: Fixed a bug in `parseMapper` that were preventing to use mappers with complex type usages

## 1.17.17

### Patch Changes

- 612e5e52: remove broken isTypeOf call for expanding fragments with flattenGeneratedTypes = true
- 9f2a4e2f: Expose `_hasRequiredVariables` to `buildOperation` in order to allow better type-safety for plugins that deals with `variables`
- 0f35e775: Fix issues with incorrect naming of operation and variables when used with typesSuffix
- Updated dependencies [eaf45d1f]
  -<EMAIL_ADDRESS>
## 1.17.16

### Patch Changes

- 92d8f876: Fixed unquoted numeric enum identifiers

## 1.17.15

### Patch Changes

- d2cde3d5: fixed isTypeOf resolvers signature
- 89a6aa80: Fixes issues with typesSuffix and arguments type name
- f603b8f8: Support unnamed queries in operation visitors
- Updated dependencies [da8bdd17]
  -<EMAIL_ADDRESS>
## 1.17.14

### Patch Changes

- 07f9b1b2: Fix a bug caused numeric enum values defined in the GraphQLSchema to be printed incorrectly
- 35f67120: bugfix: allow to specify mappers for GraphQL `interface` and override the default behaviour.

## 1.17.13

### Patch Changes

- 1d7c6432: Bump all packages to allow "^" in deps and fix compatibility issues
- 1d7c6432: Bump versions of @graphql-tools/ packages to fix issues with loading schemas and SDL comments
- Updated dependencies [1d7c6432]
- Updated dependencies [1d7c6432]
  -<EMAIL_ADDRESS>
## 1.17.12

### Patch Changes

- 4266a15f: Allow getDocumentNodeSignature to control the entire generation flow of the typed documents

## 1.17.11

### Patch Changes

- ee2b01a3: Fixes for issues with publish command

## 1.17.10

### Patch Changes

- 6cb9c96d: Fixes issues with previous release

## 1.17.9

### Patch Changes

- bccfd28c: Allow to set `gqlImport` to a clean `gql` string and skip import generating

## 1.17.8

### Patch Changes

- ce3a5798: Publish minor version to include fixes for client-side-base-visitor, required to v2 of ts-react-apollo plugin (for unified apollo import)

repository: akadop/graphql-code-generator

gha_language: TypeScript

repo_name: akadop/graphql-code-generator


text:
Check Fn::Not is a list of two elements

[SOURCE](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-conditions.html#intrinsic-function-reference-conditions-not)

repository: codacy/codacy-cfn-lint

gha_language: Python

gha_license_id: NOASSERTION

repo_name: codacy/codacy-cfn-lint


text:
---
title: AttackAnimation
searchTitle: Lua Mob AttackAnimation
weight: 1
hidden: true
menuTitle: AttackAnimation
---
## AttackAnimation
```lua
Mob:AttackAnimation(number Hand, Lua_ItemInst weapon); -- number
```

repository: xackery/eqquestapi

repo_name: xackery/eqquestapi


text:
# Biofourmis Assignment 14327

##### Backend Table Requirement
* Write a *__simulator__* to generate random values of hear_rate, resp_rate and activity every second
in increasing order of unix timestamp (epoch). It will then pass every value one by one to the
processor function.
* Then write a *__processor__* function code which would update the pandas dataframe after every
new second value comes to it. Basically seg_start and seg_end are 15 mins segments of UTC
hour. So every UTC hour, there are four 15 mins segments for which avg, min, max should be
calculated.

##### Execution Steps
* ``` pip install -r requirements.txt```
* Run the command ```python3 execute.py```
* On completion of the execution, the required report would be available in reports directory.

branch_name: refs/heads/main


text:
# Deploying a Java Web Application to a Tomcat Web Server With Maven

### Prerequisites:
  - Java 8 JDK installed configured
  - Maven 3 installed and configured
  - Tomcat 9 installed and configured

### Instructions:
  - Step 1: Edit Tomcat's `tomcat-users.xml` file (found in the `$CATALINA_HOME/conf` directory) to include the following within the `<tomcat-users>` tag:

	```
	<role rolename="manager-gui"/>
	<role rolename="manager-script"/>
	<role rolename="manager-status"/>
	<role rolename="manager-jmx"/>
	<user username="admin" password="revature" roles="manager-gui,manager-script,manager-status,manager-jmx"/>
	<user username="maven-tomcat" password="revature" roles="manager-script"/>
	```

  - Step 2: Edit Maven's `settings.xml` file (found in the `$M2_HOME/conf` directory) to include the following within the `<servers>` tag:

	```
	<server>
	  <id>LocalTomcat</id>
	  <username>maven-tomcat</username>
	  <password>revature</password>
	</server>
	```

  - Step 3: Start the Tomcat Web Server by running the command: `sh $CATALINA_HOME/conf/startup.sh`. Check `https://localhost:8080` for success, you should see the Tomcat landing page.

  - Step 4: Create a Maven Project (no archetype required), configure project to Java 8, and change packaging to WAR

  - Step 5: Add `javax-servlet:javax.servlet-api:4.0.1` as a dependency to the newly created project

  - Step 6: Include the following `<build>` tag and all of its contents within the root `<project>` tag of the `pom.xml`

	```
	<build>
            <pluginManagement>
              <plugins>
                  <plugin>
                      <groupId>org.apache.tomcat.maven</groupId>
                      <artifactId>tomcat7-maven-plugin</artifactId>
                      <version>2.2</version>
                      <configuration>
                          <url>http://localhost:8080/manager/text</url>
                          <server>LocalTomcat</server>
                          <path>/test-app</path>
                      </configuration>
                  </plugin>
              </plugins>
            </pluginManagement>
	</build>
	```

  - Step 7: Create the following directory structure: `./src/main/webapp/WEB-INF`. Within the `webapp` directory include an `index.html` file, and within the `WEB-INF` directory include a `web.xml` file.

  - Step 8: Configure your `web.xml` file to include the following:

	```
	<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
                 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                 xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
                 http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
                 version="3.1">

            <display-name>Hello, Servlets!</display-name>

            <welcome-file-list>
                <welcome-file>index.html</welcome-file>
            </welcome-file-list>

            <servlet>
                <servlet-name>TestServlet</servlet-name>
                <servlet-class>com.revature.servlets.TestServlet</servlet-class>
            </servlet>

            <servlet-mapping>
                <servlet-name>TestServlet</servlet-name>
                <url-pattern>/test</url-pattern>
            </servlet-mapping>

        </web-app>
	```

  - Step 9: Create the `com.revature.servlets` package structure and include a class named `TestServlet` within in it. Configure the servlet to include the following:

	```
        package com.revature.servlets;

        import javax.servlet.ServletException;
        import javax.servlet.http.HttpServlet;
        import javax.servlet.http.HttpServletRequest;
        import javax.servlet.http.HttpServletResponse;
        import java.io.IOException;

        public class TestServlet extends HttpServlet {

            @Override
            protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
                resp.getWriter().write("<h1>/test works!</h1>");
            }

        }
	```

  - Step 10: Use the command `mvn tomcat7:deploy` to execute the Maven goal to build and deploy the application to the locally running Tomcat Web Server. The application can be managed through the use of other Maven goal commands provided by the `tomcat7-maven-plugin` or through the Tomcat Web App Manager GUI found at `http://localhost:8080/manager/html`.

gha_language: Java


text:
[![npm](https://img.shields.io/npm/v/scope-reporter.svg)](https://www.npmjs.com/package/scope-reporter)
[![License](https://img.shields.io/badge/License-BSD%203--Clause-blue.svg)](https://opensource.org/licenses/BSD-3-Clause)
[![Open Bundle](https://bundlejs.com/badge-light.svg)](https://bundlejs.com/?q=scope-reporter)
[![downloads](http://img.shields.io/npm/dm/scope-reporter.svg?style=flat-square)](https://npmjs.org/package/scope-reporter)
[![GitHub Issues](https://img.shields.io/github/issues/arlac77/scope-reporter.svg?style=flat-square)](https://github.com/arlac77/scope-reporter/issues)
[![Build Status](https://img.shields.io/endpoint.svg?url=https%3A%2F%2Factions-badge.atrox.dev%2Farlac77%2Fscope-reporter%2Fbadge\&style=flat)](https://actions-badge.atrox.dev/arlac77/scope-reporter/goto)
[![Styled with prettier](https://img.shields.io/badge/styled_with-prettier-ff69b4.svg)](https://github.com/prettier/prettier)
[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)
[![Known Vulnerabilities](https://snyk.io/test/github/arlac77/scope-reporter/badge.svg)](https://snyk.io/test/github/arlac77/scope-reporter)
[![Coverage Status](https://coveralls.io/repos/arlac77/scope-reporter/badge.svg)](https://coveralls.io/github/arlac77/scope-reporter)

# scope-reporter

traks scope identifiers during processing

# API

<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

### Table of Contents

*   [createScopeDefinitions](#createscopedefinitions)
    *   [Parameters](#parameters)
*   [createScopeDefinition](#createscopedefinition)
    *   [Parameters](#parameters-1)
*   [commonScopes](#commonscopes)
*   [createConsoleAdapter](#createconsoleadapter)
    *   [Parameters](#parameters-2)
*   [createLoggingAdapter](#createloggingadapter)
    *   [Parameters](#parameters-3)
*   [createReporter](#createreporter)
    *   [Parameters](#parameters-4)
*   [rootObject](#rootobject)
    *   [toJSON](#tojson)
    *   [addScopeDefinitions](#addscopedefinitions)
        *   [Parameters](#parameters-5)
    *   [scope](#scope)
        *   [Parameters](#parameters-6)
    *   [enterScope](#enterscope)
        *   [Parameters](#parameters-7)
    *   [leaveScope](#leavescope)
        *   [Parameters](#parameters-8)
    *   [clearScopes](#clearscopes)
*   [scopeDefinitions](#scopedefinitions)
*   [scopeStack](#scopestack)
*   [currentScope](#currentscope)

## createScopeDefinitions

Creates several scope definition from a given json hash.

### Parameters

*   `scopes` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)**

## createScopeDefinition

Creates a scope definition

### Parameters

*   `name` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** the scope definition name
*   `properties` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** describung properties for the scope
*   `format`  format string for the scope properties

## commonScopes

Commonly used scopes

## createConsoleAdapter

Creates a reporting adaptor for console api.

### Parameters

*   `aConsole` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** console object may be undefined for the default console (optional, default `console`)

Returns **any** the newly created adaptor

## createLoggingAdapter

Creates a reporting adaptor for logging api.

### Parameters

*   `logger`  target logger

Returns **any** the newly created adaptor

## createReporter

Creates a new scope reporter.

### Parameters

*   `scopeDefinitionsRaw` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)**
*   `reportAdapter`   (optional, default `createConsoleAdapter()`)

Returns **ScopeReporter** newly created scope reporter

## rootObject

methods of all scopes

### toJSON

Delivers the json representation of the scope-reporter.

Returns **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** with scopes array

### addScopeDefinitions

Add additional scope definitions

#### Parameters

*   `defs`  new scope defintions to be added to the already present ones

### scope

Deliver a scope for a given scope name.

#### Parameters

*   `name` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** name of the scope

Returns **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** for the given name

### enterScope

Enter a new scope by pushing the scope to the scope stack.

#### Parameters

*   `scope`  name of the scope to be entered
*   `propertiesOrScalar`  the properties of the new scope may ge a scalar if there is only one possible property

Returns **any** newly created scope with the assigned properties.

### leaveScope

Leaves the last entered scope.

#### Parameters

*   `expectedScope`  the expected current scope may be undefined

<!---->

*   Throws **any** if expectedScope is not the current scope

Returns **any** the old leaved scope

### clearScopes

Clears the scope stack

## scopeDefinitions

Delivers the scope definitions

Returns **any** scope defintions

## scopeStack

Delivers the scope stack.

Returns **any** scope stack

## currentScope

Delivers the current scope

Returns **any** the current scope

# install

With [npm](http://npmjs.org) do:

    npm install scope-reporter

# license

BSD-2-Clause

gha_language: JavaScript


text:
#### v.1.0.0

Drop support for python 3.7.

##### Moved % and .format expression identification to `ast` instead of legacy token state machine.
This has led to small changes in formatting of output code, e.g. type of quotes in ambiguous cases
might have changed. Example:
`'first part {}'"second part {}".format(one, two)` used to result in `"` quotes,
and now results in `'`, as in `f'first part {one}second part {two}'`. I think it's a minor change
in the output. At the same time it's a huge simplification of the source code that should help
maintain and develop this project in the future.

#### v.0.77

*[Contributed by Aarni Koskela]* `--transform-joins` (`-tj`) will transform string join operations on static operands
to an f-string.

*[Contributed by Aarni Koskela]* Fix handling of escaped unicode characters (#55 and #104).

*[Contributed by Aarni Koskela]* Add flags to disable percent statement / .format statement transformations: `--no-tp, --no-transform-percent` and
`--no-tf, --no-transform-format`.

#### v.0.71

Added support to configuration via file.
For per-project configuration, use `pyproject.toml` file, [tool.flynt] section.
for global config, use `~/.config/flynt.toml` file.

#### v0.70

*[Contributed by Ryan Barrett]* Aggressive mode enables transforming expressions where same variable is used twice,
e.g. `"""a = '%(?)s %(?)s' % {'?': var}"""` to `"""a = f'{var} {var}'"""`

#### v.0.47

* added the changelog.
* added `-a / --aggressive` flag to enable risky
(with behaviour potentially different from original) transformations.
This currently includes "%5" % var -> f"{var:5}" transformation.
Demo of unsafe behavior:

```
print( "|%5s|%5d|%5d|" % ('111', 999_999, 77)  )
print( "|%5d|%5d|%5d|" % (111, 999_999, 77)  )

print( "|{:5s}|{:5}|{:5}|".format('111', 999_999, 77)  )
print( f"|{111:5}|{999_999:5}|{77:5}|" )

""" output:
|  111|999999|   77|
|  111|999999|   77|
|111  |999999|   77|  << behavior differs when printing a string
|  111|999999|   77|
"""
```

* %d format specifier is transformed only in `--aggressive` mode,
and will result in `"%d" % var` -> `f"{int(var)}"`. See https://github.com/ikamensh/flynt/issues/59.

* added short versions to other flags:
```
--line-length, -l
--transform-concats, -tc
--verbose, -v
--quiet, -q
--fail-on-change, -f
```

repository: ikamensh/flynt

repo_name: ikamensh/flynt


text:
# Icosystem CLI

Icosystem CLI is a utility that creates SVG `<symbol>`'s by simply stating what icons you want to use.

### v0.3.0 - Breaking changes

#### Configuration Requirements

Icon config files now require `family` and `icons` props, which means simple icon arrays are not valid anymore:

```javascript
// not valid
module.exports = ['magnify', 'help']
```

```javascript
// valid
module.exports = {
  family: 'material',
  icons: ['magnify', 'help']
}
```

#### Removal of CLI options

Writing out multiple options every time you needed to add an icon is redundant - and since we're already writing a config for our `icons` list, it just makes sense to require `family` as well, and remove most of the CLI options.

CLI options being removed:

- `--icon-family` (now `family` prop in config)
- `--file-type` (only supporting js files for now)
- `--export-type` (only supporting es6 modules for now)

#### Output file rename

Changed the output file's name from `svg-symbols.js` to `icon-symbols.js`.

#### Technical Things

I did a complete overhaul of the build process (even reduced the code footprint a bit :smile:):

- Code is clearly formed in a pipeline
- Self documented with some JSDocs
- cleaned up some global messiness
- Added more (clearer) error messages

---

## Icons

This repo depends on open source SVG icon sets. Icons available:

- [Material Design Icons](https://materialdesignicons.com/) (family = `material`)
- [weather-icons](https://github.com/erikflowers/weather-icons/) (family = `weather`)
- **More coming soon.**

You can also use local icon sets - see [Custom Icon Sets](#custom-icon-sets) to learn more.

## Install
```bash
npm install -g @geocompy/icosystem-cli
```

## Configuration

The CLI requires a config file that tells it how to retrieve icons and how to process them. The minimum requirements to writing a config are the props `family` and `icons`.

```javascript
module.exports = {
  family: 'material',
  icons: ['account', 'magnify']
};
```

### Use

Run the CLI and target your file:

```bash
$ ico path/to/config-file.js
```

The CLI generates a new file called `icon-symbols.js` that contains your specified icon sets:

```javascript
import { icons } from './icon-symbols.js'
let rootTemplate = `<div>${icons}</div>`
```

### Options

#### Multiple Icon Sets

You can add multiple icon sets by creating a collection of configs:

```javascript
// collection of configs
module.exports = [
    {
      family: 'weather',
      icons: ['cloudy'],
      prepend: 'wi'
    },
    {
      family: 'material',
      icons: ['account', 'magnify'],
      prepend: 'mdi'
    }
];
```

To avoid name collisions between icon sets, the `prepend` prop is required, which will prepend all icon names id's and mappings. See [Prepend icon names](#prepend-icon-names) to learn more.

#### Select all icons in a set

Select all icons in a set by putting a single `*` in your icon array:

```javascript
// single config
module.exports = {
  family: 'weather',
  icons: ['*']
};
```

#### Custom icon sets

Sometimes, you'll need to add an icon set that's not open source (or just not available yet in the CLI).
You can add it by adding a `directory` prop to your config:

```javascript
module.exports = {
  family: 'font-awesome-pro',
  directory: 'path/to/icons',
  icons: ['bars']
}
```

**Directory Caveat:** The CLI assumes this `directory` is a folder containing ALL of your SVG's for the icon set.
It does not dig through sub-folders (but maybe it should?).

#### Icon Map

The CLI generates a map of every icon being passed in. This could be helpful to programatically check if icons are available, generating lists, etc. Each icon in the map has a `viewBox` property in case you need it (helpful when using a variable-width icon set).

This option is `true` by default, but you can turn it off as well:

```javascript
module.exports = {
  family: 'weather',
  icons: ['*'],
  map: false
}
```

The map is accessible in the same `icon-symbols.js` file, under `iconMap`:

```javascript
import { iconMap } from './icon-symbols';
```

### Prepend icon names

Prepend icon names with another name:

```javascript
module.exports = {
  family: 'font-awesome-pro',
  prepend: 'fa',
  directory: 'relative/path/to/icons',
  icons: ['bars']
}

// the "bar" icon will look like:
// id="fa-bars"
```

**NOTES**

- When adding multiple icon sets to your config, the `prepend` prop is required to avoid name collisions.
- The `weather` icon set SVG's comes with a prepended name `wi-`. We actually remove this to allow for customizability with prepended names.

## CLI Arguments

#### Required Argument: `<File>` (Icon config)

Path to your config file.

## Options

| Flag                   | Short Flag | Description
| -----------------------|------------|-----------------
| --output               | -O         | Set output path

## Weather Icon Note

If you go to the [weather-icons site](http://erikflowers.github.io/weather-icons/) you'll notice that each icon is prepended with `wi-`. This prepended name is not required when adding icons (in fact, if you add `wi-` on the name, it won't be able to find the icon):

```javascript
module.exports = {
  family: 'weather',
  icons: ['cloudy'] // we'll grab wi-cloudy
}
```

## Roadmap

- ~~Add a config so you can change the defaults~~ **v0.2.0**
- Add more open source icon families (Streamline free, Feather, etc) Might even add attribution icons as well - [The Noun Project](http://thenounproject.com) is full of them...
- Add some tests.

Input is appreciated! I'm open to ideas and would love to collaborate to make this an awesome project.

repository: geoctrl/icosystem-cli

repo_name: geoctrl/icosystem-cli


text:
# leaflet-geotiff
A [LeafletJS](http://www.leafletjs.com) plugin for displaying geoTIFF raster data.  Data can drawn as colored rasters or directon arrows.  The layer can be clipped using a polygon.

**[DEMO](https://stuartmatthews.github.io/leaflet-geotiff/)**

![Sample](https://stuartmatthews.github.io/leaflet-geotiff/example.png)

This plugin uses [geotiff.js](https://github.com/constantinius/geotiff.js) and [plotty](https://github.com/santilland/plotty).

## Instructions

1. Include the JavaScript file and dependencies:
```html
    <script<EMAIL_ADDRESS>    <script src="vendor/geotiff.js"></script>
    <script src="vendor/plotty.js"></script>
    <script src="leaflet-geotiff.js"></script>
```

2. Add a geoTIFF layer `L.leafletGeotiff(url,options)`
  * `url` - geoTIFF file url.  Currently only EPSG:4326 files are supported.
  * `options`:
    * `displayMin`,`displayMax` - Minimum and maximum values to plot.
    * `clampLow`, `clampHigh` - (optional, default = true) If true values outside `displayMin` to `displayMax` will be rendered as if they were valid values.
    * `bounds` - (optional) An array specifying the corners of the data, e.g. [[40.712216, -74.22655], [40.773941, -74.12544]].  If omitted the image bounds will be read from the geoTIFF file.
    * `band` - (optional, default = 0) geoTIFF band to read.
    * `image` - (optional, default = 0) geoTIFF image to read.
    * `colorScale` - (optional, default = "rainbow").  Plotty color scale used to render the image.
    * `vector` - (optional, default = false) If true the data is interpreted as a direction and rendered as arrows.
    * `arrowSize` - (optional, default = 20) Size in pixels of direction arrows for vector data.
    * `clip` - (optional, default = undefined) Clipping polygon, provided as an array of [lat,lon] coordinates.  Note that this is the Leaflet [lat,lon] convention, not geoJSON [lon,lat].

3. Data values can be extracted using the `getValueAtLatLng(lat,lng)` method.

4. New color scales can be created using plotty's addColorScale method.

## Dependencies

  * leaflet-geotiff works with Leaflet 0.7.7 and >=1.0
  * Requires:
    * [geotiff.js](https://github.com/constantinius/geotiff.js)
    * [plotty](https://github.com/santilland/plotty)

repository: diroru/leaflet-geotiff

repo_name: diroru/leaflet-geotiff


text:
# copy_unique

Copies unique files from one directory to another.

Uniqueness is determined by hashing.

This tool is incredibly slow. [`rsync`][] is a better tool.

## Installation

This project is not installable yet, but can be used from source.

[`poetry`][] is used for dependency management and building.

[`rsync`]: <https://rsync.samba.org/> "rsync homepage"
[`pipx`]: <https://pipxproject.github.io/pipx/installation/> "pipx installation documentation"
[`pip`]: <https://pip.pypa.io/en/stable/reference/pip_install/#vcs-support> "pip VCS url documentation"
[`poetry`]: <https://python-poetry.org/> "poetry main website"

repository: mawillcockson/utilities

repo_name: mawillcockson/utilities


text:
create_user
=========

Create a user and upload an ssh public key for remote authentication

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

No specific required Ansible
Need a default ssh public key or a specific key needs to be called out in a variable

Role Variables
--------------
#Define the user ypu would like to create
user_name: default

#Define the user state present or absent
user_state: present

#Define the path to the ssh public key
ssh_key: ~/.ssh/id_rsa.pub

Dependencies
------------

None

Example Playbook
----------------

License
-------

BSD

Author Information
------------------

An optional section for the role authors to include contact information, or a website (HTML is not allowed).


text:
These are Anki templates I use for studying Korean vocab and sentences. Both types of [notes] have cards for recall and recognition.

[notes]: https://apps.ankiweb.net/docs/manual20.html#notes-&-fields

## Vocab

These cards are for studying vocabulary in a similar style to [WaniKani](https://www.wanikani.com/).

### Recall

![Vocab Recall Front](./doc/vocab_recall_front.png)

![Vocab Recall Back](./doc/vocab_recall_back.png)

For notes that have an image, the image is displayed instead of the English.

![Vocab Recall Image Prompt](./doc/vocab_recall_img.png)

### Recognition

## Sentences

### Recall

### Recognition

repository: tylertran/anki-templates

repo_name: tylertran/anki-templates


text:
# Homological Sensor Networks

Vin de Silva and Robert Ghrist

http://www.ams.org/notices/200701/fea-ghrist.pdf

how to collate local information into global

deduce large-scale topological features from local combinatorial data

given a set of sensor nodes in planar Euclidean domain, does their union cover the domain ?
ways to solve this
1. computational geometry
2. if no relative position known, use probabilistic methods (Koskinen, On the coverage of a random sensor network in a bounded domain)
3. computational homology

Changing the positions of nodes can change the topology of the cover (i.e. holes) without
changing the topology of the network graph (interconnections between nodes)

## algebraic topology

euler characteristic of surface determines
1. topogical classification (homeomorphism type of closed orientable surface)
2. geometric properties (gauss curvature)
3. dynamical properties (number of fixed points of vector field)

for arbitrary complexes, more sophisticated algebraic topology is required.

algebraic topology provides two ways
1. homotopy invariants (how many ways to map k-dim sphere into X; difficult to compute)
2. homology groups (weaker than homotopy)

homology measures chains built from simplices

## cech complex

describes the topology of union of balls

coverage area contains fence iff fence 1-cycle if null homologous in C(U) simplicial complex

flag complex of network graph :
1. assign k-1 simplex for every collection of k nodes that are pairwise within broadcast distance

similar to vietoris-rips complex :

cover contains fence iff exists a in H2(R, F) such that da not 0

in a redundant cover, which nodes can be deactivated ?
1. choose smallest generators for H2(R, F) that require as few 0-simplices

# Ghrist THREE EXAMPLES OF APPLIED & COMPUTATIONAL HOMOLOGY

Homology is a machine that converts local data about a space into global algebraic structure.

Roughly speaking, homology groups count and collate holes in a space.

homological invariants
1. number of connected components of a space (dim H0) the type of ‘holes’ that a zero-dimensional instrument
can measure
2. euler characteristic

Sheaf : The operation of stitching local information over patches is the fundamental
defining property of a sheaf, a means of assigning an algebraic object
to open subsets of a space in such a manner that restrictions and overlaps are respected

Fubini theorem : count moving targets over time without embedding clocks on nodes

## persistent homology (find hidden features by varying epsilon)

Grothendieck : topology of a given space is framed in the mappings to or from that space.

define which homological features persist over range of parameters [ epsilon ]

Persistent homology was used to find significant features hidden in a large data set of
pixellated natural images

find hidden structures in experimental data associated with the V1 visual cortex of certain
primate

see
G. Carlsson, T. Ishkhanov, V. de Silva, and A. Zomorodian, “On the local behavior of spaces of natural images,” Intl. J. Comput. Vision, 76(1), (2008), 1–
12.
and
G. Carlsson, T. Ishkhanov, F. M´emoli, D. Ringach, G. Sapiro, “Topological analysis of the responses of neurons in V1,” preprint (2007

## chaotic dynamics

Conley index

## numerous other examples

obstruction-theoretic in nature : topological measures of complexity of
1. coordinating robots,
2. synchronizing a network,
3. performing distributed asynchronous computation

repository: sanjosh/csdocs

repo_name: sanjosh/csdocs