text:
# Purchase guide {#task786 .task}

To purchase Anti-DDoS Pro instances, follow these steps.

1.   Log on to the **Anti-DDoS Pro purchase page**.![](http://static-aliyun-doc.oss-cn-hangzhou.aliyuncs.com/assets/img/79509/154694151636494_en-US.png)

2.  Select ISP, Basic, Burstable, Ports, Domains, Clean Bandwidth, Quantity, and Plan according to your requirements.

    |Parameters|Note|
    |----------|----|
    |**ISP**|Select the **CT, CU** or **CT, CU and CM** ISP line.**Note:** If your service to be protected is not in the China Mailand region, go to [purchase Anti-DDoS Premium](../../../../../reseller.en-US/Anti-DDoS Premium Service/Product Introduction/What is Anti-DDoS Premium.md#).

|
    |**IP Count**|     -   Each CT, CU and CM ISP instance contains three IPs, one primary IP, and two backup IP.
    -   Each CT, CU ISP instance contains two IPs, one primary IP, and one backup IP.
 |
    |**Basic**|Basic protection capacity of the Anti-DDoS Pro instance.|
    |**Elastic protection bandwidth**|Burstable protection capacity of the Anti-DDoS Pro instance. Burstable protection capacities are available when a network attack exceeds the basic capacity. An additional fee is then charged based on the daily maximum attack volume.|
    |**Ports**|The maximum number of non-web service ports that can be protected by the Anti-DDoS Pro instance.|
    |**Domains**|The maximum number of web service domains that can be protected by the Anti-DDoS Pro instance.|
    |**Clean Bandwidth**|The clean business bandwidth without DDoS attacks.|
    |**Quantity**|The number of Anti-DDoS Pro instances to be purchased.|
    |**Length of purchase**|The service duration of the Anti-DDoS Pro instance to be purchased.|

3.  Click **Buy Now** to confirm your order and complete the payment.

repository: juicechu/ddosbasic

path: /intl.en-US/Anti-DDoS Pro Service/Pricing/Purchase guide.md

filename: Purchase guide.md

repo_name: juicechu/ddosbasic


text:
## Sessions
**APM Cohorts beginning in April 04, 2023**

### Week 1
* Topic: Value Deliver and Story Telling
* Description: Emphasizing the need to express the value that is being delivered with the story/epic. How to sell the value and tips for telling a story around the value.

### Week 2
* Topic: Writing KPIs
* Description: One sentence value statement, what does success look like, definition of done

### Week 3
* Topic: Research
* Description: Quantitative vs qualitative, sample sizes, identifying trends, methods to use in regards to the stage of development you're in, when to engage Search Party

### Week 4
* Topic: Prioritizing
* Description: Epics, stories, entire backlog, keeping a clean backlog

### Week 5
* Topic: Preparing for Future Sprints
* Description: Labels, story points, grooming

### Week 6
* Topic: Running Effective Meetings
* Description: Stand ups, planning, with stakeholders

### Week 7
* Topic: New Epic, Who Dis?
* Description: Using userflows, sketches, user story mapping to come up with stories

### Week 8
* Topic: Using Search Party to Your Advantage
* Description: Sketching, research, product marketing

### Week 9
* Topic: Talking to Your Customer
* Description: Gathering ongoing user feedback, techniques on interviewing

license: MIT

repository: StrongMind/culture

branch_name: refs/heads/main

extension: md

gha_language: Ruby

gha_license_id: MIT

license_type: permissive

repo_name: StrongMind/culture


text:
> ⚠⚠⚠
> I'm setting this repository in `read-only` mode since I'm not pursoing to maintain or upgrade it. Feel free to [reach me out](https://jorgesanz.net/contact/) if you have any questions or comments.
> ⚠⚠⚠

# Classroom Resources

## Why

The idea of this repository is to create a template that serves to generate websites that list resources by course and subject, so teachers can share quickly new documents, web articles and so on with their students.

I created this project to help a friend who teaches on a secondary school and needs a reliable static and easy to share website.

If you want to provide any feedback, issues or whatever just create a new [issue][6] or reach [me][7]. Of course, pull requests are always welcomed :smile:.

## Technologies

This site uses [Jekyll][1] to generate from the source code a static set of HTML and other assets to be hosted elsewhere. If you fork this repository with GitHub it's automatically published thanks to [GitHub pages][2], more details below.

## How to run in your computer

Just clone or download this repository, install [Ruby][3] and [`bundle`][4]. Then run `bundle install` on the source code folder to install all the dependencies and `bundle exec jekyll serve --incremental` to access the website from `http://localhost:3000/classroom-resources`.

## Setting it up

### Configuration

Edit the `_config.yml` to put your own title, description, your own information and remember to edit the `url` and `baseurl` to your own environment.

The website is set up in English but there are only a few places with strings you need to change to have your site in any other language, apart from the configuration described above:

* `_layout/default.html`: You may want to remove or translate the footer.
* `_includes/resource_li.html`: Adapt the `more details` text and maybe the date format (more details [here][12]).
* `_includes/resource_post.html`: Update how to present resource details

### Front page

The front page is a simple markdown file you can edit, translate, and adapt to your necessities. It's available at `_pages/frontpage.md`, feel free to keep the texts there or rearrange to your liking.

### Set up your courses and subjects

In the `_courses` folder you need to create as many text files as courses you want to present. This is an annotated course example. You can safely remove anything after the `#` character.

```md
---
title  : 'First of A level' # the name of your course
slug   : '1st-a'            # short identifier for your course (url friendly)
year   : 4                  # year for your course, for header ordering
subjects:                   # list of subjects for this course
    art:                    # identifier of your subject (case sensitive)
      title: "Art History"  # name of your subject
    history:
      title: "History"
---
```

After you have all your courses set up you can run your site and see if they are correctly shown in your front page. Then you are ready to start adding resources.

## Adding resources

The main entity is a resource. They are stored in the `_resources` folder. You can actually structure them inside that folder in any fashion, all in the `_resources` folder or you can create any folder structure inside that suits you, both will work.

This is an example annotated resource, again notes after `#` can be safely removed.

```md
---
title   : 'An interesting text'  # Title of your resource
date    : 2017-12-06             # Date you updated this resource YYYY-MM-DD
course  : '1st-s'                # Course identifier
subject : 'history'              # Subject identifier
link    : 'https://en.wikipedia.org/wiki/Special:Random'   # URL
type    : 'web'                  # Type of resource: pdf/web/video/etc
---

Lorem **ipsum** dolor sit amet, consectetur adipiscing *elit*....
```

After the resource data you can add any [markdown][5] content, including images, video embeds, etc. The previous example will render like this:

![](assets/imgs/screenshot.png)

## Styling

This site uses by default the [cayman][10] Jekyll theme but you can easily change the theme on the `_config.yml` file under the `theme` setting to any other theme [supported by GitHub pages][11] or any other theme if you install it directly on your code. You may need to remove or adapt the `_layouts/default.html` file, check theme details on how to customize it.

For example, to use the [merlot][13] theme you only need to set up the `jekyll-theme-merlot` value on the `_config.yml` file and remove the `_layouts/default.html` file to use the one provided by the theme. You then get something like this:

![](assets/imgs/merlot.png)

Of course to present again the list of courses you need to put somewhere the piece of code that renders it on the current `default.html` file, like on a the front page, side bar, etc. The piece that renders that list is actually pretty straight forward:

```liquid
{% assign courses_by_year = site.courses | sort: 'year' %}
{% for course in courses_by_year %}
      <a class="btn" href="{{ course.url | relative_url }}">
        {{course.title}}
      </a>
{% endfor %}
```

## Other features and ideas

* I may improve the rendering of the resources like better wording, using icons per type, etc. In that case I think I'd put types as another collection to structure better their metadata.

* There is already a XML feed to retrieve the last updates on your resources. This way you can link your site with any syndicated client, pipe to a social network, etc. You can access it from the front page or from `http://yoursite/atom_resources.xml`.

* It's actually pretty easy to add a blog or news section to this site, I'll likely add it in the future. It's all about creating a `_posts` folder, put there your files using typical [Jekyll work-flow][8] and then adding a layout and a listing on the front page or a dedicated page.

* Another nice feature would be to configure a template to use [Netlify CMS][9] so teachers don't need to use GitHub or markdown at all, just a nice web interface that presents a form to add new resources and automatically pushes the changes or new resources to the repository triggering the website deployment automatically.

[1]: http://jekyllrb.com
[2]: https://pages.github.com/
[3]: https://www.ruby-lang.org/en/
[4]: https://bundler.io/
[5]: https://guides.github.com/features/mastering-markdown/
[6]: https://github.com/jsanz/classroom-resources/issues/new
[7]: https://www.jorgesanz.net/
[8]: https://jekyllrb.com/docs/posts/
[9]: https://www.netlifycms.org/
[10]: https://pages-themes.github.io/cayman/
[11]: https://pages.github.com/versions/
[12]: http://alanwsmith.com/jekyll-liquid-date-formatting-examples
[13]: https://github.com/pages-themes/merlot

repository: jsanz/classroom-resources

branch_name: refs/heads/master

gha_language: HTML

repo_name: jsanz/classroom-resources


text:
# Installation
In the Circlus application we will use

* Ruby and Ruby on Rails
* PostgreSQL as the database
* Devise for authentication
* Bower for front-end assets
* AngularJS
* Bootstrap for CSS
* Install RSpec, Poltergeist/Capybara, DatabaseCleaner, PhantomJS and
  Teaspoon/Jasmine

The development machine is driven by Ubuntu 14.04LTS, so all installation
instructions that are operating system specific relate to Ubuntu.

## Install latest Ruby and Rails
First we make sure we have the latest RVM version

    $ rvm get stable

Then we check for the latest Ruby version

    $ rvm list known
    [ruby-]2.2

We install Ruby 2.2

    $ rvm install 2.2

and select it

    $ rvm ruby-2.2

Next we want to install the latest Rails version. We first check the Rails
versions available

    $ gem list ^rails$ -ra
    rails (4.2.5, 4.2.4, ...)

We create a gemset where we want to install Rails to

    $ rvm create gemset rails425
    $ rvm ruby-2.2.4@rails425
    $ gem install rails --no-ri --no-rdoc

Without providing an explicit version `gem install rails` will install the
latest Rails version.

## Install PostgreSQL
In the application we want to use PostgreSQL as the database. We check if it
is installed and which version is installed. We also want to have the latest
version here. To look up the latest version of PostgreSQL we go to
[http://www.postgresql.org](http://www.postgresql.org). There it reads by the
time of this writing version 9.4. If we search in our version of Ubuntu 14.04LTS
we get the version 9.3.

    $ sudo apt-cache search postgresql-9
    postgresql-9.3 - object-relational SQL database, version 9.3 server

In order to install version 9.4 we may add the postgresql repository. How to do
that can be also found at [Linux downloads (Ubuntu)](http://www.postgresql.org/download/linux/ubuntu/)
and background about adding repostitories is described at [Repositories/CommandLine](https://help.ubuntu.com/community/Repositories/CommandLine).

Add following to `/etc/apt/sources.list.d/pgdg.list`

    deb http://apt.postgres.org/pub/repos/apt/ trusty-pddg main

Import the repository signing-key

    wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | \
    sudo apt-key add -

Then update the package list, look for postgresql-9.4 and install

    $ sudo apt-get update
    $ sudo apt-cache search postgresql-9.4
    $ sudo apt-get install postgresql-9.4 postgresql-contrib-9.4 \
    postgresql-server-dev-9.4

`postgresql-server-dev-9.4` is needed during the generation of our Rails
applicaton.

As a first step we need to set the password
(see also [PostgreSQL Ubuntu Wiki](https://help.ubuntu.com/community/PostgreSQL)
for the *postgres* user.

    $ sudo -u postgres psql postgres
    postgres=# \password postgres
    Enter new password:
    Enter it again:
    postgres=# \q

In order we can access postgresql from Rails we will create a circlus user
with a password.

    $ sudo -u postgres psql postgres
    postgres=# CREATE ROLE circlus LOGIN PASSWORD 'secret' CREATEDB;
    CRATE ROLE
    postgres=# \q

This command will create a role *circlus* that is allowed to create databases
`CREATEDB` and `LOGIN` will tell postgres that the user is allowed to login to
the database.

# Craete the Circlus application
We create the application without ri and rdoc. We also don't want to use
sprocket in favor of AngularJS.

    $ rails new circlus --skip-turbolinks \
                        --skip-spring \
                        --skip-test-unit \
                        -d postgresql

Now we change directory to our newly created circlus application directory.

##Configure config/database.yml
In order to create and access PostgreSQL database we need to add the username
and password to `config/database.yml`.

    default: &default
      adapter: postgresql
      encoding: unicode
      host: localhost
      username: circlus
      password: secret
      pool: 5

Next we create the database with

    $ rake db:create
    $ rake db:migrate

then start your Rails server

    $ rails s

and goto [http://localhost:3000](http://localhost:3000) where you should see
the default Rails welcome screen.

# Install Devise
Devise is used for user authentication. To install it we add to the Gemfile

    gem 'devise'

and then we run

    $ bundle install
    $ rails g devise:install

This will provide some information how to do additional configuration

    Some setup you must do manually if you haven't yet:

      1. Ensure you have defined default url options in your environments files.
         Here is an example of default_url_options appropriate for a development
         environment in config/environments/development.rb:

           config.action_mailer.default_url_options = { host: 'localhost',
                                                        port: 3000 }

         In production, :host should be set to the actual host of your
         application.

      2. Ensure you have defined root_url to *something* in your
         config/routes.rb.

         For example:

           root to: "home#index"

      3. Ensure you have flash messages in
         app/views/layouts/application.html.erb.

         For example:

<%= notice %>

<%= alert %>

      4. If you are deploying on Heroku with Rails 3.2 only, you may want to
         set:

           config.assets.initialize_on_precompile = false

         On config/application.rb forcing your application to not access the DB
         or load models when precompiling your assets.

      5. You can copy Devise views (for customization) to your app by running:

           rails g devise:views

Additional configurations can be made in `config/initializers/devise.rb`.

Devise comes with a generator for creating an user model. We will use that with

    $ rails g devise user

In order to restrict access to registered in logged in users only we have to add
the `authenticate_user!` filter, that comes with Devise, to the
`ApplicationController`. Note that this will prevent access of anonymous users
on all circlus pages. If we want to have pages we want to allow access to by
anonymous users we have to skip the filter in the respective controller or
actions. For now we add `authenticate_user!` to the `ApplicationController`.

    before_action :authenticate_user!

We have to restart our Rails server in order to activate the changes.

    $ CTRL-C
    $ rails s

We can also view the database with

    $ rails dbconsole
    Password:

To enter the database console we have to enter the password we have provided in
`config/database.yml` for the circlus database.

Devise views are not accessible at first. But if we want to style them we have
to extract them to our application. We can do this with

    $ rails generate devise:views

## Install Bower
Bower manages front-end assets like Bootstrap or AngularJS. To install Bower we
need install NodeJS which is probably already available. With NodeJS comes the
npm package manager. We can install NodeJS from the Ubuntu repository

    $ sudo apt-get install nodejs

To install Bower we do

    $ sudo npm install -g bower

This will install Bower in global mode (`-g`) and install it in
`/usr/local/lib/node_modules/bower` which needs root access.

We also want to install `bower-rails` to interact with Bower on the command line
with Rake instead of using the Bower command line interface directly. So add to
the Gemfile

    gem 'bower-rails'

and run

    $ bundle install

## Install Boostrap
To ease CSS styling we rely on the CSS library Bootstrap so we don't have to
write rarely any CSS. We can search for Bootstrap with Bower

    $ bower search bootstrap | grep -P "^\s*bootstrap"

    bootstrap git://github.com/twbs/bootstrap.git
    bootstrap-sass-official git://github.com/twbs/bootstrap-sass.git
    bootstrap-datepicker git://github.com/eternicode/bootstrap-datepicker.git
    bootstrap-select git://github.com/silviomoreto/bootstrap-select.git
    bootstrap-daterangepicker git://github.com/dangrossman/\
    bootstrap-daterangepicker.git
    bootstrap-timepicker git://github.com/jdewit/bootstrap-timepicker
    bootstrap-switch git://github.com/nostalgiaz/bootstrap-switch.git
    bootstrap-css git://github.com/jozefizso/bower-bootstrap-css.git
    bootstrap-multiselect git://github.com/davidstutz/bootstrap-multiselect.git
    bootstrap.css git://github.com/bowerjs/bootstrap.git
    bootstrap-datetimepicker git://github.com/tarruda/\
    bootstrap-datetimepicker.git
    bootstrap-modal git://github.com/jschr/bootstrap-modal.git
    bootstrap-tour git://github.com/sorich87/bootstrap-tour.git
    bootstrap-tagsinput git://github.com/TimSchlechter/bootstrap-tagsinput.git
    bootstrap-additions git://github.com/mgcrea/bootstrap-additions.git
    bootstrap-file-input git://github.com/grevory/bootstrap-file-input.git
    bootstrap-social git://github.com/lipis/bootstrap-social.git

As Rails is working with Sass we use the second one in the list and add it to a
file called `Bowerfile` analogous to the Gemfile

    asset 'bootstrap-sass-official

Now we run the Rake task to install Bower

    $ rake bower:install

In order Bootstrap is considered when Rails is creating `application.css` we
need to tell it to include Bootstrap. This is done in
`app/assets/stylesheets/application.css`

    /*
     *= require_tree .
     *= require_self
     *= require 'bootstrap-sass-official'
     */

In order to see the new Bootstrap styles we have to restart our Rails server.

## Install AngularJS
AngularJS is a JavaScript framework we want to utilize in our application which
is easier to use than pure JQuery.

We install AngularJS with Bower. To do so we add following line to the
`Bowerfile`

    asset 'angular', '~> 1.5'
    resolution 'angular', '1.5'

Then run

    $ rake bower:install

Next we require AngularJS in `app/assets/javascripts/application.js`

    //= require angular
    //= require_tree .

## Install RSpec, Poltergeist/Capybara, PhantomJS and Teaspoon/Jasmine
We will use RSpec for our Ruby tests, Capibara and Poltergeist for our view
tests and Jasmine for JavaScript tests.

### Install RSpec
In the Gemfile add RSpec like so

    group :development, :test do
      ...
      gem 'rspec-rails', '-> 3.0'
    end

Now install RSpec with

    bundle install

Next run the configuration to activate RSpec

    rails g rspec:install

Make some configurations to `spec/spec_helper.rb` as shown in
[spec/spec_helper.rb](../spec/spec_helper.rb)

### Install PhantomJS
PhantomJS is a headless browser that we can use to test AJAX-driven web sites.
At the time of this writing there is no binary available therefore we have to
build it ourself. The download page can be found at
[PhantomJS Documentation](http://phantomjs.org/download.html). Instructions to
build can be found at [PhantomJS Build](http://phantomjs.org/build.html)

Frist download the source at
[PhantomJS Documentation](http://phantomjs.org/download.html)

Then unzip with

    $ mkdir PhantomJS
    $ unzip phantomjs-2.0.0-source.zip -d PhantomJS
    $ cd PhantomJS

Then install the development packages

    $ sudo apt-get install build-essential g++ flex bison gperf ruby perl \
    > libsqlite3-dev libfontconfig1-dev libicu-dev libfreetype6 libssl-dev \
    > libpng-dev libjpeg-dev python libx11-dev libxext-dev

You probably already have some of the packages installed and only the missing
packages get installed then.

Then start the build process

    $ git clone --recurse-submodules git://github.com/ariya/phantomjs.git
    $ cd phantomjs
    $ ./build.py

This will take depending on the machine several minutes. Then you are asked
whether to start the make process with a warning about the process taking 30
minutes and more. Press `Y` to start and go watch a movie or read a book.

After roughly 50 minutes the build was finished. Next step is to put the
`bin/phantomjs` to your path

    $ sudo ln -s ~/Files/phantomjs/bin/phantomjs /usr/local/bin/phantomjs

Now we check whether PhantomJS is working

    $ phantomjs
    phantomjs> phantom.version
    {
      "major": 2,
      "minor": 0,
      "patch": 0
    }
    phantomjs> phantom.exit()
    $

### Install Poltergeist/Capibara
Poltergeist will also install Capibara. Poltergeist is a driver for Capybara and
is used to run Capybara test in combination with PhantomJS.

First we add Poltergeist to our Gemfile

    group :development, :test do
      # ...
      gem 'rspec-rails', '~> 3.0'
      gem 'poltergeist'
    end

Then we install it with

    $ bundle install

In order to use capybara and poltergeist we have to add some configuraton to
[spec/rails_helper.rb](../spec/rails_helper.rb)

    require 'rspec/rails'
    require 'capybara/poltergeist'

    Capybara.javascript_driver = :poltergeist

### Install Database Cleaner
The RSpec Rails tests and the PhantomJS test run in two different processes.
That is the data saved to the database in our Rails tests aren't visible to our
PhantomJS tests. Therefore we have to save the data to the database and clean
it between test runs. This is where DatabaseCleaner comes into play.

We add DatabaseCleaner to our Gemfile

    group :development, :test do
      # ...
      gem 'rspec-rails', '~> 3.0'
      gem 'poltergeist'
      gem 'database_cleaner'
    end

Then we run

     $ bundle install

Next we configure DatabaseCleaner so it looks like in
[spec/rails_helper.rb](../spec/rails_helper.rb)

### Install Jasmine and Teaspoon
We use Jasmine to test JavaScript. We use Jasmine together with Teaspoon which
is a JavaScript test runner built for Rails.

We add to our Gemfile

    group :development, :test do
      # ...
      gem 'rspec-rails', '~> 3.0'
      gem 'poltergeist'
      gem 'database_cleaner'
      gem 'teaspoon-jasmine'
    end

Then run

    $ bundle install

After we installed it we set it up with

    $ rails g teaspoon:install

# Next steps
Now we are all setup and can start building our application. Notes on the
application design can be found at [design-notes.md](design-notes.md).

# Resources

* [Rails, Angular, Postgres, and Bootstrap by David Bryant Copeland](https://pragprog.com/book/dcbang/rails-angular-postgres-and-bootstrap)
* [PostgreSQL - Up and Running by Regina Obe & Leo Hsu](http://shop.oreilly.com/product/0636920032144.do)
* [http://www.postgresql.org](http://www.postgresql.org)
* [PostgreSQL Ubuntu Wiki](https://help.ubuntu.com/community/PostgreSQL)
* [PostgreSQL Linux downloads (Ubuntu)](http://www.postgresql.org/download/linux/ubuntu/)
* [PhantomJS Documentation](http://phantomjs.org/download.html)
* [PhantomJS Build](http://phantomjs.org/build.html)
* [Repositories/CommandLine](https://help.ubuntu.com/community/Repositories/CommandLine).

repository: sugaryourcoffee/circlus

repo_name: sugaryourcoffee/circlus


text:
---
layout: default
---

# 1993-06-08 - CERT: the letter from CERT to berkeley.edu admin

## Header Data

From: Eric Hughes<EMAIL_ADDRESS>To<EMAIL_ADDRESS>Message Hash: 1e8a6ac6abc7cf31fec85041bd6bfc5de9090cc0b5f660ec87f1ad1ffa56359d

Message ID<EMAIL_ADDRESS>Reply To<EMAIL_ADDRESS>UTC Datetime: 1993-06-08 19:30:12 UTC

Raw Date: Tue, 8 Jun 93 12:30:12 PDT

## Raw message

```
{% raw  %}From: Eric Hughes<EMAIL_ADDRESS>Date: Tue, 8 Jun 93 12:30:12 PDT
To<EMAIL_ADDRESS>Subject: CERT: the letter from CERT to berkeley.edu admin
In-Reply-To<EMAIL_ADDRESS>Message-ID<EMAIL_ADDRESS>MIME-Version: 1.0
Content-Type: text/plain

>Based on what you sent out, I confess that I see nothing wrong with
>CERT's note.

The issues that Steve raises are
  1.  use of ftp sites counter to the knowledge or desires of their owners
    a. for one time transmission
    b. for illicit archive
  2.  distribution of software contrary to the author's desires
  3.  abuse leading to shutdown of archives

I do not wish to quarrel with these issues.  The question is not one
of the ethicality of these actions, but of the relationship that CERT
should have to such actions.

CERT's mission is computer security, not copyright enforcement.    Such a letter might
properly be construed as slander, since there was no effort made to
verify the accuracy of this information and the letter even says this
itself!

What CERT might properly do is first, verify that an ftp site is
running.  Julf's case where the ftp daemon was not even enabled is a
particularly egregious case in point.  Next they should verify that
the permissions on the directories in question are set so that world
read/write access is available.  They could also do a tree search of
the directories and look for suspiciously named directories.  All
these actions can be automated; there is little excuse for making not
even the most cursory check.

In any case, CERT's response should be limited to issues of computer
security and not law enforcement.  They might properly notify an
archive owner that illegal activity has been known to take place on
archives configured in such a way, but to spread hearsay is
irresponsible.

Unfounded allegations of illegal activiy are socially dangerous,
especially when promulgated by a respected institution.  In the
fifties in the US in a similar context this was called "red-baiting".

Now if CERT receives reports about the improper distribution of
software and the archive site is properly set up, one might reasonably
assume collusion on behalf of the maintainers of the archive.  In this
case direct investigation should take place by properly authorized law
enforcement authorities.  CERT is not so authorized to my knowledge,
and as it is funded with military money it would be a bad policy to
give it a law enforcement function.  The FBI is responsible for
copyright enforcement in this country, and they are the proper ones to
do an investigation.

Eric

{% endraw %}
```

## Thread

+ Return to [June 1993](/archive/1993/06)

+ Return to "[Eric Hughes <hughes@soda.berkeley.edu>](/authors/eric_hughes_hughes_at_soda_berkeley_edu_)"
+ Return to "[peter honeyman <honey@citi.umich.edu>](/authors/peter_honeyman_honey_at_citi_umich_edu_)"
+ Return to "[smb@research.att.com](/authors/smb_at_research_att_com)"

+ 1993-06-08 (Tue, 8 Jun 93 11:14:44 PDT) - [Re: CERT: the letter from CERT to berkeley.edu admin](/archive/1993/06/f73146bd6e48802ae189f19d73e3b97c40a05eacf1a0090c09d343b518479edd) -<EMAIL_ADDRESS>  + 1993-06-08 (Tue, 8 Jun 93 12:30:12 PDT) - CERT: the letter from CERT to berkeley.edu admin - _Eric Hughes<EMAIL_ADDRESS>  + 1993-06-08 (Tue, 8 Jun 93 12:52:01 PDT) - [Re: CERT: the letter from CERT to berkeley.edu admin](/archive/1993/06/5beac9be8687ee6bb84396a2563ea6c771d5ae3379e335358fa2039aaafddbc2) - _peter honeyman<EMAIL_ADDRESS>


text:
# SwordfishCharts
A basic charting library

There's 2 projects:
- Swordfish.NET.Charts this can be used as a library, or run as an application to see an example of use
- Swordfish.NET.ChartsD2D this is the same as above, but uses Direct2D for the rendering.


text:
# ValueTuple
https://docs.microsoft.com/en-us/dotnet/api/system.valuetuple?view=netstandard-2.0

ValueTuple struct
  * Desc:
    Provides static methods for creating value tuples.
  * Namespace:
    System
  * Assemblies:
    - System.ValueTuple.dll
    - mscorlib.dll
    - netstandard.dll
    - System.Runtime.dll
  * Applies to:
    - .NET Core 2.1, 2.0, 1.1, 1.0
    - .NET Framework 4.7.2, 4.7.1, 4.7
    - .NET Standard 2.0
  * Inheritance:
    Object → ValueType → ValueTuple
  * Attributes:
    - SerializableAttribute
  * Implements:
    - IStructuralComparable
    - IStructuralEquatable
    - IComparable
    - IComparable<ValueTuple>
    - IEquatable<ValueTuple>

```cs
  [Serializable]
  public struct ValueTuple<T1> :
    IComparable,
    IComparable<ValueTuple>,
    IEquatable<ValueTuple>,
    System.Collections.IStructuralComparable,
    System.Collections.IStructuralEquatable
```

## Remarks

A tuple is a data structure that has a specific number and sequence of elements.

An example of a tuple is a data structure with 3 elements (known as a 3-tuple or triple).

Value tuples are tuple types introduced in the .NET Framework 4.7 to provide the runtime implementation of tuples in C# and struct tuples in F#.

They differ from the tuple classes, such as `Tuple<T1>`, `Tuple<T1,T2>`, etc.:
- They are structures (value types) rather than classes (reference types).
- They are mutable rather then readonly; value of tuple components can change.
- Their data members, such as Item1, Item2..., are fields rather than props

The `ValueTuple` structure represents a tuple that has no elements.

It is useful primarily for its static methods that let you create and compare instances of value tuple types.

Its helper methods let you instantiate value tuples without having to explicitly specify the type of each value tuple component.

Calling its static `Create` methods creates value tuples of 0-8 components.

For value tuples with more than 8 components, you must call the
`ValueTuple<T1,T2,T3,T4,T5,T6,T7,TRest>` constructor.

## Serialization and value tuples
The ValueTuple type is not serializable in .NET Core 1.x or in the .NET Framework 4.7 and earlier versions. In addition, .NET Standard, including .NET Standard 2.0, does not mandate serialization of ValueTuple instances; whether or not a ValueTuple instance is serializable depends on the individual .NET Standard implementation. To determine whether a ValueTuple type is serializable on a particular .NET implementation, get a Type object that represents the ValueTuple type and retrieve the value of its IsSerializable property. For a list of serializable types in .NET Core and the .NET Framework, see Binary Serialization.

license: Unlicense


text:
# Multi-Layer Perceptron for MNIST

The goal of this code bit was to properly classify the MNIST digits using a MLP. While instructive, frankly it did poorly (mid 80%).

It will be interesting to see how this compares with the actual Google tensorflow/keras examples... I've got to imagine they do better...

## Notes

WARNING:tensorflow:From ./train.py:6: read_data_sets (from tensorflow.contrib.learn.python.learn.datasets.mnist) is deprecated and will be removed in a future version.
Instructions for updating:
Please use alternatives such as official/mnist/dataset.py from tensorflow/models.

WARNING:tensorflow:From /home/ru7/.virtualenvs/pdl/lib/python3.6/site-packages/tensorflow/contrib/learn/python/learn/datasets/mnist.py:260: maybe_download (from tensorflow.contrib.learn.python.learn.datasets.base) is deprecated and will be removed in a future version.
Instructions for updating:
Please write your own downloading logic.

WARNING:tensorflow:From /home/ru7/.virtualenvs/pdl/lib/python3.6/site-packages/tensorflow/contrib/learn/python/learn/datasets/mnist.py:262: extract_images (from tensorflow.contrib.learn.python.learn.datasets.mnist) is deprecated and will be removed in a future version.
Instructions for updating:
Please use tf.data to implement this functionality.
Extracting /tmp/data/train-images-idx3-ubyte.gz

WARNING:tensorflow:From /home/ru7/.virtualenvs/pdl/lib/python3.6/site-packages/tensorflow/contrib/learn/python/learn/datasets/mnist.py:267: extract_labels (from tensorflow.contrib.learn.python.learn.datasets.mnist) is deprecated and will be removed in a future version.
Instructions for updating:
Please use tf.data to implement this functionality.
Extracting /tmp/data/train-labels-idx1-ubyte.gz

WARNING:tensorflow:From /home/ru7/.virtualenvs/pdl/lib/python3.6/site-packages/tensorflow/contrib/learn/python/learn/datasets/mnist.py:110: dense_to_one_hot (from tensorflow.contrib.learn.python.learn.datasets.mnist) is deprecated and will be removed in a future version.
Instructions for updating:
Please use tf.one_hot on tensors.
Extracting /tmp/data/t10k-images-idx3-ubyte.gz
Extracting /tmp/data/t10k-labels-idx1-ubyte.gz

WARNING:tensorflow:From /home/ru7/.virtualenvs/pdl/lib/python3.6/site-packages/tensorflow/contrib/learn/python/learn/datasets/mnist.py:290: DataSet.__init__ (from tensorflow.contrib.learn.python.learn.datasets.mnist) is deprecated and will be removed in a future version.
Instructions for updating:
Please use alternatives such as official/mnist/dataset.py from tensorflow/models.

WARNING:tensorflow:From /home/ru7/workspace/argodev/learn/books/python_deep_learning/ch02/model.py:34: softmax_cross_entropy_with_logits (from tensorflow.python.ops.nn_ops) is deprecated and will be removed in a future version.
Instructions for updating:

repository: argodev/learn

repo_name: argodev/learn


text:
# ajanta-cli

This is a command line utility that I use to generate resized images
for various resolutions and to also get pixelated versions that I
use for lazy loading with [ajanta](https://github.com/astronomersiva/ajanta).

### Usage

* `npm install -g ajanta-cli`
* Run `ajanta` from any directory. Example, `inputDir=images ajanta`.

- `inputDir` - Specify the input directory, defaults to `process.cwd()`.
- `resolutions` - A comma separated list of image resolutions.
- `webp` - If webp images are needed. Defaults to `true`.

### License

MIT © [Sivasubramanyam A](https://sivasubramanyam.me)

repository: astronomersiva/ajanta-cli

repo_name: astronomersiva/ajanta-cli


text:
---
title: "updateReadChannelOutbox"
description: "Outgoing messages in a channel/supergroup were read"
nav_exclude: true
image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
---
# Constructor: updateReadChannelOutbox
[Back to constructors index](/API_docs/constructors/index.html)

Outgoing messages in a [channel/supergroup](https://core.telegram.org/api/channel) were read

### Attributes:

| Name     |    Type       | Required | Description |
|----------|---------------|----------|-------------|
|channel\_id|[long](/API_docs/types/long.html) | Yes|Channel/supergroup ID|
|max\_id|[int](/API_docs/types/int.html) | Yes|Position up to which all outgoing messages are read.|

### Type: [Update](/API_docs/types/Update.html)

### Example:

```
$updateReadChannelOutbox = ['_' => 'updateReadChannelOutbox', 'channel_id' => long, 'max_id' => int];
```

repository: danog/MadelineProtoDocs

gha_language: PHP

repo_name: danog/MadelineProtoDocs


text:
# MSC2230: Store Identity Server in Account Data

The URL of the Identity Server to use is currently specified at registration and
login time and then used for the lifetime of a login session. If users wish to
specify a custom one, they must do so each time they log in on every client.
Once they have chosen an Identity Server to advertise their 3PIDs on, it would
be normal that they would wish to continue using this Identity Server for all
Identity requests in their account across all clients. This proposal aims to
make this easier.

## Proposal

The base URL of the Identity Server is to be stored in user account data. It
shall be stored in the same format as in a .well-known file under the event type
`m.identity_server` and shall comprise a single key, `base_url` which is the
base URL of the ID Server to use (that is, the part before `/_matrix`, including
`https://`).

Upon registration or login, a client SHOULD refrain from performing any requests
to the Identity Server until the account data has been fetched from the server.
Once it has the account data, it SHOULD check for the presence of the
`m.identity_server` key. If present, the `base_url` in this key SHOULD be used
as the Identity Server base URL for the duration of the login session. If this
key is not present, the client SHOULD use whatever value it would have used prior
to this MSC. It should not update the account data in this situation.

Client SHOULD listen for changes in the `m.identity_server` account data value
and update the URL that they use for ID Server requests accordingly.

Clients can offer a way for users to change the ID server being used. If they
do, the client MUST update the value of `m.identity_server` accordingly.

The `m.identity_server` may be present with a `base_url` of `null`. In this case,
clients MUST treat this as no ID Server URL being set and not perform ID
Server requests, disabling any functionality that requires such requests.

Conversely, if a user wishes to disable ID Server functionality, the client
shall action this by setting the `base_url` of the `m.identity_server`
account data entry to `null`.

### Transition Period

Clients will continue to use whatever IS URLs they currently use until the
user sets one explicitly, at which point it will be written to account data
and all clients will start using this value.

## Tradeoffs

There are a number of ways to transition to this new scheme. Clients could
populate the account data with their current ID Server URL as soon as
possible, and immediately use any new value seen on account data. This
would a much faster migration but any users with clients using different
ID Servers would suddenly find all their clients using the ID Server of
whichever client they updated first.

## Potential issues

Users will no longer be able to have different clients configured with
different ID Servers.

## Security considerations

An attacker would be able to force all a user clients to use a given ID Server
if they gained control of any of a user's logins.

## Conclusion

This makes the ID server an account setting which means it persists between
logins. The intention would be to phase out clients ever asking for an ID
Server URL at registration or login: this will be much easier for users to
understand whilst still retaining the flexibility for those who want it.

repository: matrix-org/matrix-spec-proposals

repo_name: matrix-org/matrix-spec-proposals


text:
###Speaker:
Sam Basu

###Available:
Any time .. with a few good drinks :)

###Length of presentation:
40-60 mins

###Title: Kendo UI 101

###Description:

Building modern web or mobile apps? You want maximum reach and to not reinvent the wheel, but tired of taking dependencies on countless libraries/frameworks?

Enter – Kendo UI, the one comprehensive HTML5/JavaScript framework to rule them all. And yes, it is free & OSS. With simple APIs, Kendo UI offers most things you need out of the box – DataSource, MVVM, responsiveness, themes & tons of UI widgets, with server-side wrappers. And you can work Kendo UI any how you like – read Angular or Web Components, Visual Studio or Sublime, Browser or Mobile. Let’s make the web just work!

###Speaker Bio:

Sam Basu is a technologist, author, speaker, Microsoft MVP, gadget-lover and Developer Advocate for Telerik. With a long developer background, he now spends much of his time advocating modern web/mobile/cloud development platforms on Microsoft/Telerik stacks. His spare times call for travel, fast cars, cricket and culinary adventures with the family. You can find him on the internet.

###Links:

[@samidip](https://twitter.com/samidip) | http://developer.telerik.com/author/sbasu/ | http://samidipbasu.com/


text:
# S2Cell Covering Examples

Here are some examples of the "cell coverage" feature of the new
spherical geometry package. We pick some point on the sphere, and create
a circular cap of some size around that point. We then cover the cap
with some number of "cells". The result is then projected onto a plane
tangent to the center of the cap and parallel to the surface of the
sphere. The cells are drawn in blue and the cap itself is drawn in red.

This point happens to be centered on the Google offices in Kirkland,
with a 5 km radius cap. When you try to cover that cap with just one
cell, you often end up with a large amount of extra space. Notice the
large cell compared to the circle.

![](kirkland_1.gif)

Same configuration, except we allow the use of 2 cells.

![](kirkland_2.gif)

Same configuration, except we allow the use of 3 cells. One of them is
quite small.

![](kirkland_3.gif)

Same configuration, except we allow the use of 4 cells. I've changed the
scale factor so we can see more detail.

![](kirkland_4.gif)

Same configuration, except we allow the use of 5 cells.

![](kirkland_5.gif)

Same configuration, except we allow the use of 6 cells.

![](kirkland_6.gif)

Same configuration, except we allow the use of 10 cells.

![](kirkland_10.gif)

Same configuration, except we allow the use of 20 cells.

![](kirkland_20.gif)

Same configuration, except we allow the use of 50 cells.

![](kirkland_50.gif)

Same configuration, except we allow the use of 500 cells. The scale has
been changed again to show more detail.

![](kirkland_500.gif)

This is a point at an edge between two faces of the cubic tiling, with a
cap size of about 500 km and limit of 4 cells. The ratio of "area
covered by the cells" to "area covered by the cap" is about 10, which is
about the worst case value when you have at least 4 cells. (The ratio
can be quite large, on the order of 10\^15, if you limit the covering to
fewer than 4 cells.)

![](edge_4.gif)

Same configuration, except we allow the use of 6 cells.

![](edge_6.gif)

Same configuration, except we allow the use of 50 cells.

![](edge_50.gif)

Same configuration, except we allow the use of 500 cells.

![](edge_500.gif)

This is a point at the corner where three faces meet. The cap radius is
10 km, and we're using 10 cells.

![](corner_10.gif)

Same configuration, except we allow the use of 20 cells.

![](corner_20.gif)

Same configuration, except we allow the use of 50 cells.

![](corner_50.gif)

Same configuration, except we allow the use of 200 cells.

![](corner_200.gif)

Same configuration, except we allow the use of 1000 cells. Note that in
fact the code did not use all 1000 cells: this covering only uses 706
cells. There was a point where the code had 1000 candidate cells, but
after pruning the code merged some adjacent sets of cells into a smaller
number of larger cells. The details of the covering did not change, it
is merely a more efficient representation.

![](corner_1000.gif)

This shows a latitude/longtitude rectangle (instead of a circular cap)
which is roughly placed over Washington state. (The coordinate system
that we're using for the project is not oriented to put North up, which
is why it looks a bit weird.) Here is a covering with 10 cells..

![](washington_10.gif)

Same configuration, except we allow the use of 20 cells.

![](washington_20.gif)

Same configuration, except we allow the use of 100 cells.

![](washington_100.gif)

This shows a latitude/longtitude rectangle extends from 60 degrees north
to 80 degrees north, and from -170 degrees to +170 degrees longitude.
The covering is limited to 8 cells. Notice that the hole in the middle
is completely covered.

![](polar_8.gif)

Same configuration, except we allow the use of 20 cells.

![](polar_20.gif)

Same configuration, except we allow the use of 100 cells. Now we have
sufficient numbers of cells to model the hole, but not the gap near the
date line.

![](polar_100.gif)

Same configuration, except we allow the use of 500 cells.

![](polar_500.gif)

Finally, here are some examples of geographic coverings.  This is a covering of
Hawaii using 25 cells.

![](hawaii.gif)

Here is a covering of Florida using 22 cells.

![](florida1.gif)

And Florida using 152 cells.

![](florida2.gif)


text:
# setup.ps1

> Setup script for windows

This script installs useful tools for software development on windows such as Git, Python, Rust, etc

# Usage

Hit the command:

```ps1
irm git.io/setup.ps1 | iex
```

This command installs the following tools.

- [Chocolatey](https://chocolatey.org/)
- Visual Studio 2019 Community Edition with Build Tools extension
- Git
- Python 2.7
- [Rustup](https://rustup.rs/)
- Google Chrome
- Node.js

# Start [Deno](https://deno.land/) development

```ps1
irm https://raw.githubusercontent.com/kt3k/setup.ps1/main/setup-deno-dev.ps1 | iex
```

# License

MIT


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

### Description

In all Qualcomm products with Android releases from CAF using the Linux kernel, if there is more than one thread doing the device open operation, the device may be opened more than once. This would lead to get_pid being called more than once, however put_pid being called only once in function "msm_close".

### POC

#### Reference
No PoCs from references.

#### Github
- https://github.com/guoygang/vul-guoygang

repository: trickest/cve

repo_name: trickest/cve


text:
# Pacman
Pacman game ( console based )
Compile using `g++ -std=c++11 main.cpp -o game.exe`

Currently it will not run in linux
# Comands
W, A, S, D

# Weird Stuff
* Ghosts can eat Pacman's food
* Power-Up can't kill ghosts

repository: Pepeiam/Pacman

repo_name: Pepeiam/Pacman


text:
# Swifty Scripts

A tool made in swift I use to help automate some processes. Originally was built to help automate the merging of different branches and deploying process for PW. But now is made general for different use cases like automatic branch deletion.

***
## Description ##
USAGE: swiftyscripts [command] <options>

COMMANDS:
* -v: Shows the current version
* -help: Shows list of arguments and executables
* merge: Does a team merge
* build: Build all the targets listed in the `TargetsToRun` config
* jenkins: Triggers a Jenkins build for every Jenkins.schemes listed
* post-only: Only executes the post-PR portion of the team merge
* purger: Automatically delete branches based on a closed JIRA status

## Requirements ##
* Xcode 11.0+
* Swift 5.0+

## Getting Started ##
* Clone this project
* `cd` into project directory
* Run Command `swift build`
* Run Command `swift package generate-xcodeproj`
* Open Xcode Project

## To Run ##
* `cd` to the target project folder if you don't want to specify -dir. Make sure you have a config setup in the project. See swiftyscripts/config/config.plist for example config.
* You can run the project in xcode for debugging
	* In order to specify an argument go to edit Scheme -> Arguments
        * You may need to specify PATH in environment variables
* You can run the binary in the Products folder to run live on terminal. **NOTE** This binary cannot run independently without being in the same folder as the packages
* You can also run via terminal
	* `cd` into project directory
	* Run `swift build`
	* Run `.build/debug/{INSERT PROJECT NAME HERE}` with arguments (e.g. .build/debug/SwiftyScripts -v 3.10 -pv 3.9)
* If you want to run binary locally with custom `SwiftyScripts` bash
	* Run `export PATH=path_to_binary_folder:”${PATH}”`
	* E.g. `export PATH=/Users/kchen/Documents/Xcode\ Play/TeamMergeAutomation/.build/x86_64-apple-macosx10.10/debug:"${PATH}"`
	* This will allow you to do “SwiftyScripts start -v 3.9” for the running terminal session. However to do it system wide and on every terminal you need to change .bash_profile and add the `export...` to the file

## To Unit Test ##
* If using xcode, go to Edit Scheme -> Test -> Plus button on bottom -> Add "Source Tests"

## To Deploy ##
* `cd` to project directory
* Use jenkins to run jenkins file. This will tar ball the binary.
* Now you need to modify the brew formula
	* In TM-homebrew-tap repo, open swiftyscripts.rb
	* Modify the url to the new swiftyscripts.tar.gz link in jenkins.
	* Modify the sha256. Copy the sha output in jenkins
	* Modify the version
	* Save and push changes
* If you have not installed swiftyscripts yet then first run `brew tap kchen/tm-homebrew-private git@bitbucket.org:kevcodex/tm-homebrew-tap.git` to open this tap
* Then run `brew install swiftyscripts` to install swiftyscripts
* If you have already installed swiftyscripts then run `brew upgrade swiftyscripts` to update swiftyscripts. Note you may have to run `brew update` first.
* Now you can freely run swiftyscripts commands like `swiftyscripts -v 3.9`
* TODO: Find a simpler way to deploy if possible

repository: kevcodex/SwiftyScripts

repo_name: kevcodex/SwiftyScripts


text:
Font Awesome Shortcode for Shopify
==================

This shortcode allows Store owners to use Icons easily within their content. Can be easily modified to suit any Icon font.

## Usage

Make sure to install the [Shortcode for Shopify](https://github.com/ryanheart/shopify-shortcodes/) plugin.

Add the required files to the `<head>` of your layout file if your theme doesn't already support Font Awesome.

    <!-- Place somewhere in the <head> of your document -->
    <link href="//maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css" rel="stylesheet">

You can then use the following shortcode.

[icon heart]

## Available icons

You can view all available icons on the [Font Awesome](http://fortawesome.github.io/Font-Awesome/icons/) website.

Icons have been modified to not require the fa- prefix. Example syntax is below

| Font Awesome Code  | Shortcode
| --------- | --------
| fa-heart    | [icon heart]
| fa-plane   | [icon plane]
| fa-facebook    | [icon facebook]

## Additional Settings

| Setting  | Description | Example
| --------- | --------
| url   | Link the icon to a URL  | [icon heart url="/collection/all"]
| size   | Resize icon : lg, 1x, 2x, 3x, 4x | [icon plane size="4x"]
| spin    | Set icon to spin | [icon facebook spin="true"]
| class    | Add additional classes | [icon facebook class="fa-fw"]

gha_language: Liquid


text:
# Regression
## Supervised Learning's Regression Technique implementation in python.
It includes implementation of given below with given dataset files.

- Simple Linear Regression
- Multiple Linear Regression
- Polynomial Regression
- Decision Tree Regression
- Support Vector Regression
- Random Forest Regression


text:
# {{cookiecutter.component_name}}

# Features

# Usage

To add the latest release of this repo to your ESP-IDF project, run the following
commands in your project's root directory.

```
cd components
git submodule add {{cookiecutter.git_repo}}
```

This will checkout the latest, bleeding-edge `master`. To use the last official
release, then run:

```
cd {{cookiecutter.component_var_name}}
git checkout v0.0.0
```

# Unit Testing
This repo contains a built-in unit tester. To flash the unit-test app, run

```
make tests
```

# Contributing

## Increasing version number

The following must be done with no unstaged files to commit.

To increase the version for a backwards incompatible release, run:

```
bump2version major
```

To increase the version for a feature release, run:

```
bump2version minor
```

To increase the version for a bug-fix release, run:

```
bump2version patch
```

These commands will increase the version number in all the appropriate locations,
create a commit, and tag the commit with the new version number. Finally,
push this new commit and tag to the remote repo:

```
git push && git push --tags
```

# Contributors

* {{cookiecutter.full_name}}


text:
# Reproducibility

This document shows the workloads in the LambdaML paper [1] and describes how to run these workloads.

## 1. S3

We use S3 storage as external storage to implement communication in serverless infrastructure.

### Linear models

- Trigger function.
[linear_s3_trigger.py](examples/lambda/s3/linear_s3_trigger.py).
    - Set *data_bucket* and *file* according to the specific dataset.
    - Set *dataset_type* to dense_libsvm for dense dataset or sparse_libsvm for sparse dataset.
    - Set *model* to lr/svm for dense model or sparse_lr/sparse_svm for sparse model.
    - Set *optim* to grad_avg for gradient average (SGD), model_avg for model average, or admm for ADMM.
    - Set *sync_mode* to reduce, reduce_scatter or async.
    - Set other configurations and hyperparameters.
- Execution function. Choose the execution function according to sparsity and optimization algorithm.
    - Dense model, SGD or Model Average. [linear_s3_ga_ma.py](examples/lambda/s3/linear_s3_ga_ma.py)
    - Dense model, ADMM. [linear_s3_admm.py](examples/lambda/s3/linear_s3_admm.py)
    - Sparse model, SGD or Model Average. [sparse_linear_s3_ga_ma.py](examples/lambda/s3/sparse_linear_s3_ga_ma.py)
    - Sparse model, ADMM. [sparse_linear_s3_admm.py](examples/lambda/s3/sparse_linear_s3_admm.py)

### KMeans
- Trigger function.
[kmeans_s3_trigger.py](examples/lambda/s3/kmeans_s3_trigger.py).
    - Set *data_bucket* and *file* according to the specific dataset.
    - Set *dataset_type* to dense_libsvm for dense dataset or sparse_libsvm for sparse dataset.
    - Set *sync_mode* to reduce or reduce_scatter.
    - Set other configurations and hyperparameters.
- Execution function. Choose the execution function according to sparsity.
    - Dense model. [kmeans_s3.py](examples/lambda/s3/kmeans_s3.py)
    - Sparse model. [sparse_kmeans_s3.py](examples/lambda/s3/sparse_kmeans_s3.py)

### CNN models
- Trigger function.
[dl_s3_trigger.py](examples/lambda/s3/dl_s3_trigger.py).
    - Set *data_bucket*, *train_file* and test_file according to the specific dataset.
    - Set *model* to mobilenet or resnet.
    - Set *optim* to grad_avg for gradient average (SGD) or model_avg for model average.
    - Set *sync_mode* to reduce, reduce_scatter or async.
    - Set *start_epoch* (the starting epoch) and *run_epochs* (number of epochs to run in the current execution).
    LambdaML will read checkpoint model of *start_epoch* from *cp_bucket*.
    - Set other configurations and hyperparameters.
- Execution function. [dl_s3.py](examples/lambda/s3/dl_s3.py).

## 2. Elasticache

We use Elasticache for Memcached as external storage to implement communication in serverless infrastructure.

### Linear models
- Create an Elasticache cluster in AWS.
- Trigger function.
[linear_ec_trigger.py](examples/lambda/elasticacge/linear_ec_trigger.py).
    - Set *host* and *port* of the Elasticache cluster.
    - Set *data_bucket* and *file* according to the specific dataset.
    - Set *dataset_type* to dense_libsvm for dense dataset or sparse_libsvm for sparse dataset.
    - Set *model* to lr/svm for dense model or sparse_lr/sparse_svm for sparse model.
    - Set *optim* to grad_avg for gradient average (SGD), model_avg for model average, or admm for ADMM.
    - Set *sync_mode* to reduce, reduce_scatter or async.
    - Set other configurations and hyperparameters.
- Execution function. Choose the execution function according to sparsity and optimization algorithm.
    - Dense model, SGD or Model Average. [linear_ec_ga_ma.py](examples/lambda/elasticache/linear_ec_ga_ma.py)
    - Dense model, ADMM. [linear_ec_admm.py](examples/lambda/elasticache/linear_ec_admm.py)
    - Sparse model, SGD or Model Average. [sparse_linear_ec_ga_ma.py](examples/lambda/elasticache/sparse_linear_ec_ga_ma.py)
    - Sparse model, ADMM. [sparse_linear_ec_admm.py](examples/lambda/elasticache/sparse_linear_ec_admm.py)
- Add the same VPC and security group to the trigger function, the execution, and the memcached cluster.
- If the model size is larger than 1MB, change the value of *max_item_size* in the parameter group of Elasticache.

### KMeans
- Create an Elasticache cluster in AWS.
- Trigger function.
[kmeans_ec_trigger.py](examples/lambda/elasticache/kmeans_ec_trigger.py).
    - Set *host* and *port* of the Elasticache cluster.
    - Set *data_bucket* and *file* according to the specific dataset.
    - Set *dataset_type* to dense_libsvm for dense dataset or sparse_libsvm for sparse dataset.
    - Set *sync_mode* to reduce or reduce_scatter.
    - Set other configurations and hyperparameters.
- Execution function. Choose the execution function according to sparsity.
    - Dense model. [kmeans_ec.py](examples/lambda/elasticache/kmeans_ec.py)
    - Sparse model. [sparse_kmeans_ec.py](examples/lambda/elasticache/sparse_kmeans_ec.py)
- Set up VPC, security group in the same way as linear models.

### CNN models
- Create an Elasticache cluster in AWS.
- Trigger function.
[dl_ec_trigger.py](examples/lambda/elasticache/kmeans_ec_trigger.py).
    - Set *host* and *port* of the Elasticache cluster.
    - Set *data_bucket*, *train_file* and *test_file* according to the specific dataset.
    - Set *model* to mobilenet or resnet.
    - Set *optim* to grad_avg for gradient average (SGD) or model_avg for model average.
    - Set *sync_mode* to reduce, reduce_scatter or async.
    - Set *start_epoch* (the starting epoch) and *run_epochs* (number of epochs to run in the current execution).
    LambdaML will read checkpoint model of *start_epoch* from *cp_bucket*.
    - Set other configurations and hyperparameters.
- Execution function. [dl_ec.py](examples/lambda/elasticache/dl_ec.py).
- Set up VPC, security group in the same way as linear models.

## 3. DynamoDB

We use DynamoDB as external storage to implement communication in serverless infrastructure.
Note that, the maximal item size of DynamoDB is 400KB ([link](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html)).
Therefore, we do not train CNN models and sparse models with DynamoDB.

### Linear models
- Create two DynamoDB tables in AWS.
- Trigger function.
[linear_dynamo_trigger.py](examples/lambda/dynamo/linear_dynamo_trigger.py).
    - Set two tables used during training --- *tmp_table_name* and *merged_table_name*.
    - Set *data_bucket* and *file* according to the specific dataset.
    - Set *dataset_type* to dense_libsvm.
    - Set *model* to lr or svm.
    - Set *optim* to grad_avg for gradient average (SGD), model_avg for model average, or admm for ADMM.
    - Set *sync_mode* to reduce, reduce_scatter or async.
    - Set other configurations and hyperparameters.
- Execution function. Choose the execution function according to optimization algorithm.
    - SGD or Model Average. [linear_dynamo_ga_ma.py](examples/lambda/dynamo/linear_dynamo_ga_ma.py)
    - ADMM. [linear_dynamo_admm.py](examples/lambda/dynamo/linear_dynamo_admm.py)

### KMeans
- Create two DynamoDB tables in AWS.
- Trigger function.
[kmeans_dynamo_trigger.py](examples/lambda/dynamo/kmeans_dynamo_trigger.py).
    - Set two tables used during training --- *tmp_table_name* and *merged_table_name*.
    - Set *data_bucket* and *file* according to the specific dataset.
    - Set *dataset_type* to dense_libsvm.
    - Set *sync_mode* to reduce or reduce_scatter.
    - Set other configurations and hyperparameters.
- Execution function. [kmeans_dynamo.py](examples/lambda/dynamo/kmeans_dynamo.py)

## 4. Hybrid

We use a VM as a parameter server and let serverless instances communicate with the parameter server.

### Linear models
- Launch a parameter server using [start_service.py](thrift_ps/start_service.py).
    - Example: python start_service.py --host $host --port $port --interval 60 --expired 6000 --dir $dir
- Trigger function.
[linear_hybrid_trigger.py](examples/lambda/hybrid/linear_hybrid_trigger.py).
    - Set *host* and *port* of the parameter server.
    - Set *data_bucket* and *file* according to the specific dataset.
    - Set *dataset_type* to dense_libsvm for dense dataset or sparse_libsvm for sparse dataset.
    - Set *model* to lr/svm for dense model or sparse_lr/sparse_svm for sparse model.
    - Set *optim* to grad_avg for gradient average (SGD).
    - Set *sync_mode* to reduce.
    - Set other configurations and hyperparameters.
- Execution function. Choose the execution function according to sparsity and optimization algorithm.
    - Dense model, SGD. [linear_hybrid_ga.py](examples/lambda/hybrid/linear_hybrid_ga.py)
    - Sparse model, SGD. [sparse_linear_hybrid_ga.py](examples/lambda/hybrid/sparse_linear_hybrid_ga.py)
- Add the same VPC and security group to the trigger function, the execution, and the parameter server.

### KMeans
- Launch a parameter server using [start_service.py](thrift_ps/start_service.py).
- Trigger function.
[kmeans_hybrid_trigger.py](examples/lambda/hybrid/kmeans_hybrid_trigger.py).
    - Set *host* and *port* of the parameter server.
    - Set *data_bucket* and *file* according to the specific dataset.
    - Set *dataset_type* to dense_libsvm for dense dataset or sparse_libsvm for sparse dataset.
    - Set *sync_mode* to reduce.
    - Set other configurations and hyperparameters.
- Execution function. Choose the execution function according to sparsity.
    - Dense model. [kmeans_hybrid.py](examples/lambda/hybrid/kmeans_hybrid.py)
    - Sparse model. [sparse_kmeans_hybrid.py](examples/lambda/hybrid/sparse_kmeans_hybrid.py)
- Set up VPC, security group in the same way as linear models.

### CNN models
- Launch a parameter server using [start_service.py](thrift_ps/start_service.py).
- Trigger function.
[dl_hybrid_trigger.py](examples/lambda/hybrid/kmeans_hybrid_trigger.py).
    - Set *host* and *port* of the parameter server.
    - Set *data_bucket*, *train_file* and *test_file* according to the specific dataset.
    - Set *model* to mobilenet or resnet.
    - Set *optim* to grad_avg for gradient average (SGD) or model_avg for model average.
    - Set *sync_mode* to reduce.
    - Set *start_epoch* (the starting epoch) and *run_epochs* (number of epochs to run in the current execution).
    LambdaML will read checkpoint model of *start_epoch* from *cp_bucket*.
    - Set other configurations and hyperparameters.
- Execution function. [dl_ec.py](examples/lambda/elasticache/dl_ec.py).
- Set up VPC, security group in the same way as linear models.

## 5. Other workloads

### Runtime larger than 15 minutes.

AWS Lambda restricts that the maximal runtime of an execution is 15 minutes.
If a training task runs more than 15 minutes, LambdaML stores a checkpoint model to S3 and
invokes another round of the execution function with the checkpoint model.
Refer to [dl_s3.py](examples/lambda/s3/dl_s3.py) for an example for CNN model.
The scripts for other models can be easily written in the same way.
The following shows the necessary setups.

- Set *run_epochs* (the number of epochs to run in the current execution).
- Set *cp_bucket* (the S3 bucket to save checkpoint models).
- If your execution Lambda function is configured with a VPC, make sure the function can be self-invoked.
For example, you can create a VPC endpoint (refer to [link](https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc-endpoints.html)).

## Reference
Jiawei Jiang, Shaoduo Gan, Yue Liu, Fanlin Wang, Gustavo Alonso, Ana Klimovic, Ankit Singla, Wentao Wu, Ce Zhang.
Towards Demystifying Serverless Machine Learning Training. SIGMOD 2021 (to appear).

repository: NLGithubWP/LambdaML

repo_name: NLGithubWP/LambdaML


text:
# Recommended Books

The following books are recommended for learning the basics of computer programming.
Some of these books are referenced throughout this online material.
Some books are available freely online, whereas others require purchasing.

Beginner
--------
- Python For Kids - <https://nostarch.com/pythonforkids>
- Teach Your Kids to Code - <https://nostarch.com/teachkids/>

Intermediate
------------
- Learn Python 3 the Hard Way - <https://learnpythonthehardway.org/python3/>
- Python Programming for the Absolute Beginner - <https://www.amazon.com/Python-Programming-Absolute-Beginner-3rd/dp/1435455002>
- Invent Your Own Computer Games with Python - <http://inventwithpython.com/invent4thed/>
- Making Games with Python & Pygame - <http://inventwithpython.com/pygame/index.html>

Advanced
--------
- How Computers Work - <https://www.amazon.com/How-Computers-Work-Evolution-Technology/dp/078974984X>
- Program Arcade Games with Python and Pygame - <http://programarcadegames.com/>
- Python Crash Course - <https://nostarch.com/pythoncrashcourse/>

repository: jpike/PythonProgrammingForKids

repo_name: jpike/PythonProgrammingForKids


text:
---
title: 'INTERACTIVE MAP: Bronx unemployment by neighborhood'
date: '2012-01-02T11:08:09.000+00:00'
categories:
- Data Visualization Thoughts
---

This interactive map displays the 2010 unemployment rates for each Bronx neighborhood. The darker shade green represents a higher rate of unemployment. Click on each neighborhood to see its statistics and poverty rate.

SOURCE: 2010 American Community Survey 1-Year Estimates

extension: markdown


text:
---
layout: home
title: Item Counts
#permalink: index.html # in case of we remove the index.md file, this doc will be the index page
---

## Description

---

You recently started working in the IT department of a large store. You were put in charge of the inventory database **availableItems**, which has the following structure:

- **id**: unique item ID;
- **item_name**: the name of the item;
- **item_type**: the type of the item.

Note that it is possible for items that are of different types to have the same names.

One of the most common operations performed on this database is querying the number of specific items available at the store. Since the database is quite large, queries of this type can take up too much time. You have decided to solve this problem by creating a new table that contains item counts for all available items.

Given the **availableItems** table, compose a results table that has the following three columns: item_name, item_type and item_count, containing the names of the items, their types, and the amount of those items, respectively. The table should be sorted in ascending order by item type, with items of the same type sorted in ascending order by their names.

**Example**

For the following table **availableItems**

| id  | item_name       | item_type   |
| --- | --------------- | ----------- |
| 1   | SafeDisk 4GB    | USB drive   |
| 2   | SafeDisk 8GB    | USB drive   |
| 3   | Cinco 50-Pack   | DVD         |
| 4   | SafeDisk 4GB    | Memory card |
| 5   | SafeDisk 8GB    | Memory card |
| 6   | Cinco 30-Pack   | DVD         |
| 7   | SafeDisk 4GB    | Memory card |
| 8   | SafeDisk 4GB    | Memory card |
| 9   | DiskHolder      | Misc        |
| 10  | Cinco 50-Pack   | DVD         |
| 11  | SafeDisk 4GB    | USB drive   |
| 12  | DiskCleaner Pro | Misc        |

the output should be

| item_name       | item_type   | item_count |
| --------------- | ----------- | ---------- |
| Cinco 30-Pack   | DVD         | 1          |
| Cinco 50-Pack   | DVD         | 2          |
| SafeDisk 4GB    | Memory card | 3          |
| SafeDisk 8GB    | Memory card | 1          |
| DiskCleaner Pro | Misc        | 1          |
| DiskHolder      | Misc        | 1          |
| SafeDisk 4GB    | USB drive   | 2          |
| SafeDisk 8GB    | USB drive   | 1          |

- **[execution time limit] 10 seconds (mysql)**

## Solution

---

{% highlight sql linenos=table %}

{% include_relative solution.sql %}

{% endhighlight %}

repository: wachino/codefights-arcade-databases

repo_name: wachino/codefights-arcade-databases


text:
---
hrs_structure:
  division: '2'
  volume: '9'
  title: '24'
  chapter: 431P
  section: 431P-18
type: hrs_section
tags:
  - Business
menu:
  hrs:
    identifier: HRS_0431P-0018
    parent: HRS0431P
    name: 431P-18 Exemption for Hawaiian home lands
weight: 22100
title: Exemption for Hawaiian home lands
full_title: 431P-18 Exemption for Hawaiian home lands
---
**[§431P-18]** **Exemption for Hawaiian home lands.** Nothing in this chapter shall prohibit or limit any person from obtaining insurance for property subject to the Hawaiian Homes Commission Act of 1920, as amended, from any insurer other than the fund if such insurance is deemed sufficient by the commissioner. [L 1993, c 339, pt of §2]

repository: SamMade/BlueAndKrabby

repo_name: SamMade/BlueAndKrabby


text:
---
name: Pre-release checklist
about: Complete one of these for each release. Designed to catch small mistakes and
  increase repeat-ability of our process.
title: ''
labels: ''
assignees: ''

---

Prior to moving into production, the following steps should be completed or confirmed:
- [ ] Update version number in the code being released
- [ ] Ensure deployment steps are filled in - remove/replace placeholders
- [ ] Create a draft release in GitHub and confirm the correct commits are present
- [ ] Add version # and release # to this ticket
- [ ] Dev to send commit list to QA (or otherwise publish changelog)
- [ ] QA to schedule the release with staff/clients (daytime's best or when staff are available for rollback)
- [ ] All dev/test pipeline test suites green
- [ ] Dev/QA chat to plan prod verification testing (unless already automated)
- [ ] Release the code to production and complete smoke test (STEPS BELOW)
- [ ] Finalise/publish the release in GitHub, tagging it
- [ ] Merge release branch back to master (if applicable)
- [ ] Change openshift builds/pipelines back to master (if applicable)

**Deployment Steps**

Dev:
- [ ] config map changes
  - list here, copy to test and prod
- [ ] are there any dependencies, such as an auth/pay deployment or keycloak changes?
  - list here, copy to test and prod
- [ ] are there any one-time scripts to be run, such as for data migration?
  - list here, copy to test and prod

Test:

Prod:

**Smoke Test Script**
- [ ]
- [ ]
- [ ]
- [ ] watch [Kibana](https://kibana.pathfinder.gov.bc.ca/) logs for 5 minutes

repository: SiennaBlumstengel/entity

repo_name: SiennaBlumstengel/entity


text:
# The State of AI

This repository compiles latest discussions and resources around the state of artificial intelligence (AI). Any contributions are welcome.

## GENERAL

### Keynotes

#### [The State of AI](https://www.youtube.com/watch?v=NKpuX_yzdYs) by Andrew Ng at [EmTech](https://events.technologyreview.com/emtech/18/) (2017)
* Supervised learning: A (an image) --> B (cat or dog)
* Reinforcement learning: Even greater hunger for data and computation
* Data asset is more important than algorithms.
* Virtuous cycle of getting data: data --> product --> users --> more data
* Tech company with NN != AI company, such as shopping mall with a website != internet compnay
  * Strategic data acquisition
  * Unified data warehouse - multi-year exercise
  * New job description for PMs
* To incorporate AI into a company, a centralized AI team that provides AI resources to different business units across the company is recommended.
  * More consistent management of AI talents
  * Common standards and company-wide platform

#### [The Power and Limits of AI: Present and Future](https://www.youtube.com/watch?v=uEZ-V5CXNI8&t=1258s) by Yann LeCun at Abu Dhabi Ideas Weekend (2018)
* AI: Started in 50s. Had success with expert systems in 80s. Revived with the emergence of deep learning
* Deep learning is an internal structure of machine in machine learning
* Authentic human experience > material goods
* AI is a general purpose technology (GPT)
  * GPT: steam engin, electricity, computer, etc.
  * Technology deployment is limited by how fast workers can train for it. Needs investment on education.

#### [The Frontiers of Machine Learning and AI](https://www.oreilly.com/ideas/the-frontiers-of-machine-learning-and-ai) by Zoubin Ghahramani at Oreilly AI Conference in NY (2018)

### Reports

#### [State of AI 2018](https://www.youtube.com/watch?time_continue=11&v=ja6TsWNDXVg) by CB Insights (2018)
* Manufacturing job: Increasing number of jobs. The number and nature of jobs will never be the same.
* White color job: Expert-Automation & Augmentation Software (EAAS). AI-enhanced productivity changes industries such as law, media, wealth management, etc.
  * NLP startups in legal industry such as ROSS, Legal Sifter, Casetext, LawGeex. AI can summarize thousands of pages of legal documents within minutes.
  * Software development: Applitools, DiffBlue (UK) provides AI based software testing, debugging and basic front-end development.
* AI talent wars: Everyone is on the hiring spree.
  * Average salary of $350K at DeepMind. ~$600K for Sr. ML researcher at BMW China.
* AI for everything: Weed, Fish, Horses (HoofStep), Beer Brewing
* ML gets normalized.
* Amazon, Google and Microsoft dominate enterprise AI
* AI diagnostics
  * Healthcare AI deals top the chart - hottest area of AI startup investment
  * Fueled by medical imaging and diagnostic companies: Arterys that analyzes cardiac images raised $42M at valuation at $82M
  * Strategic partnerships: NVidia + GE, DeepMind + NHS, AliHealth + AstraZeneca

#### [Artificial Intelligence - The Next Digital Frontier?](https://www.mckinsey.com/~/media/McKinsey/Industries/Advanced%20Electronics/Our%20Insights/How%20artificial%20intelligence%20can%20deliver%20real%20value%20to%20companies/MGI-Artificial-Intelligence-Discussion-paper.ashx) by McKinsey Global Institute (2017)
* AI is getting ready for business, but are businesses ready for AI?
  * Tech giants spent $20B ~ $30B on AI in 2016: 90% on R&D + 10% on AI acquisitions
  * VC and PE financing, grants and seed investments invested $6B ~$9B on AI
  * Outside of tech sector, only 20% currently use any AI-related technology at scale
  * A successful program requires: identify the business case, set up the right data ecosystem, build or buy appropriate AI tools, and adapt workflow processes, capabilities, and culture. Leadership from the top, management and technical capabilities, and seamless data access are key enablers.
* AI promises to boost profits and transform industries
* Businesses, developers and governments need to act now to realize AI's full potential
* Case studies: AI's potential to improve forecsting and sourcing, optimize and automate operations, develop targeted marketing and pricing and enhance the user experience
  * Retail
  * Electric utility
  * Manufacturing
  * Healthcare
  * Education

## BY INDUSTRIES

### Healthcare

#### [Neural Interfaces: Connecting humans and AI](https://www.youtube.com/watch?v=5Z5aZK2C3ew) by Thomas Reardon at Oreilly's AI Conference in NY (2018)

### Social Good

#### [Towards Globally Beneficial AI](https://www.facebook.com/ijcaiecai18/videos/2192356910905283/UzpfSTEwMDAwMDc3MDUxMDg5OToyMDAxNDI0MTA5ODkxNjg5/) by Stefano Ermon at IJCAI (2018)
* Recent progress in AI: Computer vision, speech recognition, game playing, machine translation, theorem proving, question answering, etc.
* 17 sustainable development goals
* Large scale economic modeling: Jean, Ermon et al. Science 2016
  * Geo statistics --> Deep Gaussian process
  * Semi-supervised learning
  * Predicts crop productivity, infrastructure quality, population density, crop disease, etc.
* Learnging with limited labeled data/supervision
  * Learning from constraints (AAAI-17 best paper)
  * Generative models
  * Semi-supervised learning and domain adaptation
* Uncertainty quantification: Recalibration (AAAI-17, ICML-18)

## BY COMPANIES

### Microsoft

#### Healthcare
* [Democratizing AI in Healthcare](http://www.democratizing-ai-in-health.com/)
* [Healthcare NExT](http://www.businessinsider.com/peter-lee-microsoft-research-healthcare-next-interview-2018-2): Fusing research, AI and industry expertise through partners
* [InnerEye](https://www.microsoft.com/en-us/research/project/medical-image-analysis/)
  * Automatic 3D segmentation of tumor and healthy cells
  * Better understanding of cancer response
  * Human + machine - AI assistance for planning radiotherapy treatments
  * Can be deployed as intelligent Azure services
  * Demo on automatic brain tumor segmentation at RSNA-2017
* [EmpowerMD](https://www.microsoft.com/en-us/research/project/empowermd/)
  * Intelligent Scribe
  * Transcription, entity, intent, synthesis phrases. Important phrases from patient speech.
  * Rancked by confidence level
  * Collaboration with UPMC (University of Pittsburgh Medical Center)
* [Microsoft Genomics Service](https://azure.microsoft.com/en-us/services/genomics/)
  * St. Jude Children's Research Hospital
  * Cloud implentation of BWA and Genome Analysis Toolkit (GATK)
* [Health Bot](https://www.microsoft.com/en-us/research/project/health-bot/)
  * Access health data with conversational intelligence
  * Insurers uses bots to give customers an easy way to look up the status of a claim and ask questions about benefits
  * Providers uses bots to triage patient issues with symptom checker, help patients find care, and look up nearby doctors.
  * Partners: Premera Blue Cross, Aurora Healthcare, Health Navigator, UPMC
* [Enable Group at MSR](https://www.microsoft.com/en-us/research/group/enable/)
  * [Eye-controlled user interface in Windows 10](https://support.microsoft.com/en-us/help/4043921/windows-10-get-started-eye-control)
  * [Soundscape](https://www.microsoft.com/en-us/research/product/soundscape/): Sound-based user interface
* [Ability Group at MSR](https://www.microsoft.com/en-us/research/group/ability/): R&D innovative technologies that extend the capabilities of and enhance quality of life for people with disabilities
* [Lung cancer prediction with search queries](https://blogs.microsoft.com/ai/microsoft-researchers-detect-lung-cancer-risks-web-search-logs/)
* [Project Hanover](https://news.microsoft.com/stories/computingcancer/): For machine reading, cancer decision support, chronic disease management. Collaboration with Knight Cancer Institute.
* Heart disease detection: Collaboration with India's Apollo Hospitals

### Google

### Amazon

### Facebook

## BY RESEARCH AREAS

### Computer Vision

#### [Dermatologist-level Classfication of Skin Cancer with Deep Neural Networks](https://www.nature.com/articles/nature21056) by Esteva et al. on Nature (2017)
* A CNN model was trained with 129K clinical images with 2K+ diseases.
* The model performed on par with 21 dermatologists on two binary classification tasks: keratinocyte carcinomas (the most common cancer) vs. benign seborrheic keratoses and malignat melanomas (the deadliest skin cancer) vs. benign nevi.

#### [AI Beats Human Doctors in Neuroimaging Recognition Contest](http://www.xinhuanet.com/english/2018-06/30/c_137292451.htm) by Xinhua (2018)
* The BioMind AI system defeated physicians in two rounds of competitions in diagnosing brain tumors and predicting hematoma expansion in Beijing
* BioMind made correct diagnoses in 87% of 225 cases in ~15 minutes
* A team of 15 senior doctors achieved 66% accuracy
* BioMind was trained with 10K+ images of nervous system-related diseases archived over the past 10 years by Tiantan Hospital

### Natural Language Process

#### Machine Reading Comprehension (MRC)

* [ReasoNet + R-NET](https://www.ailab.microsoft.com/experiments/ef90706b-e822-4686-bbc4-94fd0bca5fc5) by Microsoft Research

### Reinforcement Learning

#### [Mastering the Game of Go with Deep Neural Networks and Tree Search](https://www.nature.com/articles/nature16961) by Silver et al. on Nature (2016)
*

### Ethics

#### [The Trouble with Bias](https://www.youtube.com/watch?v=fMym_BKWQzk) Keynote by Kate Crawford at NIPS (2017)

#### [AI Now 2017 Report](https://ainowinstitute.org/AI_Now_2017_Report.pdf) by [AI Now Institute](https://ainowinstitute.org) (2017)
* Labor and automation
* Bias and inclusion
* Rights and liberties
* Ethics and governance

## CRITICISMS / FAILURES

#### [Why Everyone Is Hating on IBM Watson](https://gizmodo.com/why-everyone-is-hating-on-watson-including-the-people-w-1797510888) by Jennings Brown on Gizmodo (2017)

#### [Google's AutoML: Cutting Through the Hype](http://www.fast.ai/2018/07/23/auto-ml-3/) by Rachel Thomas at fast.ai (2018)

#### [Amazon's Face Recognition Falsely Matched 28 Members of Congress With Mugshots](https://www.aclu.org/blog/privacy-technology/surveillance-technologies/amazons-face-recognition-falsely-matched-28) by Jacob Snow on ACLU
* Rekognition, Amazon's face recognition tool incorrectly identified 28 members of Congress as other people who have been arrested for a crime.

#### [Has AI Surpassed Humans at Translation? Not Even Close!](https://www.skynettoday.com/editorials/state_of_nmt) by Sharon Zhou on Skynet Today (2018)

#### [Deep Learning: A Critical Appraisal](https://arxiv.org/abs/1801.00631) by Gary Marcus on arXiv.org (2018)

#### [Innateness, AlphaZero, and Artificial Intelligence](https://arxiv.org/abs/1801.05667) by Gary Marcus on arXiv.org (2018)

#### [AI Winter is Well on Its Way](https://blog.piekniewski.info/2018/05/28/ai-winter-is-well-on-its-way/) by Filip Piekniewski (2018)

#### [Rebooting AI - Postulates](https://blog.piekniewski.info/2018/06/20/rebooting-ai-postulates/) by Filip Pienkniewski (2018)

## REFERENCES

### AI General
* [Awesome Artificial Intelligence](https://github.com/hades217/awesome-ai) compiled by Lightman Wang

### Research
* [Deep Learning Papers by Task](https://github.com/sbrugman/deep-learning-papers) compiled by Simon Brugman

repository: deepchatterjeevns/the-state-of-ai

repo_name: deepchatterjeevns/the-state-of-ai