very very good research paper about Large-scale cluster management at Google
https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43438.pdf
very very good research paper about Large-scale cluster management at Google
https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43438.pdf
Это не секрет среди web-разработчиков и программистов в целом: PHP имеет не самую лучшую репутацию. Несмотря на то, что он по-прежнему является одним из наиболее популярных языков для создания web-приложений; За эти годы PHP сумел зарекомендовать себя как не очень чистый и понятный код, большое количество молодых и слабых разработчиков, небезопасный код, не консистентная core library, и прочее.
Хотя многие аргументы против PHP остаются в силе и сегодня, есть и хорошая сторона: вы можете писать чистые и поддерживаемые, быстрые и надежные приложения на PHP.
В этом посте я хочу взглянуть на эту светлую сторону разработки PHP. Я хочу показать вам, что, несмотря на многие недостатки, PHP является полезным языком для изучения. Я хочу, чтобы вы знали, что эра PHP 5 подходит к концу. Это, если вы хотите, вы можете написать современный и чистый код PHP, и оставить позади все недостатки и недочеты, которые были 10 лет назад.
Итак, давайте посмотрим, как язык изменился, даже повзрослел за последние несколько лет.
Давайте начнем!
Прежде чем углубляться в детали, давайте рассмотрим, как в наши дни разрабатывается язык PHP. Сейчас мы находимся на версии 7.4, а следующей версией станет PHP 8.0 в конце 2020 года.
Начиная с поздней эры 5.х, основная команда старается поддерживать постоянный годовой цикл релизов и преуспела в этом в течение последних четырех лет!
В целом, каждый новый релиз активно поддерживается в течение двух лет и получает еще один год «только исправлений безопасности». Цель состоит в том, чтобы побудить разработчиков оставаться в курсе как можно больше: небольшие обновления каждый год легче, чем, например, переход от 5,4 до 7,0.
Разработка PHP в настоящее время осуществляется группой добровольцев, некоторые из которых получают заработную плату от своих работодателей, чтобы они работали над “ядром” все время (full time). Большая часть обсуждения того, как развивается язык, происходит в mailing list.
После всего этого давайте опровергнем некоторые распространенные заблуждения о современном PHP.
PHP начинал как динамически типизированный язык, который в то время имел свои преимущества. С тех пор, как люди начали использовать PHP для более крупных проектов, недостатки системы типов стали очевидными, и возникла необходимость в более сильной поддержке типов.
Сегодня PHP является довольно уникальным языком: он по-прежнему позволяет вам писать полностью динамически типизированный код, но также имеет гораздо более сильную систему опциональных типов. В сочетании со статическим анализом и такими инструментами, как Psalm, Phan и PHPStan, вы можете написать безопасный, строго типизированный и статически проанализированный код.
Взгляните, например, на этот фрагмент кода PHP, полностью используя его современную систему типов:
<?php
declare(strict_types=1);
final class Foo
{
public int $intProperty = 2;
public ?string $nullableString = null;
private Bar $bar;
public function __construct(Bar $bar) {
$this->bar = $bar;
}
public function withInt(int $value): self
{
$clone = clone $this;
$clone->intProperty = $value;
return $clone;
}
public function unionTypes(int|float $input): void
{
// Union types will be added in PHP 8
}
}
По правде говоря, в системе типов PHP по-прежнему отсутствует одна важная особенность: generics. Есть надежда, что они будут добавлены, но пока нет ничего конкретного. В случае типизированных массивов вам нужно полагаться на PHPDoc, чтобы получить надлежащую поддержку IDE:
/** @var int[] */
public array $arrayOfInts = [];
И хотя типизированные массивы являются распространенным вариантом использования дженериков (generics), которые можно решить с помощью docblocks (PHPDoc), мы упускаем гораздо больше функциональности, потому что их нет в языке… пока.
Эра 7.х сделала много хорошего, сделав PHP более зрелым языком, когда дело доходит до синтаксиса. Чтобы проиллюстрировать это, я сделал не полный список новых вещей в PHP.
Деструктуризация массива:
[$a, $b] = $array;
Нулевой оператор объединения:
$value = $object->property ?? 'fallback if null';
$value = $array['foo'] ?? "fallback if key doesn't exists";
The null coalescing assignment оператор:
public function get(string $input): string
{
return $this->cache[$input] ??= $this->sanitize($input);
}
Распределение массива:
$a = [/* … */];
$b = [/* … */];
$mergedArray = [...$a, ...$b];
Вариадические функции:
public function get(Foo ...$foos): void
{
foreach($foos as $foo) {
// …
}
}
распаковку Аргументов:
$this->get(...$arrayOfFoo);
public int $intProperty;
Arrow functions, так же называемые “короткими замыканиями”:
$ids = array_map(fn(Post $post): int => $post->id, $posts);
Генераторы:
function make(array $input): Generator
{
foreach ($input as $item) {
yield $this->doSomethingWith($item);
}
}
И многое другое. Я надеюсь, что из этого списка ясно, что PHP все еще развивается сегодня, и вы можете быть уверены, что есть еще что-то хорошее.
PHP’s performance
В 5.x производительность PHP была… в лучшем случае средней. Однако в версии 7.0 большие части “ядра” PHP были переписаны с нуля, что привело к увеличению производительности в два-три раза. Кроме того, каждая версия 7.x оказала положительное влияние на производительность.
Слов не хватает, хотя. Давайте посмотрим на “бенчмарки”. К счастью, другие люди потратили много времени на тестирование производительности PHP. Я считаю, что у Kinsta хороший обновленный список.
Последняя функция, связанная с производительностью, называется предварительной загрузкой, которая в основном позволяет хранить скомпилированные части вашего кода PHP в памяти. Вы можете посмотреть на некоторые тесты здесь.
Когда выйдет PHP 8, в нашем распоряжении также будет JIT-компилятор, обещающий интересные улучшения производительности и позволяющий PHP входить в новые области помимо веб-разработки.
Переходя к тому, что сделано сообществом с помощью PHP. Давайте будем чисты: PHP больше не просто WordPress, а напротив.
В общем, есть два основных фреймворка веб-приложений и несколько более мелких: Symfony и Laravel. Конечно, есть также Laminas, Yii, Cake, Code Igniter и т. д. – но если вы хотите знать, как выглядит современная PHP-разработка, вам достаточно знать однин из первых двух.
Оба фреймворка имеют большую экосистему пакетов и продуктов. Начиная от административных панелей и CRM до автономных пакетов, CI для профилировщиков, многочисленных сервисов, таких как серверы веб-сокетов, менеджеры очередей, интеграции платежей; честно говоря, слишком много, чтобы перечислить.
Эти фреймворки предназначены для настоящей разработки; если вам нужно чистое “управление контентом”, такие платформы, как WordPress, Drupal и прочие, улучшаются все лучше и лучше.
Один из способов измерить текущее состояние экосистемы PHP – взглянуть на Packagist, основной репозиторий пакетов для PHP. Там можно увидеть экспоненциальный рост, с +25 миллионами загрузок в день, можно сказать, что экосистема PHP – не та слабая сторона, которой она была.
Посмотрите на этот график, в котором указано количество пакетов и версий с течением времени. Его также можно найти на веб-сайте Packagist.
Помимо фреймворков и CMS, мы также наблюдаем рост асинхронных фреймворков в последние годы. Это фреймворки и серверы, написанные на PHP или других языках, которые позволяют пользователям запускать действительно асинхронный код PHP. Некоторые крупные игроки – это Swoole, Amp и ReactPHP.
С тех пор как мы углубились в асинхронный мир, такие вещи, как web-сокеты и приложения с большим количеством операций ввода-вывода, стали действительно актуальными в мире PHP.
В списке рассылки о внутренностях также говорилось о том, чтобы добавить libuv в ядро. Для тех, кто не знает libuv: это та же библиотека, которую Node.js использует для обеспечения всей ее асинхронности. Кто знает, PHP 8 может быть версией, где ее добавят его в ядро!
Надеюсь, я смог показать вам, что PHP значительно эволюционировал за последние годы, и вы прекрасно умеете писать чистый и поддерживаемый код с его помощью.
Таким образом, в то время как у языка определенно есть свои недостатки и 20-летнее наследие; Я могу с уверенностью сказать, что мне нравится работать с ним.
По своему опыту я могу создавать надежное, обслуживаемое и качественное программное обеспечение. Клиенты, на которых я работаю, довольны конечным результатом, как и я. Несмотря на то, что с PHP все еще возможно многое испортить, я бы сказал, что это отличный выбор для веб-разработки, если его использовать уместно и правильно.
перевод – оригинал
Люди думают об электро-скутерах или e-scooters как об экологически чистых способах передвижения по городу. Но новое исследование, проведенное в Университете штата Северная Каролина, показало, что все не так просто: общие электронные скутеры могут быть зеленее, чем большинство автомобилей, но они могут быть менее зелеными, чем некоторые другие варианты.
«Компании производители заявляют, что у них мало или нет выбросов углекислого газа, что является смелым заявлением», – говорит Джеремия Джонсон (Jeremiah Johnson), соответствующий автор исследования и доцент кафедры гражданского, строительного и экологического проектирования в штате Северная Каролина. «Мы хотели в целом взглянуть на экологические последствия использования электронных скутеров – и сравнить это с другими вариантами местных перевозок».
Чтобы оценить влияние электронных скутеров, исследователи изучили выбросы, связанные с четырьмя аспектами жизненного цикла каждого скутера: производство материалов и компонентов, которые входят в каждый скутер; производственный процесс; отправка скутера от производителя в город его использования; и сбор, зарядка и перераспределение скутеров.
Исследователи также провели небольшой опрос водителей электронных скутеров, чтобы выяснить, какие виды транспорта они использовали бы, если бы не использовали электронный скутер. Исследователи обнаружили, что 49% ездили на велосипедах или гуляли; 34% использовали бы машину; 11% бы сели на автобус; и 7% не взяли бы поездку вообще. Эти результаты были аналогичны результатам более крупного обследования, проведенного городом Портленд, штат Орегон.
Чтобы сравнить воздействие электронных скутеров с воздействием других транспортных средств, исследователи рассмотрели ранее опубликованные анализы жизненного цикла автомобилей, автобусов, электрических мопедов и велосипедов. Исследователи рассмотрели четыре типа загрязнения и воздействия на окружающую среду: воздействие изменения климата; количество биогенных веществ в воде; воздействие на органы дыхания, связанное с загрязнением воздуха; и окисление. Результаты производительности были одинаковыми для всех четырех типов загрязнения.
«Многое из того, что мы обнаружили, довольно сложно, но кое-что было ясно», – говорит Джонсон. «Езда на велосипеде – даже с электрическим двигателем – почти всегда более экологична, чем использование электронного скутера. Единственное возможное исключение – для людей, которые используют так называемый bike sharing (велопрокат). Эти компании используют легковые и грузовые автомобили для перераспределения велосипедов в своей зоне обслуживания, что иногда может сделать их менее экологичными, чем использование электронного скутера».
К тому же, исследование показало, что вождение автомобиля почти всегда менее экологично, чем при использовании электронного скутера. Но некоторые результаты могут вас удивить. Например, поездка на автобусе обычно более экологична, чем на электронном скутере.
«Мы обнаружили, что воздействие на окружающую среду от электричества, используемого для зарядки электронных скутеров, довольно мало – около 5% от его общего воздействия», – говорит Джонсон. «Реальное влияние в значительной степени происходит из двух областей: использование других транспортных средств для сбора и перераспределения скутеров; и выбросы, связанные с производством материалов и компонентов, которые входят в каждый скутер».
Это означает, что есть два основных фактора, которые влияют на экологический след каждого скутера. Во-первых, чем меньше ехать за скутером, тем меньше воздействие. Второй фактор – это срок службы самокатов: чем дольше самокат находится в эксплуатации, тем больше времени ему приходится компенсировать воздействие, вызванное изготовлением всех его составных частей.
«Есть много факторов, которые необходимо учитывать, но электронные скутеры экологически безопасны по сравнению с некоторыми видами транспорта», – говорит Джонсон. «И есть вещи, которые компании и местные органы власти могут сделать, чтобы еще больше снизить их воздействие. Например, разрешение – или поощрение – компаниям собирать скутеры только тогда, когда они достигают разряда батареи, уменьшит влияние скутера, потому что вы не будете собирать скутеры, которые не нуждаются в подзарядке».
Drones are becoming increasingly popular, at the moment they are used only for photographers and photographers. At the moment a lot of startups are trying to implement all kinds of ideas into real in a real project.
Wing launched one of them. They launched food delivery by Helsinki drones. Wing using UTM platform for drone management. You can lear more about it here
Wing has started service in Australia, and now they are in Europe in helsinki. Wing drones – 14-rotor drones with the possibility of vertical take-off and landing – are developed and used primarily for commercial purposes. With their help, Wing optimizes the process of delivering goods to the customer: unmanned vehicles can reduce the time it takes to deliver small packages to courier clients that are distant from each other.
The company chose Helsinki as the first city for testing, or rather, the Vuosaari district, which is surrounded by water from three sides, which makes the delivery of goods and food in conventional ways problematic. Service users will be able to order several ready-made meals from Herkku supermarkets, as well as food from the Monami restaurant; the delivery itself, according to Wing, takes about ten minutes.
The first delivery took place this week: the mayor of the city of Helsinki, Jan Vapaavuori, took part in the tests. The use of drones for food delivery, according to Wing, fits well with the plans of the Helsinki city government to completely abandon cars by 2025.
Last month, Wing also received an air carrier certificate from the United States Federal Aviation Administration. Soon, the company will begin testing the delivery of goods by drones in Virginia.
Финский стартап (Solar Foods), планирует производить пищевой белок из воздуха и электричества. Компания объявила о своем партнерстве с Европейским космическим агентством для работы по производству продуктов питания для будущих космических полетов. Ранее Solar Foods получила финансирование в размере 2 млн. Евро и планировала начать коммерческое производство своего белка к 2021 году.
Процесс производства основан на исследованиях Центра технических исследований VTT в Финляндии и Технологического университета Лаппеенранты (LUT). Основными составляющими стартапа являются воздух и электричество. Производство начинается с электролиза воды с образованием водорода. Затем компания объединяет водород с углекислым газом и некоторыми минералами для питания микробов, которые создают белок. Микробы подвергают термообработке для получения протеинового порошка.
«Наша цель – превратить белок в высококачественный продукт, воздействие которого на окружающую среду будет в 10-100 раз меньше, чем воздействие мясных продуктов или их заменителей, имеющихся в настоящее время на рынке», – объясняет генеральный директор Solar Foods Паси Вайникк (Pasi Vainikk).
Пищевой белок от Solar Foods является веганским и не зависит от животных или растений в процессе производства. Мало того, что это противоречит устоям традиционного сельского хозяйства и может изменить еду на вашем столе, но также оно может изменить то, что люди могут есть во время космических полетов.
Solar Foods недавно объединилась с Европейским космическим агентством (ESA) для работы над производством продуктов питания для Марса. Небольшой “биореактор”, сделанный из стали, может стать первой версией популярного репликатора, увиденного на Star Trek. Подобно репликатору, который был способен синтезировать пищу и уменьшал необходимость нести провизию, биореактор Solar Foods может создавать съедобные белки, которые могут накормить команду или колонистов на Марсе.
“Условия в колониях Марса очень отличаются от условий на Земле, но в них светит солнце, а в атмосфере планеты огромное количество углекислого газа. Новаторская технология Solar Foods позволяет использовать новый способ производства продуктов питания даже в закрытых помещениях». Мы предполагаем, что ингредиенты, имеющиеся на базе Марс, могут быть использованы с новой технологией”, – делится Киммо Исбьёрнссунд (Kimmo Isbjörnssund), менеджер, ESA Business Incubation Center, Финляндия.
Solar Foods хочет начать коммерческое производство белка к 2021 году. Его экологически чистый процесс не зависит от погоды, наличия земли или других природных ресурсов. Это также недорогой способ получения белка, который может со временем расти. Чтобы сделать больше белка, вам просто нужен больший биореакторный резервуар и дополнительные микробы.
Это не единственный стартап, заинтересованный в создании белка без животных или растений. Например, Perfect Day работает над молочными белками, приготовленными без коров, опираясь на процесс дрожжевого брожения. По мере роста озабоченности по поводу доступности и устойчивости продовольствия число альтернативных источников белка также будет увеличиваться.
Lyft добавил в приложение универсальный способ перемещения в нескольких городах США. Lyft превращается из кар-шеринг стартапа в компанию которая хочет знать все маршруты полностью , или компанией в которой часть всех маршрутов людей от точки А до точки Б, что бы это ни было, автомобиль, велосипед, скутер или общественный транспорт.
Эта новая версия приложения Lyft, которая позволяет пользователям арендовать так называемый кар-шеринг, находить скутер или мотоцикл, а также просматривать близлежащие варианты общественного транспорта, доступна только в тех городах, где компания запустила эти услуги. На данный момент это короткий список, который включает Вашингтон, округ Колумбия, Санта-Монику, Калифорния и Лос-Анджелес. Но, вероятно, он будет расти по мере того, как компания запустит совместное использование скутеров и велосипедов в большем количестве городов, и по мере того, как она будет устанавливать партнерские отношения с транзитными властями с помощью функции ближнего транзита, которая включает информацию о маршрутах и расписании движения автобусов и поездов.
Новая версия приложения Lyft показывает каждую опцию мобильности и предлагает предложения, основанные на поведении пользователя, местоположении и других данных. И поскольку приложение также интегрируется с общественным транспортом, оно будет показывать пользователям, когда их поездка может быть более быстрой или эффективной с использованием местной шины или метро, даже если Lyft не имеет финансовой выгоды от этого варианта.
На протяжении большей части 2018 года Lyft продвигается к этому подходу «все вышеперечисленное». Это изменение ускорилось благодаря приобретению Motivate, старейшей и крупнейшей компании по производству электромобилей в Северной Америке, открытию своего скутерного бизнеса и программа «Ближайший транзит», которая стартовала в сентябре в Санта-Монике.
Служба совместного использования скутеров Lyft, запущенная в Денвере, теперь работает в шести городах. Компания планирует удвоить это число к концу 2018 года – всего через несколько недель. Это также расширяет возможности совместного использования велосипедов. Через свой бренд Motivate bike-share компания инвестировала в Citi Bike 100 миллионов долларов, увеличив парк до 40 000 велосипедов в течение следующих пяти лет. В настоящее время Lyft является крупнейшим сервисом по продаже велосипедов в Северной Америке.
В четверг Ford GoBike – система Motivate, которой в настоящее время владеет Lyft, представляет более 500 новых электрических велосипедов с педальным управлением в свою сеть обмена велосипедами в Восточном заливе Сан-Франциско.
Эта мультимодальная стратегия, которую Lyft изложил еще в июле, поможет компании достичь своей цели – к 2019 году убрать 1 миллион автомобилей с дороги. (В прошлом году Lyft заявил, что 250 000 членов его сообщества отказались от своих личных автомобилей.) Это усилие отчасти этим руководит Кэролайн Сампонаро (Caroline Samponaro), глава отдела велосипедов, скутеров и пешеходной политики Lyft, имеющая долгую историю в качестве велосипедистов. Сампонаро (Samponaro), которая в четверг опубликовала блог, описывающий ее подход, боролась за защищенные велосипедные дорожки в Нью-Йорке и провела массовую кампанию по перестройке улиц Нью-Йорка. Сампонаро (Samponaro) в последнее время работал в транспортной альтернативе, группе защиты велосипедистов и пешеходов.
«Мы смотрим в будущее и очень усердно ориентируемся на то, как мы можем помочь решить большие транспортные проблемы для городов, выводя людей из автомобилей, а также на велосипеды и скутеры или из автомобилей и в общественный транспорт», – сказал Сампонаро (Samponaro). TechCrunch в недавнем интервью. «Это действительно оправдывает видение, которое основатели имеют для компании, чтобы быть частью этих крупных системных транспортных решений, и партнерство с городами является основой успеха».
Lyft также стремится улучшить безопасность велосипеда. Недавно он получил одобрение для своего проекта на улице Mission District of San Francisco, который является одним из самых популярных велосипедных коридоров в городе. Для уменьшения двойной парковки, которая затрудняет движение по велосипедным дорожкам, Lyft проводит пилотную программу с гео-ограждением, которая направляется в специально отведенное для этого место за пределами мест, где пассажиры принимают и отправляют пассажиров.
Конечно, дело не только в том, чтобы сделать мир лучше. В конце концов, Lyft – это компания, которая видит большие возможности и преимущества для диверсификации своего бизнеса.
Битва между Uber и Lyft из-за доли рынка в США перешла к большей войне за контроль над транспортом. Хотя большая часть внимания была сосредоточена на сюжетной линии Uber против Lyft, есть и другие важные игроки, которые будут влиять на результаты. И это города и транзитные ведомства
This is incredibly great news, because it is new the best medicine from influenza in the world.
Yesterday US Food and Drug Administration (FDA) has approved Xofluza™ (baloxavir marboxil) for the treatment of acute, uncomplicated influenza, or flu, in people 12 years of age and older. Xofluza is a first-in-class, single-dose oral medicine with a novel proposed mechanism of action that inhibits polymerase acidic endonuclease, an enzyme essential for viral replication.[1-2] Xofluza has demonstrated efficacy against a wide range of influenza viruses, including oseltamivir-resistant strains and avian strains (H7N9, H5N1) in non-clinical studies.
The FDA has granted priority consideration to the application for registration of Xofluza (Xeroxavir marboxil) from Shionogi, a Japanese company that treats flu. This means that it can be approved at the end of December of this year. In February of this year, the drug has already been approved in Japan.
The basis for granting the status were the positive results of clinical studies of the third phase. The effect of Xofluza is different from other anti-influenza drugs. It inhibits the keto-dependent endonuclease protein. The drug is intended for single use, whereas, for example, Tamiflu should be taken five days twice a day.
Baloxavir stops the spread of influenza virus in just 24 hours, while taking Tamiflu this period is 72 hours. It is also effective in some Tamiflu-resistant avian influenza strains.
References
24 August 2018 Golang v1.11 was released
This is great news and many developers expected changes which appeared in this version of the language. But Developers who uses Sublime Text with GoSublime plugin, expected an unpleasant surprise. GoSublime uses nsf/gocode package to make Sublime powerful IDE for GoLang developers. But it stop working because it doesn’t support the new Go package format.
If you want to fix it ASAP, you have to switch to development branch.
git clone https://git.kuroku.io/GoSublime -b development
How to Fix
git clone https://git.kuroku.io/GoSublime -b development
to install GoSublime from the development branch. (I’m a MacOS use to package folder located at ~/Library/Application Support/Sublime Text 3/Packages
)