Как стать автором
Обновить
0
Romal Vekasi @RomalVekasiread⁠-⁠only

Программист Ваба-лаба-дапс-дап

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

Оптимизируем Shuffle в Spark

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров1.8K

Привет, Хабр! Меня зовут Сергей Смирнов, я аналитик в продукте CVM в X5 Tech. Я занимаюсь разработкой инструмента анализа A/B экспериментов. Мы ежедневно считаем десятки метрик для сотен экспериментов на десятки миллионов клиентов –- это терабайты данных, поэтому наш инструмент разработан на Spark.

В последнее время мы заметили, что существенную часть времени работы наших Spark-приложений занимает обмен данными (Shuffle) между исполнителями. В этой статье я расскажу о том, какие оптимизации помогли нам избавиться от самых тяжёлых операций Shuffle. Речь пойдёт не только о BroadcastJoin, но и о двух других неочевидных методах – предварительное репартицирование и бакетирование.

Читать далее
Всего голосов 6: ↑6 и ↓0+9
Комментарии4

Калибровка Life Work Balance. Система планирования, которую я развиваю уже 14 лет

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров23K

У вас бывает ощущение, что год прошел зря? Коллеги влетают на вершины карьерной лестницы, бизнес знакомых активно развивается, друзья объездили весь мир и покупают очередную квартиру? А у нас жопа в огне, мы тонем в рабочих задачах, едва успевая найти время на бытовую рутину, не оставляя время на себя?

Читать далее
Всего голосов 39: ↑33 и ↓6+32
Комментарии17

Эффективная постановка и ведение задач в IT-проектах

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров8K

Привет, Хабр!

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

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

Шаблоны и примеры задач будут в конце статьи.

Читать далее
Всего голосов 15: ↑13 и ↓2+14
Комментарии4

А в чем проблема работать с файлами?

Уровень сложностиСредний
Время на прочтение53 мин
Количество просмотров32K

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

Меня увлекла тема отказоустойчивости, а конкретно - отказоустойчивой работы с файлами. В этой статье я попытался соединить все полученные знания:

Кто участвует в процессе записи

Ошибки, которые могут произойти

Что от нас зависит, а что нет

И самое главное - как это этого защититься

Читать далее
Всего голосов 141: ↑140 и ↓1+169
Комментарии23

Это один из лучших подходов к изучению английского, что я видел за последние годы — коллокации

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

Значение слова – это его использование в языке
Людвиг Витгенштейн (сурс) 

Что это вообще за магия такая? Коллокация – это просто пара или группа слов, которые часто возникают вместе. Такие комбинации звучат естественно для носителей языка, однако, тем, у кого язык не родной, бывает сложно догадаться до этой естественной комбинации.

А что если я скажу, что они улучшают сразу и вашу способность органично говорить, и канонично писать, и что совсем удивительно воспринимать английский от носителей языка на слух? И главный вопрос, который меня мучает – почему я узнал об этой технике изучения языка только полгода назад? (Рассказ об этой подготовке здесь.) 

Внимательно посмотрите на пример с картинки. Как только собеседник начал(а) произносить “pitch d…” ваш мозг, зная нужные коллокации, подскажет, что там должно быть “dark”. Даже если вы плохо расслышали эту часть. Это один из механизмов, через который коллокации позволяют лучше воспринимать язык на слух.

Подробнее о том, как их учить и использовать и будет эта статья.

Disclaimer: если у вас филологическое образование, то вам наверное будет смешно, что кто-то открыл для себя коллокации и их использование для изучения иностранного языка в 202N году, а вот если вы, как и я, когда-то читали “randomize” как “рандомизе”, то возможно эта статья будет вам полезной.

Добро пожаловать под кат
Всего голосов 72: ↑71 и ↓1+95
Комментарии116

Подготовка приложений Spark Streaming к использованию в рабочей среде

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

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

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

Есть проблема? Нет проблем. Инструменты принятия решений

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров9.8K

Привет, Хабр! Меня зовут Ирина Ремизова, я куратор департамента системного анализа Sportmaster Lab, где, собственно, и курирую системных аналитиков, развивая их и рассказывая про инструменты принятия решений.

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

Начнём мы с ББМ. Это аббревиатура из трех слов, которая представляет собой три реакции человека при принятии решения. Боль (приобретение или потеря), боязнь сделать неправильное решение (верно или неверно) и муки (а что было бы, если…).

Почему бывает так трудно? 

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

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

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

Читать далее
Всего голосов 29: ↑24 и ↓5+26
Комментарии9

Чистая архитектура на примере

Уровень сложностиПростой
Время на прочтение27 мин
Количество просмотров47K

Познакомил друга с понятием "Чистая архитектура" и он стал часто спрашивать меня как лучше сделать то или другое. Хотел дать ему к какому-нибудь туториал, но, к удивлению (плохому), не нашел подходящего.

Поэтому выкладываю небольшой обзор:

1.. Что такое чистая архитектура;
2.. Как можно реализовать;
3.. Мои мысли.

Читать далее
Всего голосов 13: ↑11 и ↓2+11
Комментарии23

Почему B-деревья быстрые?

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров50K

B-дерево — это структура, помогающая выполнять поиск в больших объёмах данных. Она была изобретена более сорока лет назад, однако по-прежнему используется в большинстве современных баз данных. Хотя существуют и более новые структуры индексов, например, LSM-деревья, B-дерево пока никто не победил в обработке большинства запросов баз данных.

После прочтения этого поста вы будете знать, как B-дерево упорядочивает данные и выполняет поисковые запросы.

Читать далее
Всего голосов 151: ↑150 и ↓1+183
Комментарии13

Вкатываемся в Machine Learning с нуля за ноль рублей: что, где, в какой последовательности изучить

Уровень сложностиПростой
Время на прочтение26 мин
Количество просмотров215K

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

Читать далее
Всего голосов 129: ↑127 и ↓2+155
Комментарии51

Как из вакансии понять, что наниматель-муд**: 5 признаков

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

Всем привет! Я Тёма Логинов, за 4 года работы в digital я неоднократно искал работу, нанимал людей и помогал это делать другим.

Многие компании оформляют вакансии по-странному: предлагают работу за три рубля или вешают на одного сотрудника работу целого отдела. Рассказываю, как распознать такие вакансии, чтобы уберечь себя от работы на [ч]удаков.

Читать далее
Всего голосов 122: ↑91 и ↓31+87
Комментарии583

Apache Spark и PySpark для аналитика. Учимся читать и понимать план запроса в SparkUI

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

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

Читать далее
Всего голосов 10: ↑9 и ↓1+8
Комментарии0

Вам в хранилище или к озеру? Чем занимаются специалисты по работе с данными и как стать Data-инженером

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

Привет, Хабр! Сегодня рассказываем, чем отличаются подходы к построению распределённых хранилищ данных Data Warehouse (DWH) и Data Lake и в чём специфика задач специалистов, работающих с данными.

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

P.S. На картинке спрятаны 6 инструментов для работы с данными. Узнали их?

Читать далее
Всего голосов 16: ↑14 и ↓2+13
Комментарии0

YTsaurus: основная система для хранения и обработки данных Яндекса теперь open source

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

Привет! Меня зовут Максим Бабенко, я руковожу отделом технологий распределённых вычислений в Яндексе. Сегодня мы выложили в опенсорс платформу YTsaurus — одну из основных инфраструктурных BigData-систем, разработанных в Яндексе.

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

В Github-репозитории находится серверный код YTsaurus, инфраструктура развёртывания с использованием k8s, а также веб-интерфейс системы и клиентский SDK для распространённых языков программирования — C++, Java, Go и Python. Всё это — под лицензией Apache 2.0, что позволяет всем желающим загрузить его на свои серверы, а также дорабатывать его под свои нужды.

Читать далее
Всего голосов 176: ↑175 и ↓1+217
Комментарии33

Шпаргалка по SQL (postgres), которая выручает меня на собесах

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров200K

Привет, Хабр!

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

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

Читать далее
Всего голосов 156: ↑149 и ↓7+177
Комментарии178

16 простых и эффективных правил дизайна UI

Уровень сложностиПростой
Время на прочтение11 мин
Количество просмотров31K

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

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

Наличие системы логических правил помогает эффективно принимать в дизайне продуманные решения. Без логической системы вы просто используете внутреннее чутьё, меняя компоновку элементов, пока не получится желаемый красивый результат.

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

Самый быстрый способ обучения — это практика, так что приступим!
Читать дальше →
Всего голосов 53: ↑52 и ↓1+65
Комментарии13

Делай нейминг как сеньор

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

Это объект Pizza, там хранится инфа о латте, а заказали его в Restaurant или в Pizzeria? Неудобно? Максимально. Мы читаем код существенно больше, чем пишем. И хочется сразу понимать, что происходит, не играя в квесты «что имел в виду автор», «да как это работает» и «я снова ничего не понял». Без навыка давать хороший нейминг невозможно писать качественный и поддерживаемый код. Про нейминг говорят заодно, в рамках архитектуры и общих инженерных практик. В статье поговорим про него отдельно.

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

Читать далее
Всего голосов 148: ↑146 и ↓2+182
Комментарии221

Разделяй и властвуй, или Зачем управлять данными

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

Хабр, привет! Сегодня, в предпраздничный день, публикую статью Кирилла Евдокимова, директора практики Data Governance GlowByte. В области данных и аналитики он работает уже около 20 лет, последние 7 лет основной фокус – это Data Governance. Как говорит Кирилл, история с управлением данными всё еще остаётся terra incognita. В статье под катом он разбирает наиболее частые ошибки, проблемы, с которыми приходится сталкиваться компаниям, вступающим на тернистый путь управления данными.

Читать статью Кирилла
Всего голосов 16: ↑13 и ↓3+12
Комментарии0

Ошибки выбора MongoDB в качестве основной БД в стартапе

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

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

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

Тем не менее, нельзя знать всего и чтение документации не спасает от катастроф во время самой реализации проекта. Особенно, если ваши ожидания от инструмента разошлись с реальностью.

На мой взгляд, маркетологи MongoDB приукрасили области применениях БД на своем сайте. MongoDB не универсальная. Далеко не универсальная и даже не пытайтесь на нее смотреть как на решение всех ваших проблем.

Встать на грабли вместе
Всего голосов 136: ↑112 и ↓24+115
Комментарии131

Как улучшить английский в документации

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

Я работаю техническим писателем в компании documentat.io. Мы занимаемся заказной разработкой технической документации, в том числе на английском языке. Иногда я дорабатываю уже существующие документы или спецификации к API на английском. Как правило, такие документы написаны русскоязычными разработчиками, которые неплохо владеют английским. И всё же они часто допускают характерные грамматические, пунктуационные и стилистические ошибки.

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

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

Читать далее
Всего голосов 81: ↑80 и ↓1+97
Комментарии27

Информация

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