Как стать автором
Обновить
1
0

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

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

Hashing

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

It is an efficient searching technique. Searching is a widespread operation on any data structure. Hashing is used to search specific records from a large domain of records. If we can efficiently search a record out of  many records, we easily perform different operations on that data. Hashing is storing and retrieving data from the database in the order of O(1) time. We can also call it the mapping technique because we try to map smaller values into larger values by using hashing.

Following are the significant terminologies related to hashing

Search Key

In the database, we usually perform searching with the help of some keys. These keys are called search keys. If we take the student data, then we search by some registration number. This registration number is a search key. We have to put the search keys in hash tables.

Hash Table

It is a data structure that provides us the methodology to store data properly. A hash table is shown below. It is similar to an array. And we have indexes in it also like an array.

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

Архитектура in-memory СУБД: 10 лет опыта в одной статье

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

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

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

Этот рассказ сжимает 10 лет опыта работы с in-memory решениями в один текст. Порог входа максимально низкий. Чтобы получить пользу от прочтения, вам не нужно иметь столько же лет опыта, достаточно базового понимания IT.
Читать дальше →
Всего голосов 57: ↑57 и ↓0+57
Комментарии18

Tarantool vs Redis: что умеют in-memory технологии

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

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

Для этого мы посмотрим на технологии в трёх частях:

  • Вначале посмотрим глазами новичка. Что такое БД в памяти? Какие задачи они решают лучше дисковых БД?
  • Потом посмотрим архитектурно. Как обстоит вопрос с производительностью, надёжностью, масштабированием?
  • В третьей части лезем в технические вещи поглубже. Типы данных, итераторы, индексы, транзакции, ЯП, репликация, коннекторы.

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

Поехали!
Читать дальше →
Всего голосов 51: ↑49 и ↓2+65
Комментарии81

Трюки в консоли. Крутые однострочники

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


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

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

В чём же дело?
Читать дальше →
Всего голосов 42: ↑25 и ↓17+19
Комментарии17

Технорадар Lamoda 2020: что изменилось за два года

Время на прочтение7 мин
Количество просмотров11K
Технологический радар — диаграмма, на которой можно увидеть IT технологии и инструменты, которые мы используем в Lamoda, разделенные по областям применения и статусам. В 2018 году мы выкладывали здесь на Хабре подробную статью с расшифровкой актуального на тот момент техрадара. Что изменилось за два года, и зачем мы продолжаем регулярно обновлять радар — читайте в этой статье.

image
Читать дальше →
Всего голосов 27: ↑25 и ↓2+32
Комментарии13

Как ухаживать за грядкой Redis'а и как сохранить урожай?

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

Чуть более года назад мне посчастливилось погрузиться в углублённое изучение Redis. Всё, что я знал про него на тот момент, это две команды — get и set. Примерно в это же время у нас начался плавный переход со Standalone Redis на Redis Cluster.

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

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

Протоколы в Python: утиная типизация по-новому

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

В новых версиях Python аннотации типов получают всё большую поддержку, всё чаще и чаще используются в библиотеках, фреймворках, и проектах на Python. Помимо дополнительной документированности кода, аннотации типов позволяют таким инструментам, как mypy, статически произвести дополнительные проверки корректности программы и выявить возможные ошибки в коде. В этой статье пойдет речь об одной, как мне кажется, интересной теме, касающейся статической проверки типов в Python – протоколах, или как сказано в PEP-544, статической утиной типизации.

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

Как быть более продуктивным, не заставляя себя

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

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

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

Давайте начнем.

Большинство людей испытывает негативные чувства по отношению к своей работе. Они думают, что работа — это что-то неприятное, в отличие от развлечений. Работа воспринимается как раздражающее занятие, которое мешает людям делать то, чем им на самом деле хочется заниматься. Люди также полагают, что отдых и полное безделье — это идеальное состояние, в котором они хотели бы находиться всё время. Такое мышление приводит к тому, что человек начинает думать, что нужно заставлять себя работать через силу, и что работа — это очень тяжело, и лишь железная сила воли поможет справиться с ней.
Читать дальше →
Всего голосов 51: ↑46 и ↓5+57
Комментарии46

“А вдруг наших спикеров схантят?!” Зачем и как учить инженеров выступать

Время на прочтение9 мин
Количество просмотров7.3K
Привет! Меня зовут Женя Голева, я работаю деврелом в компании Lamoda уже четыре года. Сейчас процесс подготовки спикеров у нас налажен и отработан, но так было не всегда. В начале работы мое предложение о выступлении встречало сопротивление и у разработчиков, и у руководителей команд.

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

image
Читать дальше →
Всего голосов 32: ↑30 и ↓2+39
Комментарии8

Гайд по айтишному движу Петербурга

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

Иногда у меня спрашивают разработчики из других городов и студенты, куда сходить айтишнику в культурной столице. За время организации митапов для питонистов, я коллекционировала IT-ивенты, чтобы перенимать лучшие фишки и адаптировать их под нашу целевую аудиторию. В этом обзоре систематизированы впечатления от регулярных митапов наиболее крупных IT-сообществ Петербурга: Golang Piter, Fprog, C++ User Group, SpbDotNet, PiterPy Meetup, PyLadies, Django Girls, Spb Python, Frontend Spb, PiterJS, ODS, SpBDSM, семинары в JetBrains Research, ИТМО и его НИИ, CSC, РАН. Рассмотренные мероприятия бесплатны и открыты для всех, но почти везде требуется предварительная регистрация (для учета количества участников при бронировании помещения, организации кофе-брейка и закупки мерча). Почти у всех есть youtube-канал, где можно посмотреть записи с прошлых митапов, и телеграм-чаты, где удобно отслеживать анонсы. Возможно, не менее интересно на митапах, до которых я пока не дошла. Может, кто-то захочет продолжить обзор и заполнит лакуны.

Читать дальше →
Всего голосов 16: ↑15 и ↓1+14
Комментарии11

Временные ряды. Простые решения

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


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

В этой статье мы рассмотрим несколько простых подходов прогнозирования временных рядов.

Материал, изложенный в статье, на мой взгляд, хорошо дополняет первую неделю курса «Прикладные задачи анализа данных» от МФТИ и Яндекс. На обозначенном курсе можно получить теоретические знания, достаточные для решения задач прогнозирования рядов динамики, а в качестве практического закрепления материала предлагается с помощью модели ARIMA библиотеки scipy сформировать прогноз заработной платы в Российской Федерации на год вперед. В статье, мы также будем формировать прогноз заработной платы, но при этом будем использовать не библиотеку scipy, а библиотеку sklearn. Фишка в том, что в scipy уже предусмотрена модель ARIMA, а sklearn не располагает готовой моделью, поэтому нам придется потрудиться ручками. Таким образом, нам для решения задачи, в каком то смысле, необходимо будет разобраться как устроена модель изнутри. Также, в качестве дополнительного материала, в статье, задача прогнозирования решается с помощью однослойной нейронной сети библиотеки pytorch.
Читать дальше →
Всего голосов 10: ↑10 и ↓0+10
Комментарии4

Понимание квантовых вычислений через случайное блуждание пьяненьких людей

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

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

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

image

Мы вынуждены видеть либо одно, либо другое, а не то и другое одновременно.
Читать дальше →
Всего голосов 29: ↑27 и ↓2+36
Комментарии13

Полезные консольные Linux утилиты

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

В этой подборке представлены полезные малоизвестные консольные Linux утилиты. В списке не представлены Pentest утилиты, так как у них есть своя подборка.


Осторожно много скриншотов. Добавил до ката утилиту binenv.


binenv — cамая интересная утилита для установки новых популярных программ в linux, но которых нет в пакетном менеджере.

Читать дальше →
Всего голосов 96: ↑92 и ↓4+110
Комментарии110

HP Vertica, проектирование хранилища данных, больших данных

Время на прочтение8 мин
Количество просмотров32K
UPD: Продолжение статьи по ссылке — habrahabr.ru/company/avito/blog/322510

О чем статья

Незаметно пролетел год, как начались работы по разработке и внедрению хранилища данных на платформе Вертика.
На хабре уже есть статьи про саму СУБД Вертика, особенно рекомендую эту: HP Vertica, первый запущенный проект в РФ, ведь ее автор очень помог нам на начальном этапе. Алексей, спасибо еще раз.
Хотелось бы рассказать о том, какая методология применялась для проектирования физической структуры хранилища, чтобы наиболее полно использовать возможности HP Vertica.
Эту статью хотел бы посветить обоснованию оптимальности выбранной методологии, а в следующей — рассказать о том, какие техники позволяют анализировать данные, содержащие десятки млрд.

Постановка задачи

Рассмотрим высоконагруженный сайт крупной российской интернет-компании (теперь можно — это Авито ;)).
Деятельность компании описывается следующими цифрами: ~ 10 млн. активных пользователей, ~100 млн. просмотров страниц в день, около 1 тыс. новых объектов, размещенных пользователями на сайте в течение 1 минуты, ~10 тыс. поисковых запросов пользователей в минуту.
Грубая оценка количества действий, подлежащих сохранению в хранилище, составляет 100 млн. новых записей в сутки (~100 GB новых данных в сутки).
Т.е. при построении классического хранилища данных с отказом от стирания поступивших ранее данных, объем хранилища через 3 месяца эксплуатации составит 10TB сырых данных. Big Data как она есть.
Нужно построить хранилище, которое хранило бы не меньше 6 месяцев данных, позволяло их анализировать, визуализировать, и отставало бы от реальной жизни настолько мало, насколько это возможно (в худшем случае — отставало бы на день, в лучшем — на минуты).
Вынося сразу за скобки вопрос выбора платформы — хранилище должно работать на HP Vertica, MPP базе колоночного хранения, см. вводную статью в заголовке.
Читать дальше →
Всего голосов 17: ↑16 и ↓1+15
Комментарии10

Vertica+Anchor Modeling = запусти рост своей грибницы

Время на прочтение5 мин
Количество просмотров32K
Какое-то время назад я написал статью на Хабре. В ней же пообещал продолжение через пару недель. Но, как известно, обещанного три года ждут  —  и с тех пор действительно прошло три года. Если вы не запомнили со времён той статьи, то напомню  —  я работаю в Avito, строю хранилище на основе Vertica.
Из того, что поменялось — теперь я могу не просто написать статью, а сделать это в блоге компании. И, надеюсь, не один раз. Самопиар окончен, теперь к делу.


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

Быть тимлидом, ч2: Технологии

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

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

Читать дальше →
Всего голосов 31: ↑27 и ↓4+27
Комментарии11

Как создать инфраструктуру в разных окружениях с помощью Terraform

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

Terraform — это опенсорс-инструмент IaC (инфраструктура как код), который предоставляет согласованный рабочий процесс в CLI для управления сотнями облачных сервисов. Terraform преобразует облачные API в декларативные файлы конфигурации.


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


image


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

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

Apache Kafka: основы технологии

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

У Kafka есть множество способов применения, и у каждого способа есть свои особенности. В этой статье разберём, чем Kafka отличается от популярных систем обмена сообщениями; рассмотрим, как Kafka хранит данные и обеспечивает гарантию сохранности; поймём, как записываются и читаются данные.


Статья подготовлена на основе открытого занятия из видеокурса по Apache Kafka. Авторы — Анатолий Солдатов, Lead Engineer в Авито, и Александр Миронов, Infrastructure Engineer в Stripe. Базовые темы курса доступны на Youtube.

Всего голосов 29: ↑29 и ↓0+29
Комментарии10

Теория инвестиций для начинающих, часть 1

Время на прочтение16 мин
Количество просмотров72K
Эдвард Мэтью Ворд. Пузырь Компании Южных морей. 1847 г. Галерея Тейт, Лондон.

В какие ценные бумаги вкладывать деньги? Как накопить на пенсию? Кто такие ETF’ы и почему все с ними носятся? Зачем покупать акции, если рынок может упасть? Такие вопросы я слышу от студентов и коллег, когда читаю лекции о деривативах. В принципе, неудивительно. Деривативы — это что-то далёкое из мира больших банков, а личные инвестиции намного ближе к телу.

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

Собственно, моя статья — не столько инвестиционный совет (хотя я и расскажу о личном опыте и даже посчитаю свою «альфу»), сколько обзорный курс по теории инвестиций. Полезно знать, какие модели придумали предыдущие поколения, и в каких терминах можно думать об инвестициях. Если из теории следует, что имеет смысл покупать индексные ETF’ы, чтобы копить на пенсию — так и быть, расскажу и об этом.

Не секрет, что в финансах много математики. Я постарался соблюсти баланс. Я считаю, что интуитивное понимание главных экономических идей важнее, чем конкретная формула. Даже если вы пропустите вообще все формулы, то вы всё равно поймёте суть и получите полезные знания. С другой стороны, если вы хотели бы размять мозги не ахти какой сложной математикой, то у вас будет такая возможность.
Читать дальше →
Всего голосов 31: ↑31 и ↓0+31
Комментарии18

Мои machine learning тулы для инвестирования

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

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

Читать далее
Всего голосов 42: ↑41 и ↓1+53
Комментарии39

Информация

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