Обновить
512K+

Веб-разработка *

Делаем веб лучше

333,57
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Генерирование псевдослучайных чисел с помощью клеточного автомата: Правило 30

Время на прочтение5 мин
Охват и читатели8.1K
Генераторы псевдослучайных чисел выдают числа детерминировано, но обычно такие числа выглядят непериодическими (случайными). По крайней мере, в большинстве случаев применения подобных чисел так обычно и происходит. Генератор принимает начальное значение (в идеале — истинное случайное число) и порождает последовательность чисел, работая как функция от начального значения и (или) от предыдущего числа последовательности. Подобные числа являются псевдослучайными (а не истинными случайными числами) из-за того, что если известно начальное значение, переданное генератору, эти числа можно сгенерировать снова алгоритмическим путём. Истинные случайные числа генерируют, используя специальное аппаратное обеспечение или некие физические явления — пульсовые колебания объёма крови, атмосферное давление, тепловой шум, квантовые процессы и так далее.



Существует множество способов генерирования псевдослучайных чисел. Например — алгоритм Блюма — Блюма — Шуба, метод средних квадратов, метод Фибоначчи с запаздываниями. Сегодня мы поговорим о генерировании случайных чисел с помощью Правила 30, которое использует неоднозначный подход, предусматривающий применение модели клеточного автомата. Этот метод прошёл множество стандартных тестов на случайность чисел и использовался в системе Mathematica для генерирования случайных целых чисел.
Читать дальше →

Взгляд изнутри на надёжность сервисов Facebook

Время на прочтение13 мин
Охват и читатели15K
Когда Facebook «лежит», люди думают, что это из-за хакеров или DDoS-атак, но это не так. Все «падения» за последние несколько лет были вызваны внутренними изменениями или поломками. Чтобы учить новых сотрудников не ломать Facebook на примерах, всем большим инцидентам дают имена, например, «Call the Cops» или «CAPSLOCK». Первый так назвали из-за того, что когда однажды соцсеть упала, в полицию Лос-Анджелеса звонили пользователи и просили его починить, а шериф в отчаянии в Твиттере просил не беспокоить их по этому поводу. Во время второго инцидента на кэш-машинах опустился и не поднялся сетевой интерфейс, и все машины перезапускали руками.

Элина Лобанова работает в Facebook последние 4 года в команде Web Foundation. Участники команды зовутся продакшн-инженерами и следят за надежностью и производительностью всего бэкенда, тушат Facebook, когда он горит, пишут мониторинг и автоматизацию, чтобы облегчить жизнь себе и другим.



В статье, основанной на докладе Элины на HighLoad++ 2019, расскажем, как продакшн-инженеры следят за бэкендом Facebook, какие инструменты используют, из-за чего возникают крупные сбои и как с ними справиться.

Решение нескольких задач от Microsoft на примере JavaScript

Время на прочтение4 мин
Охват и читатели14K


Доброго времени суток, друзья!

Представляю вашему вниманию три задания по JS, предложенные участникам Microsoft’s Online Assessment 2019.

Microsoft’s Online Assessment — предварительный отбор кандидатов в разработчики. Тех, кто прошел предварительный отбор, приглашают на онлайн собеседование. Нашел в сети информацию, что на решение задач отводился ровно один час, но это не точно.

Предлагаю вам ознакомиться с вопросами и попробовать решить их самостоятельно. Развернутые комментарии приветствуются.

За решения огромное спасибо Matt Clark.

Итак, поехали.
Читать дальше →

Старый и новый CSS. История веб-дизайна

Время на прочтение53 мин
Охват и читатели32K
Я увлеклась веб-дизайном и разработкой в конце 90-х. Чёрт побери, как это было давно. И как это было ужасно. Я имею в виду, что сделать сайт и опубликовать его представляло хитрое дело, а заказчиков можно было пересчитать по пальцам.

Мне казалось, что большинство разработчиков помнят те дни или хотя бы следующее десятилетие, но нет. Недавно мне попался на глаза твит, автор которого удивлялся технике простановки закруглённых углов до появления border-radius (сделать отдельную картинку для каждого закруглённого угла и точно её позиционировать). Я до сих пор помню, как мы затаив дыхание ждали, когда border-radius станет стандартом и с него уберут префикс в браузерах.

С другой стороны, многие лишь слегка попробовали веб-дизайн в старые времена и полагают, что с тех пор ничего не изменилось.

Эта статья для всех. История CSS и веб-дизайна, как я её помню.
Читать дальше →

The Ember Times — Выпуск 136

Время на прочтение5 мин
Охват и читатели631


ഹലോ Эмберисты!


Присылайте видео для вступительного слова на EmberConf, вышла новая версия Ember 3.16, Сапер встречает Ember Octane, прочитайте рассказ о первом опубликованном аддоне, пройдите опрос сообщества Ember 2020, и узнайте, как пересылать модификаторы элементов за <10 минут !


От переводчика: Все ссылки без пометки указывают на англоязычные ресурсы. На русском вопросы можно задать в вашем любимом телеграмм-канале

Читать дальше →

Делаем клон сервиса по доставке еды, используя Nuxt.js, GraphQL, Strapi и Stripe. Часть 1/7

Время на прочтение5 мин
Охват и читатели19K
image

Приготовьтесь написать клон сервиса по доставке еды deliveroo.co.uk используя современные технологии: Nuxt.js, GraphQL, Strapi и Stripe!

От входа до оформления заказа, мы дадим пользователям возможность открывать для себя новые рестораны, блюда и выбирать свою любимую еду.
Читать дальше →

PHP-Дайджест № 174 (10 – 24 февраля 2020)

Время на прочтение5 мин
Охват и читатели15K

Свежая подборка со ссылками на новости и материалы. В выпуске: 5 новых RFC из PHP Internals, а также предложение по развитию языка и пара прототипов новых фич в виде пул-реквестов, порция полезных инструментов, видео, подкасты и многое другое.

Приятного чтения!


Читать дальше →

Логирование и трассировка запросов — лучшие практики. Доклад Яндекса

Время на прочтение7 мин
Охват и читатели31K
В Яндекс.Маркете большая микросервисная архитектура. Браузерный запрос главной страницы Маркета рождает десятки вложенных запросов в разные сервисы (бэкенды), которые разрабатываются разными людьми. В такой системе бывает сложно понять, по какой именно причине запрос упал или долго обрабатывался.


Анатолий Островский megatolya объясняет, как его команда решила эту проблему, и делится практиками, специфичными для Маркета, но в целом актуальными для любого большого сервиса. Его доклад основан на собственном опыте развёртывания нового маркетплейса в довольно сжатые сроки. Толя несколько лет руководил командой разработки интерфейсов в Маркете, а сейчас перешёл в направление беспилотных автомобилей.
Читать дальше →

Неудачный опыт создания и администрирования сайта научного журнала

Время на прочтение8 мин
Охват и читатели9.2K
Говорить о том, как не надо заказывать сайты, у разработчиков уже язык устал. Но совершенно справедливо подмечено, что свой опыт крайне трудно вложить в чужую голову, а посему неопытные заказчики продолжают наступать на одни и те же грабли. Возможно, одна из причин в том, что подходят к роковому предмету садового инвентаря все с разных сторон и каждый собственным путем. Поделюсь своим.
Читать дальше →

Дайджест свежих материалов из мира фронтенда за последнюю неделю №403 (17 — 23 февраля 2020)

Время на прочтение3 мин
Охват и читатели11K
Предлагаем вашему вниманию подборку с ссылками на новые материалы из области фронтенда и около него.

Читать дальше →

7 трюков с Rest и Spread операторами при работе c JS объектами

Время на прочтение4 мин
Охват и читатели35K
Если вдруг кому интересно то я веду телеграм канал по фронтенду где выкладываю интересные статьи на разные темы а так же сам периодически пишу шорт-риды которые могут быть вам полезны. А теперь поехали!



Привет, Хабр! Представляю вашему вниманию перевод статьи «7 Tricks with Resting and Spreading JavaScript Objects» автора Joel Thoms.

Всем привет, на днях коллега по работе скинул мне ссылку на статью на английском языке в которой перечисляются разные методы работы с rest и spread операторами. Она оказалась мне полезна и я решил её перевести. Итак, начнем.

image
В этой статье вы найдете 7 наименее известных трюков использования rest и spread операторов

Ресайз изображений на лету с помощью Nginx и LuaJIT (OpenResty)

Время на прочтение3 мин
Охват и читатели8.1K

Уже довольно давно, вдохновившись статьей Ресайз изображений на лету был настроен ресайз изображений с помощью ngx_http_image_filter_module и все работало как надо. Но появилась одна проблема, когда менеджеру понадобилось получать изображения с точными размерами для заливки на некоторые сервисы, т.к. это были их технические требования. К примеру, если мы имеем оригинал изображения размером 1200x1200, и при ресайзе мы пишем что-то вроде ?resize=600x400, то получим пропорционально уменьшенное изображение по наименьшему краю, размером 400x400. Так же невозможно получить изображение с бОльшим разрешением (upscale). Т.е. ?resize=1500x1500 вернет все тоже изображение 1200x1200


На помощь пришла статья OpenResty: превращаем NGINX в полноценный сервер приложений для понимания как работает Nginx с Lua и сама библиотека для Lua isage/lua-imagick — Lua pure-c bindings to ImageMagick. Почему было выбрано такое решение, а не, скажем, что-нибудь на python — потому что это быстро и удобно. Вам даже не понадобится создавать никаких файлов, все прямо в конфиге Nginx (не обязательно).

Читать дальше →

Что делает реактивную систему хорошей?

Время на прочтение14 мин
Охват и читатели7.2K

Этот пост является вторым в серии статей об авто-трекинге — новой системе реактивности в Ember.js. Я также обсуждаю концепцию реактивности в целом, и как она проявляется в JavaScript.


От переводчика: Крис Гарретт — работает в компании LinkedIn и является одним из core-контрибьюторов js-фреймворка Ember. Он принимал активное участие в создании нового издания фреймворка — Ember Octane. Одним из краеугольных камней этой редакции является новая система реактивности на основе автоматического отслеживания (autotracking). Несмотря на то, что его серия написана для Ember-разработчиков в ней затрагиваются концепции, которые полезно знать всем веб-программистам.
Читать дальше →

Ближайшие события

Попытка решить проблему выбора авиабилетов перед отпуском #2

Время на прочтение2 мин
Охват и читатели7.4K
Всем привет! Настали длинные выходные, а это значит, что пришло время поделиться новыми фичами, которые были сделаны с момента предыдущего поста:

  1. Комбинатор сложных маршрутов
  2. Сложные билеты (треугольники)
  3. История цен на билеты

Скриншот одной из новых фичей:

image
Читать дальше →

Представляем PHP 7.4: Производительность, Возможности, Устаревший Функционал

Время на прочтение8 мин
Охват и читатели24K

PHP постоянно развивается, и только что мир увидело их последнее обновление — PHP 7.4. Производительность и скорость продолжают расти, в чём мы убедились ещё в предыдущих релизах PHP 7. Предварительная загрузка — одно из самых ярких обновлений. Эта возможность позволяет значительно ускорить выполнение скрипта и делает код чище и быстрее благодаря уменьшённому количеству строк кода.


PHP является важным элементом всемирной паутины и используется более чем на 79% всех сайтов. Известные сайты, такие как Facebook, Википедия, WordPress и многие другие используют PHP.

Мы можем увидеть что скорость веб-сайтов WordPress увеличивается вдвое, если сравним сайты, работающие на PHP 5 и 7. От последней версии больше всего выиграют сайты на WordPress.

Читать дальше →

Tоп-10: лучшие доклады Heisenbug 2019 Moscow

Время на прочтение4 мин
Охват и читатели7.1K


Когда конференция и ностальгия по уточкам заканчивается и проходит пара месяцев, то начинаешь вспоминать доклады, которые не удалось послушать. Под катом будет топ-10 докладов конференции Heisenbug 2019 Moscow, а также плейлист на все доклады прошедшей конференции.

Посмотрим на топ-10

10 React-компонентов на все случаи жизни

Время на прочтение3 мин
Охват и читатели31K
Я полагаю, что для решения различных задач React-разработки лучше использовать маленькие узкоспециализированные инструменты, а не универсальные решения, предлагаемые библиотеками компонентов. Мне нравится выбирать компоненты самостоятельно, я не люблю читать длинную документацию, и мне хочется избежать бессмысленных обновлений библиотек, после которых в проекте нередко что-то ломается.



Некая фронтенд-библиотека способна дать разработчику единообразное оформление компонентов, что крайне важно. Но может оказаться так, что в проекте, в котором планируется использовать такую библиотеку, уже есть собственная дизайн-система, или собственная UI-библиотека. В такой ситуации разработчик ищет не новую библиотеку, а лишь настраиваемые компоненты, подходящие для многократного использования и ускоряющие работу. В подобном случае больше смысла я вижу в поиске отдельного компонента, а не целой библиотеки, которая содержит, вместе с тем, что очень нужно разработчику, много такого, что ему совершенно ни к чему.

Материал, перевод которого мы сегодня публикуем, посвящён рассказу о 10 React-компонентах.
Читать дальше →

WebAuthn в реальной жизни

Время на прочтение19 мин
Охват и читатели53K
В сентябре 2019 года команда Почты Mail.ru поддержала технологию WebAuthn. Мы стали первым в мире сервисом электронной почты, который реализовал возможность входа в аккаунт с использованием электронных ключей вместо паролей. Сейчас эта возможность доступна всем нашим пользователям, вы можете привязать электронный ключ к своему аккаунту в настройках и после этого свободно использовать его для входа.



Мы уже писали новость об этом событии здесь, на Хабре. В этой статье я хочу рассказать подробнее о причинах внедрения WebAuthn в наши сервисы и о технических аспектах работы с этой технологией.
Читать дальше →

Мои любимые инструменты разработчика в Chrome

Время на прочтение3 мин
Охват и читатели27K


Доброго времени суток, друзья!

Chrome Developer Tools — очень мощный набор инструментов для разработки веб приложений. С помощью этих инструментов мы можем перемещаться по DOM, осуществлять проверку запросов на сервер, настраивать производительность приложений и др.

Среди множества доступных возможностей, существует несколько по-настоящему интересных. Эти «фичи» помогают делать на один-два клика меньше — разве не для этого мы здесь собрались?
Читать дальше →

Как за семь шагов спроектировать масштабную автоматизированную систему для крупного предприятия

Время на прочтение5 мин
Охват и читатели7.3K
Проектирование автоматизированной системы для работы большой компании с ее контрагентами. Создание сразу двух типов личных кабинетов: для сотрудника предприятия и для дилера. Задачи, которые доверяют далеко не каждому. А мы спроектировали такую систему для одного из ведущих в России производителей строительных и отделочных материалов.

Предприятие огромное: несколько уровней руководителей, менеджеры, трейд-маркетологи, аналитики, бухгалтеры. И множественные взаимодействия с около 150 дилерами, работающими в разных регионах страны. Всю эту систему предстояло упорядочить и автоматизировать.

Поработать было над чем. Во-первых, у руководства не было полной информации о конечных потребителях продукции, которую реализует дилер, ее реальном объеме реализации и остатков на складе. Поставки продукции из-за этого не были сбалансированы. Доходило и до таких случаев, когда подарки, положенные дилерам по результатам маркетинговых акций, не доезжали до них. В самой компании менеджеры принимали заказы в виде excel-файлов и отказывались делиться информацией о текущем положении дел. Руководство предприятия понимало, что дальше так продолжаться не может. При этом работать с крупным IT-интегратором не решались из-за большой стоимости работ.
Читать дальше →