Как стать автором
Поиск
Написать публикацию
Обновить
145
10.7
Александр Рябиков @rsashka

Системный архитектор

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

DevPoint: Selenium в тестировании веб-приложений

Время на прочтение7 мин
Количество просмотров46K
Что делать когда:
  • Достался хард-кодный проект непокрытый тестами;
  • код желает лучшего, а времени на рефакторинг нет;
  • внесение правок в одном месте нарушает работу логики в другом;
  • для покрытия *Unit тестами, проще переписать проект;
  • бизнес логика размыта по коду и даже по шаблонам.

Забить и оправдываться, что такой код не должен жить?

С такими ситуациями очень часто сталкивался и меня это не устраивало. При поиске подходящего метода/инструмента тестирования я наткнулся на Selenium. И применяю его уже более 3-х лет.

В Киеве 9-го апреля прошла конференция DevPoint, посвященная web — разработке. Организатором данного мероприятия была компания Uniweb. В рамках ее, решил поделиться впечатлением про Selenium.
Читать дальше →

Кэш в Drupal от А до Я

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

Страницы сайтов становятся всё больше по размеру, и встаёт вопрос асинхронной загрузки контента на них. Но если для изображений существует библиотека для их простой загрузки после загрузки основной страницы, то с асинхронной загрузкой HTML частей страницы (блоков), всё намного сложней. Например: для реализации асинхронной загрузки блоков в Drupal без потери производительности сайта необходимо понимать, как работает кэширование, как его использовать и как оптимизировать. А уже после реализовать по намеченному плану «Lazy Loading» загрузку блоков сайта.
Читать дальше →

Selenium, Selenoid, Selenide, Selendroid… Что все это значит?

Время на прочтение3 мин
Количество просмотров28K
Привет, Хабр!

В мире автоматизации новичку ориентироваться довольно сложно. Приходится узнавать множество понятий, разбираться в особенностях существующих инструментов. Например, вот: Selenium, Selenide, Selenoid, Selendriod — что это, чем отличается? Да и можно ли их сравнивать?

Написал статью, чтобы помочь в этом разобраться. Кому интересно, добро пожаловать под кат!


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

Selenium: новая надежда

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

Представляю вам перевод моей статьи на Medium.com: часть 1, часть 2. Поскольку первая часть статьи содержит в основном уже изложенное в этом посте, то привожу перевод только второй части.



Худеем и переезжаем в контейнеры


В первой части статьи я рассказал о простых подходах, позволяющих построить масштабируемый кластер Selenium без написания кода. В этой части мы рассмотрим более тонкие вопросы работы с Selenium:


  1. Как создать легко масштабируемые рабочие ноды, используя стандартный Selenium Hub
  2. Почему можно и нужно запускать большинство браузеров в контейнерах и как это делается
  3. Какие open-source инструменты для этого существуют

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

Проектирование интернет-магазина для SEO: (теория + чеклист)

Время на прочтение8 мин
Количество просмотров18K
Что стоит учесть при проектировании интернет-магазина, чтобы не пришлось переделывать пол сайта для начала продвижения.

Статья разбита на две части.
Теория: о том, что в принципе можно учесть в SEO интернет-магазина и как это работает.
Чек-лист: 80 пунктов, по которым легко проверить, насколько удобно будет продвигать ваш сайт после разработки

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

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

Разработка гибридных PHP/Go приложений с использованием RoadRunner

Время на прочтение18 мин
Количество просмотров25K
Классическое PHP-приложение — однопоточность, тяжелая загрузка (если вы, конечно, не пишите на микрофреймворках) и неизбежная смерть процесса после каждого запроса… Такое приложение тяжелое и медленное, но мы можем дать ему вторую жизнь гибридизацией. Чтобы ускорить — демонизируем и оптимизируем утечки памяти, чтобы добиться большей производительности — внедрим собственный сервер РНР-приложений RoadRunner на Golang, чтобы добавить гибкости — упростим PHP-код, расширим стек и разделим ответственность между сервером и приложением. По сути, заставим наше приложение работать, как если бы мы писали его на Java или другом языке.

Благодаря гибридизации ранее медленное приложение перестало страдать 502 ошибками под нагрузками, уменьшилось среднее время ответа на запросы, производительность увеличилась, а деплой и сборка стали проще за счет унификации приложения и избавления от лишней обвязки в виде nginx + php-fpm.


Антон Титов (Lachezis) — технический директор и соучредитель SpiralScout LLC с опытом активной коммерческой разработки на PHP в 12 лет. Последние несколько лет активно внедряет Golang в стек разработки компании. Об одном из примеров Антон рассказал на PHP Russia 2019.

Как создать простой микросервис на Golang и gRPC и выполнить его контейнеризацию с помощью Docker

Время на прочтение4 мин
Количество просмотров52K
Привет, Хабр! представляю вашему вниманию перевод статьи «Go, gRPC and Docker» автора Mat Evans.

Существует множество статей о совместном использовании Go и Docker. Создавать контейнеры, способные взаимодействовать с клиентами и между собой, очень легко. Далее следует небольшой пример того, как это делается на базовом уровне.
Читать дальше →

Как резидентные прокси помогают в бизнесе: реальный кейс использования Infatica в сфере Data Mining

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


В нашем блоге мы не только пишем о технологиях обеспечения приватности, но и рассказываем о реальном применении сервиса Infatica для решения бизнес-задач. Сегодня речь пойдет о применении сервиса резидентных прокси в сфере Data Mining.
Читать дальше →

Несколько малоизвестных возможностей docker-compose

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

Во многих инструкциях с просторов интернета описывают некий минимум действий, и как следствие минимум команд и возможностей.


Я решил сделать некую подборку мало освещенных возможностей, особенностей. Статья не претендует на уникальность, это и мне, как памятка, и возможно некоторым падаванам поможет, начинающим свой путь с docker-compose.

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

Как запустить растущий b2c стартап после хакатона

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

Предисловие


Думаю, многие читали статью о том, выживают ли команды после хакатона.
Как писали в комментах к этой статье, статистика удручающая. Поэтому хотелось бы рассказать о себе, дабы подправить статистику и дать несколько практических советов по тому, как не сдуться после хакатона. Если хотя бы одна команда, прочтя статью, не бросит развивать свою классную идею после хакатона, воспользуется моими советами и создаст компанию — эту статью можно будет считать успешной :)
Предупреждение! В данной статье не будет технических подробностей реализации приложения. В начале я расскажу нашу историю (TL;DR), а полезные советы, которые мы вывели для себя в ходе развития, приведены в конце.

image

“Success” story


Меня зовут Даня, я основал emovi — сервис для подбора фильма по эмодзи, который за последние несколько дней вирально вырос на 600%. Сейчас приложение имеет 50 тысяч скачиваний и попало в топ-2 App Store и Google Play. В команде я занимаюсь продакт-менеджментом и дизайном, а раньше Android-разработкой. Учусь в МФТИ.

Инфраструктура сборки проекта с docker

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

На Хабре уже есть материалы про то, как настроить docker-контейнер для компиляции проекта. Например, Использование Docker для сборки и запуска проекта на C++. В этой статье, как и в предыдущей будет рассмотрен вопрос сборки проекта, но здесь я бы хотел выйти за рамки туториала и рассмотреть глубже вопросы использования контейнеров в таких задачах, а так же построения инфраструктуры сборки с docker.

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

10 лучших JavaScript библиотек для визуализации данных на графиках и диаграммах

Время на прочтение9 мин
Количество просмотров168K
Есть в графиках что-то магическое. Изгиб кривой мгновенно раскрывает всю ситуацию — историю развития эпидемии, паники или периода процветания. Эта линия просвещает, пробуждает воображение, убеждает.
Генри. Д. Хаббард
Объемы данных, с которыми нужно работать, постоянно увеличиваются. И чем больше информации, тем сложнее ее обрабатывать. Вот почему сейчас стала особенно популярна тема визуализации данных — в виде графиков, диаграмм, дашбордов, желательно интерактивных. Визуальное представление данных позволяет нам, людям, тратить меньше времени и сил на их просмотр, анализ и осмысление, а также на принятие правильных, информированных решений на основе этого.

Вряд ли кто-то станет отрицать, что в современном HTML5 вебе JavaScript — самая универсальная и простая технология для визуализации данных. Так что, если вы занимаетесь фронтенд-разработкой, то вы, скорее всего, либо уже имели дело с созданием JS чартов, либо столкнетесь с этим в (скором) будущем.

Существует множество JavaScript библиотек для построения графиков и диаграмм, каждая из которых (как и любые другие инструменты) имеет свои плюсы и минусы. Чтобы облегчить вам жизнь, я решил рассказать о тех из них, которые нравятся мне больше всего. Я считаю, десять следующих библиотек — это лучшие JS библиотеки для создания графиков, и они действительно способны помочь решить практически любую задачу по визуализации данных. Давайте вместе пройдемся по списку и убедимся, что они вам известны хотя бы базово и вы не упустили из виду какую-нибудь хорошую библиотеку, которая может оказаться полезной в текущих или будущих больших проектах.

Заглавная картинка: визуализация данных на графиках и диаграммах

Что ж, приступим: вот лучшие JS библиотеки для визуализации данных!
Читать дальше →

Аппаратное ускорение глубоких нейросетей: GPU, FPGA, ASIC, TPU, VPU, IPU, DPU, NPU, RPU, NNP и другие буквы

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


14 мая, когда Трамп готовился спустить всех собак на Huawei, я мирно сидел в Шеньжене на Huawei STW 2019 — большой конференции на 1000 участников — в программе которой были доклады Филипа Вонга, вице-президента по исследованиям TSMC по перспективам не-фон-неймановских вычислительных архитектур, и Хенга Ляо, Huawei Fellow, Chief Scientist Huawei 2012 Lab, на тему разработки новой архитектуры тензорных процессоров и нейропроцессоров. TSMC, если знаете, делает нейроускорители для Apple и Huawei по технологии 7 nm (которой мало кто владеет), а Huawei по нейропроцессорам готова составить серьезную конкуренцию Google и NVIDIA.

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

Только в прошлом году в тему было вложено больше 3 миллиардов долларов. Google уже давно объявил нейросети стратегическим направлением, активно строит их аппаратную и программную поддержку. NVIDIA, почувствовав, что трон зашатался, вкладывает фантастические усилия в библиотеки ускорения нейросетей и новое железо. Intel в 2016 году потратил 0,8 миллиарда на покупку двух компаний, занимающихся аппаратным ускорением нейросетей. И это при том, что основные покупки еще не начались, а количество игроков перевалило за полсотни и быстро растет.


TPU, VPU, IPU, DPU, NPU, RPU, NNP — что все это означает и кто победит? Попробуем разобраться. Кому интересно — велкам под кат!
Читать дальше →

Как мы модерируем объявления

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


Каждый сервис, чьи пользователи могут создавать собственный контент (UGC — User-generated content), вынужден не только решать бизнес-задачи, но и наводить порядок в UGC. Плохая или некачественная модерация контента в итоге может уменьшить привлекательность сервиса для пользователей, вплоть до прекращения его работы.

Сегодня мы вам расскажем про синергию между Юлой и Одноклассниками, которая помогает нам эффективно модерировать объявления в Юле.

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

Так же подумали и мы, когда перед нами во весь рост встала задача модерации пользовательского контента — картинок, текста и ссылок. Наши пользователи каждый день загружают в Юлу миллионы единиц контента, и без автоматической обработки промодерировать все эти данные вручную вообще не реально.

Поэтому мы воспользовались уже готовой платформой модерации, которую к тому времени наши коллеги из Одноклассников допилили до состояния «почти совершенство».
Читать дальше →

Популярно о псевдоэлементах :Before и :After

Время на прочтение3 мин
Количество просмотров422K
Псевдоэлементы :before и :after позволяют добавлять содержимое (стили) до и после элемента, к которому были применены.

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

Service Level Agreement: пишем SLA для… других, или заключение SLA с Оператором связи

Время на прочтение4 мин
Количество просмотров5.5K
Уверен, что многие хабражители хоть раз в жизни занимались вопросом обеспечения услугами связи для какой нибудь конторы или компании (собственное жилище тоже считается), все мы когда-то, увы не всегда вдумчиво, «подмахивали» договор на услуги связи, надеясь, что все будет хорошо/качественно/стабильно.

В половине случаев качество предоставляемых услуг связи приемлемо, но есть и ситуации когда такие услуги надо регулировать и заключать с Операторами СУО (SLA). Операторы идут на это неохотно, утверждая, что таких процедур у них нет, это отклонение от стандартных условий и «да что вы переживаете — у нас никто не жалуется».

В таких случаях приходится брать инициативу в свои руки и писать процедуру SLA за Оператора, а потом мучительно согласовывать ее и выбивать нужные условия. Тем, кому приходилось, или ещё придется заниматься данным видом литературного рабства — welcome, тема скучноватая, но деваться от этого некуда…

КДПВ
Читать дальше →

Как Telegram-бот поборол дизайнерскую прокрастинацию и помог увеличить доход digital-агентства­

Время на прочтение6 мин
Количество просмотров5.2K
Основатель digital-агентства Роман Квартальнов делится простым решением, которое помогло сделать производственные процессы прозрачными, дало возможность в любой момент времени оценить себестоимость проекта и компании целиком, а также экономить около 1 000 000 рублей на сборе отчетов с сотрудников.

Знаете ли вы себестоимость работы вашей компании? Можете за 3 минуты получить доступ к информации о выполненной работе за вчера? А за неделю?

Четыре года назад я открыл свою компанию. На старте у нас была небольшая команда. Очевидно, что чем меньше людей, тем лучше у них получается работать слаженно, быть единым организмом. К концу первого года мы начали активно масштабироваться и столкнулись с проблемами роста. В определенный момент мы просто потеряли контроль над процессами внутри компании и начали принимать решения хаотично. Есть такой термин – «хаотичное управление», его можно трактовать так: руководитель не имеет возможности прогнозировать риски, постоянно тушит пожары и не разбирается почему они происходят. У такого подхода есть 2 пути развития:

1. Признать, что такова жизнь и основателю бизнеса отведена роль пожарного. В этом случае ваш потолок – крутой пожарный, пожарный-супермен.

2. Осознать, что пожаротушение развивается спиралевидно, т.е. время идет, задачи растут, ресурсы уменьшаются. В этом случае ваша цель — поднапрячься и выйти за рамки, встать над проблемами и постараться найти системные решения.

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

Как подготовиться к проверке РКН по персональным данным: полное руководство

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


О нас


Доброго времени суток, Хабр! Мы компания «Информационный центр». Наше основное направление – информационная безопасность (она же – ИБ). В ИБ мы занимаемся практически всем: аудитом, проектированием систем защиты, аттестацией, комплаенсом, пентестами, есть свой SOC, даже с гостайной работаем. Поскольку мы базируемся во Владивостоке, изначально мы работали больше в Приморском крае и в дальневосточных регионах страны, но в последнее время география наших проектов все дальше раздвигает немыслимые нами в момент основания границы.

В первой своей статье мы хотели бы рассмотреть такую сторону ИБ, как комплаенс (англ. complience – соблюдение, соответствие). И поговорим мы о том, что нужно сделать, чтобы полностью соответствовать российскому законодательству о персональных данных.
Читать дальше →

Часть I. Спроси маму: Как общаться с клиентами и подтвердить правоту своей бизнес-идеи, если все кругом врут?

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


Конспект отличной, на мой взгляд, книги.

Рекомендую всем, кто занимается UX-исследованиями, хочет развивать свой продукт или создать что-то новое.

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

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

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

Парсинг сайтов — а это вообще легально в России?

Время на прочтение11 мин
Количество просмотров20K
По одному из определений парсинг есть синтаксический анализ информации. Человеку, не вовлечённому в конкретные задачи сбора и обработки информации для Интернет-проектов, это не говорит ни о чём. Да и само определение лишь в общих чертах обозначает огромный объём работы, которую ежеминутно совершают сотни миллионов людей и десятки миллионов роботов (хоть и виртуальных, но от этого ничуть не менее настоящих) по всему миру. А ведь эта задачка обычное для человека дело — что в сравнении цен на билеты онлайн, что в выборе подходящей электроники на сайтах магазинов… Следя за ценами и акциями в удобном мобильном приложении ближайшего к дому гипермаркета, никто из нас и не подумает окрестить себя парсером.
image
Читать дальше →

Информация

В рейтинге
1 154-й
Откуда
Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Инженер встраиваемых систем, Архитектор программного обеспечения
Ведущий
C++
ООП
Linux
Программирование микроконтроллеров
Встраиваемая система
C
Qt
Разработка программного обеспечения