Как стать автором
Обновить
9
0
Solovev Denis @densol92

Software developer

Отправить сообщение

Всё о cookies в свете GDPR и не только

Время на прочтение5 мин
Количество просмотров6K

GDPR вступил в силу уже четыре года назад, однако его понимание и практика применения до сих пор развиваются. Как показывают последние новости, далеко не все преуспели в борьбе за соответствие – в январе Google и Facebook получили серьёзные штрафы (на €150 млн и €60 млн соответственно) за нарушения законодательства в отношении cookies, причём для Google это уже второй штраф за них (предыдущий был на €100 млн). Именно тема cookies постепенно становится "горячей": ей занялись не только регуляторы, но и активисты. Правила, действующие в отношении cookies, основываются частью на GDPR, частью – на ePrivacy Directive. В этой статье собрано текущее понимание этих правил для практического применения.

Читать далее
Всего голосов 8: ↑8 и ↓0+8
Комментарии32

Что нам стоит… загрузить JSON в Data Platform

Время на прочтение12 мин
Количество просмотров3K

Всем привет! В недавней статье мы рассказали, как мы шли к построению нашей Data Platform.

Сегодня хотелось бы глубже погрузиться в «желудок» нашей платформы и попутно рассказать вам о том, как мы решали одну из задач, которая возникла в связи с ростом разнообразия интегрируемых источников данных.

То есть, если возвращаться к финальной схеме из упомянутой выше статьи (специально дублирую ее ниже, чтобы уважаемым читателям было удобнее), то сегодня мы будем более углубленно говорить о реализации «правой части» схемы — той, что лежит после Apache NiFi.

Читать далее
Всего голосов 4: ↑3 и ↓1+2
Комментарии3

Pattern matching. Теперь и в Python

Время на прочтение5 мин
Количество просмотров43K
Привет!

В юбилейный минор третьего питона наконец-то завезли pattern matching. Саму концепцию сложно назвать новой, она уже реализована во многих языках, причём как нового поколения (Rust, Golang), так и у тех, кому уже за 0x18 (Java).


Анонсировал pattern matching Гвидо ван Россум, автор языка программирования Python и «великодушный пожизненный диктатор»

Меня зовут Денис Кайшев, я код-ревьюер на курсе «Мидл Python-разработчик». В этом посте хочу рассказать, зачем в Python pattern matching и как с ним работать.

Синтаксически конструкция pattern matching по сути аналогична тому, как это представлено в ряде других языков:
Всего голосов 42: ↑41 и ↓1+40
Комментарии28

Эволюция real-time Web: примеры из практики (или с чем Lua справляется лучше JS)

Время на прочтение9 мин
Количество просмотров6.1K
Карантин и переход на удаленку наводят на ностальгические воспоминания о полном жизни офисе, когда вместо звонков и трансляций мы работали и собирались на хакатонах в одной комнате с коллегами. Сегодня вспомним хакатон, где мы писали веб-сервер на Lua, а заодно кратко пробежимся по истории развития real-time web. Под этим термином мы будем понимать технологии, которые позволяют делать в браузере вещи, сравнимые по UX с десктопными приложениями — когда отклик на действия или события приходит сразу. Вспомним, как это делалось раньше, как делается сейчас, сравним существующие решения и расскажем, что и как используем сами. Видео-версию оригинального доклада можно посмотреть на нашем канале.

История


iframe


Начнем с начала нулевых — многие, наверное, помнят чаты на iframe. Сейчас уже сложно назвать это real-time технологией, но тем не менее. Принцип работы — в HTML-документ с помощью тега iframe встраивается содержимое другой веб-страницы — например, блок с чатом в игре. При обновлении этой встроенной части вся остальная страница не обновляется.

Вспомнить все
Всего голосов 7: ↑6 и ↓1+5
Комментарии7

Введение в TLS для п̶р̶а̶к̶т̶и̶к̶о̶в̶ Патриков (часть 2)

Время на прочтение18 мин
Количество просмотров17K
Сегодня мы продолжаем разбираться, как устроен TLS и чем он может быть полезен Патрику и его друзьям. Первую часть истории можно прочитать тут.

Мы остановились на том, что сервер отправил свою часть TLS-handshake клиенту. Теперь клиент должен прежде всего проверить сертификаты – и это самая тяжелая из вещей, которые ему обязательно надо сделать.



Certificate verification: chain


Возможно, вы обратили внимание на формулировку: посылается не сертификат, а сертификаты – сейчас станет понятно, почему (в общем-то, догадаться нетрудно).



Итак, поехали!
Всего голосов 10: ↑10 и ↓0+10
Комментарии7

Введение в TLS для п̶р̶а̶к̶т̶и̶к̶о̶в̶ Патриков (часть 1)

Время на прочтение11 мин
Количество просмотров25K
Как вы, возможно, уже знаете, это Патрик. Он морская звезда, а значит, можно, не оскорбляя его, сказать, что руки у него растут из одного места. Еще Патрик очень практичный и сразу забывает всё, что ему не нужно – но если что-то ему нужно, он хочет это знать (потому что ему это нужно!). Спойлер: здесь Патрик пытается сделать TLS Handshake.



Эта статья написана для Патрика и таких, как он. Она родилась из презентации, впервые показанной на нашем внутреннем образовательном Plesk TechTalk, где сотрудники в доступной форме делятся друг с другом информацией об интересных технологиях, процессах и решениях. Поэтому картинки в этой статье будут похожи на слайды :) Автор оригинального текста доклада — program manager Plesk Руслан Косолапов.

Обычно все материалы по TLS охватывают какой-то маленький аспект, но не общую картину. Это не очень практично и у Патрика от такого болит голова. Здесь всё будет по-другому: коротко, применимо «в быту» и по возможности исчерпывающе.
Итак, поехали!
Всего голосов 27: ↑27 и ↓0+27
Комментарии10

Визуализация данных Ensemble Workflow с помощью InterSystems DeepSee

Время на прочтение2 мин
Количество просмотров2.5K

DeepSeeWeb

При автоматизации бизнес-процессов предприятия часть задач всё равно должен выполнять человек: это согласование различной информации, обогащение данных из аналоговых источников и многое другое. В интеграционной шине InterSystems Ensemble для решения данного класса задач есть подсистема Ensemble Workflow, позволяющая людям участвовать в автоматизированных бизнес-процессах. В результате работы подсистемы Ensemble Workflow накапливается большой объём информации о том кто и сколько выполнял поставленные задачи. В этой статье с использованием BI-технологии InterSystems DeepSee, про которую я недавно уже писал на Хабре мы проанализируем и визуализируем эту информацию.

Читать дальше →
Всего голосов 18: ↑18 и ↓0+18
Комментарии0

Тестирование в Badoo «с высоты птичьего полёта»

Время на прочтение21 мин
Количество просмотров37K


Мы много раз рассказывали о том, как мы пишем автотесты, какие технологии используем, как помогаем разработчикам с производительностью юнит-тестов и так далее. А вот про стратегию всего процесса тестирования, включая ручное, ещё ни разу не писали. Пришло время восполнить этот пробел.

Читать дальше →
Всего голосов 75: ↑75 и ↓0+75
Комментарии30

Заблуждения Clean Architecture

Время на прочтение15 мин
Количество просмотров409K
Превращаем круги в блоки

­­ 


На первый взгляд, Clean Architecture – довольно простой набор рекомендаций к построению приложений. Но и я, и многие мои коллеги, сильные разработчики, осознали эту архитектуру не сразу. А в последнее время в чатах и интернете я вижу всё больше ошибочных представлений, связанных с ней. Этой статьёй я хочу помочь сообществу лучше понять Clean Architecture и избавиться от распространенных заблуждений.

Читать дальше →
Всего голосов 58: ↑56 и ↓2+54
Комментарии203

Как я начал создавать текстовую MMO RPG

Время на прочтение6 мин
Количество просмотров16K

image


В этой статье я опишу личный опыт написания первой версии текстовой MMO RPG для Телеграмма, используемые для этого технологии и этапы, через которые прошёл, при создании игры.

Читать дальше →
Всего голосов 12: ↑10 и ↓2+8
Комментарии12

Как Google тестирует ПО

Время на прочтение9 мин
Количество просмотров40K
Прослушав вебинар «How Google Tests Software» я был так вдохновлен, что решил записать некоторые тезисы. Эта статья и есть мой конспект. Прежде всего, я должен внести ясность относительно ее содержания. Это не дословный перевод. Здесь описаны только те вещи, которые показались мне важными. Проще говоря, здесь описано не все, что прозвучало в вебинаре. Так же существует вероятность, что я понял что-то не до конца или даже понял неправильно. Поэтому горячо рекомендую прослушать вебинар самостоятельно.
Его ведет Джэймс Витакер, который в данный момент занимает пост технического директора по тестированию ПО в Google. Джэймс совместно с коллегами готовится выпустить одноименную книгу. В ней можно будет получить исчерпывающую информацию о том, как проводят тестирование GoogleMaps, Google+, ChromeOS, Android и т.д…
Читать дальше →
Всего голосов 224: ↑217 и ↓7+210
Комментарии52

Интерфейс рецептов

Время на прочтение3 мин
Количество просмотров30K


Первый месяц самостоятельной жизни в Москве я готовил жареную картошку и яичницу. Потом пришло понимание, что можно делать и другие вещи, и пришлось учиться немного готовить. Первое, что я сделал — решил сварить суп из фасоли и картошки. Открыл рецепт, начал читать, а там сюрприз.

«Варить до полуготовности». Ну чёрт побери, откуда я знаю, сколько это? То есть мне надо приготовить одну порцию, засечь время, потом выкинуть её и сделать вторую, да? Отличный план.

Тесто для пиццы — «соль и сахар по вкусу». Ну спасибо, чуваки. Когда пицца испечётся, я не смогу посыпать её сверху сахарком или солью. Причём сахар там вообще для дрожжей, а я не знаю, сколько нужно на их вкус.
Читать дальше →
Всего голосов 117: ↑108 и ↓9+99
Комментарии578

Впечатления от посещения EuroPython 2014

Время на прочтение14 мин
Количество просмотров12K
Одна из отличительных особенностей языка Python — это посвящённые этому языку конференции, так называемые PyConы. Не так давно мне удалось побывать на одном таком PyCon-е — EuroPython 2014. EuroPython — это одна из наиболее крупных европейских ежегодных конференций по языку Python, которая три последних года проводилась во Флоренции, а в 2014м — первый раз в Берлине. Пока свежи воспоминания решил написать небольшой отчётик — что и как было.
Читать дальше →
Всего голосов 32: ↑32 и ↓0+32
Комментарии2

Разработка приложений на Go: повторное использование логики

Время на прочтение5 мин
Количество просмотров11K

На мой взгляд, написание библиотек на Go — довольно хорошо освещенная тема… а вот о написании приложений (команд) статей гораздо меньше. Когда дело до этого доходит, весь код на Go представляет собой команду. Так давайте об этом и поговорим! Этот пост будет первым в серии, т.к. у меня много информации, которой я еще не делился.


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

Читать дальше →
Всего голосов 23: ↑18 и ↓5+13
Комментарии16

Простейший HTTP сервер на Golang и Elixir. Сравнение производительности

Время на прочтение10 мин
Количество просмотров32K

image
Пару недель назад, я решил взять простейший пример HTTP сервера на Go и измерить его производительность. Потом я смело взял Phoenix, прогнал на тех же тестах, и расстроился. Результаты были не в пользу Elixir/Erlang (45133 RPS у Go и всего 3065 RPS у Phoenix). Но Phoenix — это тяжело. Надо что-то хотя бы примерно равное по простоте и логике разработки тому, что есть на Go: когда есть путь — "/" и handler для него. Логичной аналогией мне показалось решение cowboy + plug, где у нас есть Router, который так же ловит "/" и отвечает на него. Результаты убили — Elixir/Erlang опять оказался медленнее:


Golang
sea@sea:~/go$ wrk -t10 -c100 -d10s http://127.0.0.1:4000/
...
  452793 requests in 10.03s, 58.30MB read
Requests/sec:  45133.28
Transfer/sec:      5.81MB

elixir cowboy plug
sea@sea:~/http_test$ wrk -t10 -c100 -d10s http://127.0.0.1:4000/
...
  184703 requests in 10.02s, 28.57MB read
Requests/sec:  18441.79
Transfer/sec:      2.85MB

Как жить дальше? Две недели я не спал и не ел (почти). Все, во что я верил все эти годы: совершенство vm erlang, ФП, зеленые процессы, было растоптано разорвано, сожжено и пущено по ветру. Немного отойдя от шока, успокоившись, и подтерев сопли я решил разобаться, в чем дело.

Читать дальше →
Всего голосов 55: ↑44 и ↓11+33
Комментарии42

Yapf — причесываем код Python автокорректором

Время на прочтение2 мин
Количество просмотров27K
В эпоху все большей популярности различных js и css linter'ов, не удивительно появление удобного линтера с автокоррекцией для Python.

Приветствуйте, Yapf — готовое решение, для превращения каши из строк во вполне читаемый код. И поверьте, он вам пригодится.

image
Читать дальше →
Всего голосов 23: ↑20 и ↓3+17
Комментарии17

Синдром хронической усталости. Как гормоны нас устают

Время на прочтение8 мин
Количество просмотров126K
image

Обмен веществ в организме регулируется железами, вырабатывающими гормоны. Управление гормонами принадлежит гипофизу, который контролируется гипоталамусом. Гипоталамус — защитная система организма, его предохранитель, и часто он выключается при СХУ из-за недостатка энергии.

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

Из-за постоянной спешки и недостатка времени мы часто не замечаем сигналов нашего организма, таких как повышенная утомляемость и раздражительность, а они могут свидетельствовать о нарушении в его работе и сбоях в гормональной системе.
Об этом в статье и пойдет речь.
Читать дальше →
Всего голосов 28: ↑16 и ↓12+4
Комментарии16

Конференция по тестированию Гейзенбаг: Видеозаписи докладов-2016 и работа над ошибками в 2017-м

Время на прочтение6 мин
Количество просмотров6.6K
Посмотрев на то, как выглядят конференции для тестировщиков, мы были удивлены: на каждой из них технологические вопросы отходили на второй план, а основной акцент делался на управление тестированием и качеством ПО. Эти конференции решали задачи PM'ов и CTO, а не разработчиков и тестировщиков-автоматизаторов. Плохо ли это? Конечно, нет. Suum cuique, как говорится.

Однако, делая первый Гейзенбаг в Москве в прошлом году, мы решили исправить ситуацию и сделать из него первую чисто техническую конференцию для всех тех, кто на практике занимается тестированием: ведь это не только тестеры, это и большинство разработчиков (которым не все равно, что будет с их кодом). Набив некоторые шишки на первой попытке, мы учли полученный опыт, и 4 июня готовы сделать deep dive в технологии тестирования на Гейзенбаг 2017 Piter.

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


Читать дальше →
Всего голосов 25: ↑25 и ↓0+25
Комментарии0

Почему все виртуальные помощники — женщины?

Время на прочтение5 мин
Количество просмотров31K


Вы замечали, в нашем мире все так устроено, что везде можно найти плюсы и минусы, черное и белое, мужское и женское? Понятно, что на Хабре 76,1 процентов мужчины, поэтому, если вы испытываете жесткий антагонизм к тематическим постам, можете смело дальше не читать. Под катом много картинок и пара любопытных историй о том, почему современные виртуальные помощники говорят женскими голосами.
Читать дальше →
Всего голосов 56: ↑39 и ↓17+22
Комментарии73

Проблемы тестирования: почему 100% покрытие кода это плохо

Время на прочтение7 мин
Количество просмотров35K


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

Материал подготовлен на основе выступления разработчика Positive Technologies Ивана Цыганова на конференции Moscow Python Conf (слайды, видео).
Читать дальше →
Всего голосов 40: ↑34 и ↓6+28
Комментарии39
1

Информация

В рейтинге
Не участвует
Откуда
Новосибирск, Новосибирская обл., Россия
Дата рождения
Зарегистрирован
Активность