Pull to refresh
29
0
Александр Свешников @alexglue

Руководитель оптимизации процессов в Кинопоиске

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

Reading time 3 min
Views 24K
GitHub *Development Management *Web services monetization *Social networks and communities IT-companies


Эксперт по безопасности Стивен Тей и исследователь под ником Boriquagato выяснили из исходного кода рекомендательного алгоритма соцсети, что группировка из 100 тыс. ботов способна навсегда нейтрализовать (буквально заставить замолчать) любого пользователя Twitter. Владелец платформы Илон Маск отреагировал на эту ситуацию и предложил $1 млн тому, кто найдёт создателей таких ботнетов и предоставит доказательства их вины.
Читать дальше →
Total votes 12: ↑11 and ↓1 +10
Comments 4

Как научиться чувствовать треки? Визуализация музыкальных частот в Моей волне

Reading time 6 min
Views 14K
Яндекс corporate blog Programming *Mathematics *Data visualization *Sound
✏️ Technotext 2022
Разработчики всего мира потратили миллионы часов на создание визуализаций музыки в приложениях и плеерах. Наверняка многие из вас помнят анимации в старом-добром Winamp. Или разные скины JetAudio. Олды вообще скажут: «Погоди-ка, ты забыл про Atari Video Music, всего-то 1976-й был!» — и будут правы.

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



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

Меня зовут Андрей Бобков, я Android-разработчик, и в этом посте я расскажу, как при помощи высшей математики и цифрового анализа сигнала мы научили Мою волну чувствовать треки, которые вы слушаете, и визуализировать частоты.
Читать дальше →
Total votes 39: ↑37 and ↓2 +35
Comments 48

Оцениваем разработчика на основе объективных данных

Reading time 22 min
Views 22K
Конференции Олега Бунина (Онтико) corporate blog Development Management *Project management *Personnel Management *IT-companies
К сожалению, мы не живем в идеальном мире, где каждый разработчик имеет идеальный и сбалансированный уровень производительности, при этом сфокусирован на задачах и продумывает их от и до. Командное взаимодействие тоже не всегда устроено так, что все члены команды работают с максимальной эффективностью. Как и с многими проблемами вообще, в команде разработки ранняя диагностика позволяет сэкономить ресурсы, нервы руководства и создать хорошую рабочую атмосферу.

В небольшой команде тимлид может попытаться судить обо всем происходящем на основе субъективных ощущений, но, чем больше компания, тем важнее использовать объективные данные и метрики. Александр Киселев (AleksandrKiselev) и Сергей Семенов в своем докладе на TeamLead Conf показали, как использовать данные, которые вы уже накопили, где взять дополнительные, и что они все вместе могут помочь определить неочевидные проблемы. И даже, аккумулировав опыт многих коллег, предложили варианты решения.


О спикерах: Александр Киселев и Сергей Семенов в IT мы уже больше 8 лет. Оба прошли путь от разработчика до тимлида и далее до product-менеджера. Сейчас работают над аналитическим сервисом GitLean, который автоматически собирает аналитику у команд разработки для тимлидов и CTO. Задача этого сервиса в том, чтобы технические менеджеры могли принимать свои решения на основе объективных данных.
Total votes 48: ↑39 and ↓9 +30
Comments 19

Ещё 20+ игр, которые прокачивают логику, алгоритмы и радуют умный мозг [по следам комментариев на Habr]

Reading time 9 min
Views 92K
Timeweb Cloud corporate blog Programming *Algorithms *Popular science Games and game consoles
image

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

Еще я веду канал в Telegram: GameDEVils, делюсь там клевыми материалами (про геймдизайн, разработку и историю игр).
Читать дальше →
Total votes 83: ↑82 and ↓1 +81
Comments 59

HTTP/3: развёртывание HTTP/3 на практике. Часть 3

Reading time 29 min
Views 15K
Southbridge corporate blog High performance *Website development *Server Administration *DevOps *
Translation

Фото Wolfgang Rottmann, Unsplash.com

После почти пятилетних разработок протокол HTTP/3 наконец приближается к окончательному выпуску. Рассказываем, какие трудности могут возникнуть при развёртывании и тестировании HTTP/3 и как адаптировать к нему сайты и ресурсы.

Это третья и последняя часть серии о новых протоколах HTTP/3 и QUIC. Если, прочитав предыдущие две части об истории и основных концепциях и функциях производительности HTTP/3, вы решили, что новые протоколы срочно нужно внедрять (будем надеяться, что так вы и решили), здесь мы расскажем, как это сделать.
Читать дальше →
Total votes 25: ↑23 and ↓2 +21
Comments 12

Завышенный уровень делегирования, или «Если бы мне так объяснили, я бы все понял»

Reading time 9 min
Views 15K
Personnel Management *
image

"...5 лет назад я работал в почтовом сервисе. В мои обязанности входило сопровождение разнообразных проектов по международным перевозкам. Как-то раз мой начальник пришел ко мне и поручил следующее задание: «Саша, нужно до конца месяца решить проблему с недостатком машин по маршруту Кишинев».

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

Когда вся информация была собрана, я пришел к начальнику и начал показывать ему мои расчеты и таблицы. Он прослушал меня минуты 2 максимум, а потом резко остановил и достаточно нервно сказал: «Саша, что ты мне принес?! Я тебя попросил вопрос с машинами решить, а ты мне математику показываешь. Прошла неделя, а ты ничего не сделал! Что тебе не понятно? Пойди к фин. директору и скажи, чтоб согласовал покупку еще двух машин класса А».



Умение поручать задания сотрудникам — это наука всех времен. Сколько книг написано, сколько анекдотов сочинено, а тема всегда популярна. Но в этих всех книгах и анекдотах проблема описывается исключительно со стороны потерь для бизнеса, а о сотруднике и его чувствах говорится мало. Поэтому, я немного дополню проблему именно со стороны демотивации.
Читать дальше →
Total votes 28: ↑25 and ↓3 +22
Comments 23

Tinkoff инвестиции –> Prometheus –> Grafana

Reading time 9 min
Views 14K
API *Finance in IT

В последний год (примерно) появилось много постов, как сделать таблички в Google Sheets/MS Excel для отображения актуальной информации о своем инвестиционном портфеле и т.п. Действительно хочется видеть, что там творится. Особенно актуально для продвинутых подписок/тарифных планов, когда требуется определенная сумма на счетах, и будет обидно, если из-за падения акций или курса доллара сумма снизится ниже пороговой…

Я попробовал несколько вариантов от электронных таблиц до записи в MySQL скриптом на python, и на текущий момент остановился на отображении моих инвестиционных счетов в Grafana.

Кому интересны плюсы/минусы разных вариантов, с какими нюансами я столкнулся – добро пожаловать под кат.

Посмотреть
Total votes 29: ↑29 and ↓0 +29
Comments 16

Мой уход из Яндекса, как не потерять мотивацию за полгода подготовки в FAANG и реджект в Google

Reading time 12 min
Views 98K
IT career
Sandbox

Мой уход из Яндекса, как не потерять мотивацию за полгода подготовки в FAANG и реджект в Google.

Читать далее
Total votes 168: ↑158 and ↓10 +148
Comments 297

Стажёр Вася и его истории об идемпотентности API

Reading time 11 min
Views 182K
Яндекс corporate blog Website development *Development of mobile applications *Interfaces *API *

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


Меня зовут Денис Исаев, и я руковожу одной из бэкенд групп в Яндекс.Такси. Сегодня я поделюсь с читателями Хабра описанием проблем, которые могут возникнуть, если не учитывать идемпотентность распределенных систем в своем проекте. Для этого я выбрал формат вымышленных историй о стажёре Васе, который только-только учится работать с API. Так будет нагляднее и полезнее. Поехали.


image

Читать дальше →
Total votes 219: ↑216 and ↓3 +213
Comments 163

На главной «Кинопоиска» появился Яндекс-директ

Reading time 1 min
Views 23K
IT-companies
Девять месяцев — прекрасный срок, чтобы разродиться новостями. Первым заметным изменением крупнейшего киносайта Рунета 9 месяцев после его покупки Яндексом спустя стало появление Яндекс-директа прямо на морде портала. Смотрится это, прямо скажем, дико:


Читать дальше →
Total votes 49: ↑27 and ↓22 +5
Comments 49

Теперь я тимлид, но почему мне так плохо? Практические советы

Reading time 4 min
Views 42K
Конференции Олега Бунина (Онтико) corporate blog Development Management *Project management *Personnel Management *Conferences
Почему-то считается, что тимлид — это более высокая ступень эволюции инженера, чем все квалификационные уровни, включая senior. При том что всем известно, навыки и умения там нужны совсем другие. Но факт продолжает оставаться фактом, в большинстве компаний тимлидами становятся лучшие инженеры. Иногда, потому что руководству кажется, что это даст сотруднику новую мотивацию и вообще — это же повышение. Иногда, в силу необходимости — наняли много новых сотрудников, и кто-то должен за них отвечать и помогать им пилить новые фичи. Неудивительно, что неподготовленный человек, брошенный в новые обязанности, как в воду, сваливается в состояние экзистенциального кризиса.



То, что доклад на эту тему был признан лучшим на конференции для тимлидов и о тимлидах, показывает, насколько действительно часто встречается такая ситуация. Но надо признать, конечно, что Евгений Кот (bunopus) заработал это «признание» еще и великолепным перформансом. С удовольствием делимся с вами его записью.
Total votes 52: ↑51 and ↓1 +50
Comments 9

CSS Grid — швейцарский армейский нож для макетов сайтов и приложений

Reading time 9 min
Views 50K
Поиск VPS corporate blog Web design *Website development *CSS *HTML *
Translation
В течение последних двух месяцев я углубился в изучение CSS Grid. В этой заметке я хочу поделиться своими основными соображениями. Чтобы было более понятно, я объясню все с помощью диаграмм.

Вероятно, вы уже знакомы с блоковой моделью CSS для обычных элементов. Давайте начнем с аналогичного «общего обзора» для CSS Grid:


В основе структуры CSS Grid находится основной контейнер, представляющий собой обычный div, имеющий margin, border и padding. Для создания CSS grid контейнера добавим свойство display: grid. Элементы сетки — это потомки, размещенные внутри родительского контейнера. Они обычно определяются как список, описывающий header, sidebar, footer или другие аналогичные элементы макета сайта, зависящие от его дизайна.
Читать дальше →
Total votes 29: ↑29 and ↓0 +29
Comments 21

Новый программерский жаргон

Reading time 7 min
Views 49K
IT Terminology
Translation
Посетителям сайта stackoverflow.com был задан вопрос: «Какие программерские термины вы придумали, так чтобы они стали популярны в ваших кругах (то есть вы слышали, что кто-то их повторяет)?

Ниже — вольный перевод самых популярных ответов.

Читать дальше →
Total votes 411: ↑373 and ↓38 +335
Comments 193

Entity vs Value Object: полный список отличий

Reading time 6 min
Views 51K
Programming *.NET *Designing and refactoring *C# *
Тема отличий таких понятий как Entity (Сущность) и Value Object (Объект-Значение) из Domain-Driven Design не нова. Тем не менее, я не смог найти статью с полным списком их отличий, так что решил написать свою.
Читать дальше →
Total votes 25: ↑15 and ↓10 +5
Comments 20

Symfony и Command Bus

Reading time 16 min
Views 40K
PHP *Symfony *
Sandbox
Уже больше года использую паттерн Command Bus в своих Symfony-проектах и наконец решил поделиться опытом. В концев концов обидно, что в Laravel это есть «из коробки», а в Symfony, из которого Laravel во многом вырос — нет, хотя самому понятию Command/Query Separation уже не менее 10 лет. И если с буквой «Q» из аббревиатуры «CQRS» еще понятно что делать (лично меня вполне устраивают custom repositories), то куда приткнуть букву «C» — неясно.

На самом деле, даже в банальных CRUD-приложениях Command Bus дает очевидные преимущества:

  • контроллеры становятся «худыми» (редкий «экшен» занимает более 15 строк),
  • бизнес-логика покидает контроллеры и становится максимально независимой от фреймворка (в результате ее несложно повторно использовать в других проектах, даже если они написаны не на Symfony),
  • упрощается unit-тестирование бизнес-логики,
  • сокращается дублирование кода (когда, например, необходимо реализовать «фичу» как через Web UI, так и через API).

КДПВ
Читать дальше →
Total votes 15: ↑13 and ↓2 +11
Comments 121

Golang, PHP, Кинопоиск и Telegraph — Что их объединяет?

Reading time 6 min
Views 17K
PHP *Programming *Go *
Sandbox
Периодически, чтобы не покрыться пылью, я стараюсь создавать интересные штуки, которые смогли бы облегчить чью-то жизнь. Я стремлюсь к тому, чтобы они были, полезнее, чем социальная сеть для кошек. Один из недавних примеров — Телеграм-бот, который позволяет в указанных координатах найти известные Wi-Fi-точки и посмотреть пароли к ним.

Этот раз не стал исключением и я задумал создать бота, который позволял бы с наибольшим комфортом и минимумом усилий смотреть любимые фильмы и сериалы, да еще и предоставлял контент в нескольких вариантах озвучки. Сказано — сделано. И теперь, когда железный друг человека радостно раздает пользователям их любимые шоу, я бы хотел поговорить о том, что сопутствовало созданию бота, какие проблемы вставали на моем пути и как они были решены. В первой главе я расскажу о Go глазами PHP-разработчика, во второй главе о поиске дзена для парсинга Кинопоиска, а в третьей — о недокументированной фиче Telegraph.

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

Мой опыт внедрения Apache Cassandra

Reading time 3 min
Views 56K
NoSQL *Big Data *
Как и большинство NoSQL-решений, C* подвержена одной крайне неприятной эпидемии: она является отличным инструментом для узкого класса задач, но позиционируется евангелистами как очередная серебряная пуля по хранению данных. В этой статье я расскажу о своём опыте внедрения C* в (сравнительно) нагруженный проект веб-аналитики. Она будет полезна всем, кто стоит перед выбором масштабируемого хранилища данных, и развенчает мифы и заблуждения об этом инструменте.


Читать дальше →
Total votes 29: ↑27 and ↓2 +25
Comments 19

Planning Poker: как сделать процесс постановки задач максимально прозрачным и четким

Reading time 3 min
Views 44K
Retail Rocket corporate blog Development Management *Product Management *
В прошлом посте мы рассказали о том, как работаем с бэклогом, а сегодня поделимся подробностями о процессе планирования, который в нашем случае не только полезный, но и увлекательный, поскольку оценку задач мы проводим с помощью «Planning Poker».

image
Читать дальше →
Total votes 15: ↑13 and ↓2 +11
Comments 16

Непрерывная интеграция и TeamCity

Reading time 4 min
Views 101K
PHP *
Непрерывная интеграция (англ. Continuous Integration) — это практика разработки программного обеспечения, которая заключается в выполнении частых автоматизированных сборок проекта для скорейшего выявления и решения интеграционных проблем. В обычном проекте, где над разными частями системы разработчики трудятся независимо, стадия интеграции является заключительной. Она может непредсказуемо задержать окончание работ. Переход к непрерывной интеграции позволяет снизить трудоёмкость интеграции и сделать её более предсказуемой за счет наиболее раннего обнаружения и устранения ошибок и противоречий.

imageВ этом топике мы в общих чертах рассмотрим процесс реализации непрерывной интеграции на примере TeamCity Enterprise 6.0 EAP (build 15400) и обратим внимание на применении инструментов рассмотренных в прошлой теме: Обеспечение качества программного продукта.
Читать дальше →
Total votes 49: ↑44 and ↓5 +39
Comments 49

Обзор расширения OPCache для PHP

Reading time 33 min
Views 114K
VK corporate blog Website development *PHP *Compilers *
Translation


PHP — это скриптовый язык, который по умолчанию компилирует те файлы, которые вам нужно запустить. Во время компилирования он извлекает опкоды, исполняет их, а затем немедленно уничтожает. PHP был так разработан: когда он переходит к выполнению запроса R, то «забывает» всё, что было выполнено в ходе запроса R-1.

Очень маловероятно, что на production-серверах PHP-код изменится между выполнением нескольких запросов. Так что можно считать, что при компилированиях всегда считывается один и тот же исходный код, а значит и опкод будет точно таким же. И если извлекать его для каждого скрипта, то получается бесполезная трата времени и ресурсов.
Читать дальше →
Total votes 56: ↑55 and ↓1 +54
Comments 25

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity