Pull to refresh
3
0
Семен Левин @remal

User

Send message

Английский для собеседований в IT-компании: что нужно для старта карьеры?

Reading time6 min
Views156K

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


Читать дальше →
Total votes 45: ↑40 and ↓5+35
Comments33

Выбор MQ для высоконагруженного проекта

Reading time5 min
Views171K
Современные масштабируемые системы состоят из микросервисов, каждый из которых отвечает за свою ограниченную задачу. Такая архитектура позволяет не допускать чрезмерного разрастания исходного кода и контролировать технический долг.

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

Если микросервис перестает отвечать на запросы в результате аварии, его клиенты должны быть мгновенно перенаправлены на резервный. Для управления потоком запросов часто используют так называемые очереди сообщений (message queues).

Недавно используемая нами очередь перестала нас устраивать по параметрам отказоустойчивости и мы заменили ее. Ниже мы делимся нашим опытом выбора.
Читать дальше →
Total votes 46: ↑38 and ↓8+30
Comments57

Масштабируя TLS

Reading time17 min
Views15K


Хабр, это доклад с одного из «не главных» залов Highload++ 2016. Артём ximaera Гавриченков, технический директор Qrator Labs, рассказывает про прикладное шифрование, в том числе, в высоконагруженных проектах. Видео и презентация в конце поста — спасибо Олегу Бунину.

Приветствую! Мы продолжаем находиться на сессии про HTTPS, TLS, SSL и всё такое.
То, о чём я сейчас буду говорить — не какой-то туториал. Как говорил мой преподаватель в университете по базам данных, Сергей Дмитриевич Кузнецов: «Я не буду учить вас настраивать Microsoft SQL сервер — пусть это делает Microsoft; не буду учить вас настраивать Oracle — пусть это делает Oracle; не буду учить вас настраивать MySQL — делайте это сами».

Точно так же и я не буду учить вас настраивать NGINX — это всё есть на сайте у Игоря Сысоева. Что мы обсудим, так это некий общий взгляд на проблематику и на возможности для решения проблем, которые возникают при внедрении шифрования на публичных сервисах.
Total votes 53: ↑52 and ↓1+51
Comments35

Обманываем время: о тестировании с «подставным» временем на Linux и Docker

Reading time3 min
Views13K

При разработке очередного бота для группы в Telegram у меня возникла необходимость испытать его при различных значениях системного времени. Этот бот в конце каждого дня отправляет (или, в зависимости от ряда условий, не отправляет) сообщение в чат и производит манипуляции с некоторыми предыдущими своими сообщениями (или, опять же, не производит).


Менять системное время глобально ой, как не хотелось. Муторно, плюс у меня в ней столько всего понаставлено, не дай Б-г что-то заглючит (вряд ли, но мало ли). Думал запустить VirtualBox, но уж больно лень было ставить «чистую» Убунту, расшаривать папки, и т. д., тем более что этот вариант жрёт, как троглодит серьёзно потребляет машинные ресурсы.


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

Читать дальше →
Total votes 32: ↑28 and ↓4+24
Comments21

Методы обхода защитных средств веб-приложений при эксплуатации XSS-векторов

Reading time8 min
Views38K
image

 
Несмотря на большое количество рекомендаций по защите веб-приложения от клиент-сайд атак, таких как XSS (cross site scripting) многие разработчики ими пренебрегают, либо выполняют эти требования не полностью. В статье будут рассмотрены способы обхода средств фильтрации и при эксплуатации xss-векторов.

Читать дальше →
Total votes 36: ↑35 and ↓1+34
Comments12

Дюк, вынеси мусор! — 3. CMS и G1

Reading time10 min
Views147K
Часть 3 - CMS GC и G1 GC

Сегодня мы продолжаем цикл статей о сборщиках мусора, поставляемых с виртуальной машиной Oracle Java HotSpot VM. Мы уже изучили немного теории и рассмотрели, каким образом с кучей расправляются два базовых сборщика — Serial GC и Parallel GC. А в этой статье речь пойдет о сборщиках CMS GC и G1 GC, первостепенной задачей которых является минимизация пауз при наведении порядка в памяти приложений, оперирующих средними и большими объемами данных, то есть по большей части в памяти серверных приложений.

Два этих сборщика объединяют общим названием «mostly concurrent collectors», то есть «по большей части конкурентные сборщики». Это связано с тем, что часть своей работы они выполняют параллельно с основными потоками приложения, то есть в какие-то моменты конкурируют с ними за ресурсы процессора. Конечно, это не проходит бесследно, и в итоге они разменивают улучшение в части пауз на ухудшение в части пропускной способности. Хотя делают это по-разному. Давайте посмотрим, как.
Посмотреть, как
Total votes 33: ↑31 and ↓2+29
Comments42

Загадка выпадающего списка «Амазона»

Reading time2 min
Views191K
Бен Кэменс обнаружил, что в выпадающем списке Shop by Department на сайте «Амазон» ховер-эффект происходит очень быстро, абсолютно без какой-либо задержки. Тем самым происходит нарушение старого, выработанного ещё в 90-х годах прошлого века правила: перед отображением пункта подменю необходим так называемый гистерезис, запаздывание.



Запаздывание необходимо не только для того, чтобы сберечь ресурсы машины пользователя, но и по соображениям юзабилити: если не добавить задержку, то переводить курсор мыши на выпавшее подменю будет неудобно, придётся вести его сначала горизонтально в меню, не задевая другие пункты, и лишь после выбирать нужный подпункт.
Читать дальше →
Total votes 558: ↑548 and ↓10+538
Comments90

Аудит актуальных уязвимостей без регистрации и смс

Reading time8 min
Views9.8K

Вступление


Как известно каждому, кто хоть раз подписывался на рассылки по ИБ, количество найденных за день уязвимостей часто превышает возможности человека по их разбору. Особенно, если серверов — много, особенно если там зоопарк из ОС и версий.

В этом топике я расскажу о том, как мы решили эту проблему. И да, Perl* жив :)
Читать дальше →
Total votes 33: ↑31 and ↓2+29
Comments8

«Человек посередине», использующий отозванные сертификаты. Часть 1

Reading time5 min
Views20K
Что делать, если у вашего сервера утёк закрытый ключ? Вопрос, ставший особенно актуальным после Heartbleed.

Последовательность действий, сразу приходящая в голову:
1. Связаться с удостоверяющим центром.
2. Отозвать сертификат сервера.
3. Перегенерировать ключи.
4. Запросить для сервера новый сертификат.
5. Поднять бокал за успех операции и попытаться жить дальше.

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

  • Какие механизмы проверки статуса сертификатов бывают?
  • Как они реализованы в современных Веб-браузерах?
  • Кто виноват? Почему они реализованы именно так?
  • Что делать? Какие есть перспективы?

Эта статья будет полезна тем, кому интересно разобраться в применяющихся на практике механизмах проверки статуса сертификатов (проверки, является ли сертификат отозванным).

UPD: добавили вторую часть статьи! Прочитать можно тут.
Читать дальше →
Total votes 17: ↑14 and ↓3+11
Comments8

Что «убивает» продавца

Reading time8 min
Views12K
Я давно хотел написать об этом статью, чтобы поделиться своим личным опытом продаж и своими наблюдениями в этой области деятельности. Меня никогда не впечатляли профессиональные книги о продажах. Они казались мне очень «научно» банальными, слишком упрощенно схематичными и негибкими. Благодаря такой подаче информации в этой сфере, я всегда смотрел немного свысока на понятие «продажи». Это казалось чем-то, что ниже меня и моих устремлений.

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

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

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

Нужно было продавать, чтобы платить зарплаты, оплачивать счета за аренду, вкладывать деньги в развитие. Я был немного в отчаянии, немного напуган, но очень хотелось быть уверенным, что мои планы удачно реализуются.
Читать дальше →
Total votes 40: ↑31 and ↓9+22
Comments44

Красивые формы для приёма банковских карт с CardInfo.js

Reading time5 min
Views43K

UPD. CardInfo больше не работает. Используйте BinKing.


Гайд по использованию: https://habr.com/ru/post/527796/
Сайт сервиса: https://binkng.io

Всем кто верстал, верстает или будет верстать форму для приёма банковских карт дарю плагин CardInfo.js, с помощью которого можно сверстать вот такую форму:



Плагин по номеру карты определяет один из 49 российских банков (потом и прочие страны добавлю), выдаёт вам логотип банка, цвета для фона, ссылку на сайт банка, определяет тип карты, его логотип и прочее. С этими данными делаете что хотите, верстаете любую форму.


Поиграться с формой можно на демо странице. Код плагина и инструкции по установке на гитхабе.


Под катом:


  • Пара слов о плагине;
  • Про базу банков, и почему их 49, а не 50;
  • Про логотипы банков;
  • Про логотипы типов;
  • Несколько моих вопросов к читателям;
Читать дальше →
Total votes 71: ↑67 and ↓4+63
Comments48

Байесовские многорукие бандиты против A/B тестов

Reading time20 min
Views62K

Здравствуйте, коллеги. Рассмотрим обычный онлайн-эксперимент в некоторой компании «Усы и когти». У неё есть веб-сайт, на котором есть красная кнопка в форме прямоугольника с закругленными краями. Если пользователь нажимает на эту кнопку, то где-то в мире мурлычет от радости один котенок. Задача компании — максимизация мурлыкания. Также есть отдел маркетинга, который усердно исследует формы кнопок и то, как они влияют на конверсию показов в клико-мурлыкания. Потратив почти весь бюджет компании на уникальные исследования, отдел маркетинга разделился на четыре противоборствующие группировоки. У каждой группировки есть своя гениальная идея того, как должна выглядеть кнопка. В целом никто не против формы кнопки, но красный цвет раздражает всех маркетологов, и в итоге было предложено четыре альтернативных варианта. На самом деле, даже не так важно, какие именно это варианты, нас интересует тот вариант, который максимизирует мурлыкания. Маркетинг предлагает провести A/B/n-тест, но мы не согласны: и так на эти сомнительные исследования спущено денег немерено. Попробуем осчастливить как можно больше котят и сэкономить на трафике. Для оптимизации трафика, пущенного на тесты, мы будем использовать шайку многоруких байесовских бандитов (bayesian multi-armed bandits). Вперед.

Читать дальше →
Total votes 67: ↑65 and ↓2+63
Comments50

Сколько стоит DDoS построить? Подсчет стоимости DDoS-атаки

Reading time3 min
Views66K


Распределённая атака типа «отказ в обслуживании», DDoS — очень популярный инструмент у злоумышленников. Причины, по которым киберпреступники и обычные интернет-хулиганы используют этот инструмент, самые разные. Это и нанесение вреда конкуренту, и остановка работы какой-либо системы безопасности или сервиса с требованием выкупа. Известны случаи, когда группы, организовавшие атаку такого типа, требовали у жертв по 5 биткоинов (более $5000 по текущему курсу).

Причем DDoS сейчас, фактически, стал общедоступным инструментом. Этот тип атаки достаточно дешев (конечно, все зависит от масштаба), его можно быстро запустить и так же быстро остановить. На днях стало известно, сколько берут создатели разного рода ботнетов за проведение DDoS-атак.
Читать дальше →
Total votes 23: ↑18 and ↓5+13
Comments25

Всё, что вы хотели знать о стек-трейсах и хип-дампах. Часть 2

Reading time20 min
Views26K

Всё, что вы хотели знать о стек-трейсах и хип-дампах. Часть 1

Перед вами вторая часть расшифровки доклада Андрея Паньгина aka apangin из Одноклассников с одного из JUG'ов (допиленная и расширенная версия его доклада с JPoint 2016). В этот раз мы закончим разговор о стек-трейсах, а также поговорим о дампах потоков и хип-дампах.

Итак, продолжаем…



Читать дальше →
Total votes 35: ↑32 and ↓3+29
Comments8

OpenSSL, ssl_ciphers и nginx: прокачиваем на 100%

Reading time11 min
Views88K


Много где написано о том, как получить 100% и A+ по тесту от Qualys. При всём при том практически везде директивы ssl_ciphers и подобные даются как эдакие магические строки, которые нужно просто вставить, и надеяться, что автор не подводит вас под монастырь. Эта статья призвана исправить это недоразумение. По прочтению этой статьи директива ssl_ciphers потеряет для вас всякую магию, а ECDHE и AES будут как друзья да братья.


Также вы узнаете почему 100% по тестам — не всегда хорошо в реальности.

Читать дальше →
Total votes 66: ↑65 and ↓1+64
Comments92

Технологический стек классификации текстов на естественных языках

Reading time15 min
Views18K
В данном посте мы рассмотрим современные подходы, применяемые для классификации текстов на естественном языке по их тематикам. Выбранные методы работы с документами определены общей сложной спецификой задачи – зашумлёнными обучающими выборками, выборками недостаточного размера или вообще отсутствующими выборками, сильным перекосом размеров классов и так далее. В общем – реальные практические задачи. Прошу под кат.
Читать дальше →
Total votes 17: ↑17 and ↓0+17
Comments22

Публикация артефакта в Maven Central через Sonatype OSS Repository Hosting Service

Reading time23 min
Views22K
На написание этой статьи меня сподвигла некоторая разрозненность источников информации по такой
важной, на мой взгляд, теме, как публикация своих артефактов в Maven Central. Конечно, следует
отдать должное сотрудникам Sonatype: их официальный гайд (ссылка в конце статьи) достаточно полно
описывает весь процесс. Но в нём нет некоторых неочевидных тонкостей (вроде проблемы хранения
паролей), и он сам выглядит немного неряшливо. На русском же языке на эту тему ресурсов я не нашёл в
принципе. Лично для меня это не страшно, но многих это может остановить.

Внимание, много текста
Total votes 5: ↑5 and ↓0+5
Comments12

Изменение размера изображения с учётом содержимого

Reading time10 min
Views20K

Изменение размера изображения с учётом содержимого (Content Aware Image Resize), жидкое растяжение (liquid resizing), ретаргетинг (retargeting) или вырезание шва (seam carving) относятся к методу изменения размера изображения, где можно вставлять или удалять швы, или наименее важные пути, для уменьшения или наращивания изображения. Об этой идее я узнал из ролика на YouTube, от Shai Avidan и Ariel Shamir.


В этой статье будет рассмотрена простая пробная реализация идеи изменения размера изображения с учётом содержимого, естественно на языке Rust.


Для подопытной картинки, я поискал по запросу1 "sample image", и нашел её2:


image

Читать дальше →
Total votes 58: ↑55 and ↓3+52
Comments23

7 стратегий, который помогут вам избавиться от прокрастинации

Reading time6 min
Views45K
Я сильно подозреваю, что вы тянете время, чтобы не браться за какое-нибудь важное дело даже в данный момент, читая эту статью. Получается какой-то парадокс, но не беда. Это даже хорошо. Здесь вы познакомитесь с простыми стратегиями, которые в будущем сможете применять для эффективной борьбы с прокрастинацией.



Читать дальше →
Total votes 26: ↑22 and ↓4+18
Comments52

Находка для шпиона: ААБ-тестирование как оптимальный вариант сплит-теста

Reading time3 min
Views26K
Что дает добавление еще одной буквы «А» в старый, добрый АБ-тест и почему этого тоже бывает недостаточно для оценки изменений.

ААБ-тест или ABA-тест — это когда трафик делят на три части: первую и вторую направляют на сайт без изменений, а третью с изменениями.


Что это дает?


  • Выше точность теста. Считаем, что Б дает относительно достоверный результат только когда А и А сравняются.
Читать дальше →
Total votes 23: ↑21 and ↓2+19
Comments20

Information

Rating
Does not participate
Location
San Jose, California, США
Date of birth
Registered
Activity