Обновить
3
0

Веб

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

Камень, ножницы, бумага, собеседования, Спок

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


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

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

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

Мутационное тестирование в PHP: качественное измерение для code coverage

Время на прочтение10 мин
Охват и читатели13K
Как оценивать качество тестов? Многие полагаются на самый популярный показатель, известный всем, — code coverage. Но это количественная, а не качественная метрика. Она показывает, какой объём вашего кода покрыт тестами, но не то, как хорошо эти тесты написаны. 

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

На Badoo PHP Meetup в марте я рассказывал, как организовать мутационное тестирование для PHP-кода и с какими проблемами можно столкнуться. Видео доступно по ссылке, а за текстовой версией добро пожаловать под кат.


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

Криптографические атаки: объяснение для смятённых умов

Время на прочтение33 мин
Охват и читатели60K
При слове «криптография» некоторые вспоминают свой пароль WiFi, зелёный замочек рядом с адресом любимого сайта и то, как трудно залезть в чужую почту. Другие вспоминают череду уязвимостей последних лет с говорящими аббревиатурами (DROWN, FREAK, POODLE...), стильными логотипами и предупреждением срочно обновить браузер.

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

За последние годы коллекция криптографических атак превратилась в зоопарк кричащих логотипов, набитых формулами научных статей и породила общее мрачное ощущение, что всё сломано. Но на самом деле многие из атак основаны на нескольких общих принципах, а бесконечные страницы формул часто сводятся к простым для понимания идеям.
Читать дальше →

Web-геосервисы. Обзор современных решений

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


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

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

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

Строим систему распознавания лиц на основе Golang и OpenCV

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

OpenCV — библиотека, разработанная для проектов по компьютерному зрению. Ей уже около 20 лет. Я использовал ее еще в колледже и до сих пор применяю для своих проектов на C++ и Python, поскольку она имеет неплохую поддержку этих языков.

Но когда я начал изучать и использовать Go, мне стало интересно, можно ли применить OpenCV для работы с этим языком. В то время уже существовали примеры и туториалы по интеграции, но мне показалось, что они слишком сложные. Чуть позже мне в руки попался враппер, созданный командой The Hybrid Group. В этой статье я покажу, как начать с GoCV, разработав простую систему распознавания лиц с каскадами Хаара (Haar Cascades).
Читать дальше →

Уместить звездное небо на WebGL в 1009 байт JavaScript

Время на прочтение3 мин
Охват и читатели9.7K
Две вещи наполняют душу всегда новым и все более сильным удивлением и благоговением, чем чаще и продолжительнее мы размышляем о них, — это звездное небо надо мной и моральный закон во мне. Иммануил Кант

JS1k — ежегодное соревнование, где надо вместить демо, игру или все что угодно, в 1024 символа на JavaScript. В этом году мое демо заняло четвертое место (до третьего не хватило каких-то два балла). Посмотреть демо можно на сайте JS1k. У кого не открывается или не работает, выглядеть должно так:



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

Как Dark развертывает код за 50 мс

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


Чем быстрее процесс разработки, тем быстрее развивается технологическая компания.


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


Эти пайплайны обычно имеют узкое применение, медленно работают и не отличаются надежностью. Разработчики должны сначала создать их вручную, а потом управлять ими, и компании часто нанимают для этого целые команды DevOps.


От скорости этих пайплайнов зависит скорость разработки. У лучших команд развертывание занимает 5–10 минут, но обычно все делается гораздо дольше, и для одного развертывания требуется несколько часов.

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

Активное обучение ранжированию

Время на прочтение6 мин
Охват и читатели15K
Этим постом я открываю серию, где мы с коллегами расскажем, как используется ML у нас в Поиске Mail.ru. Сегодня я объясню, как устроено ранжирование и как мы используем информацию о взаимодействии пользователей с нашей поисковой системой, чтобы сделать поисковик лучше.

Задача ранжирования


Что подразумевается под задачей ранжирования? Представим, что в обучающей выборке есть какое-то множество запросов, для которых известен порядок документов по релевантности. Например, вы знаете, какой документ самый релевантный, какой второй по релевантности и т.д. И вам нужно восстановить такой порядок для всей генеральной совокупности. То есть для всех запросов из генеральной совокупности на первое место поставить самый релевантный документ, а на последнее — самый нерелевантный.

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

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

DeviceLock DLP: Цены российского черного рынка на пробив персональных данных (плюс ответ на ответ Тинькофф Банка)

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

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


Заодно посмотрим изменение цен и предложений на этом «рынке», а также реакцию «Тинькофф Банка» на вот это вот все.



Поехали...

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

Что должен делать тимлид: роли, обязанности и навыки

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


Тимлид – это снежинка. При детальном рассмотрении в каждой компании тимлид принимает разную форму. Где-то от него ждут только передвижения задач по доске, где-то – наймов и увольнений, а где-то просят одновременно проектировать архитектуру, ставить бизнес-цели и думать о болях пользователей продукта. На самом деле все обстоит еще сложнее. Различия встречаются не только между разными компаниями, но и даже в рамках команд, находящихся в одном офисе.


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


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

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

Доступное объяснение алгоритма коллапса волновой функции

Время на прочтение9 мин
Охват и читатели47K
Алгоритм коллапса волновой функции (Wavefunction Collapse Algorithm) учит компьютер импровизировать. На входе он получает архетипичные данные и создаёт процедурно генерируемые данные, похожие на исходные.


(Источник)

Чаще всего он используется для создания изображений, но может также строить города, скейтпарки и писать ужасные стихи.


(Источник)

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

Большинство реализаций и объяснений коллапса волновой функции — это полная, оптимизированная по скорости версия алгоритма. Разумеется, все они важны и необходимы, но в них сложно разобраться с нуля. В этом посте я буду объяснять всё понятным я простым языком, сосредоточившись на версии Wavefunction с ограничениями, которую я назвал Even Simpler Tiled Model. Кроме того, я выложил пример реализации ESTM на Github. Код в нём неэффективный и медленный, но очень хорошо читаемый и подробно прокомментирован. Как только вы разберётесь в технологии, лежащей в основе ESTM, то станете ближе к пониманию более сложных версий алгоритма. Если хотите понять алгоритм коллапса волновой функции, то эта статья будет хорошим началом.
Читать дальше →

Как использовать PAM-модули для локальной аутентификации в Linux по ключам ГОСТ-2012 на Рутокене

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


Простые пароли не защищают, а сложные невозможно запомнить. Поэтому они так часто оказываются на стикере под клавиатурой или на мониторе. Чтобы пароли оставались в головах “забывчивых” пользователей и надёжность защиты не терялась – есть двухфакторная аутентификация (2ФА).
Читать дальше →

Бизнес-аналитика. ИТ-объекты, компоненты, инструменты

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

Бизнес-аналитика. ИТ-объекты, компоненты, инструменты


Я имел счастье (творчество) и несчастье (признание и внедрение) разрабатывать проект банковской аналитики. Разрабатывать от идеи до реализации и непосредственно участвовать во всех стадиях разработки. Больше всего мне нравилась стадия постановки и проектирования. Превращать хаос представлений в четкую постановку – это немалое удовольствие. Потом трансформировать описательность постановки в конструктивность проекта – это тоже удовольствие. Ну и, кроме того, разрабатывал архитектуру ПО и программировал. В этом тоже находились свои маленькие прелести, хотя на этой стадии каждый программист имел свое мнение и разрулить противоречивости воззрений оказывалось не просто.

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

Вот и захотелось поделиться своими воззрениями на бизнес-аналитику.

Есть, конечно, еще более важный предмет – бизнес-синтез, имеющий дело с интеграцией данных анализа и принятием решений. “Но это уже совсем другая история”.
Бизнес-объекты аналитики

27 вещей, которые я хотел бы узнать заранее, прежде чем начинать программировать

Время на прочтение4 мин
Охват и читатели68K
Привет, Хабр! Представляю вашему вниманию перевод статьи «27 things I wish I knew when I started programming» автора Ken Mazaika.

Заранее, прежде чем начинать программировать, хотелось бы узнать массу вещей, но вот 27 из них, которые приходят на ум.
Читать дальше →

Лучшие системы управления тестированием 2019

Время на прочтение8 мин
Охват и читатели89K
Каждый проект уникален и у каждой команды свои запросы. Но всех нас объединяет желание работать с качественными инструментами, которые экономят время.

Мы проанализировали проверенные временем и новые системы управления тестированием, которые сейчас популярны на рынке. Выбрали функции, которые должны быть в идеальной Test Management System, сравнили возможности продуктов и изучили отзывы пользователей.
Как итог, перед вами список инструментов, один из которых точно подойдёт вашей команде.

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

Топ-65 вопросов по SQL с собеседований, к которым вы должны подготовиться в 2019 году. Часть I

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


Перевод статьи подготовлен для студентов курса «MS SQL Server разработчик»




Реляционные базы данных являются одними из наиболее часто используемых баз данных по сей день, и поэтому навыки работы с SQL для большинства должностей являются обязательными. В этой статье с вопросами по SQL с собеседований я познакомлю вас с наиболее часто задаваемыми вопросами по SQL (Structured Query Language — язык структурированных запросов). Эта статья является идеальным руководством для изучения всех концепций, связанных с SQL, Oracle, MS SQL Server и базой данных MySQL.

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

Большой FAQ по кибербезопасности медицинских информационных систем

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

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


– Насколько распространены в России медицинские информационные системы?
– Можно подробней о единой информационной государственной системе здравоохранения (ЕГСИЗ)?
– Можно подробней о технических особенностях отечественных медицинских информационных систем?
– Какова ситуация с кибербезопасностью отечественной системы ЕМИАС?
– Какова ситуация с кибербезопасностью медицинских информационных систем – в цифрах?
– Могут ли компьютерные вирусы заразить медицинское оборудование?
– Насколько опасны вирусы-вымогатели для медицинского сектора?
– Если киберинциденты столь опасны, зачем производители медицинского оборудования компьютеризируют свои устройства?
– Почему киберпреступники переключились с финансового сектора и розничных магазинов – на медицинские центры?
– Почему случаи инфицирования вирусами-вымогателями участились в медицинском секторе и продолжают учащаться?
– Врачи, медсёстры и пациенты, пострадавшие от WannaCry – чем для них это обернулось?
– Как киберпреступники могут навредить клинике пластической хирургии?
– Киберпреступник украл медицинскую карточку – чем это грозит её законному владельцу?
– Почему кража медицинских карточек пользуется таким нарастающим спросом?
– Как связаны кражи номеров социального страхования с криминальной индустрией подделки документов?
– Сегодня много разговоров о перспективах и безопасности систем искусственного интеллекта. Как с этим дела обстоят в медицинском секторе?
– Извлёк ли медицинский сектор уроки из ситуации с WannaCry?
– Как медицинским центрам обеспечить кибербезопасность?


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

Разработка под Docker. Локальное окружение. Часть 2 — Nginx+PHP+MySql+phpMyAdmin

Время на прочтение6 мин
Охват и читатели58K
Для лучшего понимания нижеследующего материала сначала рекомендуется ознакомится с Предыдушим постом

Рассмотрим пример развертки локального окружения состоящего из связки Nginx+PHP+MySql+phpMyAdmin. Данная связка очень популярна и может удовлетворить ряд стандартных потребностей рядового разработчика.

Как и в прошлом посте акцент будет смещен в сторону утилиты docker-compose, чем докера в чистом виде.

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

Семиотика в маркетинге: что это значит для вашего бренда

Время на прочтение10 мин
Охват и читатели20K
Вы не покупаете продукты, вы покупаете успех, статус, стиль жизни.
Кроме того, ваши покупки управляются подсознательным восприятием и эмоциями.

Семиотика, интерпретация знаков и символов, помогает расшифровать эти подсознательные элементы. Хотя семиотика является академической наукой, она имеет и практические применение для маркетологов.

Семиотика может помочь:

  • Эффективно донести сообщение бренда до потребителя;
  • Сообщить желаемые значения;
  • Влиять на подсознательное принятие решений потребителями.

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

Поймал бан за форк deepNude на gitlab.com

Время на прочтение2 мин
Охват и читатели48K
В одной из статей опубликованных на хабре я в комментах вычитал, что на gitlab.com есть копии deepNude, чисто из любопытства нашел ее и сделал форк «на всякий случай». Через 3 часа после этого я не смог запушить код, т.к. улетел в бан…

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

Информация

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