Как стать автором
Обновить
1
0
Руслан @Ruslan_Y

Пользователь

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

Java-сериализация: максимум скорости без жёсткой структуры данных

Время на прочтение12 мин
Количество просмотров25K
Наша команда в Сбербанке занимается разработкой сервиса сессионных данных, который организует взаимообмен единым Java-контекстом сессии между распределёнными приложениями. Наш сервис крайне нуждается в очень быстрой сериализации Java-объектов, поскольку это часть нашей mission critical задачи. Изначально нам на ум приходили: Google Protocol Buffers, Apache Thrift, Apache Avro, CBOR и др. Первая тройка из перечисленных библиотек требует для сериализации объектов описания схемы их данных. CBOR такой низкоуровневый, что умеет сериализовывать только скалярные значения и их наборы. Нам же была нужна библиотека Java-сериализации, «не задающая лишних вопросов» и не заставляющая вручную разбирать сериализуемые объекты «на атомы». Мы хотели сериализовывать произвольные Java-объекты, не зная о них практически ничего, и хотели делать это максимально быстро. Поэтому мы устроили соревнование для имеющихся Open Source решений задачи Java-сериализации.

КДПВ
Кто же участвовал в соревновании?
Всего голосов 31: ↑30 и ↓1+38
Комментарии67

Когда вредно хешировать

Время на прочтение3 мин
Количество просмотров12K
Предисловие
Данный текст будет являться одной из переписанных глав для учебного пособия по защите информации кафедры радиотехники и систем управления, а также, с этого учебного кода, кафедры защиты информации МФТИ (ГУ). Полностью учебник доступен на github (см. также draft releases). На Хабре планирую выкладывать новые «большие» куски, во-первых, чтобы собрать полезные комментарии и замечания, во-вторых, дать сообществу больше обзорного материала по полезным и интересным темам.

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

Под сложностью восстановления понимается тот факт, что для нахождения первого прообраза [надёжной криптографической хеш-функции] требуется совершить в среднем не менее $2^{n-1}$ операций хеширования, где $n$ — количество бит в выходе криптографической хеш-функции. Взяв современную хеш-функцию с большим размером выхода (начиная от 256 бит) разработчик информационной системы уверен, что восстановить исходные данные по значению хеш-функции нельзя. Чаще всего он прав.

Но есть важный набор случаев, когда несмотря на надёжность хеш-функции восстановление прообраза или даже исходного текста не представляет проблемы. Это случай, когда использовать хеш-функцию бессмысленно. Это случай, когда количество вариантов исходного текста поддаётся перебору.
Читать дальше →
Всего голосов 27: ↑26 и ↓1+25
Комментарии28

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

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


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

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

Также рассчитываю на участие комментаторов — если заметите в обзоре неточность в описании, отсутствие вашего хорошего сервиса или вам просто есть что добавить к уже написанному — пишите в комментариях, я буду собирать всё в основной текст, чтобы на будущее всегда иметь под рукой хороший список инструментов на все случаи жизни.
Читать дальше →
Всего голосов 24: ↑23 и ↓1+22
Комментарии17

Еще один вариант среды для разработки WordPress (docker, wp-cli)

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

Есть официальные образы для развертывания WordPress и использования wp-cli. Но при их совместном использовании мне приходилось расшаривать всю папку WordPress и хотелось, чтобы было больше возможностей для кастомизации установки.


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


Эта статья предлагает один из способов развертывания сайтов на WordPress.

Всего голосов 13: ↑12 и ↓1+11
Комментарии0

Спасение утопающих — наше дело: как бороться с демотивацией в команде

Время на прочтение10 мин
Количество просмотров39K
Я 18 лет в IT. Последние 10 из них руковожу: под моим подчинением в разное время были 200 человек. 

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

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



С докладом на эту тему я выступал на Badoo TechLeads Meetup №4 (видео). Мой рассказ, скорее всего, не подойдёт тем, чья команда больше 100 человек: я буду рассказывать про уровень тимлида, техлида, технического директора небольшой компании. Сам я начинал с маленькой компании. Когда пришёл в команду mos.ru, у нас было три инженера. За год мы выросли до 40, за два года — до 80. Сейчас, в разное время дня и в зависимости от погоды, нас до сотни человек. 

Про них я и расскажу.
Читать дальше →
Всего голосов 86: ↑78 и ↓8+70
Комментарии111

Как мы построили надёжный кластер PostgreSQL на Patroni

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


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

Мы расскажем, какие решения мы рассматривали для обеспечения надёжности баз данных в своих сервисах и к чему пришли. Плюс демо с далеко идущими выводами.
Читать дальше →
Всего голосов 37: ↑36 и ↓1+35
Комментарии15

Аналитика девушек с низкой социальной ответственностью (Заряжено Power BI, Qlik Sense, Tableau)

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

Кто мы такие и какие были предпосылки проекта?


Добрый день, меня зовут Лазарев Владимир, я руководитель BI-интегратора Аналитикс Групп. Мы делаем для бизнеса наглядные отчёты по маркетингу, продажам, финансам, логистике на базе ведущих аналитических платформ Qlik Sense, Power BI, Tableau.

В BI платформах очень важна визуальная составляющая. Если вы посмотрели десятки демо-отчетов BI-систем и вам не нравится как выглядит та или иная платформа, то скорее всего вы ее не будете внедрять, даже если вас устраивает цена и технические характеристики. Исходя из этого рождается необходимость увидеть одни и те же данные в разных аналитических платформах, чтобы можно было сопоставить.

И желательно, чтобы данные были интересными… :-)

Откуда появилась идея сделать этот отчёт?


Несколько лет назад Высшая школа экономики опубликовала статью о формировании цен на услуги девушек низкой социальной ответственности в Москве. Это были агрегированные данные анализа 1.800 анкет. Нам показались интересными данные, которые стоят за этими выводами социологов ВШЭ. И мы решили проработать эту тематику.
Читать дальше →
Всего голосов 171: ↑139 и ↓32+107
Комментарии165

Обзор JavaScript-сканнеров штрихкодов

Время на прочтение5 мин
Количество просмотров44K
Недавно появилась идея сэкономить на ТСД на складе и попробовать использовать вместо них обычные дешёвые мобильники (даже без пылезащиты). Интерфейс планирую реализовать в виде веб-приложения (обычные веб-странички, HTML + CSS + JS).

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


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

Как за 1 день QA-инженеру получить оффер в Москве (и дорого ли тут жить)

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


Всем привет!

В последние годы российские компании перенимают западную практику «хайринг ивентов» (hiring event), когда кандидат проходит все этапы собеседования и получает финальный оффер за один день. С одной стороны, такой процесс требует большой единовременной мобилизации усилий ребят из разных команд, но с другой — даёт возможность быстрого большого найма. FunCorp организует такой Hiring event для QA-инженеров 16 марта в Москве, далее я расскажу об этом формате подробнее, а также коснусь вопросов стоимости жизни в Москве, чтобы заинтересованный читатель из других городов смог «прицениться».
Читать дальше →
Всего голосов 38: ↑28 и ↓10+18
Комментарии59

ASH Viewer: перезагрузка

Время на прочтение6 мин
Количество просмотров8.8K
Что делать, если надо работать с данными, которые по объему еще не Big data, но уже больше того, что умещается в памяти компьютера и для которых достаточно возможностей Excel? Для любителей велосипедостроения ответ очевиден – нужно писать что-то свое (да, мы не ищем легких путей).

Но как быть, если код, написанный тобой в прошлом, ужасен и не дает тебе возможности развивать проект? Отставить в сторонку старые наработки, дать дорогу новому, вечному и светлому (да-да, и тут тоже без вариантов).



Цитата из кф Матрица: “Достаточно одной таблетки, Нео”. Режиссер: братья и сестры Вачовски. 1999. США
Читать дальше →
Всего голосов 33: ↑32 и ↓1+31
Комментарии9

Книги, которые стоит прочитать каждому продакт-менеджеру

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


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

Я на своем опыте узнал, как обидно потратить кучу времени и денег на что-то, а потом читаешь книгу, в которой описаны все совершённые мной ошибки. А если бы прочитал её раньше, мог бы избежать, всё могло сложиться по-другому. И если хочешь развиваться в своей профессии, то лучше не повторять чужих ошибок, либо делать это осознанно. И книги очень помогают в этом. Позвольте посоветовать вам книги, которые рекомендуется прочитать каждому продакт-менеджеру.
Читать дальше →
Всего голосов 41: ↑39 и ↓2+37
Комментарии4

Нейронные сети с нуля. Обзор курсов и статей на русском языке, бесплатно и без регистрации

Время на прочтение5 мин
Количество просмотров220K
На Хабре периодически появляются обзоры курсов по машинному обучению. Но такие статьи чаще добавляют в закладки, чем проходят сами курсы. Причины для этого разные: курсы на английском языке, требуют уверенного знания матана или специфичных фреймворков (либо наоборот не описаны начальные знания, необходимые для прохождения курса), находятся на других сайтах и требуют регистрации, имеют расписание, домашнюю работу и тяжело сочетаются с трудовыми буднями. Всё это мешает уже сейчас с нуля начать погружаться в мир машинного обучения со своей собственной скоростью, ровно до того уровня, который интересен и пропускать при этом неинтересные разделы.

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

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


Читать дальше →
Всего голосов 39: ↑34 и ↓5+29
Комментарии12

Мне не страшен ваш NDA

Время на прочтение14 мин
Количество просмотров122K
Это громкая и страшная аббревиатура из трёх неприличных букв. Хотите поучаствовать в тендере, устраиваетесь на работу, нужно получить данные — вам подсовывают эту бумажку, мол, подпиши сначала, а то нашли дураков без NDA тебе что-нибудь рассказывать. При этом в большинстве случаев вы ничего сверхсекретного или коммерчески важного не узнаете, но процедура подписания NDA стала неким таинством посвящения, которое стороны выполняют не особо задумываясь над смыслом.

Это так же как вы неизбежно получите требование вместе с учредительными документами предоставить выписку из ЕГРЮЛ не старше 30 дней. Хотя всё доступно в онлайне, все распечатывают эту выписку из интернета, заверяют её и передают контрагенту, который даже не смотрит её, потому что всё есть в интернете. Ну, вы поняли, короче, отечественную любовь к таинствам.

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

Девять граблей Elasticsearch, на которые я наступил

Время на прочтение7 мин
Количество просмотров73K
Автор иллюстрации — Anton Gudim


«Подготовленный человек тоже наступает на грабли.
Но с другой стороны — там, где ручка.»


Elasticsearch — прекрасный инструмент, но каждый инструмент требует не только настройки и ухода, но и внимания к мелочам. Некоторые — незначительны и лежат на поверхности, а другие спрятаны так глубоко, что на поиск уйдет не один день, не один десяток кружек кофе и не один километр нервов. В этой статье расскажу про девять замечательных граблей в настройке эластика, на которые я наступил.
Давайте приступим
Всего голосов 59: ↑58 и ↓1+57
Комментарии69

Автоматизация мониторинга зарплат с помощью R

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

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


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



Посмотреть вживую (и даже понажимать кнопки) можно здесь.


В этой статье я расскажу о том, как писала такое приложение, и с какими подводными камнями столкнулась по пути.

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

Непрофессиональное видеонаблюдение квартиры занятно и недорого

Время на прочтение5 мин
Количество просмотров56K
С момента как у меня в квартире на страже появилась GSM сигнализация, появилась мысль о том, что неплохо бы иметь в мое отсутствие в квартире и «глаза» в случае срабатывания датчиков сигнализации (а может срабатывание ложное?). Поскольку я инженер в области информационных технологий, ни о каком профессиональном решении в виде регистратора и кучи камер речь не шла — только все сам, своими руками. Бюджет тоже сразу было решено обнулить ограничить, а в случае успешности проекта уже думать о его дальнейшем улучшении и модернизации.
Читать дальше →
Всего голосов 35: ↑35 и ↓0+35
Комментарии72

История активных сессий в PostgreSQL — новое расширение pgsentinel

Время на прочтение2 мин
Количество просмотров6.4K
Компания pgsentinel выпустила одноимённое расширение pgsentinel (репозиторий github), добавляющее в PostgreSQL представление pg_active_session_history — историю активных сессий (по аналогии с оракловой v$active_session_history).

По сути, это просто-напросто ежесекундные снимки из pg_stat_activity, но есть важные моменты:

  1. Вся накопленная информация хранится только в оперативной памяти, а потребляемый объём памяти регулируется количеством последних хранимых записей.
  2. Добавляется поле queryid — тот самый queryid из расширения pg_stat_statements (требуется предварительная установка).
  3. Добавляется поле top_level_query — текст запроса, из которого был вызван текущий запрос (в случае использования pl/pgsql)
Читать дальше →
Всего голосов 17: ↑17 и ↓0+17
Комментарии0

Небольшие трюки с Elasticsearch

Время на прочтение7 мин
Количество просмотров15K
Небольшая заметка, скорее для себя, о мелких трюках по восстановлению данных в Elasticsearch. Как починить красный индекс если нет бэкапа, что делать если удалил документы, а копии не осталось — к сожалению в официальной документации об этих возможностях умалчивают.
Читать дальше →
Всего голосов 15: ↑14 и ↓1+13
Комментарии5

Справа налево. Как перевернуть интерфейс сайта под RTL

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

image


Мы недавно перевели онлайн-версию 2ГИС на арабский язык, и в прошлой статье я рассказал о необходимой для этого теории — что такое dir="rtl", по каким правилам отображается текст смешанной направленности и как держать себя в руках.


Настало время приступить к практике — перевернуть с минимальными усилиями весь интерфейс справа налево так, чтобы даже настоящий араб не почувствовал подвоха.


В этой статье я расскажу, как быстро сделать прототип, что сделать со сборкой CSS и какие костыли разложить в JS, замечу немного об особенностях перевода и локализации, напомню про логические свойства CSS и затрону тему RTL в CSS-in-JS.

Переворачивай скорей
Всего голосов 58: ↑58 и ↓0+58
Комментарии6

Решение больших проблем небольшим семантическим анализатором

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

image


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


Комиссия. Что значит “Тихо”? Они там в филиале пьяные что ли?
Система. "Тихо" = Сила ветра в пределах нормы.
Комиссия. Так это они о погоде. Система сдана в опытную эксплуатацию!


Все события в статье вымышлены. Любые совпадения с реальностью случайны.


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

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

Информация

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