From b8c1d622a77226b14fb307cfe3e0f4cea9e4268a Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Sat, 16 Jul 2022 16:30:46 +0300 Subject: add missing files for forked idiorm --- plugins/af_readability/composer.json | 9 +- plugins/af_readability/composer.lock | 340 +- .../af_readability/vendor/composer/ClassLoader.php | 123 +- .../vendor/composer/InstalledVersions.php | 155 +- plugins/af_readability/vendor/composer/LICENSE | 2 + .../vendor/composer/autoload_psr4.php | 5 +- .../vendor/composer/autoload_real.php | 2 - .../vendor/composer/autoload_static.php | 28 +- .../af_readability/vendor/composer/installed.json | 350 +- .../af_readability/vendor/composer/installed.php | 115 +- .../vendor/composer/platform_check.php | 26 - .../fivefilters/readability.php/.coveralls.yml | 3 - .../fivefilters/readability.php/.gitattributes | 3 +- .../vendor/fivefilters/readability.php/.gitignore | 3 +- .../fivefilters/readability.php/.styleci.yml | 13 - .../vendor/fivefilters/readability.php/.travis.yml | 48 - .../vendor/fivefilters/readability.php/AUTHORS.md | 1 + .../fivefilters/readability.php/CONTRIBUTING.md | 3 +- .../vendor/fivefilters/readability.php/Makefile | 21 +- .../vendor/fivefilters/readability.php/README.md | 88 +- .../fivefilters/readability.php/composer.json | 26 +- .../fivefilters/readability.php/docker-compose.yml | 156 +- .../readability.php/docker/php/Dockerfile | 18 +- .../readability.php/src/Configuration.php | 77 +- .../readability.php/src/Nodes/DOM/DOMAttr.php | 4 +- .../src/Nodes/DOM/DOMCdataSection.php | 4 +- .../src/Nodes/DOM/DOMCharacterData.php | 4 +- .../readability.php/src/Nodes/DOM/DOMComment.php | 4 +- .../readability.php/src/Nodes/DOM/DOMDocument.php | 4 +- .../src/Nodes/DOM/DOMDocumentFragment.php | 4 +- .../src/Nodes/DOM/DOMDocumentType.php | 4 +- .../readability.php/src/Nodes/DOM/DOMElement.php | 40 +- .../readability.php/src/Nodes/DOM/DOMEntity.php | 4 +- .../src/Nodes/DOM/DOMEntityReference.php | 4 +- .../readability.php/src/Nodes/DOM/DOMNode.php | 4 +- .../readability.php/src/Nodes/DOM/DOMNodeList.php | 2 +- .../readability.php/src/Nodes/DOM/DOMNotation.php | 4 +- .../src/Nodes/DOM/DOMProcessingInstruction.php | 4 +- .../readability.php/src/Nodes/DOM/DOMText.php | 4 +- .../readability.php/src/Nodes/NodeTrait.php | 69 +- .../readability.php/src/Nodes/NodeUtility.php | 36 +- .../readability.php/src/ParseException.php | 2 +- .../readability.php/src/Readability.php | 832 +- .../readability.php/test/ConfigurationTest.php | 4 +- .../readability.php/test/ReadabilityTest.php | 75 +- .../fivefilters/readability.php/test/TestPage.php | 18 +- .../test/test-pages/001/expected.html | 18 +- .../test/test-pages/002/expected.html | 197 +- .../003-metadata-preferred/expected.html | 1 + .../expected.html | 1 + .../test/test-pages/aclu/expected-metadata.json | 10 +- .../test/test-pages/aclu/expected.html | 2 +- .../test/test-pages/ars-1/expected-images.json | 3 +- .../test/test-pages/ars-1/expected-metadata.json | 6 +- .../test/test-pages/ars-1/expected.html | 87 +- .../test/test-pages/ars-1/source.html | 1275 +- .../expected-images.json | 12 +- .../base-url-base-element-relative/expected.html | 11 +- .../base-url-base-element/expected-images.json | 10 +- .../test-pages/base-url-base-element/expected.html | 11 +- .../test/test-pages/base-url/expected-images.json | 12 +- .../test/test-pages/base-url/expected.html | 11 +- .../test/test-pages/bbc-1/expected-images.json | 14 +- .../test/test-pages/bbc-1/expected-metadata.json | 4 +- .../test/test-pages/bbc-1/expected.html | 11 +- .../test/test-pages/blogger/expected.html | 63 +- .../test/test-pages/breitbart/expected.html | 14 +- .../test/test-pages/bug-1255978/expected.html | 36 +- .../test/test-pages/bug-1255978/source.html | 37965 +------------------ .../test/test-pages/buzzfeed-1/expected.html | 7 +- .../test-pages/clean-links/expected-images.json | 2 +- .../test/test-pages/clean-links/expected.html | 13 +- .../cnet-svg-classes/expected-metadata.json | 4 +- .../test/test-pages/cnet-svg-classes/expected.html | 24 +- .../test/test-pages/cnet/expected-metadata.json | 4 +- .../test/test-pages/cnet/expected.html | 17 +- .../test/test-pages/cnn/expected.html | 15 +- .../test/test-pages/daringfireball-1/expected.html | 32 +- .../different-sources-for-images/expected.html | 11 +- .../test/test-pages/ehow-1/expected.html | 92 +- .../test/test-pages/ehow-2/expected.html | 112 +- .../test/test-pages/embedded-videos/expected.html | 13 +- .../test/test-pages/engadget/expected-images.json | 23 +- .../test/test-pages/engadget/expected.html | 262 +- .../fortressofsolitude/expected-metadata.json | 2 +- .../test-pages/fortressofsolitude/expected.html | 2 +- .../test/test-pages/gmw/expected.html | 8 +- .../test/test-pages/heise/expected.html | 26 +- .../test/test-pages/herald-sun-1/expected.html | 9 +- .../test-pages/hukumusume/expected-images.json | 13 +- .../test/test-pages/hukumusume/expected.html | 220 +- .../test/test-pages/iab-1/expected-images.json | 8 +- .../test/test-pages/iab-1/expected.html | 15 +- .../test/test-pages/ietf-1/expected.html | 139 +- .../test/test-pages/infobae/expected.html | 2 +- .../test-pages/keep-images/expected-images.json | 34 +- .../test/test-pages/keep-images/expected.html | 271 +- .../test/test-pages/la-nacion/expected.html | 19 +- .../test-pages/lemonde-1/expected-metadata.json | 2 +- .../test/test-pages/lemonde-1/expected.html | 39 +- .../test-pages/lemonde-2/expected-metadata.json | 10 +- .../test/test-pages/lemonde-2/expected.html | 17 +- .../test-pages/liberation-1/expected-metadata.json | 2 +- .../test/test-pages/liberation-1/expected.html | 25 +- .../expected-images.json | 22 +- .../lifehacker-post-comment-load/expected.html | 211 +- .../lifehacker-working/expected-images.json | 22 +- .../test-pages/lifehacker-working/expected.html | 211 +- .../links-in-tables/expected-metadata.json | 2 +- .../test/test-pages/links-in-tables/expected.html | 31 +- .../test/test-pages/lwn-1/expected.html | 1012 +- .../test-pages/marketwatch/expected-images.json | 6 +- .../test-pages/marketwatch/expected-metadata.json | 6 +- .../test/test-pages/marketwatch/expected.html | 57 +- .../test/test-pages/medium-1/expected.html | 230 +- .../test/test-pages/medium-2/expected.html | 2 +- .../test/test-pages/medium-3/expected-images.json | 6 +- .../test-pages/medium-3/expected-metadata.json | 8 +- .../test/test-pages/medium-3/expected.html | 906 +- .../test/test-pages/medium-3/source.html | 6200 +-- .../missing-paragraphs/expected-metadata.json | 2 +- .../test/test-pages/mozilla-1/expected.html | 77 +- .../test/test-pages/mozilla-2/expected.html | 52 +- .../test/test-pages/msn/expected.html | 14 +- .../test/test-pages/nytimes-1/expected-images.json | 2 +- .../test-pages/nytimes-1/expected-metadata.json | 4 +- .../test/test-pages/nytimes-1/expected.html | 62 +- .../test/test-pages/nytimes-2/expected-images.json | 4 +- .../test-pages/nytimes-2/expected-metadata.json | 8 +- .../test/test-pages/nytimes-2/expected.html | 72 +- .../test/test-pages/pixnet/expected-metadata.json | 10 +- .../test/test-pages/pixnet/expected.html | 106 +- .../test-pages/reordering-paragraphs/expected.html | 4 +- .../test/test-pages/replace-brs/expected.html | 14 +- .../test-pages/replace-font-tags/expected.html | 3 +- .../test/test-pages/replace-font-tags/source.html | 2 +- .../test/test-pages/rtl-1/expected.html | 7 +- .../test/test-pages/rtl-2/expected.html | 7 +- .../test/test-pages/rtl-3/expected.html | 7 +- .../test/test-pages/rtl-4/expected.html | 7 +- .../test/test-pages/salon-1/expected.html | 4 +- .../test/test-pages/simplyfound-1/expected.html | 8 +- .../test/test-pages/social-buttons/expected.html | 1 + .../test-pages/style-tags-removal/expected.html | 3 + .../test/test-pages/svg-parsing/expected.html | 8 +- .../table-style-attributes/expected-images.json | 2 +- .../table-style-attributes/expected.html | 56 +- .../test-pages/telegraph/expected-metadata.json | 6 +- .../test/test-pages/telegraph/expected.html | 30 +- .../title-and-h1-discrepancy/expected.html | 1 + .../test/test-pages/tmz-1/expected.html | 15 +- .../test/test-pages/tumblr/expected.html | 13 +- .../expected.html | 159 +- .../test/test-pages/wapo-1/expected.html | 5 +- .../test/test-pages/wapo-2/expected.html | 8 +- .../test/test-pages/webmd-2/expected.html | 9 +- .../test/test-pages/wikia/expected.html | 25 +- .../test/test-pages/wikipedia/expected-images.json | 1 + .../test/test-pages/wikipedia/expected.html | 256 +- .../test-pages/wordpress/expected-metadata.json | 6 +- .../test/test-pages/wordpress/expected.html | 52 +- .../test/test-pages/yahoo-1/expected.html | 78 +- .../test/test-pages/yahoo-2/expected.html | 19 +- .../test/test-pages/yahoo-3/expected-metadata.json | 2 +- .../test/test-pages/yahoo-3/expected.html | 41 +- .../test/test-pages/yahoo-4/expected-metadata.json | 2 +- .../test/test-pages/yahoo-4/expected.html | 6 +- .../test/test-pages/youth/expected.html | 16 +- 168 files changed, 8317 insertions(+), 45924 deletions(-) delete mode 100644 plugins/af_readability/vendor/composer/platform_check.php delete mode 100644 plugins/af_readability/vendor/fivefilters/readability.php/.coveralls.yml delete mode 100644 plugins/af_readability/vendor/fivefilters/readability.php/.styleci.yml delete mode 100644 plugins/af_readability/vendor/fivefilters/readability.php/.travis.yml (limited to 'plugins') diff --git a/plugins/af_readability/composer.json b/plugins/af_readability/composer.json index f23f50db9..b22733315 100644 --- a/plugins/af_readability/composer.json +++ b/plugins/af_readability/composer.json @@ -1,5 +1,12 @@ { + "repositories": [ + { + "name": "fivefilters/readability.php", + "type": "vcs", + "url": "https://dev.tt-rss.org/fox/readability-php.git" + } + ], "require": { - "fivefilters/readability.php": "^2.1" + "fivefilters/readability.php": "dev-master" } } diff --git a/plugins/af_readability/composer.lock b/plugins/af_readability/composer.lock index 8001f054e..685a9489b 100644 --- a/plugins/af_readability/composer.lock +++ b/plugins/af_readability/composer.lock @@ -4,43 +4,44 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "985d4bb2caa672420e280a0b2bbb4715", + "content-hash": "9b8120263fb98662acec8e8101e47465", "packages": [ { "name": "fivefilters/readability.php", - "version": "v2.1.0", + "version": "dev-master", "source": { "type": "git", - "url": "https://github.com/fivefilters/readability.php.git", - "reference": "7617a912b6c527909168f5d41d263792f171c42a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/fivefilters/readability.php/zipball/7617a912b6c527909168f5d41d263792f171c42a", - "reference": "7617a912b6c527909168f5d41d263792f171c42a", - "shasum": "" + "url": "https://dev.tt-rss.org/fox/readability-php.git", + "reference": "5ad152c70376002f043bb936d8ae5eed103fb993" }, "require": { "ext-dom": "*", "ext-mbstring": "*", "ext-xml": "*", - "php": ">=7.0.0", + "league/uri": "^6.4", + "masterminds/html5": "^2.0", + "php": ">=7.3.0", "psr/log": "^1.0" }, "require-dev": { - "monolog/monolog": "^1.24", - "phpunit/phpunit": "^6.5" + "monolog/monolog": "^2.3", + "phpunit/phpunit": "^9" }, "suggest": { "monolog/monolog": "Allow logging debug information" }, + "default-branch": true, "type": "library", "autoload": { "psr-4": { - "andreskrey\\Readability\\": "src/" + "fivefilters\\Readability\\": "src/" + } + }, + "autoload-dev": { + "psr-4": { + "fivefilters\\Readability\\Test\\": "test" } }, - "notification-url": "https://packagist.org/downloads/", "license": [ "Apache-2.0" ], @@ -48,19 +49,314 @@ { "name": "Andres Rey", "email": "andreskrey@gmail.com", - "role": "Lead Developer" + "role": "Original Developer" + }, + { + "name": "Keyvan Minoukadeh", + "email": "keyvan@fivefilters.org", + "homepage": "https://www.fivefilters.org", + "role": "Developer/Maintainer" } ], "description": "A PHP port of Readability.js", - "homepage": "https://github.com/andreskrey/readability", + "homepage": "https://github.com/fivefilters/readability.php", "keywords": [ "html", "readability" ], + "time": "2022-07-16T13:23:08+00:00" + }, + { + "name": "league/uri", + "version": "6.7.1", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/uri.git", + "reference": "2d7c87a0860f3126a39f44a8a9bf2fed402dcfea" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/uri/zipball/2d7c87a0860f3126a39f44a8a9bf2fed402dcfea", + "reference": "2d7c87a0860f3126a39f44a8a9bf2fed402dcfea", + "shasum": "" + }, + "require": { + "ext-json": "*", + "league/uri-interfaces": "^2.3", + "php": "^7.4 || ^8.0", + "psr/http-message": "^1.0" + }, + "conflict": { + "league/uri-schemes": "^1.0" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^v3.3.2", + "nyholm/psr7": "^1.5", + "php-http/psr7-integration-tests": "^1.1", + "phpstan/phpstan": "^1.2.0", + "phpstan/phpstan-deprecation-rules": "^1.0", + "phpstan/phpstan-phpunit": "^1.0.0", + "phpstan/phpstan-strict-rules": "^1.1.0", + "phpunit/phpunit": "^9.5.10", + "psr/http-factory": "^1.0" + }, + "suggest": { + "ext-fileinfo": "Needed to create Data URI from a filepath", + "ext-intl": "Needed to improve host validation", + "league/uri-components": "Needed to easily manipulate URI objects", + "psr/http-factory": "Needed to use the URI factory" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "6.x-dev" + } + }, + "autoload": { + "psr-4": { + "League\\Uri\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ignace Nyamagana Butera", + "email": "nyamsprod@gmail.com", + "homepage": "https://nyamsprod.com" + } + ], + "description": "URI manipulation library", + "homepage": "https://uri.thephpleague.com", + "keywords": [ + "data-uri", + "file-uri", + "ftp", + "hostname", + "http", + "https", + "middleware", + "parse_str", + "parse_url", + "psr-7", + "query-string", + "querystring", + "rfc3986", + "rfc3987", + "rfc6570", + "uri", + "uri-template", + "url", + "ws" + ], + "support": { + "docs": "https://uri.thephpleague.com", + "forum": "https://thephpleague.slack.com", + "issues": "https://github.com/thephpleague/uri/issues", + "source": "https://github.com/thephpleague/uri/tree/6.7.1" + }, + "funding": [ + { + "url": "https://github.com/sponsors/nyamsprod", + "type": "github" + } + ], + "time": "2022-06-29T09:48:18+00:00" + }, + { + "name": "league/uri-interfaces", + "version": "2.3.0", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/uri-interfaces.git", + "reference": "00e7e2943f76d8cb50c7dfdc2f6dee356e15e383" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/uri-interfaces/zipball/00e7e2943f76d8cb50c7dfdc2f6dee356e15e383", + "reference": "00e7e2943f76d8cb50c7dfdc2f6dee356e15e383", + "shasum": "" + }, + "require": { + "ext-json": "*", + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^2.19", + "phpstan/phpstan": "^0.12.90", + "phpstan/phpstan-phpunit": "^0.12.19", + "phpstan/phpstan-strict-rules": "^0.12.9", + "phpunit/phpunit": "^8.5.15 || ^9.5" + }, + "suggest": { + "ext-intl": "to use the IDNA feature", + "symfony/intl": "to use the IDNA feature via Symfony Polyfill" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + } + }, + "autoload": { + "psr-4": { + "League\\Uri\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ignace Nyamagana Butera", + "email": "nyamsprod@gmail.com", + "homepage": "https://nyamsprod.com" + } + ], + "description": "Common interface for URI representation", + "homepage": "http://github.com/thephpleague/uri-interfaces", + "keywords": [ + "rfc3986", + "rfc3987", + "uri", + "url" + ], + "support": { + "issues": "https://github.com/thephpleague/uri-interfaces/issues", + "source": "https://github.com/thephpleague/uri-interfaces/tree/2.3.0" + }, + "funding": [ + { + "url": "https://github.com/sponsors/nyamsprod", + "type": "github" + } + ], + "time": "2021-06-28T04:27:21+00:00" + }, + { + "name": "masterminds/html5", + "version": "2.7.5", + "source": { + "type": "git", + "url": "https://github.com/Masterminds/html5-php.git", + "reference": "f640ac1bdddff06ea333a920c95bbad8872429ab" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Masterminds/html5-php/zipball/f640ac1bdddff06ea333a920c95bbad8872429ab", + "reference": "f640ac1bdddff06ea333a920c95bbad8872429ab", + "shasum": "" + }, + "require": { + "ext-ctype": "*", + "ext-dom": "*", + "ext-libxml": "*", + "php": ">=5.3.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7.21 || ^6 || ^7" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.7-dev" + } + }, + "autoload": { + "psr-4": { + "Masterminds\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Matt Butcher", + "email": "technosophos@gmail.com" + }, + { + "name": "Matt Farina", + "email": "matt@mattfarina.com" + }, + { + "name": "Asmir Mustafic", + "email": "goetas@gmail.com" + } + ], + "description": "An HTML5 parser and serializer.", + "homepage": "http://masterminds.github.io/html5-php", + "keywords": [ + "HTML5", + "dom", + "html", + "parser", + "querypath", + "serializer", + "xml" + ], + "support": { + "issues": "https://github.com/Masterminds/html5-php/issues", + "source": "https://github.com/Masterminds/html5-php/tree/2.7.5" + }, + "time": "2021-07-01T14:25:37+00:00" + }, + { + "name": "psr/http-message", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-message.git", + "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363", + "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP messages", + "homepage": "https://github.com/php-fig/http-message", + "keywords": [ + "http", + "http-message", + "psr", + "psr-7", + "request", + "response" + ], "support": { - "source": "https://github.com/fivefilters/readability.php/tree/v2.1.0" + "source": "https://github.com/php-fig/http-message/tree/master" }, - "time": "2019-07-22T21:42:25+00:00" + "time": "2016-08-06T14:39:51+00:00" }, { "name": "psr/log", @@ -116,10 +412,12 @@ "packages-dev": [], "aliases": [], "minimum-stability": "stable", - "stability-flags": [], + "stability-flags": { + "fivefilters/readability.php": 20 + }, "prefer-stable": false, "prefer-lowest": false, "platform": [], "platform-dev": [], - "plugin-api-version": "2.0.0" + "plugin-api-version": "2.1.0" } diff --git a/plugins/af_readability/vendor/composer/ClassLoader.php b/plugins/af_readability/vendor/composer/ClassLoader.php index 4d989a212..0cd6055d1 100644 --- a/plugins/af_readability/vendor/composer/ClassLoader.php +++ b/plugins/af_readability/vendor/composer/ClassLoader.php @@ -42,30 +42,75 @@ namespace Composer\Autoload; */ class ClassLoader { + /** @var ?string */ private $vendorDir; // PSR-4 + /** + * @var array[] + * @psalm-var array> + */ private $prefixLengthsPsr4 = array(); + /** + * @var array[] + * @psalm-var array> + */ private $prefixDirsPsr4 = array(); + /** + * @var array[] + * @psalm-var array + */ private $fallbackDirsPsr4 = array(); // PSR-0 + /** + * @var array[] + * @psalm-var array> + */ private $prefixesPsr0 = array(); + /** + * @var array[] + * @psalm-var array + */ private $fallbackDirsPsr0 = array(); + /** @var bool */ private $useIncludePath = false; + + /** + * @var string[] + * @psalm-var array + */ private $classMap = array(); + + /** @var bool */ private $classMapAuthoritative = false; + + /** + * @var bool[] + * @psalm-var array + */ private $missingClasses = array(); + + /** @var ?string */ private $apcuPrefix; + /** + * @var self[] + */ private static $registeredLoaders = array(); + /** + * @param ?string $vendorDir + */ public function __construct($vendorDir = null) { $this->vendorDir = $vendorDir; } + /** + * @return string[] + */ public function getPrefixes() { if (!empty($this->prefixesPsr0)) { @@ -75,28 +120,47 @@ class ClassLoader return array(); } + /** + * @return array[] + * @psalm-return array> + */ public function getPrefixesPsr4() { return $this->prefixDirsPsr4; } + /** + * @return array[] + * @psalm-return array + */ public function getFallbackDirs() { return $this->fallbackDirsPsr0; } + /** + * @return array[] + * @psalm-return array + */ public function getFallbackDirsPsr4() { return $this->fallbackDirsPsr4; } + /** + * @return string[] Array of classname => path + * @psalm-var array + */ public function getClassMap() { return $this->classMap; } /** - * @param array $classMap Class to filename map + * @param string[] $classMap Class to filename map + * @psalm-param array $classMap + * + * @return void */ public function addClassMap(array $classMap) { @@ -111,9 +175,11 @@ class ClassLoader * Registers a set of PSR-0 directories for a given prefix, either * appending or prepending to the ones previously set for this prefix. * - * @param string $prefix The prefix - * @param array|string $paths The PSR-0 root directories - * @param bool $prepend Whether to prepend the directories + * @param string $prefix The prefix + * @param string[]|string $paths The PSR-0 root directories + * @param bool $prepend Whether to prepend the directories + * + * @return void */ public function add($prefix, $paths, $prepend = false) { @@ -156,11 +222,13 @@ class ClassLoader * Registers a set of PSR-4 directories for a given namespace, either * appending or prepending to the ones previously set for this namespace. * - * @param string $prefix The prefix/namespace, with trailing '\\' - * @param array|string $paths The PSR-4 base directories - * @param bool $prepend Whether to prepend the directories + * @param string $prefix The prefix/namespace, with trailing '\\' + * @param string[]|string $paths The PSR-4 base directories + * @param bool $prepend Whether to prepend the directories * * @throws \InvalidArgumentException + * + * @return void */ public function addPsr4($prefix, $paths, $prepend = false) { @@ -204,8 +272,10 @@ class ClassLoader * Registers a set of PSR-0 directories for a given prefix, * replacing any others previously set for this prefix. * - * @param string $prefix The prefix - * @param array|string $paths The PSR-0 base directories + * @param string $prefix The prefix + * @param string[]|string $paths The PSR-0 base directories + * + * @return void */ public function set($prefix, $paths) { @@ -220,10 +290,12 @@ class ClassLoader * Registers a set of PSR-4 directories for a given namespace, * replacing any others previously set for this namespace. * - * @param string $prefix The prefix/namespace, with trailing '\\' - * @param array|string $paths The PSR-4 base directories + * @param string $prefix The prefix/namespace, with trailing '\\' + * @param string[]|string $paths The PSR-4 base directories * * @throws \InvalidArgumentException + * + * @return void */ public function setPsr4($prefix, $paths) { @@ -243,6 +315,8 @@ class ClassLoader * Turns on searching the include path for class files. * * @param bool $useIncludePath + * + * @return void */ public function setUseIncludePath($useIncludePath) { @@ -265,6 +339,8 @@ class ClassLoader * that have not been registered with the class map. * * @param bool $classMapAuthoritative + * + * @return void */ public function setClassMapAuthoritative($classMapAuthoritative) { @@ -285,6 +361,8 @@ class ClassLoader * APCu prefix to use to cache found/not-found classes, if the extension is enabled. * * @param string|null $apcuPrefix + * + * @return void */ public function setApcuPrefix($apcuPrefix) { @@ -305,14 +383,18 @@ class ClassLoader * Registers this instance as an autoloader. * * @param bool $prepend Whether to prepend the autoloader or not + * + * @return void */ public function register($prepend = false) { spl_autoload_register(array($this, 'loadClass'), true, $prepend); if (null === $this->vendorDir) { - //no-op - } elseif ($prepend) { + return; + } + + if ($prepend) { self::$registeredLoaders = array($this->vendorDir => $this) + self::$registeredLoaders; } else { unset(self::$registeredLoaders[$this->vendorDir]); @@ -322,6 +404,8 @@ class ClassLoader /** * Unregisters this instance as an autoloader. + * + * @return void */ public function unregister() { @@ -336,7 +420,7 @@ class ClassLoader * Loads the given class or interface. * * @param string $class The name of the class - * @return bool|null True if loaded, null otherwise + * @return true|null True if loaded, null otherwise */ public function loadClass($class) { @@ -345,6 +429,8 @@ class ClassLoader return true; } + + return null; } /** @@ -399,6 +485,11 @@ class ClassLoader return self::$registeredLoaders; } + /** + * @param string $class + * @param string $ext + * @return string|false + */ private function findFileWithExtension($class, $ext) { // PSR-4 lookup @@ -470,6 +561,10 @@ class ClassLoader * Scope isolated include. * * Prevents access to $this/self from included files. + * + * @param string $file + * @return void + * @private */ function includeFile($file) { diff --git a/plugins/af_readability/vendor/composer/InstalledVersions.php b/plugins/af_readability/vendor/composer/InstalledVersions.php index eb57e7a7e..d50e0c9fc 100644 --- a/plugins/af_readability/vendor/composer/InstalledVersions.php +++ b/plugins/af_readability/vendor/composer/InstalledVersions.php @@ -18,53 +18,27 @@ use Composer\Semver\VersionParser; /** * This class is copied in every Composer installed project and available to all * - * To require it's presence, you can require `composer-runtime-api ^2.0` + * See also https://getcomposer.org/doc/07-runtime.md#installed-versions + * + * To require its presence, you can require `composer-runtime-api ^2.0` */ class InstalledVersions { - private static $installed = array ( - 'root' => - array ( - 'pretty_version' => 'dev-master', - 'version' => 'dev-master', - 'aliases' => - array ( - ), - 'reference' => 'a73e3bec45c5523910c711cf882976b71781ac9e', - 'name' => '__root__', - ), - 'versions' => - array ( - '__root__' => - array ( - 'pretty_version' => 'dev-master', - 'version' => 'dev-master', - 'aliases' => - array ( - ), - 'reference' => 'a73e3bec45c5523910c711cf882976b71781ac9e', - ), - 'fivefilters/readability.php' => - array ( - 'pretty_version' => 'v2.1.0', - 'version' => '2.1.0.0', - 'aliases' => - array ( - ), - 'reference' => '7617a912b6c527909168f5d41d263792f171c42a', - ), - 'psr/log' => - array ( - 'pretty_version' => '1.1.4', - 'version' => '1.1.4.0', - 'aliases' => - array ( - ), - 'reference' => 'd49695b909c3b7628b6289db5479a1c204601f11', - ), - ), -); + /** + * @var mixed[]|null + * @psalm-var array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array}|array{}|null + */ + private static $installed; + + /** + * @var bool|null + */ private static $canGetVendors; + + /** + * @var array[] + * @psalm-var array}> + */ private static $installedByVendor = array(); /** @@ -80,7 +54,6 @@ class InstalledVersions $packages[] = array_keys($installed['versions']); } - if (1 === \count($packages)) { return $packages[0]; } @@ -88,19 +61,42 @@ class InstalledVersions return array_keys(array_flip(\call_user_func_array('array_merge', $packages))); } + /** + * Returns a list of all package names with a specific type e.g. 'library' + * + * @param string $type + * @return string[] + * @psalm-return list + */ + public static function getInstalledPackagesByType($type) + { + $packagesByType = array(); + + foreach (self::getInstalled() as $installed) { + foreach ($installed['versions'] as $name => $package) { + if (isset($package['type']) && $package['type'] === $type) { + $packagesByType[] = $name; + } + } + } + + return $packagesByType; + } + /** * Checks whether the given package is installed * * This also returns true if the package name is provided or replaced by another package * * @param string $packageName + * @param bool $includeDevRequirements * @return bool */ - public static function isInstalled($packageName) + public static function isInstalled($packageName, $includeDevRequirements = true) { foreach (self::getInstalled() as $installed) { if (isset($installed['versions'][$packageName])) { - return true; + return $includeDevRequirements || empty($installed['versions'][$packageName]['dev_requirement']); } } @@ -114,10 +110,9 @@ class InstalledVersions * * Composer\InstalledVersions::satisfies(new VersionParser, 'foo/bar', '^2.3') * - * @param VersionParser $parser Install composer/semver to have access to this class and functionality - * @param string $packageName - * @param string|null $constraint A version constraint to check for, if you pass one you have to make sure composer/semver is required by your package - * + * @param VersionParser $parser Install composer/semver to have access to this class and functionality + * @param string $packageName + * @param string|null $constraint A version constraint to check for, if you pass one you have to make sure composer/semver is required by your package * @return bool */ public static function satisfies(VersionParser $parser, $packageName, $constraint) @@ -227,9 +222,26 @@ class InstalledVersions throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); } + /** + * @param string $packageName + * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as install path. Packages of type metapackages also have a null install path. + */ + public static function getInstallPath($packageName) + { + foreach (self::getInstalled() as $installed) { + if (!isset($installed['versions'][$packageName])) { + continue; + } + + return isset($installed['versions'][$packageName]['install_path']) ? $installed['versions'][$packageName]['install_path'] : null; + } + + throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); + } + /** * @return array - * @psalm-return array{name: string, version: string, reference: string, pretty_version: string, aliases: string[]} + * @psalm-return array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string} */ public static function getRootPackage() { @@ -241,14 +253,38 @@ class InstalledVersions /** * Returns the raw installed.php data for custom implementations * + * @deprecated Use getAllRawData() instead which returns all datasets for all autoloaders present in the process. getRawData only returns the first dataset loaded, which may not be what you expect. * @return array[] - * @psalm-return array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[]}, versions: list} + * @psalm-return array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array} */ public static function getRawData() { + @trigger_error('getRawData only returns the first dataset loaded, which may not be what you expect. Use getAllRawData() instead which returns all datasets for all autoloaders present in the process.', E_USER_DEPRECATED); + + if (null === self::$installed) { + // only require the installed.php file if this file is loaded from its dumped location, + // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937 + if (substr(__DIR__, -8, 1) !== 'C') { + self::$installed = include __DIR__ . '/installed.php'; + } else { + self::$installed = array(); + } + } + return self::$installed; } + /** + * Returns the raw data of all installed.php which are currently loaded for custom implementations + * + * @return array[] + * @psalm-return list}> + */ + public static function getAllRawData() + { + return self::getInstalled(); + } + /** * Lets you reload the static array from another file * @@ -265,7 +301,7 @@ class InstalledVersions * @param array[] $data A vendor/composer/installed.php data set * @return void * - * @psalm-param array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[]}, versions: list} $data + * @psalm-param array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array} $data */ public static function reload($data) { @@ -275,6 +311,7 @@ class InstalledVersions /** * @return array[] + * @psalm-return list}> */ private static function getInstalled() { @@ -290,10 +327,22 @@ class InstalledVersions $installed[] = self::$installedByVendor[$vendorDir]; } elseif (is_file($vendorDir.'/composer/installed.php')) { $installed[] = self::$installedByVendor[$vendorDir] = require $vendorDir.'/composer/installed.php'; + if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) { + self::$installed = $installed[count($installed) - 1]; + } } } } + if (null === self::$installed) { + // only require the installed.php file if this file is loaded from its dumped location, + // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937 + if (substr(__DIR__, -8, 1) !== 'C') { + self::$installed = require __DIR__ . '/installed.php'; + } else { + self::$installed = array(); + } + } $installed[] = self::$installed; return $installed; diff --git a/plugins/af_readability/vendor/composer/LICENSE b/plugins/af_readability/vendor/composer/LICENSE index 62ecfd8d0..f27399a04 100644 --- a/plugins/af_readability/vendor/composer/LICENSE +++ b/plugins/af_readability/vendor/composer/LICENSE @@ -1,3 +1,4 @@ + Copyright (c) Nils Adermann, Jordi Boggiano Permission is hereby granted, free of charge, to any person obtaining a copy @@ -17,3 +18,4 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + diff --git a/plugins/af_readability/vendor/composer/autoload_psr4.php b/plugins/af_readability/vendor/composer/autoload_psr4.php index 3efe88013..e16ed7f2d 100644 --- a/plugins/af_readability/vendor/composer/autoload_psr4.php +++ b/plugins/af_readability/vendor/composer/autoload_psr4.php @@ -6,6 +6,9 @@ $vendorDir = dirname(dirname(__FILE__)); $baseDir = dirname($vendorDir); return array( - 'andreskrey\\Readability\\' => array($vendorDir . '/fivefilters/readability.php/src'), + 'fivefilters\\Readability\\' => array($vendorDir . '/fivefilters/readability.php/src'), 'Psr\\Log\\' => array($vendorDir . '/psr/log/Psr/Log'), + 'Psr\\Http\\Message\\' => array($vendorDir . '/psr/http-message/src'), + 'Masterminds\\' => array($vendorDir . '/masterminds/html5/src'), + 'League\\Uri\\' => array($vendorDir . '/league/uri-interfaces/src', $vendorDir . '/league/uri/src'), ); diff --git a/plugins/af_readability/vendor/composer/autoload_real.php b/plugins/af_readability/vendor/composer/autoload_real.php index 74fc577de..a193bf8b8 100644 --- a/plugins/af_readability/vendor/composer/autoload_real.php +++ b/plugins/af_readability/vendor/composer/autoload_real.php @@ -22,8 +22,6 @@ class ComposerAutoloaderInitb44cc79a0eaef9cd9c2f2ac697cbe9c0 return self::$loader; } - require __DIR__ . '/platform_check.php'; - spl_autoload_register(array('ComposerAutoloaderInitb44cc79a0eaef9cd9c2f2ac697cbe9c0', 'loadClassLoader'), true, true); self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__))); spl_autoload_unregister(array('ComposerAutoloaderInitb44cc79a0eaef9cd9c2f2ac697cbe9c0', 'loadClassLoader')); diff --git a/plugins/af_readability/vendor/composer/autoload_static.php b/plugins/af_readability/vendor/composer/autoload_static.php index 0f4e7a4b9..e269612f2 100644 --- a/plugins/af_readability/vendor/composer/autoload_static.php +++ b/plugins/af_readability/vendor/composer/autoload_static.php @@ -7,18 +7,27 @@ namespace Composer\Autoload; class ComposerStaticInitb44cc79a0eaef9cd9c2f2ac697cbe9c0 { public static $prefixLengthsPsr4 = array ( - 'a' => + 'f' => array ( - 'andreskrey\\Readability\\' => 23, + 'fivefilters\\Readability\\' => 24, ), 'P' => array ( 'Psr\\Log\\' => 8, + 'Psr\\Http\\Message\\' => 17, + ), + 'M' => + array ( + 'Masterminds\\' => 12, + ), + 'L' => + array ( + 'League\\Uri\\' => 11, ), ); public static $prefixDirsPsr4 = array ( - 'andreskrey\\Readability\\' => + 'fivefilters\\Readability\\' => array ( 0 => __DIR__ . '/..' . '/fivefilters/readability.php/src', ), @@ -26,6 +35,19 @@ class ComposerStaticInitb44cc79a0eaef9cd9c2f2ac697cbe9c0 array ( 0 => __DIR__ . '/..' . '/psr/log/Psr/Log', ), + 'Psr\\Http\\Message\\' => + array ( + 0 => __DIR__ . '/..' . '/psr/http-message/src', + ), + 'Masterminds\\' => + array ( + 0 => __DIR__ . '/..' . '/masterminds/html5/src', + ), + 'League\\Uri\\' => + array ( + 0 => __DIR__ . '/..' . '/league/uri-interfaces/src', + 1 => __DIR__ . '/..' . '/league/uri/src', + ), ); public static $classMap = array ( diff --git a/plugins/af_readability/vendor/composer/installed.json b/plugins/af_readability/vendor/composer/installed.json index 916a0b1d9..b4dd443c4 100644 --- a/plugins/af_readability/vendor/composer/installed.json +++ b/plugins/af_readability/vendor/composer/installed.json @@ -2,42 +2,43 @@ "packages": [ { "name": "fivefilters/readability.php", - "version": "v2.1.0", - "version_normalized": "2.1.0.0", + "version": "dev-master", + "version_normalized": "dev-master", "source": { "type": "git", - "url": "https://github.com/fivefilters/readability.php.git", - "reference": "7617a912b6c527909168f5d41d263792f171c42a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/fivefilters/readability.php/zipball/7617a912b6c527909168f5d41d263792f171c42a", - "reference": "7617a912b6c527909168f5d41d263792f171c42a", - "shasum": "" + "url": "https://dev.tt-rss.org/fox/readability-php.git", + "reference": "5ad152c70376002f043bb936d8ae5eed103fb993" }, "require": { "ext-dom": "*", "ext-mbstring": "*", "ext-xml": "*", - "php": ">=7.0.0", + "league/uri": "^6.4", + "masterminds/html5": "^2.0", + "php": ">=7.3.0", "psr/log": "^1.0" }, "require-dev": { - "monolog/monolog": "^1.24", - "phpunit/phpunit": "^6.5" + "monolog/monolog": "^2.3", + "phpunit/phpunit": "^9" }, "suggest": { "monolog/monolog": "Allow logging debug information" }, - "time": "2019-07-22T21:42:25+00:00", + "time": "2022-07-16T13:23:08+00:00", + "default-branch": true, "type": "library", - "installation-source": "dist", + "installation-source": "source", "autoload": { "psr-4": { - "andreskrey\\Readability\\": "src/" + "fivefilters\\Readability\\": "src/" + } + }, + "autoload-dev": { + "psr-4": { + "fivefilters\\Readability\\Test\\": "test" } }, - "notification-url": "https://packagist.org/downloads/", "license": [ "Apache-2.0" ], @@ -45,19 +46,326 @@ { "name": "Andres Rey", "email": "andreskrey@gmail.com", - "role": "Lead Developer" + "role": "Original Developer" + }, + { + "name": "Keyvan Minoukadeh", + "email": "keyvan@fivefilters.org", + "homepage": "https://www.fivefilters.org", + "role": "Developer/Maintainer" } ], "description": "A PHP port of Readability.js", - "homepage": "https://github.com/andreskrey/readability", + "homepage": "https://github.com/fivefilters/readability.php", "keywords": [ "html", "readability" ], + "install-path": "../fivefilters/readability.php" + }, + { + "name": "league/uri", + "version": "6.7.1", + "version_normalized": "6.7.1.0", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/uri.git", + "reference": "2d7c87a0860f3126a39f44a8a9bf2fed402dcfea" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/uri/zipball/2d7c87a0860f3126a39f44a8a9bf2fed402dcfea", + "reference": "2d7c87a0860f3126a39f44a8a9bf2fed402dcfea", + "shasum": "" + }, + "require": { + "ext-json": "*", + "league/uri-interfaces": "^2.3", + "php": "^7.4 || ^8.0", + "psr/http-message": "^1.0" + }, + "conflict": { + "league/uri-schemes": "^1.0" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^v3.3.2", + "nyholm/psr7": "^1.5", + "php-http/psr7-integration-tests": "^1.1", + "phpstan/phpstan": "^1.2.0", + "phpstan/phpstan-deprecation-rules": "^1.0", + "phpstan/phpstan-phpunit": "^1.0.0", + "phpstan/phpstan-strict-rules": "^1.1.0", + "phpunit/phpunit": "^9.5.10", + "psr/http-factory": "^1.0" + }, + "suggest": { + "ext-fileinfo": "Needed to create Data URI from a filepath", + "ext-intl": "Needed to improve host validation", + "league/uri-components": "Needed to easily manipulate URI objects", + "psr/http-factory": "Needed to use the URI factory" + }, + "time": "2022-06-29T09:48:18+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "6.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "League\\Uri\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ignace Nyamagana Butera", + "email": "nyamsprod@gmail.com", + "homepage": "https://nyamsprod.com" + } + ], + "description": "URI manipulation library", + "homepage": "https://uri.thephpleague.com", + "keywords": [ + "data-uri", + "file-uri", + "ftp", + "hostname", + "http", + "https", + "middleware", + "parse_str", + "parse_url", + "psr-7", + "query-string", + "querystring", + "rfc3986", + "rfc3987", + "rfc6570", + "uri", + "uri-template", + "url", + "ws" + ], "support": { - "source": "https://github.com/fivefilters/readability.php/tree/v2.1.0" + "docs": "https://uri.thephpleague.com", + "forum": "https://thephpleague.slack.com", + "issues": "https://github.com/thephpleague/uri/issues", + "source": "https://github.com/thephpleague/uri/tree/6.7.1" }, - "install-path": "../fivefilters/readability.php" + "funding": [ + { + "url": "https://github.com/sponsors/nyamsprod", + "type": "github" + } + ], + "install-path": "../league/uri" + }, + { + "name": "league/uri-interfaces", + "version": "2.3.0", + "version_normalized": "2.3.0.0", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/uri-interfaces.git", + "reference": "00e7e2943f76d8cb50c7dfdc2f6dee356e15e383" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/uri-interfaces/zipball/00e7e2943f76d8cb50c7dfdc2f6dee356e15e383", + "reference": "00e7e2943f76d8cb50c7dfdc2f6dee356e15e383", + "shasum": "" + }, + "require": { + "ext-json": "*", + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^2.19", + "phpstan/phpstan": "^0.12.90", + "phpstan/phpstan-phpunit": "^0.12.19", + "phpstan/phpstan-strict-rules": "^0.12.9", + "phpunit/phpunit": "^8.5.15 || ^9.5" + }, + "suggest": { + "ext-intl": "to use the IDNA feature", + "symfony/intl": "to use the IDNA feature via Symfony Polyfill" + }, + "time": "2021-06-28T04:27:21+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "League\\Uri\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ignace Nyamagana Butera", + "email": "nyamsprod@gmail.com", + "homepage": "https://nyamsprod.com" + } + ], + "description": "Common interface for URI representation", + "homepage": "http://github.com/thephpleague/uri-interfaces", + "keywords": [ + "rfc3986", + "rfc3987", + "uri", + "url" + ], + "support": { + "issues": "https://github.com/thephpleague/uri-interfaces/issues", + "source": "https://github.com/thephpleague/uri-interfaces/tree/2.3.0" + }, + "funding": [ + { + "url": "https://github.com/sponsors/nyamsprod", + "type": "github" + } + ], + "install-path": "../league/uri-interfaces" + }, + { + "name": "masterminds/html5", + "version": "2.7.5", + "version_normalized": "2.7.5.0", + "source": { + "type": "git", + "url": "https://github.com/Masterminds/html5-php.git", + "reference": "f640ac1bdddff06ea333a920c95bbad8872429ab" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Masterminds/html5-php/zipball/f640ac1bdddff06ea333a920c95bbad8872429ab", + "reference": "f640ac1bdddff06ea333a920c95bbad8872429ab", + "shasum": "" + }, + "require": { + "ext-ctype": "*", + "ext-dom": "*", + "ext-libxml": "*", + "php": ">=5.3.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7.21 || ^6 || ^7" + }, + "time": "2021-07-01T14:25:37+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.7-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Masterminds\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Matt Butcher", + "email": "technosophos@gmail.com" + }, + { + "name": "Matt Farina", + "email": "matt@mattfarina.com" + }, + { + "name": "Asmir Mustafic", + "email": "goetas@gmail.com" + } + ], + "description": "An HTML5 parser and serializer.", + "homepage": "http://masterminds.github.io/html5-php", + "keywords": [ + "HTML5", + "dom", + "html", + "parser", + "querypath", + "serializer", + "xml" + ], + "support": { + "issues": "https://github.com/Masterminds/html5-php/issues", + "source": "https://github.com/Masterminds/html5-php/tree/2.7.5" + }, + "install-path": "../masterminds/html5" + }, + { + "name": "psr/http-message", + "version": "1.0.1", + "version_normalized": "1.0.1.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-message.git", + "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363", + "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "time": "2016-08-06T14:39:51+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP messages", + "homepage": "https://github.com/php-fig/http-message", + "keywords": [ + "http", + "http-message", + "psr", + "psr-7", + "request", + "response" + ], + "support": { + "source": "https://github.com/php-fig/http-message/tree/master" + }, + "install-path": "../psr/http-message" }, { "name": "psr/log", diff --git a/plugins/af_readability/vendor/composer/installed.php b/plugins/af_readability/vendor/composer/installed.php index 64d46147e..9254e7280 100644 --- a/plugins/af_readability/vendor/composer/installed.php +++ b/plugins/af_readability/vendor/composer/installed.php @@ -1,42 +1,79 @@ - - array ( - 'pretty_version' => 'dev-master', - 'version' => 'dev-master', - 'aliases' => - array ( + array( + 'pretty_version' => 'dev-master', + 'version' => 'dev-master', + 'type' => 'library', + 'install_path' => __DIR__ . '/../../', + 'aliases' => array(), + 'reference' => 'fdd1c43612011060b4b876db438eb7ec62dd077d', + 'name' => '__root__', + 'dev' => true, ), - 'reference' => 'a73e3bec45c5523910c711cf882976b71781ac9e', - 'name' => '__root__', - ), - 'versions' => - array ( - '__root__' => - array ( - 'pretty_version' => 'dev-master', - 'version' => 'dev-master', - 'aliases' => - array ( - ), - 'reference' => 'a73e3bec45c5523910c711cf882976b71781ac9e', + 'versions' => array( + '__root__' => array( + 'pretty_version' => 'dev-master', + 'version' => 'dev-master', + 'type' => 'library', + 'install_path' => __DIR__ . '/../../', + 'aliases' => array(), + 'reference' => 'fdd1c43612011060b4b876db438eb7ec62dd077d', + 'dev_requirement' => false, + ), + 'fivefilters/readability.php' => array( + 'pretty_version' => 'dev-master', + 'version' => 'dev-master', + 'type' => 'library', + 'install_path' => __DIR__ . '/../fivefilters/readability.php', + 'aliases' => array( + 0 => '9999999-dev', + ), + 'reference' => '5ad152c70376002f043bb936d8ae5eed103fb993', + 'dev_requirement' => false, + ), + 'league/uri' => array( + 'pretty_version' => '6.7.1', + 'version' => '6.7.1.0', + 'type' => 'library', + 'install_path' => __DIR__ . '/../league/uri', + 'aliases' => array(), + 'reference' => '2d7c87a0860f3126a39f44a8a9bf2fed402dcfea', + 'dev_requirement' => false, + ), + 'league/uri-interfaces' => array( + 'pretty_version' => '2.3.0', + 'version' => '2.3.0.0', + 'type' => 'library', + 'install_path' => __DIR__ . '/../league/uri-interfaces', + 'aliases' => array(), + 'reference' => '00e7e2943f76d8cb50c7dfdc2f6dee356e15e383', + 'dev_requirement' => false, + ), + 'masterminds/html5' => array( + 'pretty_version' => '2.7.5', + 'version' => '2.7.5.0', + 'type' => 'library', + 'install_path' => __DIR__ . '/../masterminds/html5', + 'aliases' => array(), + 'reference' => 'f640ac1bdddff06ea333a920c95bbad8872429ab', + 'dev_requirement' => false, + ), + 'psr/http-message' => array( + 'pretty_version' => '1.0.1', + 'version' => '1.0.1.0', + 'type' => 'library', + 'install_path' => __DIR__ . '/../psr/http-message', + 'aliases' => array(), + 'reference' => 'f6561bf28d520154e4b0ec72be95418abe6d9363', + 'dev_requirement' => false, + ), + 'psr/log' => array( + 'pretty_version' => '1.1.4', + 'version' => '1.1.4.0', + 'type' => 'library', + 'install_path' => __DIR__ . '/../psr/log', + 'aliases' => array(), + 'reference' => 'd49695b909c3b7628b6289db5479a1c204601f11', + 'dev_requirement' => false, + ), ), - 'fivefilters/readability.php' => - array ( - 'pretty_version' => 'v2.1.0', - 'version' => '2.1.0.0', - 'aliases' => - array ( - ), - 'reference' => '7617a912b6c527909168f5d41d263792f171c42a', - ), - 'psr/log' => - array ( - 'pretty_version' => '1.1.4', - 'version' => '1.1.4.0', - 'aliases' => - array ( - ), - 'reference' => 'd49695b909c3b7628b6289db5479a1c204601f11', - ), - ), ); diff --git a/plugins/af_readability/vendor/composer/platform_check.php b/plugins/af_readability/vendor/composer/platform_check.php deleted file mode 100644 index f79e574be..000000000 --- a/plugins/af_readability/vendor/composer/platform_check.php +++ /dev/null @@ -1,26 +0,0 @@ -= 70000)) { - $issues[] = 'Your Composer dependencies require a PHP version ">= 7.0.0". You are running ' . PHP_VERSION . '.'; -} - -if ($issues) { - if (!headers_sent()) { - header('HTTP/1.1 500 Internal Server Error'); - } - if (!ini_get('display_errors')) { - if (PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') { - fwrite(STDERR, 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . implode(PHP_EOL, $issues) . PHP_EOL.PHP_EOL); - } elseif (!headers_sent()) { - echo 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . str_replace('You are running '.PHP_VERSION.'.', '', implode(PHP_EOL, $issues)) . PHP_EOL.PHP_EOL; - } - } - trigger_error( - 'Composer detected issues in your platform: ' . implode(' ', $issues), - E_USER_ERROR - ); -} diff --git a/plugins/af_readability/vendor/fivefilters/readability.php/.coveralls.yml b/plugins/af_readability/vendor/fivefilters/readability.php/.coveralls.yml deleted file mode 100644 index 18e6b2054..000000000 --- a/plugins/af_readability/vendor/fivefilters/readability.php/.coveralls.yml +++ /dev/null @@ -1,3 +0,0 @@ -coverage_clover: test/clover.xml -json_path: test/coveralls-upload.json -service_name: travis-ci \ No newline at end of file diff --git a/plugins/af_readability/vendor/fivefilters/readability.php/.gitattributes b/plugins/af_readability/vendor/fivefilters/readability.php/.gitattributes index ea4dd8899..c08d816c2 100644 --- a/plugins/af_readability/vendor/fivefilters/readability.php/.gitattributes +++ b/plugins/af_readability/vendor/fivefilters/readability.php/.gitattributes @@ -1 +1,2 @@ -test/* linguist-language=PHP \ No newline at end of file +test/* linguist-language=PHP +* text=auto eol=lf \ No newline at end of file diff --git a/plugins/af_readability/vendor/fivefilters/readability.php/.gitignore b/plugins/af_readability/vendor/fivefilters/readability.php/.gitignore index 5608600f8..52b9f385e 100644 --- a/plugins/af_readability/vendor/fivefilters/readability.php/.gitignore +++ b/plugins/af_readability/vendor/fivefilters/readability.php/.gitignore @@ -1,4 +1,5 @@ .idea/ vendor composer.lock -/test.* \ No newline at end of file +/test.* +/test/changed/ \ No newline at end of file diff --git a/plugins/af_readability/vendor/fivefilters/readability.php/.styleci.yml b/plugins/af_readability/vendor/fivefilters/readability.php/.styleci.yml deleted file mode 100644 index f5ddf3ed9..000000000 --- a/plugins/af_readability/vendor/fivefilters/readability.php/.styleci.yml +++ /dev/null @@ -1,13 +0,0 @@ -preset: recommended - -enabled: - - concat_with_spaces - - unalign_double_arrow - -disabled: - - concat_without_spaces - - align_double_arrow - - simplified_null_return - - cast_spaces - - trailing_comma_in_multiline_array - - phpdoc_align \ No newline at end of file diff --git a/plugins/af_readability/vendor/fivefilters/readability.php/.travis.yml b/plugins/af_readability/vendor/fivefilters/readability.php/.travis.yml deleted file mode 100644 index 5c3bdd198..000000000 --- a/plugins/af_readability/vendor/fivefilters/readability.php/.travis.yml +++ /dev/null @@ -1,48 +0,0 @@ -language: bash -services: docker - -env: - matrix: - - PHP_VERSION=7.3 LIBXML_VERSION=2.9.9 - - PHP_VERSION=7.3 LIBXML_VERSION=2.9.8 - - PHP_VERSION=7.3 LIBXML_VERSION=2.9.7 - - PHP_VERSION=7.3 LIBXML_VERSION=2.9.6 - - PHP_VERSION=7.3 LIBXML_VERSION=2.9.5 - - PHP_VERSION=7.3 LIBXML_VERSION=2.9.4 - - PHP_VERSION=7.2 LIBXML_VERSION=2.9.9 - - PHP_VERSION=7.2 LIBXML_VERSION=2.9.8 - - PHP_VERSION=7.2 LIBXML_VERSION=2.9.7 - - PHP_VERSION=7.2 LIBXML_VERSION=2.9.6 - - PHP_VERSION=7.2 LIBXML_VERSION=2.9.5 - - PHP_VERSION=7.2 LIBXML_VERSION=2.9.4 - - PHP_VERSION=7.1 LIBXML_VERSION=2.9.9 - - PHP_VERSION=7.1 LIBXML_VERSION=2.9.8 - - PHP_VERSION=7.1 LIBXML_VERSION=2.9.7 - - PHP_VERSION=7.1 LIBXML_VERSION=2.9.6 - - PHP_VERSION=7.1 LIBXML_VERSION=2.9.5 - - PHP_VERSION=7.1 LIBXML_VERSION=2.9.4 - - PHP_VERSION=7.0 LIBXML_VERSION=2.9.9 - - PHP_VERSION=7.0 LIBXML_VERSION=2.9.8 - - PHP_VERSION=7.0 LIBXML_VERSION=2.9.7 - - PHP_VERSION=7.0 LIBXML_VERSION=2.9.6 - - PHP_VERSION=7.0 LIBXML_VERSION=2.9.5 - - PHP_VERSION=7.0 LIBXML_VERSION=2.9.4 - -matrix: - allow_failures: - - env: LIBXML_VERSION=2.9.9 - - env: LIBXML_VERSION=2.9.8 - - env: LIBXML_VERSION=2.9.7 - - env: LIBXML_VERSION=2.9.6 - - env: LIBXML_VERSION=2.9.5 - -install: - - docker run --rm --volume $PWD:/app --workdir="/app" composer install - -script: - - docker build --build-arg PHP_VERSION=${PHP_VERSION} --build-arg LIBXML_VERSION=${LIBXML_VERSION} -t travis-build - < ./docker/php/Dockerfile - - docker run --volume $PWD:/app --workdir="/app" travis-build php ./vendor/bin/phpunit --coverage-clover /app/test/clover.xml - -after_script: - - docker run --volume $PWD:/app --workdir="/app" composer require php-coveralls/php-coveralls:^2.0 - - docker run --volume $PWD:/app --workdir="/app" --env TRAVIS=${TRAVIS} --env TRAVIS_JOB_ID=${TRAVIS_JOB_ID} travis-build php ./vendor/php-coveralls/php-coveralls/bin/php-coveralls -v diff --git a/plugins/af_readability/vendor/fivefilters/readability.php/AUTHORS.md b/plugins/af_readability/vendor/fivefilters/readability.php/AUTHORS.md index cc420e3a8..fabdb5a52 100644 --- a/plugins/af_readability/vendor/fivefilters/readability.php/AUTHORS.md +++ b/plugins/af_readability/vendor/fivefilters/readability.php/AUTHORS.md @@ -11,3 +11,4 @@ The AUTHORS/Contributors are (and/or have been): * Sergiy Lavryk * Pedro Amorim * Malu Decks +* Keyvan Minoukadeh diff --git a/plugins/af_readability/vendor/fivefilters/readability.php/CONTRIBUTING.md b/plugins/af_readability/vendor/fivefilters/readability.php/CONTRIBUTING.md index 345f71565..208083215 100644 --- a/plugins/af_readability/vendor/fivefilters/readability.php/CONTRIBUTING.md +++ b/plugins/af_readability/vendor/fivefilters/readability.php/CONTRIBUTING.md @@ -2,8 +2,9 @@ Contributions are **welcome** and will be fully **credited**. -We accept contributions via Pull Requests on [Github](https://github.com/andreskrey/readability.php/). +When it comes to the core article-extraction functionality, please contribute to [Mozilla's Readability](https://github.com/mozilla/readability/) repository, as we're trying to mirror that here. +For anything else, we accept contributions via Pull Requests on [Github](https://github.com/fivefilters/readability.php/). ## Pull Requests diff --git a/plugins/af_readability/vendor/fivefilters/readability.php/Makefile b/plugins/af_readability/vendor/fivefilters/readability.php/Makefile index b3bf15040..c5123f171 100644 --- a/plugins/af_readability/vendor/fivefilters/readability.php/Makefile +++ b/plugins/af_readability/vendor/fivefilters/readability.php/Makefile @@ -1,28 +1,25 @@ .PHONY: test-all -test-all: start test-7.3 test-7.2 test-7.1 test-7.0 stop +test-all: start test-7.3 test-7.4 test-8 stop test-7.3: - docker-compose exec php-7.3-libxml-2.9.9 php /app/vendor/phpunit/phpunit/phpunit --configuration /app/phpunit.xml + docker-compose exec php-7.3-libxml-2.9.10 php /app/vendor/phpunit/phpunit/phpunit --configuration /app/phpunit.xml -test-7.2: - docker-compose exec php-7.2-libxml-2.9.9 php /app/vendor/phpunit/phpunit/phpunit --configuration /app/phpunit.xml +test-7.4: + docker-compose exec php-7.4-libxml-2.9.10 php /app/vendor/phpunit/phpunit/phpunit --configuration /app/phpunit.xml -test-7.1: - docker-compose exec php-7.1-libxml-2.9.9 php /app/vendor/phpunit/phpunit/phpunit --configuration /app/phpunit.xml - -test-7.0: - docker-compose exec php-7.0-libxml-2.9.9 php /app/vendor/phpunit/phpunit/phpunit --configuration /app/phpunit.xml +test-8: + docker-compose exec php-8-libxml-2.9.10 php /app/vendor/phpunit/phpunit/phpunit --configuration /app/phpunit.xml start: - docker-compose up -d php-7.3-libxml-2.9.9 php-7.2-libxml-2.9.9 php-7.1-libxml-2.9.9 php-7.0-libxml-2.9.9 + docker-compose up -d php-7.3-libxml-2.9.10 php-7.4-libxml-2.9.10 php-8-libxml-2.9.10 stop: docker-compose stop test-all-versions: - for php_version in 7.0 7.1 7.2 7.3; do \ - for libxml_version in 2.9.4 2.9.5 2.9.6 2.9.7 2.9.8 2.9.9; do \ + for php_version in 7.3 7.4 8; do \ + for libxml_version in 2.9.4 2.9.5 2.9.10 2.9.12; do \ docker-compose up -d php-$$php_version-libxml-$$libxml_version; \ docker-compose exec php-$$php_version-libxml-$$libxml_version php /app/vendor/phpunit/phpunit/phpunit --configuration /app/phpunit.xml; \ done \ diff --git a/plugins/af_readability/vendor/fivefilters/readability.php/README.md b/plugins/af_readability/vendor/fivefilters/readability.php/README.md index b6b1e2922..c910714a3 100644 --- a/plugins/af_readability/vendor/fivefilters/readability.php/README.md +++ b/plugins/af_readability/vendor/fivefilters/readability.php/README.md @@ -1,32 +1,51 @@ # Readability.php -[![Latest Stable Version](https://poser.pugx.org/andreskrey/readability.php/v/stable)](https://packagist.org/packages/andreskrey/readability.php) [![Build Status](https://travis-ci.org/andreskrey/readability.php.svg?branch=master)](https://travis-ci.org/andreskrey/readability.php) [![Coverage Status](https://coveralls.io/repos/github/andreskrey/readability.php/badge.svg?branch=master)](https://coveralls.io/github/andreskrey/readability.php/?branch=master) [![StyleCI](https://styleci.io/repos/71042668/shield?branch=master)](https://styleci.io/repos/71042668) [![Total Downloads](https://poser.pugx.org/andreskrey/readability.php/downloads)](https://packagist.org/packages/andreskrey/readability.php) [![Monthly Downloads](https://poser.pugx.org/andreskrey/readability.php/d/monthly)](https://packagist.org/packages/andreskrey/readability.php) + +## News (August 2021) + +Andres Rey, the [original developer](https://github.com/andreskrey/readability.php) of Readability.php has kindly let us take over maintenance and development of the project. + +Please bear with us while we catch up with [Readability.js](https://github.com/mozilla/readability) changes. There'll be a new release (3.0.0) when we're ready. + +For the changes we've made so far in this repository, please see our [blog post](https://www.fivefilters.org/2021/readability/). + +## About + +[![Latest Stable Version](https://poser.pugx.org/fivefilters/readability.php/v/stable)](https://packagist.org/packages/fivefilters/readability.php) [![Tests](https://github.com/fivefilters/readability.php/actions/workflows/main.yml/badge.svg?branch=master)](https://github.com/fivefilters/readability.php/actions/workflows/main.yml) PHP port of *Mozilla's* **[Readability.js](https://github.com/mozilla/readability)**. Parses html text (usually news and other articles) and returns **title**, **author**, **main image** and **text content** without nav bars, ads, footers, or anything that isn't the main body of the text. Analyzes each node, gives them a score, and determines what's relevant and what can be discarded. -![Screenshot](https://raw.githubusercontent.com/andreskrey/readability.php/assets/screenshot.png) +![Screenshot](https://raw.githubusercontent.com/fivefilters/readability.php/assets/screenshot.png) The project aim is to be a 1 to 1 port of Mozilla's version and to follow closely all changes introduced there, but there are some major differences on the structure. Most of the code is a 1:1 copy –even the comments were imported– but some functions and structures were adapted to suit better the PHP language. -**Lead Developer**: Andres Rey +**Original Developer**: Andres Rey + +**Developer/Maintainer**: FiveFilters.org + +## Code porting + +Master branch - Up to date on 26 August 2021, with the exception of a [piece of code](https://github.com/fivefilters/readability.php/commit/1c662465bded2ab3acf3b975a1315c8c45f0bf73#diff-b9b31807b1a39caec18ddc293e9c52931ba8b55191c61e6b77a623d699a599ffR1899) which doesn't produce the same results in PHP for us compard to the JS version. Perhaps there's an error, or some difference in the underlying code that affects this. If you know what's wrong, please feel free to drop us a note or submit a pull request. :) + +Version 2.1.0 - Up to date with Readability.js up to [19 Nov 2018](https://github.com/mozilla/readability/commit/876c81f710711ba2afb36dd83889d4c5b4fc2743). ## Requirements -PHP 7.0+, ext-dom, ext-xml, and ext-mbstring. To install all this dependencies (in the rare case your system does not have them already), you could try something like this in *nix like environments: +PHP 7.3+, ext-dom, ext-xml, and ext-mbstring. To install these dependencies (in the rare case your system does not have them already), you could try something like this in *nix like environments: -`$ sudo apt-get install php7.1-xml php7.1-mbstring` +`$ sudo apt-get install php7.4-xml php7.4-mbstring` ## How to use it First you have to require the library using composer: -`composer require andreskrey/readability.php` +`composer require fivefilters/readability.php` Then, create a Readability class and pass a Configuration class, feed the `parse()` function with your HTML and echo the variable: ```php -use andreskrey\Readability\Readability; -use andreskrey\Readability\Configuration; -use andreskrey\Readability\ParseException; +use fivefilters\Readability\Readability; +use fivefilters\Readability\Configuration; +use fivefilters\Readability\ParseException; $readability = new Readability(new Configuration()); @@ -86,7 +105,7 @@ $configuration = new Configuration([ Then you pass this Configuration object to Readability. The following options are available. Remember to prepend `set` when calling them using native setters. - **MaxTopCandidates**: default value `5`, max amount of top level candidates. -- **WordThreshold**: default value `500`, minimum amount of characters to consider that the article was parsed successful. +- **CharThreshold**: default value `500`, minimum amount of characters to consider that the article was parsed successful. - **ArticleByLine**: default value `false`, search for the article byline and remove it from the text. It will be moved to the article metadata. - **StripUnlikelyCandidates**: default value `true`, remove nodes that are unlikely to have relevant information. Useful for debugging or parsing complex or non-standard articles. - **CleanConditionally**: default value `true`, remove certain nodes after parsing to return a cleaner result. @@ -95,13 +114,15 @@ Then you pass this Configuration object to Readability. The following options ar - **SubstituteEntities**: default value `false`, disables the `substituteEntities` flag of libxml. Will avoid substituting HTML entities. Like `á` to á. - **NormalizeEntities**: default value `false`, converts UTF-8 characters to its HTML Entity equivalent. Useful to parse HTML with mixed encoding. - **OriginalURL**: default value `http://fakehost`, original URL from the article used to fix relative URLs. -- **SummonCthulhu**: default value `false`, remove all ` + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - Just-released Minecraft exploit makes it easy to crash game servers | Ars Technica - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - -
-
- -

ArsTechnica

- - -
-
- -

- Risk Assessment - / - Security & Hacktivism -

- -
-
-

Just-released Minecraft exploit makes it easy to crash game servers

-

Two-year-old bug exposes thousands of servers to crippling attack.

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

A flaw in the wildly popular online game Minecraft makes it easy for just about anyone to crash the server hosting the game, according to a computer programmer who has released proof-of-concept code that exploits the vulnerability.

-

"I thought a lot before writing this post," Pakistan-based developer Ammar Askar wrote in a blog post published Thursday, 21 months, he said, after privately reporting the bug to Minecraft developer Mojang. "On the one hand I don't want to expose thousands of servers to a major vulnerability, yet on the other hand Mojang has failed to act on it."

-

The bug resides in the networking internals of the Minecraft protocol. It allows the contents of inventory slots to be exchanged, so that, among other things, items in players' hotbars are displayed automatically after logging in. Minecraft items can also store arbitrary metadata in a file format known as Named Binary Tag (NBT), which allows complex data structures to be kept in hierarchical nests. Askar has released proof-of-concept attack code he said exploits the vulnerability to crash any server hosting the game. Here's how it works.

-
-

The vulnerability stems from the fact that the client is allowed to send the server information about certain slots. This, coupled with the NBT format’s nesting allows us to craft a packet that is incredibly complex for the server to deserialize but trivial for us to generate.

-

In my case, I chose to create lists within lists, down to five levels. This is a json representation of what it looks like.

-
rekt: {
+                
+ +
+ +
+
+
+
+

+ Biz & IT — +

+

+ Just-released Minecraft exploit makes it easy to crash game servers +

+

+ Two-year-old bug exposes thousands of servers to crippling attack. +

+ +
+
+
+
+ Just-released Minecraft exploit makes it easy to crash game servers +
+
+ Kevin +
+
+
+ +

+ A flaw in the wildly popular online game Minecraft makes it easy for just about anyone to crash the server hosting the game, according to a computer programmer who has released proof-of-concept code that exploits the vulnerability. +

+

+ "I thought a lot before writing this post," Pakistan-based developer Ammar Askar wrote in a blog post published Thursday, 21 months, he said, after privately reporting the bug to Minecraft developer Mojang. "On the one hand I don't want to expose thousands of servers to a major vulnerability, yet on the other hand Mojang has failed to act on it." +

+

+ The bug resides in the networking internals of the Minecraft protocol. It allows the contents of inventory slots to be exchanged, so that, among other things, items in players' hotbars are displayed automatically after logging in. Minecraft items can also store arbitrary metadata in a file format known as Named Binary Tag (NBT), which allows complex data structures to be kept in hierarchical nests. Askar has released proof-of-concept attack code he said exploits the vulnerability to crash any server hosting the game. Here's how it works. +

+
+

+ The vulnerability stems from the fact that the client is allowed to send the server information about certain slots. This, coupled with the NBT format’s nesting allows us to craft a packet that is incredibly complex for the server to deserialize but trivial for us to generate. +

+

+ In my case, I chose to create lists within lists, down to five levels. This is a json representation of what it looks like. +

+
+
rekt: {
     list: [
         list: [
             list: [
@@ -311,455 +392,243 @@
         ...
     ]
     ...
-}
-

The root of the object, rekt, contains 300 lists. Each list has a list with 10 sublists, and each of those sublists has 10 of their own, up until 5 levels of recursion. That’s a total of 10^5 * 300 = 30,000,000 lists.

-

And this isn’t even the theoretical maximum for this attack. Just the nbt data for this payload is 26.6 megabytes. But luckily Minecraft implements a way to compress large packets, lucky us! zlib shrinks down our evil data to a mere 39 kilobytes.

-

Note: in previous versions of Minecraft, there was no protocol wide compression for big packets. Previously, NBT was sent compressed with gzip and prefixed with a signed short of its length, which reduced our maximum payload size to 2^15 - 1. Now that the length is a varint capable of storing integers up to 2^28, our potential for attack has increased significantly.

-

When the server will decompress our data, it’ll have 27 megs in a buffer somewhere in memory, but that isn’t the bit that’ll kill it. When it attempts to parse it into NBT, it’ll create java representations of the objects meaning suddenly, the sever is having to create several million java objects including ArrayLists. This runs the server out of memory and causes tremendous CPU load.

-

This vulnerability exists on almost all previous and current Minecraft versions as of 1.8.3, the packets used as attack vectors are the 0x08: Block Placement Packet and 0x10: Creative Inventory Action.

-

The fix for this vulnerability isn’t exactly that hard, the client should never really send a data structure as complex as NBT of arbitrary size and if it must, some form of recursion and size limits should be implemented.

-

These were the fixes that I recommended to Mojang 2 years ago.

-
-

Ars is asking Mojang for comment and will update this post if company officials respond.

+}
+
+

+ The root of the object, rekt, contains 300 lists. Each list has a list with 10 sublists, and each of those sublists has 10 of their own, up until 5 levels of recursion. That’s a total of 10^5 * 300 = 30,000,000 lists. +

+

+ And this isn’t even the theoretical maximum for this attack. Just the nbt data for this payload is 26.6 megabytes. But luckily Minecraft implements a way to compress large packets, lucky us! zlib shrinks down our evil data to a mere 39 kilobytes. +

+

+ Note: in previous versions of Minecraft, there was no protocol wide compression for big packets. Previously, NBT was sent compressed with gzip and prefixed with a signed short of its length, which reduced our maximum payload size to 2^15 - 1. Now that the length is a varint capable of storing integers up to 2^28, our potential for attack has increased significantly. +

+

+ When the server will decompress our data, it’ll have 27 megs in a buffer somewhere in memory, but that isn’t the bit that’ll kill it. When it attempts to parse it into NBT, it’ll create java representations of the objects meaning suddenly, the sever is having to create several million java objects including ArrayLists. This runs the server out of memory and causes tremendous CPU load. +

+

+ This vulnerability exists on almost all previous and current Minecraft versions as of 1.8.3, the packets used as attack vectors are the 0x08: Block Placement Packet and 0x10: Creative Inventory Action. +

+

+ The fix for this vulnerability isn’t exactly that hard, the client should never really send a data structure as complex as NBT of arbitrary size and if it must, some form of recursion and size limits should be implemented. +

+

+ These were the fixes that I recommended to Mojang 2 years ago. +

+
+

+ Ars is asking Mojang for comment and will update this post if company officials respond. +

+
+
+
+
+
+
+ + +
+
-
-

Expand full story

+
+
+ + +
+
- -
-
- - -
-
-

You must to comment.

+
+ +
+
+ +
+
+

+ You must to comment. +

+
+
+
+
+ +
+
+
+
+
+

+ Channel Ars Technica +

+
+
+
+ -
-
+ +
+ + +
+ +
+
+ +
- - -
-
-
    -
  • Share
  • -
  • -
    -
  • -
  • -
  • -
-
-
-
-
-
-
- Go to the profile of John C. Welch -
-
-
Never miss a story from John C. Welch, when you sign up for Medium. Learn more
-
Never miss a story from John C. Welch
-
-
-
-
-
- - - -
- - - - - - -===========^CCrash Annotation GraphicsCriticalError: |[C0][GFX1-]: Receive IPC close with reason=AbnormalShutdown (t=7.53758) [GFX1-]: Receive IPC close with reason=AbnormalShutdown localhost:mozilla-central itoyxd$ localhost:mozilla-central itoyxd$ localhost:mozilla-central itoyxd$ ./mach run 0:00.20 /Users/itoyxd/evan/dev/mozilla/mozilla-central/obj-firefox/dist/Nightly.app/Contents/MacOS/firefox -no-remote -foreground -profile /Users/itoyxd/evan/dev/mozilla/mozilla-central/obj-firefox/tmp/scratch_user 2017-02-17 16:57:43.743 plugin-container[11969:394160] *** CFMessagePort: bootstrap_register(): failed 1100 (0x44c) 'Permission denied', port = 0x943f, name = 'com.apple.tsm.portname' See /usr/include/servers/bootstrap_defs.h for the error codes. 2017-02-17 16:57:43.743 plugin-container[11969:394160] *** CFMessagePort: bootstrap_register(): failed 1100 (0x44c) 'Permission denied', port = 0x4907, name = 'com.apple.CFPasteboardClient' See /usr/include/servers/bootstrap_defs.h for the error codes. 2017-02-17 16:57:43.743 plugin-container[11969:394160] void __CFPasteboardSetup() : Failed to allocate communication port for com.apple.CFPasteboardClient; this is likely due to sandbox restrictions 2017-02-17 16:57:50.234 plugin-container[11972:394329] *** CFMessagePort: bootstrap_register(): failed 1100 (0x44c) 'Permission denied', port = 0x953f, name = 'com.apple.tsm.portname' See /usr/include/servers/bootstrap_defs.h for the error codes. 2017-02-17 16:57:50.235 plugin-container[11972:394329] *** CFMessagePort: bootstrap_register(): failed 1100 (0x44c) 'Permission denied', port = 0x4b0b, name = 'com.apple.CFPasteboardClient' See /usr/include/servers/bootstrap_defs.h for the error codes. 2017-02-17 16:57:50.235 plugin-container[11972:394329] void __CFPasteboardSetup() : Failed to allocate communication port for com.apple.CFPasteboardClient; this is likely due to sandbox restrictions =========== - - - - - - - Samantha and The Great Big Lie – Medium - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
-
-
-
-
-
-
-
-
- -
- +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-

Samantha and The Great Big Lie

-

How to get shanked doing what people say they want

-
don’t preach to me
Mr. integrity
-

(EDIT: removed the link to Samantha’s post, because the arments and the grubers and the rest of The Deck Clique got what they wanted: a non-proper person driven off the internet lightly capped with a dusting of transphobia along the way, all totally okay because the ends justify the means, and it’s okay when “good” people do it.)

-

First, I need to say something about this article: the reason I’m writing it infuriates me. Worse than installing CS 3 or Acrobat 7 ever did, and the former inspired comparisons to fecophile porn. I’m actually too mad to cuss. Well, not completely, but in this case, I don’t think the people I’m mad at are worth the creativity I try to put into profanity. This is about a brownfield of hypocrisy and viciously deliberate mischaracterization that “shame” cannot even come close to the shame those behind it should feel.

-

Now, read this post by Samantha Bielefeld: The Elephant in the Room. First, it is a well-written critical piece that raises a few points in a calm, rational, nonconfrontational fashion, exactly the kind of things the pushers of The Great Big Lie say we need more of, as opposed to the screaming that is the norm in such cases.

-

…sorry, I should explain “The Great Big Lie”. There are several, but in this case, our specific instance of “The Great Big Lie” is about criticism. Over and over, you hear from the very people I am not going to be nice to in this that we need “better” criticsm. Instead of rage and anger, volume and vitriol, we need in-depth rational criticism, that isn’t personal or ad hominem. That it should focus on points, not people.

-

That, readers, is “The Big Lie”. It is a lie so big that if one ponders the reality of it, as I am going to, one wonders why anyone would believe it. It is a lie and it is one we should stop telling.

-
-
-
-
-
-
-
-
-
-

Samantha’s points (I assume you read it, for you are smart people who know the importance of such things) are fairly clear:

-
    -
  1. With the release of Overcast 2.0, a product Samantha actually likes, Marco Arment moved to a patronage model that will probably be successful for him.
  2. -
  3. Arment’s insistence that “anyone can do this” while technically true, (anyone can in fact, implement this pricing model), also implies that “anyone” can have the kind of success that a developer with Marco’s history, financial status, and deep ties to the Apple News Web is expected to have. This is silly.
  4. -
  5. Marco Arment occupies a fairly unique position in the Apple universe, (gained by hard work and no small talent), and because of that, benefits from a set of privileges that a new developer or even one that has been around for a long time, but isn’t, well, Marco, not only don’t have, but have little chance of attaining anytime soon.
  6. -
  7. Marco has earned his success and is entitled to the benefits and privileges it brings, but he seems rather blind to all of that, and seems to still imagine himself as “two guys in a garage”. This is just not correct.
  8. -
  9. In addition, the benefits and privileges of the above ensure that by releasing Overcast 2 as a free app, with patronage pricing, he has, if not gutted, severely hurt the ability of folks actually selling their apps for an up-front price of not free to continue doing so. This has the effect of accelerating the “race to the bottom” in the podcast listening app segment, which hurts devs who cannot afford to work on a “I don’t really need this money, so whatever you feel like sending is okay” model.
  10. -
-

None of this is incorrect. None of this is an ad hominem attack in any way. It is just pointing out that a developer of Arment’s stature and status lives in a very different world than someone in East Frog Balls, Arkansas trying to make a living off of App sales. Our dev in EFB doesn’t have the main sites on the Apple web falling all over themselves to review their app the way that Arment does. They’re not friends with the people being The Loop, Daring Fireball, SixColors, iMore, The Mac Observer, etc., yadda.

-

So, our hero, in a fit of well-meaning ignorance writes this piece (posted this morning, 14 Oct. 15) and of course, the response and any criticisms are just as reasonable and thoughtful.

-

If you really believe that, you are the most preciously ignorant person in the world, and can I have your seriously charmed life.

-
-
-
-
-
-
+
+
+
+
+
+

+ Samantha’s points (I assume you read it, for you are smart people who know the importance of such things) are fairly clear: +

+
    +
  1. With the release of Overcast 2.0, a product Samantha actually likes, Marco Arment moved to a patronage model that will probably be successful for him. +
  2. +
  3. Arment’s insistence that “anyone can do this” while technically true, (anyone can in fact, implement this pricing model), also implies that “anyone” can have the kind of success that a developer with Marco’s history, financial status, and deep ties to the Apple News Web is expected to have. This is silly. +
  4. +
  5. Marco Arment occupies a fairly unique position in the Apple universe, (gained by hard work and no small talent), and because of that, benefits from a set of privileges that a new developer or even one that has been around for a long time, but isn’t, well, Marco, not only don’t have, but have little chance of attaining anytime soon. +
  6. +
  7. Marco has earned his success and is entitled to the benefits and privileges it brings, but he seems rather blind to all of that, and seems to still imagine himself as “two guys in a garage”. This is just not correct. +
  8. +
  9. In addition, the benefits and privileges of the above ensure that by releasing Overcast 2 as a free app, with patronage pricing, he has, if not gutted, severely hurt the ability of folks actually selling their apps for an up-front price of not free to continue doing so. This has the effect of accelerating the “race to the bottom” in the podcast listening app segment, which hurts devs who cannot afford to work on a “I don’t really need this money, so whatever you feel like sending is okay” model. +
  10. +
+

+ None of this is incorrect. None of this is an ad hominem attack in any way. It is just pointing out that a developer of Arment’s stature and status lives in a very different world than someone in East Frog Balls, Arkansas trying to make a living off of App sales. Our dev in EFB doesn’t have the main sites on the Apple web falling all over themselves to review their app the way that Arment does. They’re not friends with the people being The Loop, Daring Fireball, SixColors, iMore, The Mac Observer, etc., yadda. +

+

+ So, our hero, in a fit of well-meaning ignorance writes this piece (posted this morning, 14 Oct. 15) and of course, the response and any criticisms are just as reasonable and thoughtful. +

+

+ If you really believe that, you are the most preciously ignorant person in the world, and can I have your seriously charmed life. +

-
-
-

The response, from all quarters, including Marco, someone who is so sensitive to criticism that the word “useless” is enough to shut him down, who blocked a friend of mine for the high crime of pointing out that his review of podcasting mics centered around higher priced gear and ignored folks without the scratch, who might not be ready for such things, is, in a single word, disgusting. Vomitous even.

-

It’s an hours-long dogpile that beggars even my imagination, and I can imagine almost anything. Seriously, it’s all there in Samantha’s Twitter Feed. From what I can tell, she’s understandably shocked over it. I however was not. This one comment in her feed made me smile (warning, this wanders a bit…er…LOT. Twitter timelines are not easy to put together):

-
I can see why you have some reservations about publishing it, but my gut feeling is that he would take it better than Nilay.
-

Oh honey, bless your sweet, ignorant heart. Marco is one of the biggest pushers of The Big Lie, and one of the reasons it is such a lie.

-

But it gets better. First, you have the “hey, Marco earned his status!” lot. A valid point, and one Bielefeld explicitly acknowledges, here:

-
From his ground floor involvement in Tumblr (for which he is now a millionaire), to the creation and sale of a wildly successful app called Instapaper, he has become a household name in technology minded circles. It is this extensive time spent in the spotlight, the huge following on Twitter, and dedicated listeners of his weekly aired Accidental Tech Podcast, that has granted him the freedom to break from seeking revenue in more traditional manners.
-

and here:

-
I’m not knocking his success, he has put effort into his line of work, and has built his own life.
-

and here:

-
He has earned his time in the spotlight, and it’s only natural for him to take advantage of it.
-

But still, you get the people telling her something she already acknowledge:

-
I don’t think he’s blind. he’s worked to where he has gotten and has had failures like everyone else.
-

Thank you for restating something in the article. To the person who wrote it.

-

In the original article, Samantha talked about the money Marco makes from his podcast. She based that on the numbers provided by ATP in terms of sponsorship rates and the number of current sponsors the podcast has. Is this going to yield perfect numbers? No. But the numbers you get from it will at least be reasonable, or should be unless the published sponsorship rates are just fantasy, and you’re stupid for taking them seriously.

-

At first, she went with a simple formula:

-
$4K x 3 per episode = $12K x 52 weeks / 3 hosts splitting it.
-

That’s not someone making shit up, right? Rather quickly, someone pointed out that she’d made an error in how she calculated it:

-
That’s $4k per ad, no? So more like $12–16k per episode.
-

She’d already realized her mistake and fixed it.

-
which is actually wrong, and I’m correcting now. $4,000 per sponsor, per episode! So, $210,000 per year.
-

Again, this is based on publicly available data the only kind someone not part of ATP or a close friend of Arment has access to. So while her numbers may be wrong, if they are, there’s no way for her to know that. She’s basing her opinion on actual available data. Which is sadly rare.

-

This becomes a huge flashpoint. You name a reason to attack her over this, people do. No really. For example, she’s not calculating his income taxes correctly:

-
especially since it isn’t his only source of income thus, not an indicator of his marginal inc. tax bracket.
-
thus, guessing net income is more haphazard than stating approx. gross income.
-

Ye Gods. She’s not doing his taxes for him, her point is invalid?

-

Then there’s the people who seem to have not read anything past what other people are telling them:

-
Not sure what to make of your Marco piece, to be honest. You mention his fame, whatever, but what’s the main idea here?
-

Just how spoon-fed do you have to be? Have you no teeth?

-

Of course, Marco jumps in, and predictably, he’s snippy:

-
If you’re going to speak in precise absolutes, it’s best to first ensure that you’re correct.
-

If you’re going to be like that, it’s best to provide better data. Don’t get snippy when someone is going off the only data available, and is clearly open to revising based on better data.

-

Then Marco’s friends/fans get into it:

-
I really don’t understand why it’s anyone’s business
-

Samantha is trying to qualify for sainthood at this point:

-
It isn’t really, it was a way of putting his income in context in regards to his ability to gamble with Overcast.
-

Again, she’s trying to drag people back to her actual point, but no one is going to play. The storm has begun. Then we get people who are just spouting nonsense:

-
Why is that only relevant for him? It’s a pretty weird metric,especially since his apps aren’t free.
-

Wha?? Overcast 2 is absolutely free. Samantha points this out:

-
His app is free, that’s what sparked the article to begin with.
-

The response is literally a parallel to “How can there be global warming if it snowed today in my town?”

-
If it’s free, how have I paid for it? Twice?
-

She is still trying:

-
You paid $4.99 to unlock functionality in Overcast 1.0 and you chose to support him with no additional functionality in 2.0
-

He is having none of it. IT SNOWED! SNOWWWWWWW!

-
Yes. That’s not free. Free is when you choose not to make money. And that can be weaponized. But that’s not what Overcast does.
-

She however, is relentless:

-
No, it’s still free. You can choose to support it, you are required to pay $4.99 for Pocket Casts. Totally different model.
-

Dude seems to give up. (Note: allllll the people bagging on her are men. All of them. Mansplaining like hell. And I’d bet every one of them considers themselves a feminist.)

-

We get another guy trying to push the narrative she’s punishing him for his success, which is just…it’s stupid, okay? Stupid.

-
It also wasn’t my point in writing my piece today, but it seems to be everyone’s focus.
-

(UNDERSTATEMENT OF THE YEAR)

-
I think the focus should be more on that fact that while it’s difficult, Marco spent years building his audience.
-
It doesn’t matter what he makes it how he charges. If the audience be earned is willing to pay for it, awesome.
-

She tries, oh lord, she tries:

-
To assert that he isn’t doing anything any other dev couldn’t, is wrong. It’s successful because it’s Marco.
-

But no, HE KNOWS HER POINT BETTER THAN SHE DOES:

-
No, it’s successful because he busted his ass to make it so. It’s like any other business. He grew it.
-

Christ. This is like a field of strawmen. Stupid ones. Very stupid ones.

-

One guy tries to blame it all on Apple, another in a string of Wha??? moments:

-
the appropriate context is Apple’s App Store policies. Other devs aren’t Marco’s responsibility
-

Seriously? Dude, are you even trying to talk about what Samantha actually wrote? At this point, Samantha is clearly mystified at the entire thing:

-
Why has the conversation suddenly turned to focus on nothing more than ATP sponsorship income?
-

Because it’s a nit they can pick and allows them to ignore everything you wrote. That’s the only reason.

-

One guy is “confused”:

-
I see. He does have clout, so are you saying he’s too modest in how he sees himself as a dev?
-
Yes. He can’t be equated to the vast majority of other developers. Like calling Gruber, “just another blogger”.
-
Alright, that’s fair. I was just confused by the $ and fame angle at first.
-

Samantha’s point centers on the benefits Marco gains via his fame and background. HOW DO YOU NOT MENTION THAT? HOW IS THAT CONFUSING?

-

People of course are telling her it’s her fault for mentioning a salient fact at all:

-
Why has the conversation suddenly turned to focus on nothing more than ATP sponsorship income?
-
Maybe because you went there with your article?
-
As a way of rationalizing his ability to gamble with the potential for Overcast to generate income…not the norm at all.
-

Of course, had she not brought up those important points, she’d have been bagged on for “not providing proof”. Lose some, lose more. By now, she’s had enough and she just deletes all mention of it. Understandable, but sad she was bullied into doing that.

-

Yes, bullied. That’s all this is. Bullying. She didn’t lie, cheat, or exaagerate. If her numbers were wrong, they weren’t wrong in a way she had any ability to do anything about. But there’s blood in the water, and the comments and attacks get worse:

-
Because you decided to start a conversation about someone else’s personal shit. You started this war.
-

War. THIS. IS. WAR.

-

This is a bunch of nerds attacking someone for reasoned, calm, polite criticism of their friend/idol. Samantha is politely pushing back a bit:

-
That doesn’t explain why every other part of my article is being pushed aside.
-

She’s right. This is all nonsense. This is people ignoring her article completely, just looking for things to attack so it can be dismissed. It’s tribalism at its purest.

-

Then some of the other annointed get into it, including Jason Snell in one of the most spectactular displays of “I have special knowledge you can’t be expected to have, therefore you are totally off base and wrong, even though there’s no way for you to know this” I’ve seen in a while. Jason:

-
You should never use an ad rate card to estimate ad revenue from any media product ever.
-
I learned this when I started working for a magazine — rate cards are mostly fiction, like prices on new cars
-

How…exactly…in the name of whatever deity Jason may believe in…is Samantha or anyone not “in the biz” supposed to know this. Also, what exactly does a magazine on paper like Macworld have to do with sponsorships for a podcast? I have done podcasts that were sponsored, and I can retaliate with “we charged what the rate card said we did. Checkmate Elitests!

-

Samantha basically abases herself at his feet:

-
I understand my mistake, and it’s unfortunate that it has completely diluted the point of my article.
-

I think she should have told him where and how to stuff that nonsense, but she’s a nicer person than I am. Also, it’s appropriate that Jason’s twitter avatar has its nose in the air. This is some rank snobbery. It’s disgusting and if anyone pulled that on him, Jason would be very upset. But hey, one cannot criticize The Marco without getting pushback. By “pushback”, I mean “an unrelenting fecal flood”.

-

Her only mistake was criticizing one of the Kool Kids. Folks, if you criticize anyone in The Deck Clique, or their friends, expect the same thing, regardless of tone or point.

-

Another App Dev, seemingly unable to parse Samantha’s words, needs more explanation:

-
so just looking over your mentions, I’m curious what exactly was your main point? Ignoring the podcast income bits.
-

Oh wait, he didn’t even read the article. Good on you, Dev Guy, good. on. you. Still, she plays nice with someone who didn’t even read her article:

-
That a typical unknown developer can’t depend on patronage to generate revenue, and charging for apps will become a negative.
-

Marco comes back of course, and now basically accuses her of lying about other devs talking to her and supporting her point:

-
How many actual developers did you hear from, really? Funny how almost nobody wants to give a (real) name on these accusations.
-

Really? You’re going to do that? “There’s no name, so I don’t think it’s a real person.” Just…what’s the Joe Welch quote from the McCarthy hearings?

-
Let us not assassinate this lad further, Senator. You’ve done enough. Have you no sense of decency, sir? At long last, have you left no sense of decency?
-

That is what this is at this point: character assasination because she said something critical of A Popular Person. It’s disgusting. Depressing and disgusting. No one, none of these people have seriously discussed her point, heck, it looks like they barely bothered to read it, if they did at all.

-

Marco starts getting really petty with her (no big shock) and Samantha finally starts pushing back:

-
Glad to see you be the bigger person and ignore the mindset of so many developers not relating to you, good for you!
-

That of course, is what caused Marco to question the validity, if not the existence of her sources. (Funny how anonymous sources are totes okay when they convenience Marco et al, and work for oh, Apple, but when they are inconvenient? Ha! PROVIDE ME PROOF YOU INTEMPERATE WOMAN!)

-

Make no mistake, there’s some sexist shit going on here. Every tweet I’ve quoted was authored by a guy.

-

Of course, Marco has to play the “I’ve been around longer than you” card with this bon mot:

-
Yup, before you existed!
-

Really dude? I mean, I’m sorry about the penis, but really?

-

Mind you, when the criticism isn’t just bizarrely stupid, Samantha reacts the way Marco and his ilk claim they would to (if they ever got any valid criticism. Which clearly is impossible):

-
Not to get into the middle of this, but “income” is not the term you’re looking for. “Revenue” is.
-
lol. Noted.
-
And I wasn’t intending to be a dick, just a lot of people hear/say “income” when they intend “revenue”, and then discussion …
-
… gets derailed by a jedi handwave of “Expenses”. But outside of charitable donation, it is all directly related.
-
haha. Thank you for the clarification.
-

Note to Marco and the other…whatever they are…that is how one reacts to that kind of criticism. With a bit of humor and self-deprecation. You should try it sometime. For real, not just in your heads or conversations in Irish Pubs in S.F.

-

But now, the door has been cracked, and the cheap shots come out:

-
@testflight_app: Don’t worry guys, we process @marcoarment’s apps in direct proportion to his megabucks earnings. #fairelephant
-

(Note: testflight_app is a parody account. Please do not mess with the actual testflight folks. They are still cool.)

-

Or this…conversation:

-
-
-
-
+
+
+
+
+
+
+

+ The response, from all quarters, including Marco, someone who is so sensitive to criticism that the word “useless” is enough to shut him down, who blocked a friend of mine for the high crime of pointing out that his review of podcasting mics centered around higher priced gear and ignored folks without the scratch, who might not be ready for such things, is, in a single word, disgusting. Vomitous even. +

+

+ It’s an hours-long dogpile that beggars even my imagination, and I can imagine almost anything. Seriously, it’s all there in Samantha’s Twitter Feed. From what I can tell, she’s understandably shocked over it. I however was not. This one comment in her feed made me smile (warning, this wanders a bit…er…LOT. Twitter timelines are not easy to put together): +

+
+

+ I can see why you have some reservations about publishing it, but my gut feeling is that he would take it better than Nilay. +

+
+

+ Oh honey, bless your sweet, ignorant heart. Marco is one of the biggest pushers of The Big Lie, and one of the reasons it is such a lie. +

+

+ But it gets better. First, you have the “hey, Marco earned his status!” lot. A valid point, and one Bielefeld explicitly acknowledges, here: +

+
+

+ From his ground floor involvement in Tumblr (for which he is now a millionaire), to the creation and sale of a wildly successful app called Instapaper, he has become a household name in technology minded circles. It is this extensive time spent in the spotlight, the huge following on Twitter, and dedicated listeners of his weekly aired Accidental Tech Podcast, that has granted him the freedom to break from seeking revenue in more traditional manners. +

+
+

+ and here: +

+
+

+ I’m not knocking his success, he has put effort into his line of work, and has built his own life. +

+
+

+ and here: +

+
+

+ He has earned his time in the spotlight, and it’s only natural for him to take advantage of it. +

+
+

+ But still, you get the people telling her something she already acknowledge: +

+
+

+ I don’t think he’s blind. he’s worked to where he has gotten and has had failures like everyone else. +

+
+

+ Thank you for restating something in the article. To the person who wrote it. +

+

+ In the original article, Samantha talked about the money Marco makes from his podcast. She based that on the numbers provided by ATP in terms of sponsorship rates and the number of current sponsors the podcast has. Is this going to yield perfect numbers? No. But the numbers you get from it will at least be reasonable, or should be unless the published sponsorship rates are just fantasy, and you’re stupid for taking them seriously. +

+

+ At first, she went with a simple formula: +

+
+

+ $4K x 3 per episode = $12K x 52 weeks / 3 hosts splitting it. +

+
+

+ That’s not someone making shit up, right? Rather quickly, someone pointed out that she’d made an error in how she calculated it: +

+
+

+ That’s $4k per ad, no? So more like $12–16k per episode. +

+
+

+ She’d already realized her mistake and fixed it. +

+
+

+ which is actually wrong, and I’m correcting now. $4,000 per sponsor, per episode! So, $210,000 per year. +

+
+

+ Again, this is based on publicly available data the only kind someone not part of ATP or a close friend of Arment has access to. So while her numbers may be wrong, if they are, there’s no way for her to know that. She’s basing her opinion on actual available data. Which is sadly rare. +

+

+ This becomes a huge flashpoint. You name a reason to attack her over this, people do. No really. For example, she’s not calculating his income taxes correctly: +

+
+

+ especially since it isn’t his only source of income thus, not an indicator of his marginal inc. tax bracket. +

+

+ thus, guessing net income is more haphazard than stating approx. gross income. +

+
+

+ Ye Gods. She’s not doing his taxes for him, her point is invalid? +

+

+ Then there’s the people who seem to have not read anything past what other people are telling them: +

+
+

+ Not sure what to make of your Marco piece, to be honest. You mention his fame, whatever, but what’s the main idea here? +

+
+

+ Just how spoon-fed do you have to be? Have you no teeth? +

+

+ Of course, Marco jumps in, and predictably, he’s snippy: +

+
+

+ If you’re going to speak in precise absolutes, it’s best to first ensure that you’re correct. +

+
+

+ If you’re going to be like that, it’s best to provide better data. Don’t get snippy when someone is going off the only data available, and is clearly open to revising based on better data. +

+

+ Then Marco’s friends/fans get into it: +

+
+

+ I really don’t understand why it’s anyone’s business +

+
+

+ Samantha is trying to qualify for sainthood at this point: +

+
+

+ It isn’t really, it was a way of putting his income in context in regards to his ability to gamble with Overcast. +

+
+

+ Again, she’s trying to drag people back to her actual point, but no one is going to play. The storm has begun. Then we get people who are just spouting nonsense: +

+
+

+ Why is that only relevant for him? It’s a pretty weird metric,especially since his apps aren’t free. +

+
+

+ Wha?? Overcast 2 is absolutely free. Samantha points this out: +

+
+

+ His app is free, that’s what sparked the article to begin with. +

+
+

+ The response is literally a parallel to “How can there be global warming if it snowed today in my town?” +

+
+

+ If it’s free, how have I paid for it? Twice? +

+
+

+ She is still trying: +

+
+

+ You paid $4.99 to unlock functionality in Overcast 1.0 and you chose to support him with no additional functionality in 2.0 +

+
+

+ He is having none of it. IT SNOWED! SNOWWWWWWW! +

+
+

+ Yes. That’s not free. Free is when you choose not to make money. And that can be weaponized. But that’s not what Overcast does. +

+
+

+ She however, is relentless: +

+
+

+ No, it’s still free. You can choose to support it, you are required to pay $4.99 for Pocket Casts. Totally different model. +

+
+

+ Dude seems to give up. (Note: allllll the people bagging on her are men. All of them. Mansplaining like hell. And I’d bet every one of them considers themselves a feminist.) +

+

+ We get another guy trying to push the narrative she’s punishing him for his success, which is just…it’s stupid, okay? Stupid. +

+
+

+ It also wasn’t my point in writing my piece today, but it seems to be everyone’s focus. +

+
+

+ (UNDERSTATEMENT OF THE YEAR) +

+
+

+ I think the focus should be more on that fact that while it’s difficult, Marco spent years building his audience. +

+

+ It doesn’t matter what he makes it how he charges. If the audience be earned is willing to pay for it, awesome. +

+
+

+ She tries, oh lord, she tries: +

+
+

+ To assert that he isn’t doing anything any other dev couldn’t, is wrong. It’s successful because it’s Marco. +

+
+

+ But no, HE KNOWS HER POINT BETTER THAN SHE DOES: +

+
+

+ No, it’s successful because he busted his ass to make it so. It’s like any other business. He grew it. +

+
+

+ Christ. This is like a field of strawmen. Stupid ones. Very stupid ones. +

+

+ One guy tries to blame it all on Apple, another in a string of Wha??? moments: +

+
+

+ the appropriate context is Apple’s App Store policies. Other devs aren’t Marco’s responsibility +

+
+

+ Seriously? Dude, are you even trying to talk about what Samantha actually wrote? At this point, Samantha is clearly mystified at the entire thing: +

+
+

+ Why has the conversation suddenly turned to focus on nothing more than ATP sponsorship income? +

+
+

+ Because it’s a nit they can pick and allows them to ignore everything you wrote. That’s the only reason. +

+

+ One guy is “confused”: +

+
+

+ I see. He does have clout, so are you saying he’s too modest in how he sees himself as a dev? +

+

+ Yes. He can’t be equated to the vast majority of other developers. Like calling Gruber, “just another blogger”. +

+

+ Alright, that’s fair. I was just confused by the $ and fame angle at first. +

+
+

+ Samantha’s point centers on the benefits Marco gains via his fame and background. HOW DO YOU NOT MENTION THAT? HOW IS THAT CONFUSING? +

+

+ People of course are telling her it’s her fault for mentioning a salient fact at all: +

+
+

+ Why has the conversation suddenly turned to focus on nothing more than ATP sponsorship income? +

+

+ Maybe because you went there with your article? +

+

+ As a way of rationalizing his ability to gamble with the potential for Overcast to generate income…not the norm at all. +

+
+

+ Of course, had she not brought up those important points, she’d have been bagged on for “not providing proof”. Lose some, lose more. By now, she’s had enough and she just deletes all mention of it. Understandable, but sad she was bullied into doing that. +

+

+ Yes, bullied. That’s all this is. Bullying. She didn’t lie, cheat, or exaagerate. If her numbers were wrong, they weren’t wrong in a way she had any ability to do anything about. But there’s blood in the water, and the comments and attacks get worse: +

+
+

+ Because you decided to start a conversation about someone else’s personal shit. You started this war. +

+
+

+ War. THIS. IS. WAR. +

+

+ This is a bunch of nerds attacking someone for reasoned, calm, polite criticism of their friend/idol. Samantha is politely pushing back a bit: +

+
+

+ That doesn’t explain why every other part of my article is being pushed aside. +

+
+

+ She’s right. This is all nonsense. This is people ignoring her article completely, just looking for things to attack so it can be dismissed. It’s tribalism at its purest. +

+

+ Then some of the other annointed get into it, including Jason Snell in one of the most spectactular displays of “I have special knowledge you can’t be expected to have, therefore you are totally off base and wrong, even though there’s no way for you to know this” I’ve seen in a while. Jason: +

+
+

+ You should never use an ad rate card to estimate ad revenue from any media product ever. +

+

+ I learned this when I started working for a magazine — rate cards are mostly fiction, like prices on new cars +

+
+

+ How…exactly…in the name of whatever deity Jason may believe in…is Samantha or anyone not “in the biz” supposed to know this. Also, what exactly does a magazine on paper like Macworld have to do with sponsorships for a podcast? I have done podcasts that were sponsored, and I can retaliate with “we charged what the rate card said we did. Checkmate Elitests!” +

+

+ Samantha basically abases herself at his feet: +

+
+

+ I understand my mistake, and it’s unfortunate that it has completely diluted the point of my article. +

+
+

+ I think she should have told him where and how to stuff that nonsense, but she’s a nicer person than I am. Also, it’s appropriate that Jason’s twitter avatar has its nose in the air. This is some rank snobbery. It’s disgusting and if anyone pulled that on him, Jason would be very upset. But hey, one cannot criticize The Marco without getting pushback. By “pushback”, I mean “an unrelenting fecal flood”. +

+

+ Her only mistake was criticizing one of the Kool Kids. Folks, if you criticize anyone in The Deck Clique, or their friends, expect the same thing, regardless of tone or point. +

+

+ Another App Dev, seemingly unable to parse Samantha’s words, needs more explanation: +

+
+

+ so just looking over your mentions, I’m curious what exactly was your main point? Ignoring the podcast income bits. +

+
+

+ Oh wait, he didn’t even read the article. Good on you, Dev Guy, good. on. you. Still, she plays nice with someone who didn’t even read her article: +

+
+

+ That a typical unknown developer can’t depend on patronage to generate revenue, and charging for apps will become a negative. +

+
+

+ Marco comes back of course, and now basically accuses her of lying about other devs talking to her and supporting her point: +

+
+

+ How many actual developers did you hear from, really? Funny how almost nobody wants to give a (real) name on these accusations. +

+
+

+ Really? You’re going to do that? “There’s no name, so I don’t think it’s a real person.” Just…what’s the Joe Welch quote from the McCarthy hearings? +

+
+

+ Let us not assassinate this lad further, Senator. You’ve done enough. Have you no sense of decency, sir? At long last, have you left no sense of decency? +

+
+

+ That is what this is at this point: character assasination because she said something critical of A Popular Person. It’s disgusting. Depressing and disgusting. No one, none of these people have seriously discussed her point, heck, it looks like they barely bothered to read it, if they did at all. +

+

+ Marco starts getting really petty with her (no big shock) and Samantha finally starts pushing back: +

+
+

+ Glad to see you be the bigger person and ignore the mindset of so many developers not relating to you, good for you! +

+
+

+ That of course, is what caused Marco to question the validity, if not the existence of her sources. (Funny how anonymous sources are totes okay when they convenience Marco et al, and work for oh, Apple, but when they are inconvenient? Ha! PROVIDE ME PROOF YOU INTEMPERATE WOMAN!) +

+

+ Make no mistake, there’s some sexist shit going on here. Every tweet I’ve quoted was authored by a guy. +

+

+ Of course, Marco has to play the “I’ve been around longer than you” card with this bon mot: +

+
+

+ Yup, before you existed! +

+
+

+ Really dude? I mean, I’m sorry about the penis, but really? +

+

+ Mind you, when the criticism isn’t just bizarrely stupid, Samantha reacts the way Marco and his ilk claim they would to (if they ever got any valid criticism. Which clearly is impossible): +

+
+

+ Not to get into the middle of this, but “income” is not the term you’re looking for. “Revenue” is. +

+

+ lol. Noted. +

+

+ And I wasn’t intending to be a dick, just a lot of people hear/say “income” when they intend “revenue”, and then discussion … +

+

+ … gets derailed by a jedi handwave of “Expenses”. But outside of charitable donation, it is all directly related. +

+

+ haha. Thank you for the clarification. +

+
+

+ Note to Marco and the other…whatever they are…that is how one reacts to that kind of criticism. With a bit of humor and self-deprecation. You should try it sometime. For real, not just in your heads or conversations in Irish Pubs in S.F. +

+

+ But now, the door has been cracked, and the cheap shots come out: +

+
+

+ @testflight_app: Don’t worry guys, we process @marcoarment’s apps in direct proportion to his megabucks earnings. #fairelephant +

+
+

+ (Note: testflight_app is a parody account. Please do not mess with the actual testflight folks. They are still cool.) +

+

+ Or this…conversation: +

+
+
+
+
+
+ +
Image for post +
-
-

Good job guys. Good job. Defend the tribe. Attack the other. Frederico attempts to recover from his stunning display of demeaning douchery: ‏@viticci: @s_bielefeld I don’t know if it’s an Italian thing, but counting other people’s money is especially weird for me. IMO, bad move in the post.

-

Samantha is clearly sick of his crap: ‏@s_bielefeld: @viticci That’s what I’m referring to, the mistake of ever having mentioned it. So, now, Marco can ignore the bigger issue and go on living.

-

Good for her. There’s being patient and being roadkill.

-

Samantha does put the call out for her sources to maybe let her use their names:

-
From all of you I heard from earlier, anyone care to go on record?
-

My good friend, The Angry Drunk points out the obvious problem:

-
Nobody’s going to go on record when they count on Marco’s friends for their PR.
-

This is true. Again, the sites that are Friends of Marco:

-

Daring Fireball

-

The Loop

-

SixColors

-

iMore

-

MacStories

-

A few others, but I want this post to end one day.

-

You piss that crew off, and given how petty rather a few of them have demonstrated they are, good luck on getting any kind of notice from them.

-

Of course, the idea this could happen is just craycray:

-
@KevinColeman .@Angry_Drunk @s_bielefeld @marcoarment Wow, you guys are veering right into crazy conspiracy theory territory. #JetFuelCantMeltSteelBeams
-

Yeah. Because a mature person like Marco would never do anything like that.

-

Of course, the real point on this is starting to happen:

-
you’re getting a lot of heat now but happy you are writing things that stir up the community. Hope you continue to be a voice!
-
I doubt I will.
-

See, they’ve done their job. Mess with the bull, you get the horns. Maybe you should find another thing to write about, this isn’t a good place for you. Great job y’all.

-

Some people aren’t even pretending. They’re just in full strawman mode:

-
@timkeller: Unfair to begrudge a person for leveraging past success, especially when that success is earned. No ‘luck’ involved.
-
@s_bielefeld: @timkeller I plainly stated that I don’t hold his doing this against him. Way to twist words.
-

I think she’s earned her anger at this point.

-

Don’t worry, Marco knows what the real problem is: most devs just suck —

-
-
-
-
+
+
+

+ Good job guys. Good job. Defend the tribe. Attack the other. Frederico attempts to recover from his stunning display of demeaning douchery: ‏@viticci: @s_bielefeld I don’t know if it’s an Italian thing, but counting other people’s money is especially weird for me. IMO, bad move in the post. +

+

+ Samantha is clearly sick of his crap: ‏@s_bielefeld: @viticci That’s what I’m referring to, the mistake of ever having mentioned it. So, now, Marco can ignore the bigger issue and go on living. +

+

+ Good for her. There’s being patient and being roadkill. +

+

+ Samantha does put the call out for her sources to maybe let her use their names: +

+
+

+ From all of you I heard from earlier, anyone care to go on record? +

+
+

+ My good friend, The Angry Drunk points out the obvious problem: +

+
+

+ Nobody’s going to go on record when they count on Marco’s friends for their PR. +

+
+

+ This is true. Again, the sites that are Friends of Marco: +

+

+ Daring Fireball +

+

+ The Loop +

+

+ SixColors +

+

+ iMore +

+

+ MacStories +

+

+ A few others, but I want this post to end one day. +

+

+ You piss that crew off, and given how petty rather a few of them have demonstrated they are, good luck on getting any kind of notice from them. +

+

+ Of course, the idea this could happen is just craycray: +

+
+

+ @KevinColeman .@Angry_Drunk @s_bielefeld @marcoarment Wow, you guys are veering right into crazy conspiracy theory territory. #JetFuelCantMeltSteelBeams +

+
+

+ Yeah. Because a mature person like Marco would never do anything like that. +

+

+ Of course, the real point on this is starting to happen: +

+
+

+ you’re getting a lot of heat now but happy you are writing things that stir up the community. Hope you continue to be a voice! +

+

+ I doubt I will. +

+
+

+ See, they’ve done their job. Mess with the bull, you get the horns. Maybe you should find another thing to write about, this isn’t a good place for you. Great job y’all. +

+

+ Some people aren’t even pretending. They’re just in full strawman mode: +

+
+

+ @timkeller: Unfair to begrudge a person for leveraging past success, especially when that success is earned. No ‘luck’ involved. +

+

+ @s_bielefeld: @timkeller I plainly stated that I don’t hold his doing this against him. Way to twist words. +

+
+

+ I think she’s earned her anger at this point. +

+

+ Don’t worry, Marco knows what the real problem is: most devs just suck — +

+
+
+
+
+
+ +
Image for post +
-
-

I have a saying that applies in this case: don’t place your head so far up your nethers that you go full Klein Bottle. Marco has gone full Klein Bottle. (To be correct, he went FKB some years ago.)

-

There are some bright spots. My favorite is when Building Twenty points out the real elephant in the room:

-
@BuildingTwenty: Both @s_bielefeld & I wrote similar critiques of @marcoarment’s pricing model yet the Internet pilloried only the woman. Who’d have guessed?
-

Yup.

-

Another bright spot are these comments from Ian Betteridge, who has been doing this even longer than Marco:

-
You know, any writer who has never made a single factual error in a piece hasn’t ever written anything worth reading.
-
I learned my job with the support of people who helped me. Had I suffered an Internet pile on for every error I wouldn’t have bothered.
-

To which Samantha understandably replies:

-
and it’s honestly something I’m contemplating right now, whether to continue…
-

Gee, I can’t imagine why. Why with comments like this from Chris Breen that completely misrepresent Samantha’s point, (who until today, I would have absolutely defended as being better than this, something I am genuinely saddened to be wrong about), why wouldn’t she want to continue doing this?

-
If I have this right, some people are outraged that a creator has decided to give away his work.
-

No Chris, you don’t have this right. But hey, who has time to find out the real issue and read an article. I’m sure your friends told you everything you need to know.

-

Noted Feminist Glenn Fleishman gets a piece of the action too:

-
-
-
-
+
+
+

+ I have a saying that applies in this case: don’t place your head so far up your nethers that you go full Klein Bottle. Marco has gone full Klein Bottle. (To be correct, he went FKB some years ago.) +

+

+ There are some bright spots. My favorite is when Building Twenty points out the real elephant in the room: +

+
+

+ @BuildingTwenty: Both @s_bielefeld & I wrote similar critiques of @marcoarment’s pricing model yet the Internet pilloried only the woman. Who’d have guessed? +

+
+

+ Yup. +

+

+ Another bright spot are these comments from Ian Betteridge, who has been doing this even longer than Marco: +

+
+

+ You know, any writer who has never made a single factual error in a piece hasn’t ever written anything worth reading. +

+

+ I learned my job with the support of people who helped me. Had I suffered an Internet pile on for every error I wouldn’t have bothered. +

+
+

+ To which Samantha understandably replies: +

+
+

+ and it’s honestly something I’m contemplating right now, whether to continue… +

+
+

+ Gee, I can’t imagine why. Why with comments like this from Chris Breen that completely misrepresent Samantha’s point, (who until today, I would have absolutely defended as being better than this, something I am genuinely saddened to be wrong about), why wouldn’t she want to continue doing this? +

+
+

+ If I have this right, some people are outraged that a creator has decided to give away his work. +

+
+

+ No Chris, you don’t have this right. But hey, who has time to find out the real issue and read an article. I’m sure your friends told you everything you need to know. +

+

+ Noted Feminist Glenn Fleishman gets a piece of the action too: +

+
+
+
+
+
+ +
Image for post +
-
-

I’m not actually surprised here. I watched Fleishman berate a friend of mine who has been an engineer for…heck, waaaaay too long on major software products in the most condescending way because she tried to point out that as a very technical woman, “The Magazine” literally had nothing to say to her and maybe he should fix that. “Impertinent” was I believe what he called her, but I may have the specific word wrong. Not the attitude mind you. Great Feminists like Glenn do not like uppity women criticizing Great Feminists who are their Great Allies.

-

Great Feminists are often tools.

-
-
-
-
-
-
-
-
-
-

Luckily, I hope, the people who get Samantha’s point also started chiming in (and you get 100% of the women commenting here that I’ve seen):

-
I don’t think he’s wrong for doing it, he just discusses it as if the market’s a level playing field — it isn’t
-
This is a great article with lots of great points about the sustainability of iOS development. Thank you for publishing it.
-
Regardless of the numbers and your view of MA, fair points here about confirmation bias in app marketing feasibility http://samanthabielefeld.com/the-elephant-in-the-room …
-
thank you for posting this, it covers a lot of things people don’t like to talk about.
-
I’m sure you have caught untold amounts of flak over posting this because Marco is blind to his privilege as a developer.
-
Catching up on the debate, and agreeing with Harry’s remark. (Enjoyed your article, Samantha, and ‘got’ your point.)
-
-
-
-
-
-
+
+ +

+ I’m not actually surprised here. I watched Fleishman berate a friend of mine who has been an engineer for…heck, waaaaay too long on major software products in the most condescending way because she tried to point out that as a very technical woman, “The Magazine” literally had nothing to say to her and maybe he should fix that. “Impertinent” was I believe what he called her, but I may have the specific word wrong. Not the attitude mind you. Great Feminists like Glenn do not like uppity women criticizing Great Feminists who are their Great Allies. +

+

+ Great Feminists are often tools. +

-
-
-

I would like to say I’m surprised at the reaction to Samantha’s article, but I’m not. In spite of his loud declarations of support for The Big Lie, Marco Arment is as bad at any form of criticism that he hasn’t already approved as a very insecure tween. An example from 2011: http://www.businessinsider.com/marco-arment-2011-9

-

Marco is great with criticism as long as it never actually criticizes him. If it does, be prepared a flood of petty, petulant whining that a room full of bored preschoolers on a hot day would be hard-pressed to match.

-

Today has been…well, it sucks. It sucks because someone doing what all the Arments of the world claim to want was naive enough to believe what they were told, and found out the hard way just how big a lie The Big Lie is, and how vicious people are when you’re silly enough to believe anything they say about criticism.

-

And note again, every single condescending crack, misrepresentation, and strawman had an exclusively male source. Most of them have, at one point or another, loudly trumpted themselves as Feminist Allies, as a friend to women struggling with the sexism and misogyny in tech. Congratulations y’all on being just as bad as the people you claim to oppose.

-

Samantha has handled this better than anyone else could have. My respect for her as a person and a writer is off the charts. If she choses to walk away from blogging in the Apple space, believe me I understand. As bad as today was for her, I’ve seen worse. Much worse.

-

But I hope she doesn’t. I hope she stays, because she is Doing This Right, and in a corner of the internet that has become naught but an endless circle jerk, a cliquish collection, a churlish, childish cohort interested not in writing or the truth, but in making sure The Right People are elevated, and The Others put down, she is someone worth reading and listening to. The number people who owe her apologies goes around the block, and I don’t think she’ll ever see a one. I’m sure as heck not apologizing for them, I’ll not make their lives easier in the least.

-

All of you, all. of. you…Marco, Breen, Snell, Vittici, had a chance to live by your words. You were faced with reasoned, polite, respectful criticism and instead of what you should have done, you all dropped trou and sprayed an epic diarrheal discharge all over someone who had done nothing to deserve it. Me, I earned most of my aggro, Samantha did not earn any of the idiocy I’ve seen today. I hope you’re all proud of yourselves. Someone should be, it won’t be me. Ever.

-

So I hope she stays, but if she goes, I understand. For what it’s worth, I don’t think she’s wrong either way.

-
+
+ +
+
+
+
+

+ Luckily, I hope, the people who get Samantha’s point also started chiming in (and you get 100% of the women commenting here that I’ve seen): +

+
+

+ I don’t think he’s wrong for doing it, he just discusses it as if the market’s a level playing field — it isn’t +

+

+ This is a great article with lots of great points about the sustainability of iOS development. Thank you for publishing it. +

+

+ Regardless of the numbers and your view of MA, fair points here about confirmation bias in app marketing feasibility http://samanthabielefeld.com/the-elephant-in-the-room … +

+

+ thank you for posting this, it covers a lot of things people don’t like to talk about. +

+

+ I’m sure you have caught untold amounts of flak over posting this because Marco is blind to his privilege as a developer. +

+

+ Catching up on the debate, and agreeing with Harry’s remark. (Enjoyed your article, Samantha, and ‘got’ your point.) +

+
-
-
- - - -
-
-
    -
  • Share
  • -
  • -
    -
  • -
  • -
  • -
+
-
-
-
-
- Go to the profile of John C. Welch +
+
+
+
+
+
+ +

+ Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch +

+
+
+ +

+ Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore +

+
+
+ +

+ Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade +

+
+
-
-
Never miss a story from John C. Welch, when you sign up for Medium. Learn more
-
Never miss a story from John C. Welch
+
+
+ + +
+

+
About +

+ Help +

+

+ Legal +

+
+
+
+

+ Get the Medium app +

+
+
+
+ A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store +
+
+ A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store +
-
-
-
-
-
-
-
-
-
-
-
- - - - -
- - - - + + + + + + + + + + + + + + + + + diff --git a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/missing-paragraphs/expected-metadata.json b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/missing-paragraphs/expected-metadata.json index b0ef9465b..cf0a02b5e 100644 --- a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/missing-paragraphs/expected-metadata.json +++ b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/missing-paragraphs/expected-metadata.json @@ -3,6 +3,6 @@ "Direction": null, "Excerpt": "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy\n eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam\n voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet\n clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit\n amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam\n nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat,\n sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.\n Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor\n sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed\n diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat,\n sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.\n Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor\n sit amet.", "Image": null, - "Title": "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy\n eirmod tempor invidunt", + "Title": "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt", "SiteName": null } diff --git a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/mozilla-1/expected.html b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/mozilla-1/expected.html index ba1896ea7..986406c8f 100644 --- a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/mozilla-1/expected.html +++ b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/mozilla-1/expected.html @@ -1,67 +1,96 @@ -
+
+

It’s easier than ever to personalize Firefox and make it work the way you do. -

No other browser gives you so much choice and flexibility.

+
No other browser gives you so much choice and flexibility.

-

+

-
+
-

Designed to

be redesigned

+

Designed to
be redesigned

Get fast and easy access to the features you use most in the new menu. Open the “Customize” panel to add, move or remove any button you want. Keep your favorite features — add-ons, private browsing, Sync and more — one quick click away.

-

+

+

-

+

-
-
-
+
+

More ways to customize

+ + +
+
+

Themes

Make Firefox match your style. Choose from thousands of themes and dress up your browser with a single click.

-

Try it now +

Try it now -

Learn more +
Learn more -

Next

Preview of the currently selected theme

+

Next

Preview of the currently selected theme +

-
+

Add-ons

Next

Add-ons are like apps that you install to add features to Firefox. They let you compare prices, check the weather, listen to music, send a tweet and more.

-

Here are a few of our favorites -

Learn more +
Learn more

-

+

+

-
+

Awesome Bar

Next

The Awesome Bar learns as you browse to make your version of Firefox unique. Find and return to your favorite sites without having to remember a URL.

-

See what it can do for you +

See what it can do for you

-

Firefox Awesome Bar

+

Firefox Awesome Bar +

-
+
+ -
-
\ No newline at end of file +
\ No newline at end of file diff --git a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/mozilla-2/expected.html b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/mozilla-2/expected.html index 8ce4c0703..7cf3fc38e 100644 --- a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/mozilla-2/expected.html +++ b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/mozilla-2/expected.html @@ -1,8 +1,14 @@ -
+
+
+
+

Get to know the features that make it the most complete browser for building the Web.

-
  • +
+
    +
  • - Screenshot + Screenshot +

    WebIDE

    Develop, deploy and debug Firefox OS apps directly in your browser, or on a Firefox OS device, with this tool that replaces App Manager.

    Learn more about WebIDE @@ -10,24 +16,32 @@
  • - Screenshot + Screenshot +

    Valence

    Develop and debug your apps across multiple browsers and devices with this powerful extension that comes pre-installed with Firefox Developer Edition.

    Learn more about Valence
  • -
+ +

Important: Sync your new profile

Developer Edition comes with a new profile so you can run it alongside other versions of Firefox. To access your bookmarks, browsing history and more, you need to sync the profile with your existing Firefox Account, or create a new one. Learn more

-
-

Features and tools

-
  • +
+ +
+
+

Features and tools

+
+
    +
  • - Screenshot + Screenshot +

    Page Inspector

    Examine the HTML and CSS of any Web page and easily modify the structure and layout of a page.

    Learn more about Page Inspector @@ -35,7 +49,8 @@
  • - Screenshot + Screenshot +

    Web Console

    See logged information associated with a Web page and use Web Console to interact with Web pages using JavaScript.

    Learn more about Web Console @@ -43,7 +58,8 @@
  • - Screenshot + Screenshot +

    JavaScript Debugger

    Step through JavaScript code and examine or modify its state to help track down bugs.

    Learn more about JavaScript Debugger @@ -51,7 +67,8 @@
  • - Screenshot + Screenshot +

    Network Monitor

    See all the network requests your browser makes, how long each request takes and details of each request.

    Learn more about Network Monitor @@ -59,7 +76,8 @@
  • - Screenshot + Screenshot +

    Web Audio Editor

    Inspect and interact with Web Audio API in real time to ensure that all audio nodes are connected in the way you expect.

    Learn more about Web Audio Editor @@ -67,11 +85,13 @@
  • - Screenshot + Screenshot +

    Style Editor

    View and edit CSS styles associated with a Web page, create new ones and apply existing CSS stylesheets to any page.

    Learn more about Style Editor
  • -
-
\ No newline at end of file + +
+
\ No newline at end of file diff --git a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/msn/expected.html b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/msn/expected.html index 3ed4d696c..77570113d 100644 --- a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/msn/expected.html +++ b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/msn/expected.html @@ -1,7 +1,10 @@ -

+

+
+

- - <span style="font-size:13px;">Nintendo/Apple</span> + + <span style="font-size:13px;">Nintendo/Apple</span> + © Provided by Business Insider Inc Nintendo/Apple @@ -13,6 +16,7 @@

The name and basic idea might sound like one of those endless score attack games like "Temple Run," but that's not the case. "Super Mario Run" is divided into hand-crafted levels with a clear end-point like any other Mario game, meaning you're essentially getting the Mario experience for $10 without needing to control his movement.

$10 might seem like a bit much compared to the $0 people pay for most mobile games, but it's possible the game has $10 worth of levels to play in it. It's also not iPhone exclusive, but the Android version will launch at a later, currently unknown date.

To see "Super Mario Run" in action, check out the footage below:

-

+

-
\ No newline at end of file +
+
\ No newline at end of file diff --git a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/nytimes-1/expected-images.json b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/nytimes-1/expected-images.json index c89c43ca2..077eb6014 100644 --- a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/nytimes-1/expected-images.json +++ b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/nytimes-1/expected-images.json @@ -1,4 +1,4 @@ [ - "https:\/\/static01.nyt.com\/images\/2017\/01\/14\/world\/13SUDAN-1\/13SUDAN-1-videoSixteenByNineJumbo1600.jpg", + "https:\/\/static01.nyt.com\/images\/2017\/01\/14\/world\/13SUDAN-1\/13SUDAN-1-facebookJumbo.jpg", "https:\/\/static01.nyt.com\/images\/2017\/01\/14\/world\/13SUDAN-1\/13SUDAN-1-master768.jpg" ] \ No newline at end of file diff --git a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/nytimes-1/expected-metadata.json b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/nytimes-1/expected-metadata.json index 36da83868..724e18ade 100644 --- a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/nytimes-1/expected-metadata.json +++ b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/nytimes-1/expected-metadata.json @@ -2,7 +2,7 @@ "Author": "Jeffrey Gettleman", "Direction": null, "Excerpt": "For the first time since the 1990s, the country will be able to trade extensively with the United States.", - "Image": "https:\/\/static01.nyt.com\/images\/2017\/01\/14\/world\/13SUDAN-1\/13SUDAN-1-videoSixteenByNineJumbo1600.jpg", + "Image": "https:\/\/static01.nyt.com\/images\/2017\/01\/14\/world\/13SUDAN-1\/13SUDAN-1-facebookJumbo.jpg", "Title": "United States to Lift Sudan Sanctions", "SiteName": null -} +} \ No newline at end of file diff --git a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/nytimes-1/expected.html b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/nytimes-1/expected.html index 60f7148bc..415165947 100644 --- a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/nytimes-1/expected.html +++ b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/nytimes-1/expected.html @@ -1,13 +1,32 @@ -
-
-
Photo +
+ + +
+
+ + + + + + + + + +
+
+ Photo
-

-
-
United Nations peacekeepers at a refugee camp in Sudan on Monday. In exchange for the lifting of United States trade sanctions, Sudan has said it will improve access for aid groups, stop supporting rebels in neighboring South Sudan and cooperate with American intelligence agents. +

+ + +
+
+ United Nations peacekeepers at a refugee camp in Sudan on Monday. In exchange for the lifting of United States trade sanctions, Sudan has said it will improve access for aid groups, stop supporting rebels in neighboring South Sudan and cooperate with American intelligence agents. Credit Ashraf Shazly/Agence France-Presse — Getty Images -

LONDON — After nearly 20 years of hostile relations, the American government plans to reverse its position on Sudan and lift trade sanctions, Obama administration officials said late Thursday.

+ + +

LONDON — After nearly 20 years of hostile relations, the American government plans to reverse its position on Sudan and lift trade sanctions, Obama administration officials said late Thursday.

Sudan is one of the poorest, most isolated and most violent countries in Africa, and for years the United States has imposed punitive measures against it in a largely unsuccessful attempt to get the Sudanese government to stop killing its own people.

On Friday, the Obama administration will announce a new Sudan strategy. For the first time since the 1990s, the nation will be able to trade extensively with the United States, allowing it to buy goods like tractors and spare parts and attract much-needed investment in its collapsing economy.

In return, Sudan will improve access for aid groups, stop supporting rebels in neighboring South Sudan, cease the bombing of insurgent territory and cooperate with American intelligence agents.

@@ -28,10 +47,29 @@

“There is no reason to believe the guys in charge have changed their stripes,” said Mr. Reeves, a senior fellow at the François-Xavier Bagnoud Center for Health and Human Rights at Harvard University. “These guys are the worst of the worst.”

Obama administration officials said that they had briefed President-elect Donald J. Trump’s transition team, but that they did not know if Mr. Trump would stick with a policy of warmer relations with Sudan.

They said that Sudan had a long way to go in terms of respecting human rights, but that better relations could help increase American leverage.

-

Mr. Reeves said he thought that the American government was being manipulated and that the Obama administration had made a “deal with the devil.”

+

Mr. Reeves said he thought that the American government was being manipulated and that the Obama administration had made a “deal with the devil.”

+

Continue reading the main story

- - - -
\ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/nytimes-2/expected-images.json b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/nytimes-2/expected-images.json index e4b49d00e..1afbadf84 100644 --- a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/nytimes-2/expected-images.json +++ b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/nytimes-2/expected-images.json @@ -1,4 +1,4 @@ [ - "https:\/\/static01.nyt.com\/images\/2016\/07\/30\/business\/db-dealprof\/db-dealprof-videoSixteenByNineJumbo1600.jpg", - "https:\/\/static01.nyt.com\/images\/2016\/07\/30\/business\/db-dealprof\/db-dealprof-master315.jpg" + "https:\/\/static01.nyt.com\/images\/2016\/07\/30\/business\/db-dealprof\/db-dealprof-facebookJumbo.jpg", + "https:\/\/static01.nyt.com\/images\/2016\/07\/30\/business\/db-dealprof\/db-dealprof-master315.jpg" ] \ No newline at end of file diff --git a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/nytimes-2/expected-metadata.json b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/nytimes-2/expected-metadata.json index 7fbcf29ee..21af4ee0d 100644 --- a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/nytimes-2/expected-metadata.json +++ b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/nytimes-2/expected-metadata.json @@ -1,8 +1,8 @@ { "Author": "Steven Davidoff Solomon", "Direction": null, - "Excerpt": "The internet giant’s decision to sell its business is plagued with challenges that reveal how unusual deal structures can affect shareholders.", - "Image": "https:\/\/static01.nyt.com\/images\/2016\/07\/30\/business\/db-dealprof\/db-dealprof-videoSixteenByNineJumbo1600.jpg", - "Title": "Yahoo’s Sale to Verizon Leaves Shareholders With Little Say", + "Excerpt": "The internet giant\u2019s decision to sell its business is plagued with challenges that reveal how unusual deal structures can affect shareholders.", + "Image": "https:\/\/static01.nyt.com\/images\/2016\/07\/30\/business\/db-dealprof\/db-dealprof-facebookJumbo.jpg", + "Title": "Yahoo\u2019s Sale to Verizon Leaves Shareholders With Little Say", "SiteName": null -} +} \ No newline at end of file diff --git a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/nytimes-2/expected.html b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/nytimes-2/expected.html index 1584ca437..168bd3bc5 100644 --- a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/nytimes-2/expected.html +++ b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/nytimes-2/expected.html @@ -1,21 +1,43 @@ -
-
-
Photo +
+ + +
+
+ + + + + + + + + + + +
+
+ Photo
-

-
-
+

+ + +
+
+ Credit Harry Campbell -

Yahoo’s $4.8 billion sale to Verizon is a complicated beast, showing how different acquisition structures can affect how shareholders are treated.

+ + +

Yahoo’s $4.8 billion sale to Verizon is a complicated beast, showing how different acquisition structures can affect how shareholders are treated.

First, let’s say what the Yahoo sale is not. It is not a sale of the publicly traded company. Instead, it is a sale of the Yahoo subsidiary and some related assets to Verizon.

The sale is being done in two steps. The first step will be the transfer of any assets related to Yahoo business to a singular subsidiary. This includes the stock in the business subsidiaries that make up Yahoo that are not already in the single subsidiary, as well as the odd assets like benefit plan rights. This is what is being sold to Verizon. A license of Yahoo’s oldest patents is being held back in the so-called Excalibur portfolio. This will stay with Yahoo, as will Yahoo’s stakes in Alibaba Group and Yahoo Japan.

It is hard to overestimate how complex an asset sale like this is. Some of the assets are self-contained, but they must be gathered up and transferred. Employees need to be shuffled around and compensation arrangements redone. Many contracts, like the now-infamous one struck with the search engine Mozilla, which may result in a payment of up to a $1 billion, will contain change-of-control provisions that will be set off and have to be addressed. Tax issues always loom large.

Continue reading the main story

- - - -
-
+ +
+ +

Continue reading the main story

+
+

In the second step, at the closing, Yahoo will sell the stock in the single subsidiary to Verizon. At that point, Yahoo will change its name to something without “Yahoo” in it. My favorite is simply Remain Co., the name Yahoo executives are using. Remain Co. will become a holding company for the Alibaba and Yahoo Japan stock. Included will also be $10 billion in cash, plus the Excalibur patent portfolio and a number of minority investments including Snapchat. Ahh, if only Yahoo had bought Snapchat instead of Tumblr (indeed, if only Yahoo had bought Google or Facebook when it had the chance).

Because it is a sale of a subsidiary, the $4.8 billion will be paid to Yahoo. Its shareholders will not receive any money unless Yahoo pays it out in a dividend (after paying taxes). Instead, Yahoo shareholders will be left holding shares in the renamed company.

@@ -35,7 +57,25 @@

Finally, if another bidder still wants to acquire Yahoo, it has time. The agreement with Verizon allows Yahoo to terminate the deal and accept a superior offer by paying a $144 million breakup fee to Verizon. And if Yahoo shareholders change their minds and want to stick with Yahoo’s chief executive, Marissa Mayer, and vote down the deal, there is a so-called naked no-vote termination fee of $15 million payable to Verizon to reimburse expenses.

All in all, this was as hairy a deal as they come. There was the procedural and logistical complications of selling a company when the chief executive wanted to stay. Then there was the fact that this was an asset sale, including all of the challenges that go with it. Throw in all of the tax issues and the fact that this is a public company, and it is likely that the lawyers involved will have nightmares for years to come.

Continue reading the main story

- - - -
\ No newline at end of file + + + + + + + + + + + + + + + + + + + + + +
\ No newline at end of file diff --git a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/pixnet/expected-metadata.json b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/pixnet/expected-metadata.json index dafb56b44..577686706 100644 --- a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/pixnet/expected-metadata.json +++ b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/pixnet/expected-metadata.json @@ -1,8 +1,8 @@ { - "Author": "史蒂文的家_藍天 (stevenhgm)", + "Author": "\u53f2\u8482\u6587\u7684\u5bb6_\u85cd\u5929 (stevenhgm)", "Direction": null, - "Excerpt": "一波波接續性低溫寒流報到 已將新竹尖石鄉後山一帶層層山巒披上嫣紅的彩衣 玉峰道路一路上雲氣山嵐滯留山頭 順路下切蜿蜒道路後不久即抵達來到"玉峰國小" "美樹"美", + "Excerpt": "\u4e00\u6ce2\u6ce2\u63a5\u7e8c\u6027\u4f4e\u6eab\u5bd2\u6d41\u5831\u5230 \u5df2\u5c07\u65b0\u7af9\u5c16\u77f3\u9109\u5f8c\u5c71\u4e00\u5e36\u5c64\u5c64\u5c71\u5dd2\u62ab\u4e0a\u5ae3\u7d05\u7684\u5f69\u8863 \u7389\u5cf0\u9053\u8def\u4e00\u8def\u4e0a\u96f2\u6c23\u5c71\u5d50\u6eef\u7559\u5c71\u982d \u9806\u8def\u4e0b\u5207\u873f\u8712\u9053\u8def\u5f8c\u4e0d\u4e45\u5373\u62b5\u9054\u4f86\u5230\"\u7389\u5cf0\u570b\u5c0f\" \"\u7f8e\u6a39\"\u7f8e", "Image": "http:\/\/pic.pimg.tw\/stevenhgm\/1387895093-631461272.jpg", - "Title": "新竹尖石_美樹營地賞楓 (2) @ 史蒂文的家_藍天 :: 痞客邦 PIXNET ::", - "SiteName": "史蒂文的家_藍天" -} + "Title": "\u65b0\u7af9\u5c16\u77f3_\u7f8e\u6a39\u71df\u5730\u8cde\u6953 (2) @ \u53f2\u8482\u6587\u7684\u5bb6_\u85cd\u5929 :: \u75de\u5ba2\u90a6 PIXNET ::", + "SiteName": "\u53f2\u8482\u6587\u7684\u5bb6_\u85cd\u5929" +} \ No newline at end of file diff --git a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/pixnet/expected.html b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/pixnet/expected.html index ffa81c794..80a2e4a7b 100644 --- a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/pixnet/expected.html +++ b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/pixnet/expected.html @@ -1,6 +1,6 @@

- 12-IMG_3886.jpg + 12-IMG_3886.jpg

一波波接續性低溫寒流報到 已將新竹尖石鄉後山一帶層層山巒披上嫣紅的彩衣

@@ -14,7 +14,7 @@

營區內除了露營、民宿、餐飲賞楓項目多了許多原木飾品更有畫龍點睛加乘效果

-

30-IMG_4228.jpg

+

30-IMG_4228.jpg

廣受歡迎的美樹營地有個很大特色就是楓紅時期楓香樹由綠轉黃、轉紅到楓紅層層

一來到"美樹"馬上眼睛為之一亮 也會深深地為那多種顏色多層次渲染之下楓紅而迷惑 @@ -29,66 +29,66 @@

-

31-IMG_4231.jpg

+

31-IMG_4231.jpg

每年12月向來是攝影班外拍的絕佳場所之一 楓紅期間入園費$50元

園區給愛攝一族淨空場景而不是散搭帳蓬之下反而影響拍照畫面與構圖取景

露營的話則須待中午過後再進場搭帳的彈性做法個人也相當支持這樣的權宜之計

- P1610088.jpg + P1610088.jpg

來到現場已是落葉飄飄堆疊滿地 不時隨著風吹雨襲而葉落垂地

- P1610069.jpg + P1610069.jpg

不忍踩過剛剛掉落的樹葉 沿著前人足跡踏痕輕踩而行

雖然只是一廂情願的想法 終究還是不可避免地將會化為塵土

-

02-P1610080.jpg

+

02-P1610080.jpg

葉落繽紛顯得幾分蕭瑟氣息 空氣中可以嗅得出來依然瀰漫著濕寒水氣

偶而還會飄下來一些霧氣水滴 不時張望尋找最佳楓葉主題

-

04-P1610087.jpg

+

04-P1610087.jpg

外拍的攝影班學員一堆早已不時穿梭其間

各自努力地找尋自認為最好的拍攝角度

-

05-P1610099.jpg

+

05-P1610099.jpg

-

P1610095.jpg

+

P1610095.jpg

-

13-IMG_3891.jpg

+

13-IMG_3891.jpg

-

15-IMG_3906.jpg

+

15-IMG_3906.jpg

"水槽"上面的這幾隻彩繪版貓頭鷹也太可愛了

同樣的造型加上不同色彩宛如賦予不同的生命力一般 cool!

-

16-IMG_3916.jpg

+

16-IMG_3916.jpg

雨水洗塵後的枝頭固然掉落些葉片是否也洗去塵勞憂傷

-

17-IMG_3919.jpg

+

17-IMG_3919.jpg

-

06-IMG_3853.jpg

+

06-IMG_3853.jpg

喜歡拍照的不論是平面掃描、天空搜尋、地上地毯式搜索

有如小說偵探一般 不放過蛛絲馬跡地用力尋尋覓覓找尋最美角度

-

07-P1610104.jpg

+

07-P1610104.jpg

-

08-IMG_3862.jpg

+

08-IMG_3862.jpg

原本這周是由小朱團長早在一年前就跟"簍信"預定下來的場子

早上從台北出門之際還是小雨不斷細雨紛飛來到此地雖雨已停

但多日來的雨勢不斷已有部分區域水漬成攤並不適合落置帳篷

@@ -98,32 +98,32 @@

-

18-P1610141.jpg

+

18-P1610141.jpg

午後從"秀巒"回到美樹之際已經全數撤退只剩下我們三車留下來

唯有"離開地球表面"睡車上的才可以不受到地上泥濘而影響

-

19-IMG_3933.jpg

+

19-IMG_3933.jpg

-

14-P1610134.jpg

+

14-P1610134.jpg

午後山嵐興起雲氣遊蕩盤旋在對岸山頭 人潮來來去去似乎也沒有減少

-

44-P1610283.jpg

-

美樹民宿有開設餐廳 室內簡單佈置提供伙食餐飲

+

44-P1610283.jpg

+

美樹民宿有開設餐廳 室內簡單佈置提供伙食餐飲

- P1610212.jpg + P1610212.jpg

這兩間是民宿房間 跟著民宿主人"簍信"聊起來還提到日後將改變成兩層木屋

一樓則是咖啡飲料/賣店提供訪客來賓有個落腳席座之地 二樓才會是民宿房間

-

心中有了計畫想法才會有日後的夢想藍圖 相信將會改變得更好的民宿露營環境

+

心中有了計畫想法才會有日後的夢想藍圖 相信將會改變得更好的民宿露營環境

- P1610219.jpg + P1610219.jpg

民宿前這一大區楓香林為土質營位 大致區分前、後兩個營區

前面這一區約可搭上十二帳/車/廳 後面那區也大約4~5帳/車/廳

@@ -131,26 +131,26 @@

-

10-P1610114.jpg

+

10-P1610114.jpg

營區水電方便 水槽也很有特色

-

22-P1610245.jpg

+

22-P1610245.jpg

這次選擇左側地勢高些以防午夜下雨泥濘

-

20-P1610238.jpg

+

20-P1610238.jpg

"野馬"特地帶來了冬至應景食材ㄜ---湯圓

這家還是最近被評比第一名氣的湯圓專賣店

-

21-P1610241.jpg

-

向來對於湯圓是敬謝不敏 沒想到是出乎意料之外的好吃 沒話說!

+

21-P1610241.jpg

+

向來對於湯圓是敬謝不敏 沒想到是出乎意料之外的好吃 沒話說!

-

24-IMG_4113.jpg

+

24-IMG_4113.jpg

喜歡原住民朋友的坦率、真誠 要將民宿營地經營的有聲有色並非容易之事

午茶時間與"簍信"閒聊分享著他的觀點理念之時很支持對於環境應有生態保護

@@ -159,46 +159,46 @@

-

32-IMG_4248.jpg

+

32-IMG_4248.jpg

-

25-IMG_4152.jpg

+

25-IMG_4152.jpg

入夜前雨絲終於漸漸緩和下來 雖然氣溫很低卻沒感受到寒冷的跡象

是山谷中少了寒氣還是美樹營區裡的人熱情洋溢暖化了不少寒意

-

IMG_4158.jpg

-

聖誕前夕裝點些聖誕飾品 感受一下節慶的氛圍

+

IMG_4158.jpg

+

聖誕前夕裝點些聖誕飾品 感受一下節慶的氛圍

-

26-P1610261.jpg

+

26-P1610261.jpg

晚餐準備了砂鍋魚頭

-

46-1021221美樹露營.jpg

+

46-1021221美樹露營.jpg

"蒯嫂"還特地準備著羊肩排、鹹豬肉、柳葉魚...哇!這哩澎湃哩...

 "永老爺"早已備妥了好酒為遠自台南來的蒯兄嫂敬一杯囉

感謝蒯嫂精心準備的好料理 食指大動好菜色感恩ㄟ!

-

27-IMG_4173.jpg

-

吃得快精光之際...才想到忘了拍合照...(哇哩咧 ^&*()

+

27-IMG_4173.jpg

+

吃得快精光之際...才想到忘了拍合照...(哇哩咧 ^&*()

-

28-IMG_4178.jpg

+

28-IMG_4178.jpg

-

29-IMG_4188.jpg

+

29-IMG_4188.jpg

隔日睡到很晚才起床 不用拍日出晨光的營地對我來說都是個幸福的睡眠

哪怕是葉落飄零落滿地還是睡夢周公召見而去 起床的事~差點都忘記了

- IMG_4205.jpg + IMG_4205.jpg

昨天細雨紛飛依然打落了不少落葉中間這株整個都快變成枯枝了

昨天依稀凋零稀疏的楓葉殘留今兒個完全不復存在(上周是最美的代名詞)

-

33-IMG_4255.jpg

+

33-IMG_4255.jpg

上回來得太早沒能見到楓葉泛紅 這次晚了一周已陸續落葉也無從比對楓葉差異性 

另一種角度看不論青楓、金黃葉紅的楓香、葉落飄零秋滿霜、落葉枯枝的蕭瑟 @@ -207,44 +207,44 @@

-

34-P1610269.jpg

-

早起的"蒯嫂"已經備好熱騰騰中式稀飯、包子、蔬果 頓時~有幸福的感覺

+

34-P1610269.jpg

+

早起的"蒯嫂"已經備好熱騰騰中式稀飯、包子、蔬果 頓時~有幸福的感覺

-

35-IMG_4303.jpg

+

35-IMG_4303.jpg

星期天早上趁著攝影團還沒入場先來人物場景特寫

野馬家兩張新"座椅"就當作是試坐囉!拍謝哩

-

38-IMG_4330.jpg

+

38-IMG_4330.jpg

- P1610279.jpg + P1610279.jpg

難得有此無人美景在楓樹下的聖誕氛圍也一定要來一張才行

-

37-IMG_4323.jpg

+

37-IMG_4323.jpg

三家合照(Hero也一定要入鏡的)

-

40-IMG_4342.jpg

+

40-IMG_4342.jpg

接著攝影團入場帶隊老師請求借個時間也來讓學員練習楓樹下的聖誕飾品

此時剛好也遇到早在FB社團相互回應卻頭一次謀面的Mr."大雄"真是幸會了

-

42-IMG_4382.jpg

+

42-IMG_4382.jpg

接近中午時分陽光漸露 藍天帷幕再次嶄露頭角 ~ 久違了!

期盼下的天空終於放晴 沒有缺席的藍天還是準時赴約如期出席

-

41-IMG_4366.jpg

+

41-IMG_4366.jpg

這兩天肉肉(Hero)天雨濕滑無法自由奔跑都快悶壞了

天晴後"蒯嫂"帶著散步遊園也好解解悶

-

43-IMG_4383.jpg

+

43-IMG_4383.jpg

收拾好裝備準備離開營地 亮麗的天空鮮明對比下的楓樹林又讓人覺得有點捨不得離開

道別了"美樹營地"準備前往而行"石磊國小"一個很生疏的小學座落在這深山部落裡

@@ -255,7 +255,7 @@ 資訊

-

聯絡電話:03-584-7231  行動: 0937-141993

林錦武 (泰雅族名: 摟信)

營地地址:新竹縣尖石鄉玉峰村6鄰20號 +

聯絡電話:03-584-7231  行動: 0937-141993
林錦武 (泰雅族名: 摟信)
營地地址:新竹縣尖石鄉玉峰村6鄰20號
diff --git a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/reordering-paragraphs/expected.html b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/reordering-paragraphs/expected.html index 4a46dd585..500f6872f 100644 --- a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/reordering-paragraphs/expected.html +++ b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/reordering-paragraphs/expected.html @@ -1,4 +1,5 @@

+

Regarding item# 11111, under sufficiently extreme conditions, quarks may become deconfined and exist as free particles. In the course of asymptotic freedom, the strong interaction becomes weaker at higher temperatures. @@ -23,4 +24,5 @@ of matter is called quark-gluon plasma.[81] The exact conditions needed to give rise to this state are unknown and have been the subject of a great deal of speculation and experimentation.

-

\ No newline at end of file +
+
\ No newline at end of file diff --git a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/replace-brs/expected.html b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/replace-brs/expected.html index 56e36a4bc..778fdc062 100644 --- a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/replace-brs/expected.html +++ b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/replace-brs/expected.html @@ -1,14 +1,14 @@

- Lorem ipsum

dolor sit

amet, consectetur adipisicing elit, sed do eiusmod

- tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,

+ Lorem ipsum
dolor sit

amet, consectetur adipisicing elit, sed do eiusmod
+ tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo

- consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse

- cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non

+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
+ cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

- Tempor

incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,

- quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo

+ Tempor

incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
+ quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse

- cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non

+ cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

\ No newline at end of file diff --git a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/replace-font-tags/expected.html b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/replace-font-tags/expected.html index a36b1a252..cb19cbf17 100644 --- a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/replace-font-tags/expected.html +++ b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/replace-font-tags/expected.html @@ -1,5 +1,6 @@
-

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod +

Lorem

+

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse diff --git a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/replace-font-tags/source.html b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/replace-font-tags/source.html index 5789e5676..d47851d25 100644 --- a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/replace-font-tags/source.html +++ b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/replace-font-tags/source.html @@ -8,7 +8,7 @@

Lorem

- Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod + Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse diff --git a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/rtl-1/expected.html b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/rtl-1/expected.html index eba1686e9..9c611c9e6 100644 --- a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/rtl-1/expected.html +++ b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/rtl-1/expected.html @@ -1,4 +1,6 @@ -
+
+
+

Lorem

Lorem ipsum dolor sit amet.

@@ -8,4 +10,5 @@

Tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

-
\ No newline at end of file +
+
\ No newline at end of file diff --git a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/rtl-2/expected.html b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/rtl-2/expected.html index eba1686e9..9c611c9e6 100644 --- a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/rtl-2/expected.html +++ b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/rtl-2/expected.html @@ -1,4 +1,6 @@ -
+
+
+

Lorem

Lorem ipsum dolor sit amet.

@@ -8,4 +10,5 @@

Tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

-
\ No newline at end of file +
+
\ No newline at end of file diff --git a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/rtl-3/expected.html b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/rtl-3/expected.html index 75448882b..789260191 100644 --- a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/rtl-3/expected.html +++ b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/rtl-3/expected.html @@ -1,4 +1,6 @@ -
+
+
+

Lorem

Lorem ipsum dolor sit amet.

@@ -8,4 +10,5 @@

Tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

-
\ No newline at end of file +
+
\ No newline at end of file diff --git a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/rtl-4/expected.html b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/rtl-4/expected.html index 14724e72d..0d55d33d5 100644 --- a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/rtl-4/expected.html +++ b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/rtl-4/expected.html @@ -1,4 +1,6 @@ -
+
+
+

Lorem

Lorem ipsum dolor sit amet.

@@ -8,4 +10,5 @@

Tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

-
\ No newline at end of file +
+
\ No newline at end of file diff --git a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/salon-1/expected.html b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/salon-1/expected.html index d1cb60ef1..4df6b4287 100644 --- a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/salon-1/expected.html +++ b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/salon-1/expected.html @@ -12,7 +12,7 @@ murdering his ex-wife, seized hostages in a café that was located in Sydney’s Central Business District or “CBD.” In the process he put up an Islamic flag – “igniting,” as Reuters reported, - “fears of a jihadist attack in the heart of the country’s biggest city.”

In the midst of the fear, Uber stepped in and tweeted this announcement:  + “fears of a jihadist attack in the heart of the country’s biggest city.”

In the midst of the fear, Uber stepped in and tweeted this announcement:  “We are all concerned with events in CBD. Fares have increased to encourage more drivers to come online & pick up passengers in the area.”

As Mashable reports, @@ -196,7 +196,7 @@

And then there’s the matter of our collective psyche. In her book “A Paradise Built in Hell: The Extraordinary Communities that Arise in Disaster,” Rebecca Solnit wrote of the purpose, meaning and deep satisfaction people find - when they pull together to help one another in the face of adversity.  + when they pull together to help one another in the face of adversity.  But in the world Uber seeks to create, those surges of the spirit would be replaced by surge pricing.

diff --git a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/simplyfound-1/expected.html b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/simplyfound-1/expected.html index 55b74a98c..8e8313dc6 100644 --- a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/simplyfound-1/expected.html +++ b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/simplyfound-1/expected.html @@ -1,18 +1,18 @@
-

The Raspberry Pi Foundation started by a handful of volunteers in 2012 when they released the original Raspberry Pi 256MB Model B without knowing what to expect.  In a short four-year period they have grown to over sixty full-time employees and have shipped over eight million units to-date.  Raspberry Pi has achieved new heights by being shipped to the International Space Station for research and by being an affordable computing platforms used by teachers throughout the world.  "It has become the all-time best-selling computer in the UK".

+

The Raspberry Pi Foundation started by a handful of volunteers in 2012 when they released the original Raspberry Pi 256MB Model B without knowing what to expect.  In a short four-year period they have grown to over sixty full-time employees and have shipped over eight million units to-date.  Raspberry Pi has achieved new heights by being shipped to the International Space Station for research and by being an affordable computing platforms used by teachers throughout the world.  "It has become the all-time best-selling computer in the UK".

Raspberry Pi 3 - A credit card sized PC that only costs $35 - Image: Raspberry Pi Foundation

-

Raspberry Pi Foundation is charity organization that pushes for a digital revolution with a mission to inspire kids to learn by creating computer-powered objects.  The foundation also helps teachers learn computing  skills through free training and readily available tutorials & example code for creating cool things such as music.

+

Raspberry Pi Foundation is charity organization that pushes for a digital revolution with a mission to inspire kids to learn by creating computer-powered objects.  The foundation also helps teachers learn computing  skills through free training and readily available tutorials & example code for creating cool things such as music.

Raspberry Pi in educations - Image: Raspberry Pi Foundation

-

In celebration of their 4th year anniversary, the foundation has released Raspberry Pi 3 with the same price tag of $35 USD.  The 3rd revision features a 1.2GHz 64-bit quad-core ARM CPU with integrated Bluetooth 4.1 and 802.11n wireless LAN chipsets.  The ARM Cortex-A53 CPU along with other architectural enhancements making it the fastest Raspberry Pi to-date.  The 3rd revision is reportedly about 50-60% times faster than its predecessor Raspberry Pi 2 and about 10 times faster then the original Raspberry PI.

+

In celebration of their 4th year anniversary, the foundation has released Raspberry Pi 3 with the same price tag of $35 USD.  The 3rd revision features a 1.2GHz 64-bit quad-core ARM CPU with integrated Bluetooth 4.1 and 802.11n wireless LAN chipsets.  The ARM Cortex-A53 CPU along with other architectural enhancements making it the fastest Raspberry Pi to-date.  The 3rd revision is reportedly about 50-60% times faster than its predecessor Raspberry Pi 2 and about 10 times faster then the original Raspberry PI.

Raspberry Pi - Various Usage

-

Raspberry Pi 3 is now available via many online resellers.  At this time, you should use a recent 32-bit NOOBS or Raspbian image from their downloads page with a promise of a switch to a 64-bit version only if further investigation proves that there is indeed some value in moving to 64-bit mode.

+

Raspberry Pi 3 is now available via many online resellers.  At this time, you should use a recent 32-bit NOOBS or Raspbian image from their downloads page with a promise of a switch to a 64-bit version only if further investigation proves that there is indeed some value in moving to 64-bit mode.

\ No newline at end of file diff --git a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/social-buttons/expected.html b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/social-buttons/expected.html index 6d135be2c..30c09b2ec 100644 --- a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/social-buttons/expected.html +++ b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/social-buttons/expected.html @@ -1,4 +1,5 @@
+

Lorem ipsum dolor

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo diff --git a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/style-tags-removal/expected.html b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/style-tags-removal/expected.html index d3a8806b4..a5ba2c6d7 100644 --- a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/style-tags-removal/expected.html +++ b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/style-tags-removal/expected.html @@ -1,4 +1,6 @@

+

Lorem

+

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, @@ -7,6 +9,7 @@ cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

+

Foo

Tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, diff --git a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/svg-parsing/expected.html b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/svg-parsing/expected.html index 1cc45591b..faa8ff814 100644 --- a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/svg-parsing/expected.html +++ b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/svg-parsing/expected.html @@ -11,7 +11,13 @@ quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

-

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod + + + + + + +

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse diff --git a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/table-style-attributes/expected-images.json b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/table-style-attributes/expected-images.json index c2a1ea915..dc3706450 100644 --- a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/table-style-attributes/expected-images.json +++ b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/table-style-attributes/expected-images.json @@ -1,3 +1,3 @@ [ - "http:\/\/fakehost\/test\/..\/compass1.gif" + "http:\/\/fakehost\/compass1.gif" ] \ No newline at end of file diff --git a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/table-style-attributes/expected.html b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/table-style-attributes/expected.html index 77c083b21..7ded97c76 100644 --- a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/table-style-attributes/expected.html +++ b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/table-style-attributes/expected.html @@ -1,17 +1,21 @@

linux usability -

...or, why do I bother.


© 2002, 2003 +
...or, why do I bother.

© 2002, 2003 Jamie Zawinski

- + +
+ + + + + + -

In December 2002, I tried to install some software on my computer. The experience was, shall we say, less than pleasant. On many levels. I wrote about my experience, as I so often do.

Then in January, the jackasses over at Slashdot posted a link to it, calling it a "review" of Linux video software. I guess you could consider it a review, if you were to squint at it just right. But really what it is is a rant about how I had an evening stolen from me by crap software design. It is a flame about the pathetic state of Linux usability in general, and the handful of video players I tried out in particular. It makes no attempt to be balanced or objective or exhaustive. It is a description of my experience. Perhaps your experience was different. Good for you.

So of course that day I got hundreds of emails about it. Every Linux apologist in the world wanted to make sure I was fully informed of their opinion. The replies were roughly in the following groups:

-
  • "Right on! I had exactly the same experience! Thank you for putting it into words." (This was about 1/3 of the replies.) +
      +
    • "Right on! I had exactly the same experience! Thank you for putting it into words." (This was about 1/3 of the replies.)
    • "You're clearly an idiot, Linux is too sophisticated for you, you clearly are incapable of understanding anything, you should go back to kindergarten and/or use a Mac." (Oddly, all of these messages used the word `clearly' repeatedly.) @@ -29,29 +33,38 @@
    • "While you have some valid complaints, I'm going to focus on this one inconsequential error you made in your characterization of one of the many roadblocks you encountered. You suck!"
    • -
    • "It's your fault for using Red Hat! You should be using Debian/Mandrake/Gentoo instead!" +
    • "It's your fault for using Red Hat! You should be using Debian/Mandrake/Gentoo instead!"
    • "Red Hat 7.2 is totally obsolete! It's almost 14 months old! What were you expecting!"
    • -

While I am flattered that so many logorrheic Linux fanboys are sufficiently interested in my opinions and experiences to share their deeply heartfelt views with me, you can all rest assured that:

-
    • I've heard it before; and
    • +
        +
          +
        • I've heard it before; and
        • I didn't care the first time.
        • -

      So please. Don't bother sending me any more mail about this. It's a near certainty that I will just delete it unread, so you might as well not waste your time. Feel free to call me names on your own web page if you feel the need to get it out of your system. But kindly stay out of my inbox. +

    +
+

So please. Don't bother sending me any more mail about this. It's a near certainty that I will just delete it unread, so you might as well not waste your time. Feel free to call me names on your own web page if you feel the need to get it out of your system. But kindly stay out of my inbox.

+
+

that said...

I understand that one can play videos on one's computer. I understand these videos come in many different formats. Every now and then I try to figure out what the Done Thing is, as far as playing movies on one's Linux machine.

-
    (Really my eventual goal is to be able to create video on Linux, but I figured I'd start small, and see if I could just get playback working before trying something that is undoubtedly ten thousand times harder.)

I finally found RPMs of mplayer that would consent to install themselves on a Red Hat 7.2 machine, and actually got it to play some videos. Amazing. But it's a total pain in the ass to use due to rampant "themeing." Why do people do this? They map this stupid shaped window with no titlebar (oh, sorry, your choice of a dozen stupidly-shaped windows without titlebars) all of which use fonts that are way too small to read. But, here's the best part, there's no way to raise the window to the top. So if another window ever gets on top of it, well, sorry, you're out of luck. And half of the themes always map the window at the very bottom of the +

    (Really my eventual goal is to be able to create video on Linux, but I figured I'd start small, and see if I could just get playback working before trying something that is undoubtedly ten thousand times harder.)
+

I finally found RPMs of mplayer that would consent to install themselves on a Red Hat 7.2 machine, and actually got it to play some videos. Amazing. But it's a total pain in the ass to use due to rampant "themeing." Why do people do this? They map this stupid shaped window with no titlebar (oh, sorry, your choice of a dozen stupidly-shaped windows without titlebars) all of which use fonts that are way too small to read. But, here's the best part, there's no way to raise the window to the top. So if another window ever gets on top of it, well, sorry, you're out of luck. And half of the themes always map the window at the very bottom of the screen -- conveniently under my panel where I can't reach it.

Resizing the window changes the aspect ratio of the video! Yeah, I'm sure someone has ever wanted that.

It moves the mouse to the upper left corner of every dialog box it creates! Which is great, because that means that when it gets into this cute little state of popping up a blank dialog that says "Error" five times a second, you can't even move the mouse over to another window to kill the program, you have to log in from another machine.

@@ -65,38 +78,45 @@ RPMs, and it sucks about the same as mplayer, and in about the same ways, th

Oh, and even though I have libdvdcss installed (as evidenced by the fact that Ogle actually works) Xine won't play the same disc that Ogle will play. It seems to be claiming that the CSS stuff isn't installed, which it clearly is.

An idiocy that all of these programs have in common is that, in addition to opening a window for the movie, and a window for the control panel, they also spray a constant spatter of curses crud on the terminal they were started from. I imagine at some point, there was some user who said, ``this program is pretty nice, but you know what it's missing? It's missing a lot of pointless chatter about what plugins and fonts have been loaded!''

-
And here's the Random Commentary section: +
And here's the Random Commentary section:
Makali wrote:
    Whenever a programmer thinks, "Hey, skins, what a cool idea", their computer's speakers should create some sort of cock-shaped soundwave and plunge it repeatedly through their skulls. -

I am fully in support of this proposed audio-cock technology.

+ +

I am fully in support of this proposed audio-cock technology.

Various people wrote:

    You shouldn't even bother compiling the GUI into mplayer! -

So I should solve the problem of ``crappy GUI'' by replacing it with ``no GUI at all?'' I should use the program only from the command line, or by memorizing magic keystrokes? Awesome idea.

+ +

So I should solve the problem of ``crappy GUI'' by replacing it with ``no GUI at all?'' I should use the program only from the command line, or by memorizing magic keystrokes? Awesome idea.

Various other people wrote:

    You didn't try vlc! -

True, I hadn't. Now I have. It has an overly-complicated UI, (the Preferences panel is a festival of overkill) but at least it uses standard menus and buttons, so it doesn't make you want to claw your eyes out immediately. But, it can only play a miniscule number of video formats, so it's mostly useless. *plonk*

+ +

True, I hadn't. Now I have. It has an overly-complicated UI, (the Preferences panel is a festival of overkill) but at least it uses standard menus and buttons, so it doesn't make you want to claw your eyes out immediately. But, it can only play a miniscule number of video formats, so it's mostly useless. *plonk*

Someone else wrote:

    Have you considered changing distributions? -

Yes, every single time I try something like this, I very seriously consider getting a Mac.

+ +

Yes, every single time I try something like this, I very seriously consider getting a Mac.

Really the only thing that's stopping me is that I fear the Emacs situation.

(By which I mean, ``Lack of a usable version thereof.'' No, running RMSmacs inside a terminal window doesn't qualify. Nor does running an X server on the Mac: if I were going to switch, why in the world would I continue inflicting the X Windows Disaster on myself? Wouldn't getting away from that be the whole point?)

-
    (I understand there is an almost-functional Aqua version of +

    By the way, the suggestion to switch Linux distrubutions in order to get a single app to work might sound absurd at first. And that's because it is. But I've been saturated with Unix-peanut-gallery effluvia for so long that it no longer even surprises me when every +

+

By the way, the suggestion to switch Linux distrubutions in order to get a single app to work might sound absurd at first. And that's because it is. But I've been saturated with Unix-peanut-gallery effluvia for so long that it no longer even surprises me when every question -- no matter how simple -- results in someone suggesting that you either A) patch your kernel or B) change distros. It's inevitable and inescapable, like Hitler.

-
-

[ up ]

+
+ +

[ up ]

\ No newline at end of file diff --git a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/telegraph/expected-metadata.json b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/telegraph/expected-metadata.json index be19af16d..26924de7f 100644 --- a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/telegraph/expected-metadata.json +++ b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/telegraph/expected-metadata.json @@ -1,8 +1,8 @@ { - "Author": "Our Foreign Staff \n \n\n16 November 2017 • 2:15pm", + "Author": null, "Direction": null, - "Excerpt": "Zimbabwe President Robert Mugabe, his wife Grace and two key figures from her G40 political faction are under house arrest at Mugabe's "Blue House" compound in Harare and are insisting the 93 year-old finishes his presidential term, a source said.", + "Excerpt": "Zimbabwe President Robert Mugabe, his wife Grace and two key figures from her G40 political faction are under house arrest at Mugabe's \"Blue House\" compound in Harare and are insisting the 93 year-old finishes his presidential term, a source said.", "Image": "http:\/\/www.telegraph.co.uk\/content\/dam\/news\/2017\/11\/16\/TELEMMGLPICT000146889449-xlarge_trans_NvBQzQNjv4BqySoB6nTCgtc7U4LQ_FPO4hKi2sT3vi7ux2-RDZwC4QA.jpeg", "Title": "Zimbabwe coup: Robert Mugabe and wife Grace 'insisting he finishes his term', as priest steps in to mediate", "SiteName": "The Telegraph" -} +} \ No newline at end of file diff --git a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/telegraph/expected.html b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/telegraph/expected.html index 23a2a74ed..352b47d57 100644 --- a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/telegraph/expected.html +++ b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/telegraph/expected.html @@ -1,38 +1,20 @@
-
-

Zimbabwe President Robert Mugabe, his wife Grace and two key figures from her G40 political faction are under house arrest at Mugabe's "Blue House" compound in Harare and are insisting the 93 year-old finishes his presidential term, a source said.

The G40 figures are cabinet ministers Jonathan Moyo and Saviour Kasukuwere, who fled to the compound after their homes were attacked by troops in Tuesday night's coup, the source, who said he had spoken to people inside the compound, told Reuters.

Mr Mugabe is resisting mediation by a Catholic priest to allow the former guerrilla a graceful exit after the military takeover.

The priest, Fidelis Mukonori, is acting as a middle-man between Mr Mugabe and the generals, who seized power in a targeted operation against "criminals" in his entourage, a senior political source told Reuters.

The source could not provide details of the talks, which appear to be aimed at a smooth and bloodless transition after the departure of Mr Mugabe, who has led Zimbabwe since independence in 1980.

Mr Mugabe, still seen by many Africans as a liberation hero, is reviled in the West as a despot whose disastrous handling of the economy and willingness to resort to violence to maintain power destroyed one of Africa's most promising states.

-
-
-
-
+

Zimbabwean intelligence reports seen by Reuters suggest that former security chief Emmerson Mnangagwa, who was ousted as vice-president this month, has been mapping out a post-Mugabe vision with the military and opposition for more than a year.

-
-
-
-
+

Fuelling speculation that Mnangagwa's plan might be rolling into action, opposition leader Morgan Tsvangirai, who has been receiving cancer treatment in Britain and South Africa, returned to Harare late on Wednesday, his spokesman said.

South Africa said Mr Mugabe had told President Jacob Zuma by telephone on Wednesday that he was confined to his home but was otherwise fine and the military said it was keeping him and his family, including wife Grace, safe.

-
-
-
-
-
+

Despite the lingering admiration for Mr Mugabe, there is little public affection for 52-year-old Grace, a former government typist who started having an affair with Mr Mugabe in the early 1990s as his first wife, Sally, was dying of kidney disease.

Dubbed "DisGrace" or "Gucci Grace" on account of her reputed love of shopping, she enjoyed a meteoric rise through the ranks of Mugabe's ruling Zanu-PF in the last two years, culminating in Mnangagwa's removal a week ago - a move seen as clearing the way for her to succeed her husband.

-
-
-
-
+

In contrast to the high political drama unfolding behind closed doors, the streets of the capital remained calm, with people going about their daily business, albeit under the watch of soldiers on armoured vehicles at strategic locations.

-
-
-
+

Whatever the final outcome, the events could signal a once-in-a-generation change for the former British colony, a regional breadbasket reduced to destitution by economic policies Mr Mugabe's critics have long blamed on him.

-
-
\ No newline at end of file +
\ No newline at end of file diff --git a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/title-and-h1-discrepancy/expected.html b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/title-and-h1-discrepancy/expected.html index e4fa77ae9..8eded27c6 100644 --- a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/title-and-h1-discrepancy/expected.html +++ b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/title-and-h1-discrepancy/expected.html @@ -1,4 +1,5 @@
+

This is a long title with a colon: But the final text here is different

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod diff --git a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/tmz-1/expected.html b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/tmz-1/expected.html index 6eb48b97d..6849dfe5a 100644 --- a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/tmz-1/expected.html +++ b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/tmz-1/expected.html @@ -1,6 +1,6 @@

-

Lupita Nyong'o

+

$150K Pearl Oscar Dress ... STOLEN!!!!

@@ -13,22 +13,23 @@

EXCLUSIVE

- 0225-lupita-nyongo-getty-01Lupita Nyong'o's now-famous Oscar dress + 0225-lupita-nyongo-getty-01Lupita Nyong'o's now-famous Oscar dress -- adorned in pearls -- was stolen right out of her hotel room ... TMZ has learned.

Law enforcement sources tell TMZ ... the dress was taken out of Lupita's room at The London West Hollywood. The dress is made of pearls ... 6,000 white Akoya pearls. It's valued at $150,000.

Our sources say Lupita told cops it was taken from her room sometime between - 8 AM and 9 PM Wednesday ... while she was gone.  

+ 8 AM and 9 PM Wednesday ... while she was gone.  

We're told there is security footage that cops are looking at that could - catch the culprit right in the act. 

+ catch the culprit right in the act. 

- update_graphic_red_bar12:00 PM PT -- Sheriff's deputies were at The London Thursday - morning.  We know they were in the manager's office and we're told + update_graphic_red_bar12:00 PM PT -- Sheriff's deputies were at The London Thursday + morning.  We know they were in the manager's office and we're told they have looked at security footage to determine if they can ID the culprit.

- 0226-SUB-london-hotel-swipe-tmz-02

+ 0226-SUB-london-hotel-swipe-tmz-02 +

\ No newline at end of file diff --git a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/tumblr/expected.html b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/tumblr/expected.html index 56df59658..92cea2194 100644 --- a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/tumblr/expected.html +++ b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/tumblr/expected.html @@ -1,11 +1,4 @@ -
-
- - -
+

Minecraft 1.8 - The Bountiful Update

-

+ Added Granite, Andesite, and Diorite stone blocks, with smooth versions

+ Added Slime Block

+ Added Iron Trapdoor

+ Added Prismarine and Sea Lantern blocks

+ Added the Ocean Monument

+ Added Red Sandstone

+ Added Banners

+ Added Armor Stands

+ Added Coarse Dirt (dirt where grass won’t grow)

+ Added Guardian mobs, with item drops

+ Added Endermite mob

+ Added Rabbits, with item drops

+ Added Mutton and Cooked Mutton

+ Villagers will harvest crops and plant new ones

+ Mossy Cobblestone and Mossy Stone Bricks are now craftable

+ Chiseled Stone Bricks are now craftable

+ Doors and fences now come in all wood type variants

+ Sponge block has regained its water-absorbing ability and becomes wet

+ Added a spectator game mode (game mode 3)

+ Added one new achievement

+ Added “Customized” world type

+ Added hidden “Debug Mode” world type

+ Worlds can now have a world barrier

+ Added @e target selector for Command Blocks

+ Added /blockdata command

+ Added /clone command

+ Added /execute command

+ Added /fill command

+ Added /particle command

+ Added /testforblocks command

+ Added /title command

+ Added /trigger command

+ Added /worldborder command

+ Added /stats command

+ Containers can be locked in custom maps by using the “Lock” data tag

+ Added logAdminCommands, showDeathMessages, reducedDebugInfo, sendCommandFeedback, and randomTickSpeed game rules

+ Added three new statistics

+ Player skins can now have double layers across the whole model, and left/right arms/legs can be edited independently

+ Added a new player model with smaller arms, and a new player skin called Alex?

+ Added options for configuring what pieces of the skin that are visible

+ Blocks can now have custom visual variations in the resource packs

+ Minecraft Realms now has an activity chart, so you can see who has been online

+ Minecraft Realms now lets you upload your maps

* Difficulty setting is saved per world, and can be locked if wanted

* Enchanting has been redone, now costs lapis lazuli in addition to enchantment levels

* Villager trading has been rebalanced

* Anvil repairing has been rebalanced

* Considerable faster client-side performance

* Max render distance has been increased to 32 chunks (512 blocks)

* Adventure mode now prevents you from destroying blocks, unless your items have the CanDestroy data tag

* Resource packs can now also define the shape of blocks and items, and not just their textures

* Scoreboards have been given a lot of new features

* Tweaked the F3 debug screen

* Block ID numbers (such as 1 for stone), are being replaced by ID names (such as minecraft:stone)

* Server list has been improved

* A few minor changes to village and temple generation

* Mob heads for players now show both skin layers

* Buttons can now be placed on the ceiling

* Lots and lots of other changes

* LOTS AND LOTS of other changes

- Removed Herobrine

-
- -
-
\ No newline at end of file +

+ Added Granite, Andesite, and Diorite stone blocks, with smooth versions
+ Added Slime Block
+ Added Iron Trapdoor
+ Added Prismarine and Sea Lantern blocks
+ Added the Ocean Monument
+ Added Red Sandstone
+ Added Banners
+ Added Armor Stands
+ Added Coarse Dirt (dirt where grass won’t grow)
+ Added Guardian mobs, with item drops
+ Added Endermite mob
+ Added Rabbits, with item drops
+ Added Mutton and Cooked Mutton
+ Villagers will harvest crops and plant new ones
+ Mossy Cobblestone and Mossy Stone Bricks are now craftable
+ Chiseled Stone Bricks are now craftable
+ Doors and fences now come in all wood type variants
+ Sponge block has regained its water-absorbing ability and becomes wet
+ Added a spectator game mode (game mode 3)
+ Added one new achievement
+ Added “Customized” world type
+ Added hidden “Debug Mode” world type
+ Worlds can now have a world barrier
+ Added @e target selector for Command Blocks
+ Added /blockdata command
+ Added /clone command
+ Added /execute command
+ Added /fill command
+ Added /particle command
+ Added /testforblocks command
+ Added /title command
+ Added /trigger command
+ Added /worldborder command
+ Added /stats command
+ Containers can be locked in custom maps by using the “Lock” data tag
+ Added logAdminCommands, showDeathMessages, reducedDebugInfo, sendCommandFeedback, and randomTickSpeed game rules
+ Added three new statistics
+ Player skins can now have double layers across the whole model, and left/right arms/legs can be edited independently
+ Added a new player model with smaller arms, and a new player skin called Alex?
+ Added options for configuring what pieces of the skin that are visible
+ Blocks can now have custom visual variations in the resource packs
+ Minecraft Realms now has an activity chart, so you can see who has been online
+ Minecraft Realms now lets you upload your maps
* Difficulty setting is saved per world, and can be locked if wanted
* Enchanting has been redone, now costs lapis lazuli in addition to enchantment levels
* Villager trading has been rebalanced
* Anvil repairing has been rebalanced
* Considerable faster client-side performance
* Max render distance has been increased to 32 chunks (512 blocks)
* Adventure mode now prevents you from destroying blocks, unless your items have the CanDestroy data tag
* Resource packs can now also define the shape of blocks and items, and not just their textures
* Scoreboards have been given a lot of new features
* Tweaked the F3 debug screen
* Block ID numbers (such as 1 for stone), are being replaced by ID names (such as minecraft:stone)
* Server list has been improved
* A few minor changes to village and temple generation
* Mob heads for players now show both skin layers
* Buttons can now be placed on the ceiling
* Lots and lots of other changes
* LOTS AND LOTS of other changes
- Removed Herobrine

+
\ No newline at end of file diff --git a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/uses-getfirstelementchild-function/expected.html b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/uses-getfirstelementchild-function/expected.html index 21644834f..09cd2478d 100644 --- a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/uses-getfirstelementchild-function/expected.html +++ b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/uses-getfirstelementchild-function/expected.html @@ -1,9 +1,11 @@ -
-
-

+
+

+

-

+
+ +

General Info

The Seattle Thunderbirds are excited to announce the dates of their annual Summer Hockey Clinic! This three day hockey school will feature top level instruction, both on and off-ice, from Thunderbirds players and coaches. Each day @@ -21,8 +23,8 @@ You will begin your daily training on-ice and complete the day off-ice (see the next page for a complete schedule). Please come prepared with appropriate work-out gear and sneakers!

-

• GROUP A: 7, 8 & 9 yrs old $125

• GROUP B: 10 & 11 yrs old $125

• GROUP - C: 12, 13 & 14 yrs old $125

• ADULTS: 18 & Over $160

+

• GROUP A: 7, 8 & 9 yrs old $125
• GROUP B: 10 & 11 yrs old $125
• GROUP + C: 12, 13 & 14 yrs old $125
• ADULTS: 18 & Over $160

To reserve your space in the T-Birds Summer Hockey Clinic and receive your Ticket Special, fill out the registration form on reverse. Space is limited and @@ -31,17 +33,17 @@ hockey players of all ages to improve their skills and enjoy their time with us. To help ensure this, the Thunderbirds\' training staff will be at the clinic for its entirety.

-

Elevate your game!

Improve your skating…

• lengthen your stride

- • gain power

• balance and agility

-

Improve your puck skills…

• puck control and deking

• power moves +

Elevate your game!
Improve your skating…
• lengthen your stride
+ • gain power
• balance and agility

+

Improve your puck skills…
• puck control and deking
• power moves and puck protection

-

Improve your passing and team play…

• puck support and \'ice - vision\'

• shooting for accuracy vs rebounds

• game systems

-



Instructors: Instructors for the 2007 Summer Hockey Clinics will +

Improve your passing and team play…
• puck support and \'ice + vision\'
• shooting for accuracy vs rebounds
• game systems

+


Instructors: Instructors for the 2007 Summer Hockey Clinics will include Seattle Thunderbirds Head Coach Rob Sumner, Assistant Coach Turner Stevenson, past Thunderbirds Ryan Gibbons and Tyler Metcalfe and past and present Seattle Thunderbirds players.

- +

When/Where

The Thunderbirds Summer Hockey Clinic will take place from Tuesday, August 14th, through Thursday, August 16th, at Kingsgate Ice Arena, 14326 124th Ave. NE, Kirkland, WA 98034.

@@ -49,67 +51,124 @@ certified helmet with full facemask. Youth players must also wear a mouth guard. Adult players may wear a half visor, however full cages and mouth guards are highly recommended.

- -

• To register and pay for your clinic online, compelte the form below

• +


Registration

+

• To register and pay for your clinic online, compelte the form below
• To register and pay for your clinic via mail, click here to download the registration form

- + + +
+ + + + - + +

Summer Hockey Clinic Registration Form

-
- + + + + + -

Player Name

+ + + + - + + + - + + + - + + + - + + + - + + + - + + - - - - - + + + + + + + + + + - - + + + - + + - - - + + + + + + + + + - - - + + + + + + + + -

Player Name

Email Address

Email Address

Birthdate

Birthdate

Address

Address

City/St

City/St

Zip

Day Phone

Day Phone

Eve Phone

Please indicate your curreny hockey association or +

Please indicate your curreny hockey association or league:

SKAHA   SJHA    KVAHA    - GSHL    Other

If other, pelase specify:

Position:

Forward    Defense    Goalie

+

SKAHA   SJHA    KVAHA    + GSHL    Other

If other, pelase specify:

Position:

Forward    Defense    Goalie

Jersey Size

S   M    L    XL    +

Jersey Size

S   M    L    XL    XXL

I want to purchase the following T-Birds Summer Hockey +

I want to purchase the following T-Birds Summer Hockey Clinic:

- - - - -

GROUP A

7, 8 & 9

$125

GROUP B

10 & 11

$125

GROUP C

12, 13 & 14

- $125

ADULTS

18 & Over

$160

 

Waiver and Release

By checking this box, I understand that participation + + + + + + + + + +

GROUP A
7, 8 & 9
$125
+

GROUP B
10 & 11
$125
+

GROUP C
12, 13 & 14
+ $125

ADULTS
18 & Over
$160
+

+

 

Waiver and Release

By checking this box, I understand that participation of the sport constitutes a risk to me (or my child). I voluntarily recognize, accept and assume risk and release the Seattle Thunderbirds and Kingsgate Arena from any and all liability.

Once you click submit, you will be +

Once you click submit, you will be given the link to continue to online payment

+
+
+
-
-
\ No newline at end of file +
\ No newline at end of file diff --git a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/wapo-1/expected.html b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/wapo-1/expected.html index ed051e882..7fd81feaf 100644 --- a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/wapo-1/expected.html +++ b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/wapo-1/expected.html @@ -1,4 +1,5 @@
+

CAIRO — Gunmen opened fire on visitors at Tunisia’s most renowned museum on Wednesday, killing at least 19 people, including 17 foreigners, in an assault that threatened to upset the fragile @@ -112,7 +113,9 @@

In January, Libyan militants loyal to the Islamic State beheaded 21 Christians — 20 of them Egyptian Copts — along the country’s coast. They later seized the Libyan city of Sirte.

-



+

+
+

Officials are worried about the number of Tunisian militants who may have joined the jihadists in Libya — with the goal of returning home to fight the Tunis government.

diff --git a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/wapo-2/expected.html b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/wapo-2/expected.html index cb2a8ceda..d87cb3755 100644 --- a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/wapo-2/expected.html +++ b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/wapo-2/expected.html @@ -1,6 +1,8 @@

-

Israeli Prime Minister Benjamin Netanyahu reacts as he visits the Western Wall in Jerusalem on March 18 following his party's victory in Israel's general election. (Thomas Coex/AFP/Getty Images) -

President Obama told the U.N. General Assembly 18 months ago that he would + +
Israeli Prime Minister Benjamin Netanyahu reacts as he visits the Western Wall in Jerusalem on March 18 following his party's victory in Israel's general election. (Thomas Coex/AFP/Getty Images) +

+

President Obama told the U.N. General Assembly 18 months ago that he would seek “real breakthroughs on these two issues — Iran’s nuclear program and ­Israeli-Palestinian peace.”

But Benjamin Netanyahu’s triumph in Tuesday’s @@ -95,7 +97,7 @@

“That could be an issue forced onto the agenda about the same time as a potential nuclear deal.”

-

Steven Mufson covers the White House. Since joining The Post, he has covered +

Steven Mufson covers the White House. Since joining The Post, he has covered economics, China, foreign policy and energy.

\ No newline at end of file diff --git a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/webmd-2/expected.html b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/webmd-2/expected.html index d9e181691..f9f1d5d73 100644 --- a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/webmd-2/expected.html +++ b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/webmd-2/expected.html @@ -6,18 +6,19 @@ -

April 17, 2015 -- Imagine being sick in the hospital with a bacterial infection and doctors can't stop it from spreading. This so-called "superbug" scenario is not science fiction. It's an urgent, worldwide worry that is prompting swift action.

+

April 17, 2015 -- Imagine being sick in the hospital with a bacterial infection and doctors can't stop it from spreading. This so-called "superbug" scenario is not science fiction. It's an urgent, worldwide worry that is prompting swift action.

Every year, about 2 million people get sick from a superbug, according to the CDC. About 23,000 die. Earlier this year, an outbreak of CRE (carbapenem-resistant enterobacteriaceae) linked to contaminated medical tools sickened 11 people at two Los-Angeles area hospitals. Two people died, and more than 200 others may have been exposed.

-

The White House recently released a comprehensive plan outlining steps to combat drug-resistant bacteria. The plan identifies three "urgent" and several "serious" threats. We asked infectious disease experts to explain what some of them are and when to worry.

+

The White House recently released a comprehensive plan outlining steps to combat drug-resistant bacteria. The plan identifies three "urgent" and several "serious" threats. We asked infectious disease experts to explain what some of them are and when to worry.

+

But First: What's a Superbug?

-

It's a term coined by the media to describe bacteria that cannot be killed using multiple antibiotics. "It resonates because it's scary," says Stephen Calderwood, MD, president of the Infectious Diseases Society of America. "But in fairness, there is no real definition."

+

It's a term coined by the media to describe bacteria that cannot be killed using multiple antibiotics. "It resonates because it's scary," says Stephen Calderwood, MD, president of the Infectious Diseases Society of America. "But in fairness, there is no real definition."

Instead, doctors often use phrases like "multidrug-resistant bacteria." That's because a superbug isn't necessarily resistant to all antibiotics. It refers to bacteria that can't be treated using two or more, says Brian K. Coombes, PhD, of McMaster University in Ontario.

Any species of bacteria can turn into a superbug.

Misusing antibiotics (such as taking them when you don't need them or not finishing all of your medicine) is the "single leading factor" contributing to this problem, the CDC says. The concern is that eventually doctors will run out of antibiotics to treat them.

"What the public should know is that the more antibiotics you’ve taken, the higher your superbug risk," says Eric Biondi, MD, who runs a program to decrease unnecessary antibiotic use. "The more encounters you have with the hospital setting, the higher your superbug risk."

-

"Superbugs should be a concern to everyone," Coombes says. "Antibiotics are the foundation on which all modern medicine rests. Cancer chemotherapy, organ transplants, surgeries, and childbirth all rely on antibiotics to prevent infections. If you can't treat those, then we lose the medical advances we have made in the last 50 years."

+

"Superbugs should be a concern to everyone," Coombes says. "Antibiotics are the foundation on which all modern medicine rests. Cancer chemotherapy, organ transplants, surgeries, and childbirth all rely on antibiotics to prevent infections. If you can't treat those, then we lose the medical advances we have made in the last 50 years."

Here are some of the growing superbug threats identified in the 2015 White House report.

\ No newline at end of file diff --git a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/wikia/expected.html b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/wikia/expected.html index de18ee3f3..eb8eb6e55 100644 --- a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/wikia/expected.html +++ b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/wikia/expected.html @@ -1,25 +1,26 @@
-

Although Lucasfilm is already planning a birthday bash for the Star Wars Saga at Celebration Orlando this April, fans might get another present for the saga’s 40th anniversary. According to fan site MakingStarWars.net, rumors abound that Lucasfilm might re-release the unaltered cuts of the saga’s original trilogy.

+

Although Lucasfilm is already planning a birthday bash for the Star Wars Saga at Celebration Orlando this April, fans might get another present for the saga’s 40th anniversary. According to fan site MakingStarWars.net, rumors abound that Lucasfilm might re-release the unaltered cuts of the saga’s original trilogy.

If the rumors are true, this is big news for Star Wars fans. Aside from limited VHS releases, the unaltered cuts of the original trilogy films haven’t been available since they premiered in theaters in the 1970s and ’80s. If Lucasfilm indeed re-releases the films’ original cuts, then this will be the first time in decades that fans can see the films in their original forms. Here’s what makes the unaltered cuts of the original trilogy so special.

The Star Wars Special Editions Caused Controversy - star wars han solo + star wars han solo

-

Thanks to the commercial success of Star Wars, George Lucas has revisited and further edited his films for re-releases. The most notable — and controversial — release were the Special Editions of the original trilogy. In 1997, to celebrate the saga’s 20th anniversary, Lucasfilm spent a total of $15 million to remaster A New Hope, The Empire Strikes Back, and Return of the Jedi. The Special Editions had stints in theaters before moving to home media.

-

Although most of the Special Editions’ changes were cosmetic, others significantly affected the plot of the films. The most notable example is the “Han shot first” scene in A New Hope. As a result, the Special Editions generated significant controversy among Star Wars fans. Many fans remain skeptical about George Lucas’s decision to finish each original trilogy film “the way it was meant to be.”

+

Thanks to the commercial success of Star Wars, George Lucas has revisited and further edited his films for re-releases. The most notable — and controversial — release were the Special Editions of the original trilogy. In 1997, to celebrate the saga’s 20th anniversary, Lucasfilm spent a total of $15 million to remaster A New Hope, The Empire Strikes Back, and Return of the Jedi. The Special Editions had stints in theaters before moving to home media.

+

Although most of the Special Editions’ changes were cosmetic, others significantly affected the plot of the films. The most notable example is the “Han shot first” scene in A New Hope. As a result, the Special Editions generated significant controversy among Star Wars fans. Many fans remain skeptical about George Lucas’s decision to finish each original trilogy film “the way it was meant to be.”

- star wars + star wars

-

While the Special Editions represent the most significant edits to the original trilogy, the saga has undergone other changes. Following up on the saga’s first Blu-ray release in 2011, Industrial Light & Magic (ILM) began remastering the entire saga in 3D, starting with the prequel trilogy. The Phantom Menace saw a theatrical 3D re-release in 2012, but Disney’s 2012 acquisition of Lucasfilm indefinitely postponed further 3D releases.

-

In 2015, Attack of the Clones and Revenge of the Sith received limited 3D showings at Celebration Anaheim. Other than that, it seems as though Disney has decided to refocus Lucasfilm’s efforts to new films. Of course, that’s why the saga has produced new content beginning with The Force Awakens. However, it looks like Lucasfilm isn’t likely to generate 3D versions of the original trilogy anytime soon.

+

While the Special Editions represent the most significant edits to the original trilogy, the saga has undergone other changes. Following up on the saga’s first Blu-ray release in 2011, Industrial Light & Magic (ILM) began remastering the entire saga in 3D, starting with the prequel trilogy. The Phantom Menace saw a theatrical 3D re-release in 2012, but Disney’s 2012 acquisition of Lucasfilm indefinitely postponed further 3D releases.

+

In 2015, Attack of the Clones and Revenge of the Sith received limited 3D showings at Celebration Anaheim. Other than that, it seems as though Disney has decided to refocus Lucasfilm’s efforts to new films. Of course, that’s why the saga has produced new content beginning with The Force Awakens. However, it looks like Lucasfilm isn’t likely to generate 3D versions of the original trilogy anytime soon.

Why the Original Film Cuts Matter

- +

-

Admittedly, the differences between the original trilogy’s unaltered cuts and the Special Editions appeal to more hardcore fans. Casual fans are less likely to care about whether Greedo or Han Solo shot first. Still, given Star Wars’ indelible impact on pop culture, there’s certainly a market for the original trilogy’s unaltered cuts. They might not be for every Star Wars fan, but many of us care about them.

-

ILM supervisor John Knoll, who first pitched the story idea for Rogue One, said last year that ILM finished a brand new 4K restoration print of A New Hope. For that reason, it seems likely that Lucasfilm will finally give diehard fans the original film cuts that they’ve clamored for. There’s no word yet whether the unaltered cuts will be released in theaters or on home media. At the very least, however, fans will likely get them after all this time. After all, the Special Editions marked the saga’s 20th anniversary. Star Wars turns 40 years old this year, so there’s no telling what’s in store.

-

+

Admittedly, the differences between the original trilogy’s unaltered cuts and the Special Editions appeal to more hardcore fans. Casual fans are less likely to care about whether Greedo or Han Solo shot first. Still, given Star Wars’ indelible impact on pop culture, there’s certainly a market for the original trilogy’s unaltered cuts. They might not be for every Star Wars fan, but many of us care about them.

+

ILM supervisor John Knoll, who first pitched the story idea for Rogue One, said last year that ILM finished a brand new 4K restoration print of A New Hope. For that reason, it seems likely that Lucasfilm will finally give diehard fans the original film cuts that they’ve clamored for. There’s no word yet whether the unaltered cuts will be released in theaters or on home media. At the very least, however, fans will likely get them after all this time. After all, the Special Editions marked the saga’s 20th anniversary. Star Wars turns 40 years old this year, so there’s no telling what’s in store.

+
+

- Would you like to be part of the Fandom team? Join our Fan Contributor Program and share your voice on Fandom.com! + Would you like to be part of the Fandom team? Join our Fan Contributor Program and share your voice on Fandom.com!

diff --git a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/wikipedia/expected-images.json b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/wikipedia/expected-images.json index 81d1c9d4d..fc1eaf642 100644 --- a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/wikipedia/expected-images.json +++ b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/wikipedia/expected-images.json @@ -1,4 +1,5 @@ [ + "http:\/\/upload.wikimedia.org\/wikipedia\/commons\/thumb\/5\/5c\/Mozilla_dinosaur_head_logo.png\/200px-Mozilla_dinosaur_head_logo.png", "http:\/\/upload.wikimedia.org\/wikipedia\/commons\/thumb\/7\/76\/Mozilla_Firefox_logo_2013.svg\/220px-Mozilla_Firefox_logo_2013.svg.png", "http:\/\/upload.wikimedia.org\/wikipedia\/commons\/0\/0d\/SeaMonkey.png", "http:\/\/upload.wikimedia.org\/wikipedia\/commons\/thumb\/d\/d7\/Buggie.svg\/220px-Buggie.svg.png", diff --git a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/wikipedia/expected.html b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/wikipedia/expected.html index 8de3ffabc..0764fb833 100644 --- a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/wikipedia/expected.html +++ b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/wikipedia/expected.html @@ -1,5 +1,45 @@ -
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Mozilla
+ Mozilla dinosaur head logo.png +
IndustryOpen-source software
FoundedFebruary 28, 1998; 18 years ago +
FounderNetscape Communications Corporation
ProductsMozilla Application Suite
Divisions + +
Websitemozilla.org/,%20https://www.mozilla.org/tr/

Mozilla is a free-software community, created in 1998 by members of Netscape. The Mozilla community uses, develops, spreads and supports Mozilla products, thereby promoting exclusively free software and open standards, with only minor exceptions.[1] The community is supported institutionally by the Mozilla Foundation and its tax-paying subsidiary, the Mozilla Corporation.[2]

Mozilla produces many products such as the Firefox web browser, Thunderbird e-mail client, Firefox Mobile web browser, Firefox OS mobile operating system, Bugzilla bug tracking system and other projects.

@@ -10,8 +50,8 @@

On January 23, 1998, Netscape made two announcements: first, that Netscape Communicator will be free; second, that the source code will also be free.[3] One day later, Jamie Zawinski from Netscape registered mozilla.org.[4] The project was named Mozilla after the original code name of the Netscape Navigator browser which is a blending of "Mosaic and Godzilla"[5] and used to co-ordinate the development of the Mozilla Application Suite, the open source version of Netscape's internet software, Netscape Communicator.[6][7] Jamie Zawinski says he came up with the name "Mozilla" at a Netscape staff meeting.[8][9] A small group of Netscape employees were tasked with coordination of the new community.

Originally, Mozilla aimed to be a technology provider for companies, such as Netscape, who would commercialize their open source code.[10] When AOL (Netscape's parent company) greatly reduced its involvement with Mozilla in July 2003, the Mozilla Foundation was designated the legal steward of the project.[11] Soon after, Mozilla deprecated the Mozilla Suite in favor of creating independent applications for each function, primarily the Firefox web browser and the Thunderbird email client, and moved to supply them directly to the public.[12]

Recently, Mozilla's activities have expanded to include Firefox on mobile platforms (primarily Android),[13] a mobile OS called Firefox OS,[14] a web-based identity system called Mozilla Persona and a marketplace for HTML5 applications.[15]

-

In a report released in November 2012, Mozilla reported that their total revenue for 2011 was $163 million, which was up 33% from $123 million in 2010. Mozilla noted that roughly 85% of their revenue comes from their contract with Google.[16]

-

At the end of 2013, Mozilla announced a deal with Cisco Systems whereby Firefox would download and use a Cisco-provided binary build of an open source[17]codec to play the proprietary H.264 video format.[18][19] As part of the deal, Cisco would pay any patent licensing fees associated with the binaries that it distributes. Mozilla's CTO, Brendan Eich, acknowledged that this is "not a complete solution" and isn't "perfect".[20] An employee in Mozilla's video formats team, writing in an unofficial capacity, justified[21] it by the need to maintain their large user base, which would be necessary in future battles for truly free video formats.

+

In a report released in November 2012, Mozilla reported that their total revenue for 2011 was $163 million, which was up 33% from $123 million in 2010. Mozilla noted that roughly 85% of their revenue comes from their contract with Google.[16]

+

At the end of 2013, Mozilla announced a deal with Cisco Systems whereby Firefox would download and use a Cisco-provided binary build of an open source[17] codec to play the proprietary H.264 video format.[18][19] As part of the deal, Cisco would pay any patent licensing fees associated with the binaries that it distributes. Mozilla's CTO, Brendan Eich, acknowledged that this is "not a complete solution" and isn't "perfect".[20] An employee in Mozilla's video formats team, writing in an unofficial capacity, justified[21] it by the need to maintain their large user base, which would be necessary in future battles for truly free video formats.

In December 2013, Mozilla announced funding for the development of non-free games[22] through its Game Creator Challenge. However, even those games that may be released under a non-free software or open source license must be made with open web technologies and Javascript as per the work criteria outlined in the announcement.

Eich CEO promotion controversy[edit]

@@ -28,19 +68,19 @@

According to the Mozilla Foundation:[41]

The Mozilla Foundation pledges to support the Mozilla Manifesto in its activities. Specifically, we will:

-
  • Build and enable open-source technologies and communities that support the Manifesto’s principles;
  • +
      +
    • Build and enable open-source technologies and communities that support the Manifesto’s principles;
    • Build and deliver great consumer products that support the Manifesto’s principles;
    • Use the Mozilla assets (intellectual property such as copyrights and trademarks, infrastructure, funds, and reputation) to keep the Internet an open platform;
    • Promote models for creating economic value for the public benefit; and
    • Promote the Mozilla Manifesto principles in public discourse and within the Internet industry.
    • -
+ +

Software[edit]

-
-

+

-

Firefox[edit]

@@ -52,7 +92,7 @@

Firefox Mobile (codenamed Fennec) is the build of the Mozilla Firefox web browser for devices such as smartphones and tablet computers.

Firefox Mobile uses the same Gecko layout engine as Mozilla Firefox. For example, version 1.0 used the same engine as Firefox 3.6, and the following release, 4.0, shared core code with Firefox 4.0. Its features include HTML5 support, Firefox Sync, add-ons support and tabbed browsing.[50]

-

Firefox Mobile is currently available for Android 2.2 and above devices with an ARMv7 or ARMv6 CPU.[51] The x86 architecture is not officially supported.[52]Tristan Nitot, president of Mozilla Europe, has said that it's unlikely that an iPhone or a BlackBerry version will be released, citing Apple's iTunes Store application approval policies (which forbid applications competing with Apple's own, and forbid engines which run downloaded code) and BlackBerry's limited operating system as the reasons.[53]

+

Firefox Mobile is currently available for Android 2.2 and above devices with an ARMv7 or ARMv6 CPU.[51] The x86 architecture is not officially supported.[52] Tristan Nitot, president of Mozilla Europe, has said that it's unlikely that an iPhone or a BlackBerry version will be released, citing Apple's iTunes Store application approval policies (which forbid applications competing with Apple's own, and forbid engines which run downloaded code) and BlackBerry's limited operating system as the reasons.[53]

Firefox OS[edit]

@@ -67,10 +107,8 @@
-
-

+

-

SeaMonkey (formerly the Mozilla Application Suite) is a free and open source cross platform suite of Internet software components including a web browser component, a client for sending and receiving email and USENET newsgroup messages, an HTML editor (Mozilla Composer) and the ChatZilla IRC client.

On March 10, 2005, the Mozilla Foundation announced that it would not release any official versions of Mozilla Application Suite beyond 1.7.x, since it had now focused on the standalone applications Firefox and Thunderbird.[57] SeaMonkey is now maintained by the SeaMonkey Council, which has trademarked the SeaMonkey name with help from the Mozilla Foundation.[58] The Mozilla Foundation provides project hosting for the SeaMonkey developers.

@@ -78,10 +116,8 @@
-
-

+

-

Bugzilla is a web-based general-purpose bug tracking system, which was released as open source software by Netscape Communications in 1998 along with the rest of the Mozilla codebase, and is currently stewarded by Mozilla. It has been adopted by a variety of organizations for use as a bug tracking system for both free and open source software and proprietary projects and products, including the Mozilla Foundation, the Linux kernel, GNOME, KDE, Red Hat, Novell, Eclipse and LibreOffice.[59]

Components[edit]

@@ -147,38 +183,34 @@

Local communities[edit]

-
-

+

-

There are a number of sub-communities that exist based on their geographical locations, where contributors near each other work together on particular activities, such as localization, marketing, PR and user support.

Mozilla Reps[edit]

-
-

+

-

The Mozilla Reps program aims to empower and support volunteer Mozillians who want to become official representatives of Mozilla in their region/locale.

The program provides a simple framework and a specific set of tools to help Mozillians to organize and/or attend events, recruit and mentor new contributors, document and share activities, and support their local communities better.

When joining the program, a Mozilla Rep agrees to take on the following responsibilities:

-
  • Represent Mozilla in their country/region
  • +
      +
    • Represent Mozilla in their country/region
    • Promote the Mozilla Project and its mission
    • Build on and support existing/future local community efforts and programs
    • Inspire, recruit and support new contributors
    • Support and mentor future Mozilla Reps
    • Document clearly all their activities
    • -

    Conferences and events[edit] +

+

Conferences and events[edit]

Mozilla Festival[edit]

-
-

+

Speakers from the Knight Foundation discuss the future of news at the 2011 Mozilla Festival in London.

-

The Mozilla Festival is an annual event where hundreds of passionate people explore the Web, learn together and make things that can change the world. With the emphasis on making—the mantra of the Festival is "less yack, more hack." Journalists, coders, filmmakers, designers, educators, gamers, makers, youth and anyone else, from all over the world, are encouraged to attend, with attendees from more than 40 countries, working together at the intersection between freedom, the Web, and that years theme.

The event revolves around design challenges which address key issues based on the chosen theme for that years festival. In previous years the Mozilla Festival has focused on Learning, and Media, with the 2012 festival being based around making. The titles of the festival revolve around the main theme, freedom (as in freedom of speech not free beer), and the Web.

MozCamps[edit] @@ -190,237 +222,247 @@

See also[edit]

- +

References[edit]

-
  1. ^ For exceptions, see "Values" section below
  2. -
  3. ^ "About the Mozilla Corporation". Mozilla Foundation. +
      +
    1. ^ For exceptions, see "Values" section below
    2. +
    3. ^ "About the Mozilla Corporation". Mozilla Foundation.
    4. -
    5. ^ "Freeing the Source: The Story of Mozilla". Open Sources: Voices from the Open Source Revolution. Retrieved 2016-05-01. +
    6. ^ "Freeing the Source: The Story of Mozilla". Open Sources: Voices from the Open Source Revolution. Retrieved 2016-05-01.
    7. -
    8. ^ "Mozilla.org WHOIS, DNS, & Domain Info". DomainTools. Retrieved 1 May 2016. +
    9. ^ "Mozilla.org WHOIS, DNS, & Domain Info". DomainTools. Retrieved 1 May 2016.
    10. -
    11. ^ Payment, S. (2007). Marc Andreessen and Jim Clark: The Founders of Netscape. Rosen Publishing Group. ISBN 9781404207196. +
    12. ^ Payment, S. (2007). Marc Andreessen and Jim Clark: The Founders of Netscape. Rosen Publishing Group. ISBN 9781404207196.
    13. -
    14. ^ "Netscape Announces mozilla.org, a Dedicated Team and Web Site Supporting Development of Free Client Source Code". Netscape. Archived from the original on October 4, 2002. Retrieved 2012-08-21. +
    15. ^ "Netscape Announces mozilla.org, a Dedicated Team and Web Site Supporting Development of Free Client Source Code". Netscape. Archived from the original on October 4, 2002. Retrieved 2012-08-21.
    16. -
    17. ^ "Mac vendors ponder Netscape gambit.". Macworld. 1 May 1998. Retrieved 2012-08-19. +
    18. ^ "Mac vendors ponder Netscape gambit.". Macworld. 1 May 1998. Retrieved 2012-08-19.
    19. -
    20. ^ Zawinski, Jamie (1996). "nscp dorm". Retrieved 2007-10-12. +
    21. ^ Zawinski, Jamie (1996). "nscp dorm". Retrieved 2007-10-12.
    22. -
    23. ^ Dave Titus with assistance from Andrew Wong. "How was Mozilla born". +
    24. ^ Dave Titus with assistance from Andrew Wong. "How was Mozilla born".
    25. -
    26. ^ "Introduction to Mozilla Source Code". Mozilla. Retrieved 2012-08-18. However, mozilla.org wants to emphasize that these milestones are being produced for testing purposes only. +
    27. ^ "Introduction to Mozilla Source Code". Mozilla. Retrieved 2012-08-18. However, mozilla.org wants to emphasize that these milestones are being produced for testing purposes only.
    28. -
    29. ^ "mozilla.org Announces Launch of the Mozilla Foundation to Lead Open-Source Browser Efforts". Retrieved 2012-08-18. +
    30. ^ "mozilla.org Announces Launch of the Mozilla Foundation to Lead Open-Source Browser Efforts". Retrieved 2012-08-18.
    31. -
    32. ^ Eich, Brendan; David Hyatt (April 2, 2003). "mozilla development roadmap". Mozilla. Retrieved 2009-08-02. +
    33. ^ Eich, Brendan; David Hyatt (April 2, 2003). "mozilla development roadmap". Mozilla. Retrieved 2009-08-02.
    34. -
    35. ^ "Better Browsing on Your Android Smartphone". AllThingsD. Retrieved 2012-08-18. +
    36. ^ "Better Browsing on Your Android Smartphone". AllThingsD. Retrieved 2012-08-18.
    37. -
    38. ^ "Mozilla Releases Test Version of Firefox OS". PC Magazine. Retrieved 2012-08-18. +
    39. ^ "Mozilla Releases Test Version of Firefox OS". PC Magazine. Retrieved 2012-08-18.
    40. -
    41. ^ "Mozilla Marketplace is live, lets you run web apps like desktop programs". Engadget. Retrieved 2012-08-18. +
    42. ^ "Mozilla Marketplace is live, lets you run web apps like desktop programs". Engadget. Retrieved 2012-08-18.
    43. -
    44. ^ Lardinois, Frederic (November 15, 2012). "Mozilla Releases Annual Report For 2011: Revenue Up 33% To $163M, Majority From Google". techcrunch.com. +
    45. ^ Lardinois, Frederic (November 15, 2012). "Mozilla Releases Annual Report For 2011: Revenue Up 33% To $163M, Majority From Google". techcrunch.com.
    46. -
    47. ^ "cisco/openh264 · GitHub". github.com. Retrieved 2014-04-05. +
    48. ^ "cisco/openh264 · GitHub". github.com. Retrieved 2014-04-05.
    49. -
    50. ^ "Mozilla will add H.264 to Firefox as Cisco makes eleventh-hour push for WebRTC's future — Tech News and Analysis". gigaom.com. Retrieved 2014-04-05. +
    51. ^ "Mozilla will add H.264 to Firefox as Cisco makes eleventh-hour push for WebRTC's future — Tech News and Analysis". gigaom.com. Retrieved 2014-04-05.
    52. -
    53. ^ "Cisco to release open-source H.264 codec, Mozilla makes tactical retreat - TechRepublic". techrepublic.com. Retrieved 2014-04-05. +
    54. ^ "Cisco to release open-source H.264 codec, Mozilla makes tactical retreat - TechRepublic". techrepublic.com. Retrieved 2014-04-05.
    55. -
    56. ^ "Video Interoperability on the Web Gets a Boost From Cisco's H.264 Codec". Of course, this is not a not a complete solution. In a perfect world, codecs, like other basic Internet technologies such as TCP/IP, HTTP, and HTML, would be fully open and free +
    57. ^ "Video Interoperability on the Web Gets a Boost From Cisco's H.264 Codec". Of course, this is not a not a complete solution. In a perfect world, codecs, like other basic Internet technologies such as TCP/IP, HTTP, and HTML, would be fully open and free
    58. -
    59. ^ "Comments on Cisco, Mozilla, and H.264". By endorsing Cisco's plan, there's no getting around the fact that we've caved on our principles. That said, principles can't replace being in a practical position to make a difference in the future. - Christopher Montgomery wrote in a personal capacity but works for Mozilla in their codecs team +
    60. ^ "Comments on Cisco, Mozilla, and H.264". By endorsing Cisco's plan, there's no getting around the fact that we've caved on our principles. That said, principles can't replace being in a practical position to make a difference in the future. - Christopher Montgomery wrote in a personal capacity but works for Mozilla in their codecs team
    61. -
    62. ^ "Game Creator Challenge -Contest Terms and Conditions". - submissions to the "amateur" category have to be released as free software, but not for the other two categories +
    63. ^ "Game Creator Challenge -Contest Terms and Conditions". - submissions to the "amateur" category have to be released as free software, but not for the other two categories
    64. -
    65. ^ "Los Angeles Times - Brendan Eich contribution to Proposition 8". latimes.com. Retrieved 2014-07-01. +
    66. ^ "Los Angeles Times - Brendan Eich contribution to Proposition 8". latimes.com. Retrieved 2014-07-01.
    67. -
    68. ^ "Gay Firefox developers boycott Mozilla to protest CEO hire [Updated] | Ars Technica". arstechnica.com. Retrieved 2014-04-05. +
    69. ^ "Gay Firefox developers boycott Mozilla to protest CEO hire [Updated] | Ars Technica". arstechnica.com. Retrieved 2014-04-05.
    70. -
    71. ^ Kelly Faircloth (9 April 2012). "Tech Celeb Makes Prop-8 Donation; Internet Goes Berserk". BetaBeat. BetaBeat. Retrieved 2014-04-28. +
    72. ^ Kelly Faircloth (9 April 2012). "Tech Celeb Makes Prop-8 Donation; Internet Goes Berserk". BetaBeat. BetaBeat. Retrieved 2014-04-28.
    73. -
    74. ^ "Screenshot of OkCupid's statement towards Firefox users". huffingtonpost.com. Retrieved 2014-07-01. +
    75. ^ "Screenshot of OkCupid's statement towards Firefox users". huffingtonpost.com. Retrieved 2014-07-01.
    76. -
    77. ^ "FAQ on CEO Resignation". The Mozilla Blog. Retrieved 2015-04-20. +
    78. ^ "FAQ on CEO Resignation". The Mozilla Blog. Retrieved 2015-04-20.
    79. -
    80. ^ Baker, Mitchell (3 April 2014). "Brendan Eich Steps Down as Mozilla CEO". mozilla blog. Mozilla. Retrieved 2014-04-04. +
    81. ^ Baker, Mitchell (3 April 2014). "Brendan Eich Steps Down as Mozilla CEO". mozilla blog. Mozilla. Retrieved 2014-04-04.
    82. -
    83. ^ "opensecrets.org listing of Sam Yagan's contributions to political candidates". opensecrets.org. Retrieved 2014-07-01. +
    84. ^ "opensecrets.org listing of Sam Yagan's contributions to political candidates". opensecrets.org. Retrieved 2014-07-01.
    85. -
    86. ^ "ontheissues.org listing of votes cast by Chris Cannon". ontheissues.org. Retrieved 2014-07-01. +
    87. ^ "ontheissues.org listing of votes cast by Chris Cannon". ontheissues.org. Retrieved 2014-07-01.
    88. -
    89. ^ "ontheissues.org listing of votes cast on the permanency of the Patriot Act". ontheissues.org. Retrieved 2014-07-01. +
    90. ^ "ontheissues.org listing of votes cast on the permanency of the Patriot Act". ontheissues.org. Retrieved 2014-07-01.
    91. -
    92. ^ "ontheissues.org: Chris Cannon on Homeland Security". ontheissues.org. Retrieved 2014-07-01. +
    93. ^ "ontheissues.org: Chris Cannon on Homeland Security". ontheissues.org. Retrieved 2014-07-01.
    94. -
    95. ^ "ontheissues.org: Chris Cannon on Abortion". ontheissues.org. Retrieved 2014-07-01. +
    96. ^ "ontheissues.org: Chris Cannon on Abortion". ontheissues.org. Retrieved 2014-07-01.
    97. -
    98. ^ Levintova, Hannah (7 April 2014). "OkCupid's CEO Donated to an Anti-Gay Campaign Once, Too". Hanna Levintova article on motherjones.com. motherjones.com. Retrieved 2014-07-01. +
    99. ^ Levintova, Hannah (7 April 2014). "OkCupid's CEO Donated to an Anti-Gay Campaign Once, Too". Hanna Levintova article on motherjones.com. motherjones.com. Retrieved 2014-07-01.
    100. -
    101. ^ Lee, Stephanie M. (8 April 2014). "OKCupid CEO once donated to anti-gay politician". Stephanie M. Lee's blog on sfgate.com. sfgate.com. Retrieved 2014-07-01. +
    102. ^ Lee, Stephanie M. (8 April 2014). "OKCupid CEO once donated to anti-gay politician". Stephanie M. Lee's blog on sfgate.com. sfgate.com. Retrieved 2014-07-01.
    103. -
    104. ^ a b "The Hypocrisy Of Sam Yagan & OkCupid". uncrunched.com blog. uncrunched.com. 6 April 2014. Retrieved 2014-07-01. +
    105. ^ a b "The Hypocrisy Of Sam Yagan & OkCupid". uncrunched.com blog. uncrunched.com. 6 April 2014. Retrieved 2014-07-01.
    106. -
    107. ^ Bellware, Kim (31 March 2014). "OKCupid Publicly Rips Mozilla: 'We Wish Them Nothing But Failure'". Kim Bellware article on huffingtonpost.com. huffingtonpost.com. Retrieved 2014-07-01. +
    108. ^ Bellware, Kim (31 March 2014). "OKCupid Publicly Rips Mozilla: 'We Wish Them Nothing But Failure'". Kim Bellware article on huffingtonpost.com. huffingtonpost.com. Retrieved 2014-07-01.
    109. -
    110. ^ "Mozilla's Appointment Of Brendan Eich As CEO Sparks Controversy After Prop 8 Donation News Re-Emerges". huffingtonpost.com article. huffingtonpost.com. 27 March 2014. Retrieved 2014-07-01. +
    111. ^ "Mozilla's Appointment Of Brendan Eich As CEO Sparks Controversy After Prop 8 Donation News Re-Emerges". huffingtonpost.com article. huffingtonpost.com. 27 March 2014. Retrieved 2014-07-01.
    112. -
    113. ^ Eidelson, Josh (4 April 2014). "OkCupid's gay rights stunt has its limits: Taking a deeper look at the savvy ploy". Josh Eidelson article on salon.com. salon.com. Retrieved 2014-07-01. +
    114. ^ Eidelson, Josh (4 April 2014). "OkCupid's gay rights stunt has its limits: Taking a deeper look at the savvy ploy". Josh Eidelson article on salon.com. salon.com. Retrieved 2014-07-01.
    115. -
    116. ^ a b "Mozilla Manifesto". Mozilla.org. Retrieved 2012-03-21. +
    117. ^ a b "Mozilla Manifesto". Mozilla.org. Retrieved 2012-03-21.
    118. -
    119. ^ "The Mozilla Manifesto". Retrieved 24 July 2015. +
    120. ^ "The Mozilla Manifesto". Retrieved 24 July 2015.
    121. -
    122. ^ "Gecko Layout Engine". download-firefox.org. July 17, 2008. Archived from the original on 2010-11-28. Retrieved 2012-05-10. +
    123. ^ "Gecko Layout Engine". download-firefox.org. July 17, 2008. Archived from the original on 2010-11-28. Retrieved 2012-05-10.
    124. -
    125. ^ "Web Browser Market Share Trends". W3Counter. Awio Web Services LLC. Retrieved 2012-05-10. +
    126. ^ "Web Browser Market Share Trends". W3Counter. Awio Web Services LLC. Retrieved 2012-05-10.
    127. -
    128. ^ "Top 5 Browsers". StatCounter Global Stats. StatCounter. Retrieved 2012-05-10. +
    129. ^ "Top 5 Browsers". StatCounter Global Stats. StatCounter. Retrieved 2012-05-10.
    130. -
    131. ^ "Web browsers (Global marketshare)". Clicky. Roxr Software Ltd. Retrieved 2012-05-10. +
    132. ^ "Web browsers (Global marketshare)". Clicky. Roxr Software Ltd. Retrieved 2012-05-10.
    133. -
    134. ^ Goodger, Ben (February 6, 2006). "Where Did Firefox Come From?". Inside Firefox. Archived from the original on 2011-06-23. Retrieved 2012-01-07. +
    135. ^ Goodger, Ben (February 6, 2006). "Where Did Firefox Come From?". Inside Firefox. Archived from the original on 2011-06-23. Retrieved 2012-01-07.
    136. -
    137. ^ "Mozilla browser becomes Firebird". IBPhoenix. Archived from the original on 2007-09-14. Retrieved 2013-06-10. We at IBPhoenix think that having a browser and a database with the same name in the same space will confuse the market, especially as browsers and databases are often used in the same applications +
    138. ^ "Mozilla browser becomes Firebird". IBPhoenix. Archived from the original on 2007-09-14. Retrieved 2013-06-10. We at IBPhoenix think that having a browser and a database with the same name in the same space will confuse the market, especially as browsers and databases are often used in the same applications
    139. -
    140. ^ Festa, Paul (May 6, 2003). "Mozilla's Firebird gets wings clipped". CNET. Retrieved 2007-01-30. +
    141. ^ Festa, Paul (May 6, 2003). "Mozilla's Firebird gets wings clipped". CNET. Retrieved 2007-01-30.
    142. -
    143. ^ Festa, Paul (February 9, 2004). "Mozilla holds 'fire' in naming fight". CNET News. Retrieved 2007-01-24. +
    144. ^ Festa, Paul (February 9, 2004). "Mozilla holds 'fire' in naming fight". CNET News. Retrieved 2007-01-24.
    145. -
    146. ^ "Mobile features". Mozilla. Retrieved 2012-06-26. +
    147. ^ "Mobile features". Mozilla. Retrieved 2012-06-26.
    148. -
    149. ^ "Mobile System Requirements". +
    150. ^ "Mobile System Requirements".
    151. -
    152. ^ "Firefox Mobile supported devices". +
    153. ^ "Firefox Mobile supported devices".
    154. -
    155. ^ "Mozilla rules out Firefox for iPhone and BlackBerry". +
    156. ^ "Mozilla rules out Firefox for iPhone and BlackBerry".
    157. -
    158. ^ "Boot to Gecko Project". Mozilla. March 2012. Retrieved 2012-03-30. +
    159. ^ "Boot to Gecko Project". Mozilla. March 2012. Retrieved 2012-03-30.
    160. -
    161. ^ "Firefox OS - Devices & Availability". Mozilla. Retrieved 2015-12-30. +
    162. ^ "Firefox OS - Devices & Availability". Mozilla. Retrieved 2015-12-30.
    163. -
    164. ^ "Thunderbird: Stability and Community Innovation | Mitchell's Blog". blog.lizardwrangler.com. Retrieved 2015-04-20. +
    165. ^ "Thunderbird: Stability and Community Innovation | Mitchell's Blog". blog.lizardwrangler.com. Retrieved 2015-04-20.
    166. -
    167. ^ "Two discontinued browsers". LWN.net. 21 December 2005. Retrieved 2012-08-19. +
    168. ^ "Two discontinued browsers". LWN.net. 21 December 2005. Retrieved 2012-08-19.
    169. -
    170. ^ "SeaMonkey trademarks registered!". kairo.at. 2007-05-22. Retrieved 2013-06-10. +
    171. ^ "SeaMonkey trademarks registered!". kairo.at. 2007-05-22. Retrieved 2013-06-10.
    172. -
    173. ^ "Bugzilla Installation List". Retrieved 2014-09-18. +
    174. ^ "Bugzilla Installation List". Retrieved 2014-09-18.
    175. -
    176. ^ a b Eich, Brendan (21 June 2011). "New JavaScript Engine Module Owner". BrendanEich.com. +
    177. ^ a b Eich, Brendan (21 June 2011). "New JavaScript Engine Module Owner". BrendanEich.com.
    178. -
    179. ^ "Bug 759422 - Remove use of e4x in account creation". Bugzilla@Mozilla. 2012-08-17. Retrieved 2012-08-18. +
    180. ^ "Bug 759422 - Remove use of e4x in account creation". Bugzilla@Mozilla. 2012-08-17. Retrieved 2012-08-18.
    181. -
    182. ^ "SpiderMonkey". Mozilla Developer Network. 2012-08-15. Retrieved 2012-08-18. +
    183. ^ "SpiderMonkey". Mozilla Developer Network. 2012-08-15. Retrieved 2012-08-18.
    184. -
    185. ^ "Rhino History". Mozilla Foundation. Retrieved 2008-03-20. +
    186. ^ "Rhino History". Mozilla Foundation. Retrieved 2008-03-20.
    187. -
    188. ^ "Roadmap". Retrieved 10 May 2016. +
    189. ^ "Roadmap". Retrieved 10 May 2016.
    190. -
    191. ^ Larabel, Michael. "Servo Continues Making Progress For Shipping Components In Gecko, Browser.html". Phoronix.com. Retrieved 10 May 2016. +
    192. ^ Larabel, Michael. "Servo Continues Making Progress For Shipping Components In Gecko, Browser.html". Phoronix.com. Retrieved 10 May 2016.
    193. -
    194. ^ "Mozilla VR". Mozilla VR. Retrieved 2016-10-27. +
    195. ^ "Mozilla VR". Mozilla VR. Retrieved 2016-10-27.
    196. -
    197. ^ Persona, Mozilla +
    198. ^ Persona, Mozilla
    199. -
    200. ^ "Persona". Mozilla Developer Network. Retrieved 2016-10-27. +
    201. ^ "Persona". Mozilla Developer Network. Retrieved 2016-10-27.
    202. -
    203. ^ About Mozilla Webmaker, Mozilla +
    204. ^ About Mozilla Webmaker, Mozilla
    205. -
    206. ^ a b Alan Henry. "Mozilla Webmaker Teaches You to Build Web Sites, Apps, and More". Lifehacker. Gawker Media. +
    207. ^ a b Alan Henry. "Mozilla Webmaker Teaches You to Build Web Sites, Apps, and More". Lifehacker. Gawker Media.
    208. -
    209. ^ "Air Mozilla". Mozilla Wiki. +
    210. ^ "Air Mozilla". Mozilla Wiki.
    211. -
    212. ^ "Air Mozilla Reboot, Phase I". +
    213. ^ "Air Mozilla Reboot, Phase I".
    214. -
-

Constant downloads failure in firefox

+ +
+

Constant downloads failure in firefox

External links[edit]

- +
- + + + -
+ Wikimedia Commons has media related to Mozilla.
+ + diff --git a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/wordpress/expected-metadata.json b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/wordpress/expected-metadata.json index 9154ef04d..7a5a65f3d 100644 --- a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/wordpress/expected-metadata.json +++ b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/wordpress/expected-metadata.json @@ -1,8 +1,8 @@ { "Author": null, - "Direction": null, - "Excerpt": "Stack Overflow published its analysis of 2017 hiring trends based on the targeting options employers selected when posting to Stack Overflow Jobs. The report, which compares data from 200 companies…", + "Direction": "ltr", + "Excerpt": "Stack Overflow published its analysis of 2017 hiring trends based on the targeting options employers selected when posting to Stack Overflow Jobs. The report, which compares data from 200 companies\u2026", "Image": "https:\/\/i0.wp.com\/wptavern.com\/wp-content\/uploads\/2016\/07\/stack-overflow.png?fit=1200%2C470&ssl=1", "Title": "Stack Overflow Jobs Data Shows ReactJS Skills in High Demand, WordPress Market Oversaturated with Developers", "SiteName": "WordPress Tavern" -} +} \ No newline at end of file diff --git a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/wordpress/expected.html b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/wordpress/expected.html index 1f47d8fe1..344eb7d12 100644 --- a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/wordpress/expected.html +++ b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/wordpress/expected.html @@ -1,14 +1,31 @@ -
+
+ + + + +
+ + + + + +
+ + + + + +

- +

Stack Overflow published its analysis of 2017 hiring trends based on the targeting options employers selected when posting to Stack Overflow Jobs. The report, which compares data from 200 companies since 2015, ranks ReactJS, Docker, and Ansible at the top of the fastest growing skills in demand. When comparing the percentage change from 2015 to 2016, technologies like AJAX, Backbone.js, jQuery, and WordPress are less in demand.

- +

Stack Overflow also measured the demand relative to the available developers in different tech skills. The demand for backend, mobile, and database engineers is higher than the number of qualified candidates available. WordPress is last among the oversaturated fields with a surplus of developers relative to available positions.

- +

In looking at these results, it’s important to consider the inherent biases within the Stack Overflow ecosystem. In 2016, the site surveyed more than 56,000 developers but noted that the survey was “biased against devs who don’t speak English.” The average age of respondents was 29.6 years old and 92.8% of them were male.

For two years running, Stack Overflow survey respondents have ranked WordPress among the most dreaded technologies that they would prefer not to use. This may be one reason why employers wouldn’t be looking to advertise positions on the site’s job board, which is the primary source of the data for this report.

@@ -26,4 +43,29 @@
-
\ No newline at end of file + + + + +
+ + + + + + + + + + + + + + + + + + + + +
\ No newline at end of file diff --git a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/yahoo-1/expected.html b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/yahoo-1/expected.html index deea6c82f..645639393 100644 --- a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/yahoo-1/expected.html +++ b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/yahoo-1/expected.html @@ -1,45 +1,49 @@ -
-
-

The PlayStation VR

+
+
+
+

The PlayStation VR

-

Sony’s PlayStation VR.

+
+

Sony’s PlayStation VR.

-
-

Virtual reality has officially reached the consoles. And it’s pretty good! Sony’s PlayStation VR is extremely comfortable and reasonably priced, and while it’s lacking killer apps, it’s loaded with lots of interesting ones.

-

But which ones should you buy? I’ve played just about every launch game, and while some are worth your time, others you might want to skip. To help you decide what’s what, I’ve put together this list of the eight PSVR games worth considering.

-

“Rez Infinite” ($30)

-

-

Beloved cult hit “Rez” gets the VR treatment to help launch the PSVR, and the results are terrific. It includes a fully remastered take on the original “Rez” – you zoom through a Matrix-like computer system, shooting down enemies to the steady beat of thumping electronica – but the VR setting makes it incredibly immersive. It gets better the more you play it, too; unlock the amazing Area X mode and you’ll find yourself flying, shooting and bobbing your head to some of the trippiest visuals yet seen in VR.

-

“Thumper” ($20)

-

-

What would happen if Tron, the board game Simon, a Clown beetle, Cthulhu and a noise band met in VR? Chaos, for sure, and also “Thumper.” Called a “violent rhythm game” by its creators, “Thumper” is, well, a violent rhythm game that’s also a gorgeous, unsettling and totally captivating assault on the senses. With simple controls and a straightforward premise – click the X button and the analog stick in time with the music as you barrel down a neon highway — it’s one of the rare games that works equally well both in and out of VR. But since you have PSVR, play it there. It’s marvelous.

-

“Until Dawn: Rush of Blood” ($20)

-

-

Cheeky horror game “Until Dawn” was a breakout hit for the PS4 last year, channeling the classic “dumb teens in the woods” horror trope into an effective interactive drama. Well, forget all that if you fire up “Rush of Blood,” because this one sticks you front and center on a rollercoaster ride from Hell. Literally. You ride through a dimly-lit carnival of terror, dual-wielding pistols as you take down targets, hideous pig monsters and, naturally, maniac clowns. Be warned: If the bad guys don’t get you, the jump scares will.

-

“Headmaster” ($20)

-

-

Soccer meets “Portal” in the weird (and weirdly fun) “Headmaster,” a game about heading soccer balls into nets, targets and a variety of other things while stuck in some diabolical training facility. While at first it seems a little basic, increasingly challenging shots and a consistently entertaining narrative keep it from running off the pitch. Funny, ridiculous and as easy as literally moving your head back and forth, it’s a pleasant PSVR surprise.

-

“RIGS: Mechanized Combat League” ($50)

-

-

Giant mechs + sports? That’s the gist of this robotic blast-a-thon, which pits two teams of three against one another in gorgeous, explosive and downright fun VR combat. At its best, “RIGS” marries the thrill of fast-paced competitive shooters with the insanity of piloting a giant mech in VR. It can, however, be one of the barfier PSVR games. So pack your Dramamine, you’re going to have to ease yourself into this one.

-

“Batman Arkham VR” ($20)

-

-

“I’m Batman,” you will say. And you’ll actually be right this time, because you are Batman in this detective yarn, and you know this because you actually grab the famous cowl and mask, stick it on your head, and stare into the mirrored reflection of Rocksteady Games’ impressive Dark Knight character model. It lacks the action of its fellow “Arkham” games and runs disappointingly short, but it’s a high-quality experience that really shows off how powerfully immersive VR can be.

-

“Job Simulator” ($30)

-

-

There are a number of good VR ports in the PSVR launch lineup, but the HTC Vive launch game “Job Simulator” might be the best. Your task? Lots of tasks, actually, from cooking food to fixing cars to working in an office, all for robots, because did I mention you were in the future? Infinitely charming and surprisingly challenging, it’s a great showpiece for VR.

-

“Eve Valkyrie” ($60)

-

-

Already a hit on the Oculus Rift, this space dogfighting game was one of the first to really show off how VR can turn a traditional game experience into something special. It’s pricey and not quite as hi-res as the Rift version, but “Eve Valkyrie” does an admirable job filling the void left since “Battlestar Galactica” ended. Too bad there aren’t any Cylons in it (or are there?)

-

More games news:

-
+
+

Virtual reality has officially reached the consoles. And it’s pretty good! Sony’s PlayStation VR is extremely comfortable and reasonably priced, and while it’s lacking killer apps, it’s loaded with lots of interesting ones.

+

But which ones should you buy? I’ve played just about every launch game, and while some are worth your time, others you might want to skip. To help you decide what’s what, I’ve put together this list of the eight PSVR games worth considering.

+

“Rez Infinite” ($30)

+

+

Beloved cult hit “Rez” gets the VR treatment to help launch the PSVR, and the results are terrific. It includes a fully remastered take on the original “Rez” – you zoom through a Matrix-like computer system, shooting down enemies to the steady beat of thumping electronica – but the VR setting makes it incredibly immersive. It gets better the more you play it, too; unlock the amazing Area X mode and you’ll find yourself flying, shooting and bobbing your head to some of the trippiest visuals yet seen in VR.

+

“Thumper” ($20)

+

+

What would happen if Tron, the board game Simon, a Clown beetle, Cthulhu and a noise band met in VR? Chaos, for sure, and also “Thumper.” Called a “violent rhythm game” by its creators, “Thumper” is, well, a violent rhythm game that’s also a gorgeous, unsettling and totally captivating assault on the senses. With simple controls and a straightforward premise – click the X button and the analog stick in time with the music as you barrel down a neon highway — it’s one of the rare games that works equally well both in and out of VR. But since you have PSVR, play it there. It’s marvelous.

+

“Until Dawn: Rush of Blood” ($20)

+

+

Cheeky horror game “Until Dawn” was a breakout hit for the PS4 last year, channeling the classic “dumb teens in the woods” horror trope into an effective interactive drama. Well, forget all that if you fire up “Rush of Blood,” because this one sticks you front and center on a rollercoaster ride from Hell. Literally. You ride through a dimly-lit carnival of terror, dual-wielding pistols as you take down targets, hideous pig monsters and, naturally, maniac clowns. Be warned: If the bad guys don’t get you, the jump scares will.

+

“Headmaster” ($20)

+

+

Soccer meets “Portal” in the weird (and weirdly fun) “Headmaster,” a game about heading soccer balls into nets, targets and a variety of other things while stuck in some diabolical training facility. While at first it seems a little basic, increasingly challenging shots and a consistently entertaining narrative keep it from running off the pitch. Funny, ridiculous and as easy as literally moving your head back and forth, it’s a pleasant PSVR surprise.

+

“RIGS: Mechanized Combat League” ($50)

+

+

Giant mechs + sports? That’s the gist of this robotic blast-a-thon, which pits two teams of three against one another in gorgeous, explosive and downright fun VR combat. At its best, “RIGS” marries the thrill of fast-paced competitive shooters with the insanity of piloting a giant mech in VR. It can, however, be one of the barfier PSVR games. So pack your Dramamine, you’re going to have to ease yourself into this one.

+

“Batman Arkham VR” ($20)

+

+

“I’m Batman,” you will say. And you’ll actually be right this time, because you are Batman in this detective yarn, and you know this because you actually grab the famous cowl and mask, stick it on your head, and stare into the mirrored reflection of Rocksteady Games’ impressive Dark Knight character model. It lacks the action of its fellow “Arkham” games and runs disappointingly short, but it’s a high-quality experience that really shows off how powerfully immersive VR can be.

+

“Job Simulator” ($30)

+

+

There are a number of good VR ports in the PSVR launch lineup, but the HTC Vive launch game “Job Simulator” might be the best. Your task? Lots of tasks, actually, from cooking food to fixing cars to working in an office, all for robots, because did I mention you were in the future? Infinitely charming and surprisingly challenging, it’s a great showpiece for VR.

+

“Eve Valkyrie” ($60)

+

+

Already a hit on the Oculus Rift, this space dogfighting game was one of the first to really show off how VR can turn a traditional game experience into something special. It’s pricey and not quite as hi-res as the Rift version, but “Eve Valkyrie” does an admirable job filling the void left since “Battlestar Galactica” ended. Too bad there aren’t any Cylons in it (or are there?)

+

More games news:

+

Ben Silverman is on Twitter at - ben_silverman.

+ +

Ben Silverman is on Twitter at + ben_silverman.

-
-
\ No newline at end of file +
\ No newline at end of file diff --git a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/yahoo-2/expected.html b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/yahoo-2/expected.html index 9bc5f6f5f..92ef4391a 100644 --- a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/yahoo-2/expected.html +++ b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/yahoo-2/expected.html @@ -1,19 +1,11 @@
-
-
- -
-
+
+

1 / 5

-
- +

In this photo dated Tuesday, Nov, 29, 2016 the Soyuz-FG rocket booster with the Progress MS-04 cargo ship is installed on a launch pad in Baikonur, Kazakhstan. The unmanned Russian cargo space ship Progress MS-04 broke up in the atmosphere over Siberia on Thursday Dec. 1, 2016, just minutes after the launch en route to the International Space Station due to an unspecified malfunction, the Russian space agency said.(Oleg Urusov/ Roscosmos Space Agency Press Service photo via AP)

In this photo dated Tuesday, Nov, 29, 2016 the Soyuz-FG rocket booster with the Progress MS-04 cargo ship is installed on a launch pad in Baikonur, Kazakhstan. The unmanned Russian cargo space ship Progress MS-04 broke up in the atmosphere over Siberia on Thursday Dec. 1, 2016, just minutes after the launch en route to the International Space Station due to an unspecified malfunction, the Russian space agency said.(Oleg Urusov/ Roscosmos Space Agency Press Service photo via AP)

-
- -
-
-
+

MOSCOW (AP) — An unmanned Russian cargo spaceship heading to the International Space Station broke up in the atmosphere over Siberia on Thursday due to an unspecified malfunction, the Russian space agency said.

The Progress MS-04 cargo craft broke up at an altitude of 190 kilometers (118 miles) over the remote Russian Tuva region in Siberia that borders Mongolia, Roscosmos said in a statement. It said most of spaceship's debris burnt up as it entered the atmosphere but some fell to Earth over what it called an uninhabited area.

@@ -30,5 +22,4 @@

Aerospace Writer Marcia Dunn in Cape Canaveral, Florida, and Vladimir Isachenkov in Moscow contributed to this report.

-
- \ No newline at end of file +
\ No newline at end of file diff --git a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/yahoo-3/expected-metadata.json b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/yahoo-3/expected-metadata.json index 8af68c02b..1af6b8f27 100644 --- a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/yahoo-3/expected-metadata.json +++ b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/yahoo-3/expected-metadata.json @@ -1,6 +1,6 @@ { "Author": "By GILLIAN MOHNEY\n March 11, 2015 3:46 PM", - "Direction": null, + "Direction": "ltr", "Excerpt": "A photographer and Navy veteran is fighting back after a photo she posted to Facebook started an online backlash. Vanessa Hicks said she had no idea her photo would be considered controversial. The photo, from a military family’s newborn photo shoot, showed a newborn infant wrapped in an American flag held by his father, who was in his military uniform. Hicks, a Navy veteran herself and the wife of an active-duty Navy member, said her intention was to honor the flag as well as her clients, who wanted to incorporate their military service in the photo shoot.", "Image": "https:\/\/s.yimg.com\/bt\/api\/res\/1.2\/qZaM9MLUOrxLg4IfXt_Niw--\/YXBwaWQ9eW5ld3NfbGVnbztxPTc1O3c9NjAw\/http:\/\/media.zenfs.com\/en-US\/video\/video.abcnewsplus.com\/559ecdbafdb839129816b5c79a996975.cf.png", "Title": "Veteran Wraps Baby in American Flag, Photo Sparks Controversy", diff --git a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/yahoo-3/expected.html b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/yahoo-3/expected.html index c5d7e33dc..21bb560e6 100644 --- a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/yahoo-3/expected.html +++ b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/yahoo-3/expected.html @@ -1,28 +1,30 @@ -
-
-

'GMA' Cookie Search:

+
+
+

'GMA' Cookie Search:

-
- - - - -
+ +
-

A photographer and Navy veteran is fighting back after a photo she posted to Facebook started an online backlash.

+ + + + + +

A photographer and Navy veteran is fighting back after a photo she posted to Facebook started an online backlash.

Vanessa Hicks said she had no idea her photo would be considered controversial. The photo, from a military family’s newborn photo shoot, showed a newborn infant wrapped in an American flag held by his father, who was in his military uniform.

Hicks, a Navy veteran herself and the wife of an active-duty Navy member, said her intention was to honor the flag as well as her clients, who wanted to incorporate their military service in the photo shoot.

-

Pizza Man Making Special Delivery Pizza Delivery to Afghanistan During Super Bowl

-

Redesigned Scopes Fail to Stop 'Superbug Outbreaks

-

Antarctica 'Penguin Post Office' Attracts Record Number of Applicants

+

Pizza Man Making Special Delivery Pizza Delivery to Afghanistan During Super Bowl

+

Redesigned Scopes Fail to Stop 'Superbug Outbreaks

+

Antarctica 'Penguin Post Office' Attracts Record Number of Applicants

“This is what he was fighting for, his son wrapped in an American flag,” Hicks told ABC News. However, when she posted the image on her page, she started to get comments accusing her of desecrating the flag.

On one Facebook page an unidentified poster put up her picture writing and wrote they found it was “disrespectful, rude, tacky, disgusting, and against the U.S. Flag Code.”

-

View photo

.

Vanessa Hicks

Vanessa Hicks

+

View photo

.

Vanessa Hicks
+

Vanessa Hicks

-

The Federal Flag Code has guidelines for the proper treatment of the U.S. Flag but there are no rules for punishment related to violations. In the past, the Supreme Court has found that people are protected from punishment under the First Amendment for manipulating or even burning the flag. +

The Federal Flag Code has guidelines for the proper treatment of the U.S. Flag but there are no rules for punishment related to violations. In the past, the Supreme Court has found that people are protected from punishment under the First Amendment for manipulating or even burning the flag.

Hicks said she was surprised when messages suddenly started to pop up on her Facebook page and even her own website criticizing her photos.

She said she stayed up until 4 a.m. recently to take down comments from her business and company page, even on shoots that had nothing to do with the flag.

@@ -32,13 +34,12 @@

Hicks, whose husband is still on active duty in the Navy, said the flag is a symbol of U.S. freedoms including the First Amendment right to free speech.

“[My husband] wouldn’t die for a flag, he would die for the freedoms that this country offers,” she told ABC News.

After her story grabbed local headlines, Hicks has been inundated by requests for photos shoots, and she said she plans to give 15 percent of all profits related to these shoots to the USO.

-
-
- -
+ + +
+ -
\ No newline at end of file diff --git a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/yahoo-4/expected-metadata.json b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/yahoo-4/expected-metadata.json index c8459ad79..18324c4ff 100644 --- a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/yahoo-4/expected-metadata.json +++ b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/yahoo-4/expected-metadata.json @@ -1,5 +1,5 @@ { - "Author": null, + "Author": "個人", "Direction": null, "Excerpt": "トレンドマイクロは3月9日、Wi-Fi利用時の通信を暗号化し保護するスマホ・タブレット - Yahoo!ニュース(CNET Japan)", "Image": "http:\/\/i.yimg.jp\/images\/jpnews\/cre\/common\/all\/images\/fbico_ogp_600x600.png", diff --git a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/yahoo-4/expected.html b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/yahoo-4/expected.html index db7694ab3..04be3c96b 100644 --- a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/yahoo-4/expected.html +++ b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/yahoo-4/expected.html @@ -1,9 +1,7 @@ -
-

+

トレンドマイクロは3月9日、Wi-Fi利用時の通信を暗号化し保護するスマホ・タブレット向けのセキュリティアプリ「フリーWi-Fiプロテクション」(iOS/Android)の発売を開始すると発表した。1年版ライセンスは2900円(税込)で、2年版ライセンスは5000円(税込)。

 フリーWi-Fiプロテクションは、App Storeおよび、Google Playにて販売され、既に提供しているスマホ・タブレット向け総合セキュリティ対策アプリ「ウイルスバスター モバイル」と併用することで、不正アプリや危険なウェブサイトからの保護に加え、通信の盗み見を防ぐことができる。

 2020年の東京オリンピック・パラリンピックの開催などを見据え、フリーWi-Fi(公衆無線LAN)の設置が促進され、フリーWi-Fiの利用者も増加している。

 一方で、脆弱な設定のフリーWi-Fiや攻撃者が設置した偽のフリーWi-Fiへの接続などによる情報漏えい、通信の盗み見などのセキュリティリスクが危惧されているという。

 正規事業者が提供する安全性の高いフリーWi-Fiのほかにも、通信を暗号化していない安全性の低いフリーWi-Fi、さらにはサイバー犯罪者が設置したフリーWi-Fiなどさまざまなものが混在している。また、利用者は、接続する前にひとつひとつ安全性を確認するのは難しい状況だとしている。

 トレンドマイクロがスマートフォン保持者でフリーWi-Fiの利用経験がある人に実施した調査では、回答者の約85%が安全なフリーWi-Fiと危険なフリーWi-Fiは「見分けられない」と回答。さらに、約65%がフリーWi-Fiの利用に不安を感じていると回答している。

 こうした環境の変化やユーザの状況を鑑み、フリーWi-Fiプロテクションの提供を開始する。同アプリをインストールすることで利用者は、万が一安全性の低いフリーWi-Fiのアクセスポイントに接続してしまった場合でも、その通信を暗号化でき、通信の盗み見やそれによる情報漏えいのリスクを低減できるようになる。 -

 具体的には、フリーWi-Fi利用時に、スマートフォンがフリーWi-Fiプロテクションインフラに接続することにより、フリーWi-Fiのアクセスポイントを介した通信がVPN(Virtual Private Network)で暗号化される。これにより利用者は、第三者から通信を傍受されることやデータの情報漏えいを防ぐことが可能。さらに、かんたん自動接続の機能により、通信を暗号化していない安全性が低いフリーWi-Fi接続時や利用者が指定したWi-Fiへ接続する際に、自動的に通信を暗号化し、利用者の通信を保護する。

 また、フリーWi-Fiプロテクションインフラと、莫大なセキュリティ情報のビッグデータを保有するクラウド型セキュリティ技術基盤「Trend Micro Smart Protection Network」(SPN)が連携することで、フリーWi-Fiプロテクションインフラを経由してインターネットを利用する際に、利用者がフィッシング詐欺サイトや偽サイトなどへの不正サイトへアクセスすることをブロックできるという。

-
\ No newline at end of file +

 具体的には、フリーWi-Fi利用時に、スマートフォンがフリーWi-Fiプロテクションインフラに接続することにより、フリーWi-Fiのアクセスポイントを介した通信がVPN(Virtual Private Network)で暗号化される。これにより利用者は、第三者から通信を傍受されることやデータの情報漏えいを防ぐことが可能。さらに、かんたん自動接続の機能により、通信を暗号化していない安全性が低いフリーWi-Fi接続時や利用者が指定したWi-Fiへ接続する際に、自動的に通信を暗号化し、利用者の通信を保護する。

 また、フリーWi-Fiプロテクションインフラと、莫大なセキュリティ情報のビッグデータを保有するクラウド型セキュリティ技術基盤「Trend Micro Smart Protection Network」(SPN)が連携することで、フリーWi-Fiプロテクションインフラを経由してインターネットを利用する際に、利用者がフィッシング詐欺サイトや偽サイトなどへの不正サイトへアクセスすることをブロックできるという。

\ No newline at end of file diff --git a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/youth/expected.html b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/youth/expected.html index f4ae9daac..dba688f1f 100644 --- a/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/youth/expected.html +++ b/plugins/af_readability/vendor/fivefilters/readability.php/test/test-pages/youth/expected.html @@ -1,8 +1,5 @@ -
-
-
-
-

海外留学生看两会:出国前后关注点大不同

+
+

海外留学生看两会:出国前后关注点大不同

图为马素湘在澳大利亚悉尼游玩时的近影。

  出国前后关注点大不同

  出国前:政治科目会出啥考题?

@@ -12,7 +9,7 @@

   无独有偶,英国剑桥大学的李博灏也有着类似的经历。他表示,在国内读本科时,虽然关注过两会,但并不像现在这样,将关注点放在国家社会经济迫切需要解决的难题与问题上。“出国前更关心与我们学生的实际问题以及切身利益相关的议题,比如奖学金、助学金的发放与申请;相关工作行业就业前景等。”

   在英国求学6年后,李博灏希望能够学有所用,为国家发展过程中遇到的难题寻求解决办法。因此随着课题研究的深入,他更加关注国家和社会目前所面临的挑战,比如中等收入陷阱、供给侧改革、创意创新产业的发展等议题。

   还有一些学子表示,出国前对两会不太了解,出国后反而对两会热点多了些思考。在澳大利亚墨尔本留学的马素湘说:“想不关注都难啊!刷微博看新闻到处都是两会的消息。而且我现在学的是新闻专业,对世界发生的大小事都会留意。随着年龄、阅历增长,家国情怀也渐长,会关心国家发展的各方面问题。”

-

+

图为李博灏在瑞士日内日瓦联合国欧洲总部的近影。

  关注点多与所学专业相关

  法学专业热议法定婚龄 很多人关心供给侧改革

@@ -20,7 +17,7 @@

   对此提案,卢宇有着自己的看法,“百花齐放的局面固然可喜,但也不能一哄而上,国家应该提高行业准入门槛,完善新能源汽车准入管理规则,从源头上进行制度创新,将一些不具备新能源汽车生产资质的厂家淘汰出局,并高度关注电池系统安全问题,严格执行充电桩生产的国际标准。”

   马素湘表示,“出国读研之前,我在国内学习法学,因此对相关的问题比较感兴趣。今年两会上人大代表黄细花提出把法定婚龄降低到18岁的提案;而在微博的热搜榜上,一本儿童性教育读物引起了极大的争议。我认为降低婚龄并不适合我国国情。因为性教育的缺乏导致我国大部分人在18岁之前没有接受过完整的性教育,思想行动上也不够成熟,如何能够对自己的人生和自己的另一半负责?所以我希望能有人大代表提议在国民儿童阶段完善我国的性教育,而不是为了鼓励生育将法定婚龄提前。”

   李博灏是英国剑桥大学制造业研究所创新设计管理中心的一名博士。他格外关注的话题是供给侧结构性改革,知识产权保护,消费升级等议题。“我的博士研究课题是关于推动创新设计密集型产业的发展从而帮助中等收入国家克服中等收入陷阱的探索,因此一直十分关注国内关于供给侧改革的相关议题。通过本届两会对于该议题的进一步关注,我希望可以有效地帮助我了解供给侧改革与中等收入陷阱问题目前的发展状况以及解决情况;也希望可以与更多的机构取得联系,并帮助他们了解该议题最前沿的研究与解决方案。”

-

+

图为卢宇与祖国五星红旗和联合国会旗的合影。

   两会成为了解国情的窗口

   盼准确把握国家发展需求 愿寻求机遇回国有所作为

@@ -30,7 +27,4 @@

   在两会上,全国政协委员张近东提出“当前中国经济的发展正在从数量型向质量型转变,消费升级将成为企业新一轮创新发展的动力。”对此,李博灏认为这也是他关注的问题。他认为:“在消费市场持续扩大的大环境下,如何能够通过促进创新设计产业的发展以及消费品品质的提升,推动国内消费增长并促进其在可持续经济增长中的作用,是一个迫切需要解决的问题。在当前供给侧改革的大环境下,消费升级的重要性越发突显。”

   作为两会的资深粉,卢宇聊起两会话题充满了期待。“今年是国家‘十三五’规划的关键时期,‘一带一路’建设也在如火如荼地进行中。作为一名中国留学生,我一直都关注着能在哪些领域为国家、为中外合作共赢做出贡献。‘大众创业、万众创新’提出有几年了。全国各省市在吸引留学人才归国创业就业方面纷纷提出了各种优惠政策,但目前大都集中在沿海发达省份,而且主要惠及理工科博士,政策覆盖面还不够广。期待从国家层面设立工作组加强留学人才的统筹协调,完善顶层设计。人文社科类留学人才是未来国家智库的重要后备力量,也应该适当加强对他们的政策鼓励,更好地服务于‘一带一路’国家战略。”

   卢宇还认为两会应该增设学子代表,列席旁听两会,拓展留学生参政议政渠道。“我相信优秀留学生的国际化视野必将为家乡建设带来新的思路,增添新的活力。”卢宇恳切地说。

-
-
-
-
\ No newline at end of file +
\ No newline at end of file -- cgit v1.2.3