Рубрика «Разработка веб-сайтов» - 246

Друзья, добрый день!

7–8 сентября в СМИ и блогах стали появляться сообщения о взломе одного из крупнейших бюро кредитных историй Equifax. Представители американской компании сообщили, что «утекли» данные 143 миллионов человек: имена, адреса, номера социального страхования и в некоторых случаях номера кредитных карт. Те, кто знает, какое число сервисов в США работают с этими идентификаторами, могут предположить потенциальным масштаб будущих краж личности.

Сама утечка произошла в мае 2017, стало известно о ней только в конце июня. И более месяца факт утечки не предавался огласке. Из-за этого и из-за странного поведения топ-менеджмента (они, возможно, слили свои доли в компании за несколько дней до обнародования проблем) акции Equifax сделали так:

image
Читать полностью »

JavaScript: загадочное дело выражения null >=0 - 1

Однажды я собирал материалы чтобы устроить ликбез по JavaScript для пары коллег. Тогда я и наткнулся на довольно интересный пример, в котором рассматривалось сравнение значения null с нулём. Собственно говоря, вот этот пример:

null > 0; // false
null == 0; // false
null >= 0; // true

На первый взгляд — полная бессмыслица. Как некое значение может быть не больше, чем 0, не равно нулю, но при этом быть больше или равно нулю?
Читать полностью »

Синхронный код на JavaScript, автор которого не стремился сбить с толку тех, кто этот код будет читать, обычно выглядит просто и понятно. Команды, из которых он состоит, выполняются в том порядке, в котором они следуют в тексте программы. Немного путаницы может внести поднятие объявлений переменных и функций, но чтобы превратить эту особенность JS в проблему, надо очень постараться. У синхронного кода на JavaScript есть лишь один серьёзный недостаток: на нём одном далеко не уехать.

JavaScript: методы асинхронного программирования - 1

Практически каждая полезная JS-программа написана с привлечением асинхронных методов разработки. Здесь в дело вступают функции обратного вызова, в просторечии — «коллбэки». Здесь в ходу «обещания», или Promise-объекты, называемые обычно промисами. Тут можно столкнуться с генераторами и с конструкциями async/await. Асинхронный код, в сравнении с синхронным, обычно сложнее писать, читать и поддерживать. Иногда он превращается в совершенно жуткие структуры вроде ада коллбэков. Однако, без него не обойтись.

Сегодня предлагаем поговорить об особенностях коллбэков, промисов, генераторов и конструкций async/await, и подумать о том, как писать простой, понятный и эффективный асинхронный код.
Читать полностью »

6 сентября на Дизайн-заводе Flacon прошел неформальный митап для back-end разработчиков.

Нас пугали ураганом, грозой и холодом. Не сработало, к нам присоединилось более 150 участников!

Горячий глинтвейн и бургеры, теплая атмосфера. А еще горячие темы выступлений:

— Как с пользой провести время на собеседовании
— Почему Big Data бесполезна
— Как внедрить Kubernetes и не сойти с ума
— Почему архитектуру иногда нужно менять просто так
— Про Docker

Отчет с митапа для back-end разработчиков - 1

Читать полностью »

Кто все эти люди? Давайте спросим К50 - 1

Привет. Не будем лить воду до ката, сразу приступим к делу. Оптимизатор ставок в контекстной рекламе платформа К50 предлагает своим клиентам инструменты для увеличения эффективности рекламы. Большая часть имеет отношение к онлайн-среде, что вполне логично, ведь речь идет о сетевых технологиях. Для компаний, у которых обращения по телефону составляют 30% (а в некоторых тематиках – до 70-80%) от общего числа входящих обращений, данных для анализа рекламы было недостаточно. Именно для таких клиентов К50 решили разработать сервис, чтобы получить детальную информацию по каждому звонку, включая его длительность, запись, ключевое слово и цепочку событий-визитов, которая и привела клиента. Звучит сложно, но реализовано это было достаточно оперативно благодаря готовым компонентам Voximplant (ну, чуть-чуть себя похвалили, простите).

Читать полностью »

image Всем привет! Это уже семнадцатый выпуск дайджеста на Хабрахабр о новостях из мира Python.

Присылайте свои актуальные материалы, а также любые замечания и предложения, которые будут добавлены в ближайший дайджест.

А теперь к делу!
Читать полностью »

Зачем мы сделали VOD на WebRTC - 1

VOD — это про video on demand, т.е. проигрывание обычных роликов, как это делается на YouTube или другом стриминговом сервисе. WebRTC — это видео реалтайм с низкой задержкой. Вы спросите — как эти две вещи могут быть связаны? Заходите под кат за подробностями.Читать полностью »

PHP-Дайджест № 116 – свежие новости, материалы и инструменты (27 августа – 10 сентября 2017) - 1

Свежая подборка со ссылками на новости и материалы. В выпуске: PHP 7.2.0 RC 1, Laravel 5.5 LTS, чистый код на PHP, предложения из PHP Internals, видео с конференций и митапов, и многое другое.
Приятного чтения!

Читать полностью »

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

Дайджест свежих материалов из мира фронтенда за последнюю неделю №279 (4 — 10 сентября 2017) - 1

Читать полностью »

Специфика использования Redux в Polymer и Vue - 1
Как я уже писал в своих предыдущих статьях я работал и с polymer и с vue в связке с redux. Поэтому хотелось бы поделиться опытом, связанным со спецификой использования redux в данных библиотеках. Рассматривать будем на простейших атомарных контролах: нативных (input, checkbox) и обернутых, в виде компонентов данных библиотек.
В статье я опуская описание настройки интеграции redux с polymer и vue, а так же описание азов самого redux, дабы не эту тему хочу раскрыть в статье.

0. Введение

Сначала вспомним один из основных принципов redux:

The only way to change the state is to emit an action, an object describing what happened.

Исходя из него ясно, что напрямую мы не можем изменить состояние, а сделать это можем только через диспатч экшена после наступление необходимого event'а.
Схематично это можно изобразить так:
Специфика использования Redux в Polymer и Vue - 2
Как видим наблюдается односторонний поток данных.

1. Нативные контролы

polymer

Очень удобная вещь в polymer при связке с redux дак это односторонний биндинг.

template:

<input value="[[propFromReduxStore]]" on-change="changeText"></input>

js-code:

changeInput: function(e) {
  this.dispatch("setText", e.currentTarget.value);
}

Поэтому с input все, в принципе стандартно: при событии change диспатчим action и после чего измененное значение попадает в propFromReduxStore и контрол перерендерится уже с новым значением.

vue

C vue немного другая ситуация, в нем нет как такагого одностороннего биндинга, как в polymer. Но подобную функциональность можно достигнуть через модификатор sync

template:

<input :value.sync="propFromReduxStore" @change="changeText"></input>

js-code:

changeInput: function(e) {
  this.actionsRedux("setText", e.currentTarget.value);
}

Остальное все как и в варианте с polymer.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js